diff --git a/meson.build b/meson.build index b6986a2..4b4d5f7 100644 --- a/meson.build +++ b/meson.build @@ -8,3 +8,11 @@ lib = static_library('poly2tri', sources : [ 'poly2tri/sweep/sweep.cc', 'poly2tri/sweep/sweep_context.cc', ]) + +thread_dep = dependency('threads') +boost_test_dep = dependency('boost', modules : [ 'unit_test_framework' ], required : false) +if boost_test_dep.found() + test('Unit Test', executable('unittest', [ + 'unittest/main.cpp', + ], dependencies : [boost_test_dep, thread_dep], link_with : lib)) +endif diff --git a/unittest/main.cpp b/unittest/main.cpp new file mode 100644 index 0000000..d247ae9 --- /dev/null +++ b/unittest/main.cpp @@ -0,0 +1,19 @@ +#define BOOST_TEST_DYN_LINK +#define BOOST_TEST_MODULE Poly2triTest +#include +#include +#include + +BOOST_AUTO_TEST_CASE(BasicTest) { + std::vector polyline{ + new p2t::Point(0, 0), new p2t::Point(1, 0), new p2t::Point(1, 1), + }; + p2t::CDT cdt{polyline}; + cdt.Triangulate(); + const auto result = cdt.GetTriangles(); + assert(result.size() == 1); + BOOST_CHECK_EQUAL(*result[0]->GetPoint(0), *polyline[0]); + BOOST_CHECK_EQUAL(*result[0]->GetPoint(1), *polyline[1]); + BOOST_CHECK_EQUAL(*result[0]->GetPoint(2), *polyline[2]); + result[0]->DebugPrint(); +}