source: TI02-CSML/trunk/services/3rdParty/GeoTypes-0.6.0/tests/LineSeg_Test.py @ 2194

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI02-CSML/trunk/services/3rdParty/GeoTypes-0.6.0/tests/LineSeg_Test.py@2194
Revision 2194, 3.9 KB checked in by lawrence, 13 years ago (diff)

Adding various specs and 3rd party code of interest for the CSML
services development.

Line 
1
2################################################################################
3# Copyright (c) QinetiQ Plc 2003
4#
5# Licensed under the LGPL. For full license details see the LICENSE file.
6################################################################################
7
8import unittest
9import os
10
11import TestConfig
12
13if not os.environ.get('USECOVERAGE') == '1':
14    import _Point
15    from _Point import *
16    import _LineSeg
17    from _LineSeg import *
18
19
20class LineSegTest(unittest.TestCase):   
21    def testEqualities(self):
22        p = LineSeg()
23        q = LineSeg()
24        assert p != None
25        assert None != p
26        assert p != 0
27        assert p != {}
28        assert p != []
29        assert p == q
30
31    def testLineSeg(self):
32        """
33        Check that the basic LineSeg class works
34        """
35
36        start = Point("(1.0,2.0)")
37        end = Point("(1.0,3.0)")
38
39        l = LineSeg()
40        l.setStart(start)
41        l.setEnd(end)
42
43        assert l.getStart() == start
44        assert l.getEnd() == end
45        assert l.__str__() == "'(%s,%s)'" % (start.__repr__(),
46                                             end.__repr__())
47        assert l.__repr__() == "(%s,%s)" % (start.__repr__(),
48                                            end.__repr__())
49
50        l = LineSeg("((1.0,2.0),(1.0,3.0))")
51        assert l.getStart() == start
52        assert l.getEnd() == end
53        assert l.__str__() == "'(%s,%s)'" % (start.__repr__(),
54                                             end.__repr__())
55       
56        l1 = LineSeg("((1.0,2.0),(1.0,3.0))")
57        l2 = LineSeg("((1.0,2.0),(1.0,3.0))")
58
59        assert l1 == l2
60
61        l1 = LineSeg("((1.0,2.0),(1.0,3.0))")
62        l2 = LineSeg("((1.1,2.0),(1.0,3.0))")
63
64        assert l1 != l2
65
66        l1 = LineSeg("((1.0,2.0),(1.0,3.0))")
67        l2 = LineSeg("((1.0,2.0),(1.1,3.0))")
68
69        assert l1 != l2
70
71        l1 = LineSeg("((1.0,2.0),(1.0,3.0))")
72        l2 = LineSeg("((1.0,2.1),(1.1,3.0))")
73
74        assert l1 != l2
75
76       
77
78    def testFactories(self):
79        start = Point("(1.0,2.0)")
80        end = Point("(1.0,3.0)")
81       
82        l = lineSegFromPoints(start,end)
83        assert l.getStart() == start
84        assert l.getEnd() == end
85        assert l.__str__() == "'(%s,%s)'" % (start.__repr__(),
86                                             end.__repr__())
87        assert l.__repr__() == "(%s,%s)" % (start.__repr__(),
88                                            end.__repr__())
89       
90
91        l = lineSegFromSequence(((1.0,2.0),(1.0,3.0)))
92        assert l.getStart() == start
93        assert l.getEnd() == end
94        assert l.__str__() == "'(%s,%s)'" % (start.__repr__(),
95                                             end.__repr__())
96        assert l.__repr__() == "(%s,%s)" % (start.__repr__(),
97                                            end.__repr__())
98
99    def testzzz_CoverageAssertion(self):
100        try:
101            coverage.stop()
102        except:
103            return 1
104       
105        x = coverage.analysis(_LineSeg)
106        assert x[2]==[], "Coverage is less than 100%"
107
108def testSuite():
109    return unittest.makeSuite(LineSegTest,'test')
110
111if __name__ == "__main__":
112    if os.environ.get('USECOVERAGE') == '1':
113        try:
114            import coverage
115            coverage.erase()
116            coverage.start()
117            COVERAGE = 1       
118            import _Point
119            from _Point import *
120            import _LineSeg
121            from _LineSeg import *
122
123        except:
124            print "Error setting up coverage checking"
125            COVERAGE = 0
126    else:
127        COVERAGE = 0
128
129    if os.environ.get('USEPYCHECK') == '1':
130        try:
131            import pychecker.checker
132        except:
133            print "Pychecker not installed on this machine"
134
135    unittest.TextTestRunner().run(testSuite())
136
137    if COVERAGE:
138        coverage.stop()
139        x = coverage.analysis(_LineSeg)
140        print "\n"
141        coverage.report(_LineSeg)
Note: See TracBrowser for help on using the repository browser.