diff options
author | vng <viktor.govako@gmail.com> | 2015-08-12 13:36:25 +0300 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 03:03:05 +0300 |
commit | b6eabd2c962c02a1c84557258ca5d3dc3f6db64e (patch) | |
tree | a249d7c9435a1032c540f85a8be3763ff8d4bda6 /geometry/geometry_tests | |
parent | 6af983a48219ad70df7ccd93a737f84e03d314ab (diff) |
[geometry] Added area calculation functions.
Diffstat (limited to 'geometry/geometry_tests')
-rw-r--r-- | geometry/geometry_tests/polygon_test.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/geometry/geometry_tests/polygon_test.cpp b/geometry/geometry_tests/polygon_test.cpp index 3e677afdbc..8fd6d5970d 100644 --- a/geometry/geometry_tests/polygon_test.cpp +++ b/geometry/geometry_tests/polygon_test.cpp @@ -1,7 +1,8 @@ #include "testing/testing.hpp" -#include "geometry/polygon.hpp" #include "geometry/point2d.hpp" +#include "geometry/polygon.hpp" +#include "geometry/triangle2d.hpp" #include "base/macros.hpp" @@ -159,6 +160,22 @@ UNIT_TEST(IsPolygonCCW_DataSet) TestPolygonOrReverseCCW(arr, arr + ARRAY_SIZE(arr)); } +UNIT_TEST(PolygonArea_Smoke) +{ + { + P arr[] = { P (-1, 0), P(0, 1), P(1, -1) }; + TEST_ALMOST_EQUAL_ULPS(m2::GetTriangleArea(arr[0], arr[1], arr[2]), + GetPolygonArea(arr, arr + ARRAY_SIZE(arr)), ()); + } + + { + P arr[] = { P (-5, -7), P(-3.5, 10), P(7.2, 5), P(14, -6.4) }; + TEST_ALMOST_EQUAL_ULPS(m2::GetTriangleArea(arr[0], arr[1], arr[2]) + + m2::GetTriangleArea(arr[2], arr[3], arr[0]), + GetPolygonArea(arr, arr + ARRAY_SIZE(arr)), ()); + } +} + // This polygon has self-intersections. /* UNIT_TEST(IsPolygonCCW_DataSet2) |