Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvng <viktor.govako@gmail.com>2011-08-30 17:55:46 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:22:45 +0300
commit04fd05c9ad267ea00af88deb65c062b943c46592 (patch)
tree88efeb5b3873798c961865c5a100a4382e8d2eed /geometry/geometry_tests/region2d_binary_op_test.cpp
parente7b2d8899a66ae51187bf7f52142abf44bb0d765 (diff)
Add difference of regions.
Diffstat (limited to 'geometry/geometry_tests/region2d_binary_op_test.cpp')
-rw-r--r--geometry/geometry_tests/region2d_binary_op_test.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/geometry/geometry_tests/region2d_binary_op_test.cpp b/geometry/geometry_tests/region2d_binary_op_test.cpp
index f129c24652..47b00095a2 100644
--- a/geometry/geometry_tests/region2d_binary_op_test.cpp
+++ b/geometry/geometry_tests/region2d_binary_op_test.cpp
@@ -42,3 +42,39 @@ UNIT_TEST(RegionIntersect_Smoke)
TEST_EQUAL(res.size(), 0, ());
}
}
+
+UNIT_TEST(RegionDifference_Smoke)
+{
+ {
+ P arr1[] = { P(-1, 1), P(1, 1), P(1, -1), P(-1, -1) };
+ P arr2[] = { P(-2, 2), P(2, 2), P(2, -2), P(-2, -2) };
+
+ R r1, r2;
+ r1.Assign(arr1, arr1 + ARRAY_SIZE(arr1));
+ r2.Assign(arr2, arr2 + ARRAY_SIZE(arr2));
+
+ vector<R> res;
+ m2::DiffRegions(r1, r2, res);
+ TEST_EQUAL(res.size(), 0, ());
+
+ m2::DiffRegions(r2, r1, res);
+
+ TEST_EQUAL(res.size(), 1, ());
+ TEST_EQUAL(res[0].GetRect(), r2.GetRect(), ());
+ }
+
+ {
+ P arr1[] = { P(0, 1), P(2, 1), P(2, 0), P(0, 0) };
+ P arr2[] = { P(1, 2), P(2, 2), P(2, -1), P(1, -1) };
+
+ R r1, r2;
+ r1.Assign(arr1, arr1 + ARRAY_SIZE(arr1));
+ r2.Assign(arr2, arr2 + ARRAY_SIZE(arr2));
+
+ vector<R> res;
+ m2::DiffRegions(r1, r2, res);
+
+ TEST_EQUAL(res.size(), 1, ());
+ TEST_EQUAL(res[0].GetRect(), m2::RectI(0, 0, 1, 1), ());
+ }
+}