You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kev/Drawer/Clipper2Lib-/CPP/Tests/TestTrimCollinear.cpp

27 lines
1.1 KiB
C++

1 month ago
#include <gtest/gtest.h>
#include "clipper2/clipper.h"
using namespace Clipper2Lib;
TEST(Clipper2Tests, TestTrimCollinear) {
Path64 input1 =
MakePath({ 10,10, 10,10, 50,10, 100,10, 100,100, 10,100, 10,10, 20,10 });
Path64 output1 = TrimCollinear(input1, false);
EXPECT_EQ(output1.size(), 4);
Path64 input2 =
MakePath({ 10,10, 10,10, 100,10, 100,100, 10,100, 10,10, 10,10 });
Path64 output2 = TrimCollinear(input2, true);
EXPECT_EQ(output2.size(), 5);
Path64 input3 = MakePath({ 10,10, 10,50, 10,10, 50,10,50,50,
50,10, 70,10, 70,50, 70,10, 50,10, 100,10, 100,50, 100,10 });
Path64 output3 = TrimCollinear(input3);
EXPECT_EQ(output3.size(), 0);
Path64 input4 = MakePath({ 2,3, 3,4, 4,4, 4,5, 7,5,
8,4, 8,3, 9,3, 8,3, 7,3, 6,3, 5,3, 4,3, 3,3, 2,3 });
Path64 output4a = TrimCollinear(input4);
Path64 output4b = TrimCollinear(output4a);
int area4a = static_cast<int>(Area(output4a));
int area4b = static_cast<int>(Area(output4b));
EXPECT_EQ(output4a.size(), 7);
EXPECT_EQ(area4a, -9);
EXPECT_EQ(output4a.size(), output4b.size());
EXPECT_EQ(area4a, area4b);
}