From a27869d1c81f256136c58441134f36395e2d399d Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Wed, 19 Jul 2017 17:19:20 +1000 Subject: [PATCH] region: commenting and style for test cases --- test/region.cpp | 53 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 17 deletions(-) diff --git a/test/region.cpp b/test/region.cpp index 9f4a26d0..eb24e262 100644 --- a/test/region.cpp +++ b/test/region.cpp @@ -10,35 +10,54 @@ main (int, char **) { util::TAP::logger tap; + // check that two overlapping regions successfully test for intersection { - util::point2d ap { 32.7, -6.09703 }; - util::extent2d ae { 0.8, 2. }; + const util::point2d ap { 32.7, -6.09703 }; + const util::extent2d ae { 0.8, 2. }; + const util::region2d a (ap, ae); - util::point2d bp {33.5, -4.5}; - util::extent2d be { 0.5, 0.5 }; - - util::region2d a (ap, ae); - util::region2d b (bp, be); + const util::point2d bp {33.5, -4.5}; + const util::extent2d be { 0.5, 0.5 }; + const util::region2d b (bp, be); tap.expect (!a.intersects (b), "simple 2d intersection"); } - tap.expect (util::region2d::max ().intersects (util::region2d::unit ()), "maximal region2d intersection"); - tap.expect (util::region2f::max ().intersects (util::region2f::unit ()), "maximal region2f intersection"); + // check various floating point maximums successfully test for + // intersection. the concern is that infinities are incorrectly handled + // in some comparisons. + tap.expect ( + util::region2d::max ().intersects ( + util::region2d::unit () + ), + "maximal region2d intersection" + ); + tap.expect ( + util::region2f::max ().intersects ( + util::region2f::unit () + ), + "maximal region2f intersection" + ); + + // ensure unit regions are... unit sized... tap.expect_eq (util::region2d::unit ().area (), 1.0, "unit region2d area"); tap.expect_eq (util::region2f::unit ().area (), 1.0f, "unit region2f area"); - util::point2u p0 { 0 }; - util::extent2u e0 { 2 }; + // test boundary cases of includes and contains + { + const util::point2u p0 { 0 }; + const util::extent2u e0 { 2 }; + const util::region2u r {p0, e0}; - tap.expect (util::region2u (p0, e0).includes (util::point2u {1, 1}), "unsigned region centre inclusion"); - tap.expect (util::region2u (p0, e0).includes (util::point2u {0, 0}), "unsigned region base inclusion"); - tap.expect (util::region2u (p0, e0).includes (util::point2u {2, 2}), "unsigned region corner inclusion"); + tap.expect (r.includes (util::point2u {1, 1}), "unsigned region centre inclusion"); + tap.expect (r.includes (util::point2u {0, 0}), "unsigned region base inclusion"); + tap.expect (r.includes (util::point2u {2, 2}), "unsigned region corner inclusion"); - tap.expect ( util::region2u (p0, e0).contains (util::point2u {1, 1}), "unsigned region center contains"); - tap.expect (!util::region2u (p0, e0).contains (util::point2u {0, 0}), "unsigned region base contains"); - tap.expect (!util::region2u (p0, e0).contains (util::point2u {2, 2}), "unsigned region corner contains"); + tap.expect ( r.contains (util::point2u {1, 1}), "unsigned region center contains"); + tap.expect (!r.contains (util::point2u {0, 0}), "unsigned region base contains"); + tap.expect (!r.contains (util::point2u {2, 2}), "unsigned region corner contains"); + } //CHECK (region<2,intmax_t> (0, 0, 10, 10).includes (point2d (0.4, 0.01))); //CHECK (region<2,intmax_t> (0, 0, 10, 10).contains (point2d (0.4, 0.01)));