| 77 | } |
| 78 | |
| 79 | void CheckDPStrict(P const * arr, size_t n, double eps, size_t expectedCount) |
| 80 | { |
| 81 | vector<P> vec; |
| 82 | DistanceFn distFn; |
| 83 | SimplifyDP(arr, arr + n, eps, distFn, AccumulateSkipSmallTrg<DistanceFn, P>(distFn, vec, eps)); |
| 84 | |
| 85 | TEST_GREATER(vec.size(), 1, ()); |
| 86 | TEST_EQUAL(arr[0], vec.front(), ()); |
| 87 | TEST_EQUAL(arr[n - 1], vec.back(), ()); |
| 88 | |
| 89 | if (expectedCount > 0) |
| 90 | TEST_EQUAL(expectedCount, vec.size(), ()); |
| 91 | |
| 92 | for (size_t i = 2; i < vec.size(); ++i) |
| 93 | { |
| 94 | auto const d = DistanceFn(); |
| 95 | TEST_GREATER_OR_EQUAL(d(vec[i - 2], vec[i], vec[i - 1]), eps, ()); |
| 96 | } |
| 97 | } |
| 98 | |
| 99 | UNIT_TEST(Simplification_TestDataIsCorrect) |
| 100 | { |
no test coverage detected