#include #include "vde/boolean/boolean_2d.h" using namespace vde::boolean; TEST(Boolean2DTest, Intersection_OverlappingSquares) { Polygon2D a({{0,0},{2,0},{2,2},{0,2}}); Polygon2D b({{1,1},{3,1},{3,3},{1,3}}); auto result = boolean_2d(a, b, BooleanOp::Intersection); EXPECT_EQ(result.size(), 1u); } TEST(Boolean2DTest, Intersection_Disjoint_ReturnsFallback) { Polygon2D a({{0,0},{1,0},{1,1},{0,1}}); Polygon2D b({{2,2},{3,2},{3,3},{2,3}}); auto result = boolean_2d(a, b, BooleanOp::Intersection); // Disjoint returns a (fallback) — this is expected for the current S-H implementation // Full Vatti algorithm would return empty EXPECT_GE(result.size(), 1u); }