xmsgrid  1.0
GmMultiPolyIntersector.t.h
Go to the documentation of this file.
1 #pragma once
2 #ifdef CXX_TEST
3 //------------------------------------------------------------------------------
8 //------------------------------------------------------------------------------
9 
10 //----- Included files ---------------------------------------------------------
11 // 3. Standard Library Headers
12 
13 // 4. External Library Headers
14 #include <cxxtest/TestSuite.h>
15 
16 // 5. Shared Headers
17 
18 // 6. Non-shared Headers
19 
20 //----- Namespace declaration --------------------------------------------------
21 
22 // namespace xms {
23 
24 //----- Forward declarations ---------------------------------------------------
25 
26 //----- Structs / Classes ------------------------------------------------------
27 
29 class GmMultiPolyIntersectorUnitTests : public CxxTest::TestSuite
30 {
31 public:
32  // 1 poly
33  void test1OutOut();
34  void test1OutIn();
35  void test1InOut();
36  void test1InIn();
37  void test1OnOn();
38  void test1OnIn();
39  void test1InOn();
40  void test1OutOn();
41  void test1OnOut();
42  void test1EdgeInIn();
43  void test1EdgePtPt();
44  void test1EdgeOutOut();
45  void test1EdgeOutIn();
46  void test1EdgeInOut();
47  void test1OutPt();
48  void test1OutPtOut();
49  void test1AllOut();
50  void test1PtIn();
51  void test1InPt();
52 
53  // 2 polys
54  void test2OnOn();
55  void test2InOn();
56  void test2OnIn();
57  void test2OutOut();
58  void test2OutIn();
59  void test2InOut();
60  void test2InIn();
61  void test2InPt();
62  void test2PtIn();
63  void test2InEdgePt();
64  void testCorners();
65  void testQuadCorners();
67  void test2InOutIn();
68 
69  // Multiple polys
70  void testInsideToInside();
71  void testOutsideToOutside();
72  void testTouchesVertex();
73  void testTouchesEdge();
80  void testSmsCase1();
81  void testMap2MfBug();
82 }; // GmMultiPolyIntersectorUnitTests
83 
85 class GmMultiPolyIntersector2IntermediateTests : public CxxTest::TestSuite
86 {
87 public:
88  void testLargeNumPolys();
90  void testBug12586();
91 };
92 
93 //} // namespace xms
94 #endif
void testSmsCase1()
This case revealed the need for a tolerance when comparing t values.
void testMap2MfBug()
We only do the first part: inside to edge.
Tests for GmMultiPolyIntersector.
void testInsideToInside()
Given 1 x 2 2D grid turned into triangles with point at poly center triangles numbered as follows: ...
Tests for GmMultiPolyIntersector that take longer to run.
void testOutsideToOutside()
Given 1 x 2 2D grid turned into triangles with point at poly center triangles numbered as follows: ...
void testAlongEdgesInsideToInside()
Given 3 x 3 2D grid turned into triangles with point at poly center triangles numbered as follows: ...
void testEndAtEdgeFromAdjacent()
Given 1 x 2 2D grid turned into triangles with point at poly center triangles numbered as follows: ...
void testTouchesVertex()
Given 1 x 2 2D grid turned into triangles with point at poly center triangles numbered as follows: ...
void testBug12586()
Test a case where the line is on the points and edges.
void testLargeNumPolysAndSegments()
This test can be used for speed comparisons.
void testLargeNumPolys()
Test a large number of polygons for speed.
void testStartAtEdgeThroughAdjacent()
Given 1 x 2 2D grid turned into triangles with point at poly center triangles numbered as follows: ...
void testInsideToEdgeThenThroughAdjacent()
Given 1 x 2 2D grid turned into triangles with point at poly center triangles numbered as follows: ...
void testTouchesEdge()
Given 1 x 2 2D grid turned into triangles with point at poly center triangles numbered as follows: ...
void testAlongEdgesOutsideToOutside()
Given 3 x 3 2D grid turned into triangles with point at poly center triangles numbered as follows: ...
void testEdgeThroughOppositeVertexAtAngle()
Given 1 x 2 2D grid turned into triangles with point at poly center triangles numbered as follows: ...