53SCENARIO(
"DigitalConvexity< Z2 > full convexity tests",
"[digital_convexity][2d][full_convexity]" )
59 DConvexity dconv(
Point( -5, -5 ),
Point( 10, 10 ) );
62 REQUIRE( dconv.isFullyConvex( V1 ) );
64 REQUIRE( ! dconv.isFullyConvex( V2 ) );
66 REQUIRE( dconv.isFullyConvex( V3 ) );
69 REQUIRE( dconv.isFullyConvex( V4 ) );
71 REQUIRE( ! dconv.isFullyConvex( V5 ) );
74SCENARIO(
"FullConvexity< Z3 > full convexity tests",
"[full_convexity][3d]" )
80 DConvexity dconv(
Point( -5, -5, -5 ),
Point( 10, 10, 10 ) );
85 std::vector< Point > X;
86 REQUIRE( dconv.isSimplexFullDimensional( { a, b, c, d } ) );
87 auto tetra= dconv.makeSimplex( { a, b, c, d } );
89 bool cvx0 = dconv.isKConvex( tetra, 0 );
90 bool cvx1 = dconv.isKConvex( tetra, 1 );
91 bool cvx2 = dconv.isKConvex( tetra, 2 );
92 bool cvx3 = dconv.isKConvex( tetra, 3 );
93 bool cvxf = dconv.isFullyConvex( tetra );
94 bool cvxg = dconv.isFullyConvex( X,
false );
96 REQUIRE( ( cvx0 && cvx1 && cvx2 && cvx3 ) == cvxf );