1 // Copyright 2015, Tobias Hermann and the FunctionalPlus contributors. 2 // https://github.com/Dobiasd/FunctionalPlus 3 // Distributed under the Boost Software License, Version 1.0. 4 // (See accompanying file LICENSE_1_0.txt or copy at 5 // http://www.boost.org/LICENSE_1_0.txt) 6 7 #include <doctest/doctest.h> 8 #include <fplus/fplus.hpp> 9 #include <vector> 10 11 12 namespace { 13 typedef std::vector<double> FloatVector; 14 FloatVector xs = {1.0, 2.0, 6.0}; 15 } 16 17 TEST_CASE("interpolate_test - interpolate_linear") 18 { 19 using namespace fplus; 20 REQUIRE(is_in_interval_around(0.0001, 1.0, elem_at_float_idx(-1.7, xs))); 21 REQUIRE(is_in_interval_around(0.0001, 1.0, elem_at_float_idx(-0.2, xs))); 22 REQUIRE(is_in_interval_around(0.0001, 1.0, elem_at_float_idx( 0.0, xs))); 23 REQUIRE(is_in_interval_around(0.0001, 1.2, elem_at_float_idx( 0.2, xs))); 24 REQUIRE(is_in_interval_around(0.0001, 1.7, elem_at_float_idx( 0.7, xs))); 25 REQUIRE(is_in_interval_around(0.0001, 2.0, elem_at_float_idx( 1.0, xs))); 26 REQUIRE(is_in_interval_around(0.0001, 4.0, elem_at_float_idx( 1.5, xs))); 27 REQUIRE(is_in_interval_around(0.0001, 5.6, elem_at_float_idx( 1.9, xs))); 28 REQUIRE(is_in_interval_around(0.0001, 6.0, elem_at_float_idx( 2.0, xs))); 29 REQUIRE(is_in_interval_around(0.0001, 6.0, elem_at_float_idx( 2.1, xs))); 30 REQUIRE(is_in_interval_around(0.0001, 6.0, elem_at_float_idx( 2.8, xs))); 31 } 32