xmsgeom  1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
GmMultiPolyIntersector.t.h
Go to the documentation of this file.
1 #pragma once
2 #ifdef CXX_TEST
3 //------------------------------------------------------------------------------
9 //------------------------------------------------------------------------------
10 
11 //----- Included files ---------------------------------------------------------
12 // 3. Standard Library Headers
13 
14 // 4. External Library Headers
15 #include <cxxtest/TestSuite.h>
16 
17 // 5. Shared Headers
18 
19 // 6. Non-shared Headers
20 
21 //----- Namespace declaration --------------------------------------------------
22 
23 // namespace xms {
24 
25 //----- Forward declarations ---------------------------------------------------
26 
27 //----- Structs / Classes ------------------------------------------------------
28 
30 class GmMultiPolyIntersectorUnitTests : public CxxTest::TestSuite
31 {
32 public:
33  // 1 poly
34  void test1OutOut();
35  void test1OutIn();
36  void test1InOut();
37  void test1InIn();
38  void test1OnOn();
39  void test1OnIn();
40  void test1InOn();
41  void test1OutOn();
42  void test1OnOut();
43  void test1EdgeInIn();
44  void test1EdgePtPt();
45  void test1EdgeOutOut();
46  void test1EdgeOutIn();
47  void test1EdgeInOut();
48  void test1OutPt();
49  void test1OutPtOut();
50  void test1AllOut();
51  void test1PtIn();
52  void test1InPt();
53 
54  // 2 polys
55  void test2OnOn();
56  void test2InOn();
57  void test2OnIn();
58  void test2OutOut();
59  void test2OutIn();
60  void test2InOut();
61  void test2InIn();
62  void test2InPt();
63  void test2PtIn();
64  void test2InEdgePt();
65  void test2InOutIn();
66 
67  // Multiple polys
68  void testInsideToInside();
69  void testOutsideToOutside();
70  void testTouchesVertex();
71  void testTouchesEdge();
78  void testSmsCase1();
79  void testMap2MfBug();
80 }; // GmMultiPolyIntersectorUnitTests
81 
83 class GmMultiPolyIntersector2IntermediateTests : public CxxTest::TestSuite
84 {
85 public:
86 #ifndef CXXTEST4
87  virtual const CxxTest::TestGroup& group();
88 #endif
89  void testLargeNumPolys();
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: ...
virtual const CxxTest::TestGroup & group()
Returns the test group.
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: ...