#include #include "vde/curves/parallel_intersection.h" #include using namespace vde::curves; using namespace vde::core; // Helper: create a simple NURBS line from (0,0) to (1,0) static NurbsCurve make_line_curve() { std::vector cp = {{0,0,0}, {1,0,0}}; std::vector knots = {0, 0, 1, 1}; std::vector weights = {1, 1}; return NurbsCurve(cp, knots, weights, 1); } TEST(ParallelIntersectionTest, CurveIntersection_Empty) { auto results = parallel_curve_intersections({}, {}, {}); EXPECT_EQ(results.size(), 0u); } TEST(ParallelIntersectionTest, CurveIntersection_SinglePair) { auto c1 = make_line_curve(); auto c2 = make_line_curve(); std::vector> pairs = {{0, 0}}; auto results = parallel_curve_intersections(pairs, std::vector{c1}, std::vector{c2}); EXPECT_EQ(results.size(), 1u); } TEST(ParallelIntersectionTest, SurfaceIntersection_Empty) { // Create two planes NurbsSurface a, b; auto results = parallel_surface_intersection(a, b); EXPECT_EQ(results.size(), 0u); } TEST(ParallelIntersectionTest, SurfaceIntersection_Batch) { std::vector> pairs; auto results = parallel_surface_intersections(pairs, {}, {}); EXPECT_EQ(results.size(), 0u); }