1#include <Core/Geometry/PolyLine.hpp>
2#include <catch2/catch_test_macros.hpp>
4TEST_CASE(
"Core/Geometry/Polyline",
"[unittests][Core][Core/Geometry][Polyline]" ) {
6 SECTION(
"2 points polyline" ) {
7 Vector3Array v2 { { 1, 2, 3 }, { 4, 5, 6 } };
10 Vector3 m = 0.5_ra * ( v2[0] + v2[1] );
13 REQUIRE( p.f( 0_ra ).isApprox( v2[0] ) );
14 REQUIRE( p.f( 1_ra ).isApprox( v2[1] ) );
15 REQUIRE( p.f( .5_ra ).isApprox( m ) );
17 REQUIRE( Math::areApproxEqual( p.distance( m ), 0_ra ) );
19 SECTION(
"4 points polyline" ) {
20 Vector3Array v4 { { 2, 3, 5 }, { 7, 11, 13 }, { 17, 23, 29 }, { -1, -1, 30 } };
24 REQUIRE( p.f( 0_ra ).isApprox( v4[0] ) );
25 REQUIRE( p.f( 1_ra ).isApprox( v4[3] ) );
27 REQUIRE( p.f( -10_ra ).isApprox( p.f( 0_ra ) ) );
28 REQUIRE( p.f( 10_ra ).isApprox( p.f( 1_ra ) ) );
30 for (
const auto& x : v4 ) {
31 REQUIRE( Math::areApproxEqual( p.distance( x ), 0_ra ) );
This namespace contains everything "low level", related to data, datastuctures, and computation.