diff options
author | vng <viktor.govako@gmail.com> | 2011-10-06 00:34:37 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:25:13 +0300 |
commit | 820a59c8f02e95be29ac780d9294d49a0867d8ae (patch) | |
tree | 954ece1b2ea0dbc2eeff2dd5a63f6cdd5e169551 /generator/generator_tests/tesselator_test.cpp | |
parent | 0b2fc2f1429f294d47446e4feb35e9f9951a8047 (diff) |
Add more tesselator tests for odd triangulation.
Diffstat (limited to 'generator/generator_tests/tesselator_test.cpp')
-rw-r--r-- | generator/generator_tests/tesselator_test.cpp | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/generator/generator_tests/tesselator_test.cpp b/generator/generator_tests/tesselator_test.cpp index ad155001f1..30dea69273 100644 --- a/generator/generator_tests/tesselator_test.cpp +++ b/generator/generator_tests/tesselator_test.cpp @@ -24,22 +24,50 @@ namespace } }; - size_t RunTess(P const * arr, size_t count) + size_t RunTest(list<vector<P> > const & l) { - list<vector<P> > l; - l.push_back(vector<P>()); - l.back().assign(arr, arr + count); - tesselator::TrianglesInfo info; tesselator::TesselateInterior(l, info); + size_t count; info.ForEachTriangle(DoDump(count)); return count; } + + size_t RunTess(P const * arr, size_t count) + { + list<vector<P> > l; + l.push_back(vector<P>()); + l.back().assign(arr, arr + count); + + return RunTest(l); + } } -UNIT_TEST(TesselatorSelfISect_Smoke) +UNIT_TEST(Tesselator_SelfISect) { P arr[] = { P(0, 0), P(0, 4), P(4, 4), P(1, 1), P(1, 3), P(4, 0), P(0, 0) }; TEST_EQUAL(6, RunTess(arr, ARRAY_SIZE(arr)), ()); } + +UNIT_TEST(Tesselator_Odd) +{ + P arr[] = { P(-100, -100), P(100, 100), P(100, -100) }; + + size_t const count = ARRAY_SIZE(arr); + + list<vector<P> > l; + l.push_back(vector<P>()); + l.back().assign(arr, arr + count); + l.push_back(vector<P>()); + l.back().assign(arr, arr + count); + + TEST_EQUAL(0, RunTest(l), ()); + + P arr1[] = { P(-100, -100), P(100, -100), P(100, 100), P(-100, 100) }; + + l.push_back(vector<P>()); + l.back().assign(arr1, arr1 + ARRAY_SIZE(arr1)); + + TEST_EQUAL(2, RunTest(l), ()); +} |