This repository has been archived on 2020-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Files
Indoor/tests/geo/TestBBox.cpp
FrankE 34e52cd7f0 worked on floorplan (v2)
worked on grid-generation (v2)
new helper methods for geometry
new test cases
2016-07-13 19:11:18 +02:00

62 lines
1.2 KiB
C++

#ifdef WITH_TESTS
#include "../Tests.h"
#include "../../geo/BBox2.h"
TEST(BBox, noIntersect) {
BBox2 bb(Point2(1,1), Point2(3,3));
Line2 l1(Point2(0,0), Point2(9,0)); // below
Line2 l2(Point2(0,4), Point2(9,4)); // above
Line2 l3(Point2(0,0), Point2(0,9)); // left
Line2 l4(Point2(4,0), Point2(4,9)); // right
ASSERT_FALSE(bb.intersects(l1));
ASSERT_FALSE(bb.intersects(l2));
ASSERT_FALSE(bb.intersects(l3));
ASSERT_FALSE(bb.intersects(l4));
}
TEST(BBox, noDirectIntersect) {
BBox2 bb(Point2(1,1), Point2(3,3));
Line2 l1(Point2(0,1), Point2(9,1)); // lower
Line2 l2(Point2(0,3), Point2(9,3)); // upper
Line2 l3(Point2(1,0), Point2(1,9)); // left
Line2 l4(Point2(3,0), Point2(3,9)); // right
ASSERT_FALSE(bb.intersects(l1));
ASSERT_FALSE(bb.intersects(l2));
ASSERT_FALSE(bb.intersects(l3));
ASSERT_FALSE(bb.intersects(l4));
}
TEST(BBox, positiveIntersect) {
BBox2 bb(Point2(1,1), Point2(3,3));
Line2 l1(Point2(0,2), Point2(2,2)); // left hit
Line2 l2(Point2(2,2), Point2(4,2)); // right hit
Line2 l3(Point2(2,0), Point2(2,2)); // lower hit
Line2 l4(Point2(2,2), Point2(2,4)); // upper hit
ASSERT_TRUE(bb.intersects(l1));
ASSERT_TRUE(bb.intersects(l2));
ASSERT_TRUE(bb.intersects(l3));
ASSERT_TRUE(bb.intersects(l4));
}
#endif