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

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI02-CSML/trunk/services/3rdParty/GeoTypes-0.6.0/tests/Box_Test.py@2194
Revision 2194, 5.1 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 _Box
17    from _Box import *
18
19
20class BoxTest(unittest.TestCase):   
21    def testEqualities(self):
22        p = Box()
23        q = Box()
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 testBox(self):
32        """
33        Check that the basic Box class works
34        """
35
36        upper_right = Point("(2.0,2.0)")
37        lower_left = Point("(1.0,1.0)")
38
39        b = Box()
40        b.setUpperRight(upper_right)
41        b.setLowerLeft(lower_left)
42
43        assert b.getUpperRight() == upper_right
44        assert b.getLowerLeft() == lower_left
45        assert b.__str__() == "'(%s,%s)'" % (upper_right.__repr__(),
46                                             lower_left.__repr__())
47        assert b.__repr__() == "(%s,%s)" % (upper_right.__repr__(),
48                                            lower_left.__repr__())
49
50        b = Box("((2.0,2.0),(1.0,1.0))")
51        assert b.getUpperRight() == upper_right
52        assert b.getLowerLeft() == lower_left
53        assert b.__str__() == "'(%s,%s)'" % (upper_right.__repr__(),
54                                             lower_left.__repr__())
55       
56        b1 = Box("((2.0,2.0),(1.0,1.0))")
57        b2 = Box("((2.0,2.0),(1.0,1.0))")
58
59        assert b1 == b2
60
61        b1 = Box("((2.0,2.0),(1.0,1.0))")
62        b2 = Box("((2.1,2.0),(1.0,1.0))")
63
64        assert b1 != b2
65
66        b1 = Box("((2.0,2.0),(1.0,1.0))")
67        b2 = Box("((2.0,2.0),(1.1,1.0))")
68
69        assert b1 != b2
70
71        b1 = Box("((2.0,2.0),(1.0,1.0))")
72        b2 = Box("((2.0,2.1),(1.1,1.0))")
73
74        assert b1 != b2
75
76
77    def testNormalise(self):
78        """
79        Check that the normalise methods work.
80        """
81
82        upper_right = Point("(2.0,2.0)")
83        lower_left = Point("(1.0,1.0)")
84        upper_left = Point("(1.0,2.0)")
85        lower_right = Point("(2.0,1.0)")
86
87        b = boxFromPoints(upper_left,lower_right)
88        assert b.getUpperRight() == upper_right
89        assert b.getLowerLeft() == lower_left
90
91        b = boxFromPoints(lower_left,upper_right)
92        assert b.getUpperRight() == upper_right
93        assert b.getLowerLeft() == lower_left
94
95        b = boxFromPoints(lower_right,upper_left)
96        assert b.getUpperRight() == upper_right
97        assert b.getLowerLeft() == lower_left
98
99        b = Box()
100        b.setUpperRight(lower_left)
101        self.assertRaises(ValueError, b.setLowerLeft, upper_right)
102
103        b = Box()
104        b._setLowerLeft(upper_right)
105        self.assertRaises(ValueError, b.setUpperRight, lower_left)
106
107
108    def testFactories(self):
109        upper_right = Point("(2.0,2.0)")
110        lower_left = Point("(1.0,1.0)")
111       
112        b = boxFromPoints(upper_right,lower_left)
113        assert b.getUpperRight() == upper_right, "boxFromPoints failed"
114        assert b.getLowerLeft() == lower_left, "boxFromPoints failed"
115        assert b.__str__() == "'(%s,%s)'" % (upper_right.__repr__(),
116                                             lower_left.__repr__()), "boxFromPoints failed"
117        assert b.__repr__() == "(%s,%s)" % (upper_right.__repr__(),
118                                            lower_left.__repr__()), "boxFromPoints failed"
119       
120
121        b = boxFromSequence(((2.0,2.0),(1.0,1.0)))
122        assert b.getUpperRight() == upper_right, "boxFromSequence failed"
123        assert b.getLowerLeft() == lower_left, "boxFromSequence failed"
124        assert b.__str__() == "'(%s,%s)'" % (upper_right.__repr__(),
125                                             lower_left.__repr__()), "boxFromSequence failed"
126        assert b.__repr__() == "(%s,%s)" % (upper_right.__repr__(),
127                                            lower_left.__repr__()), "boxFromSequence failed"
128
129    def testzzz_CoverageAssertion(self):
130        try:
131            coverage.stop()
132        except:
133            return 1
134       
135        x = coverage.analysis(_Box)
136        assert x[2]==[], "Coverage is less than 100%"
137
138
139def testSuite():
140    return unittest.makeSuite(BoxTest,'test')
141
142if __name__ == "__main__":
143    if os.environ.get('USECOVERAGE') == '1':
144        try:
145            import coverage
146            coverage.erase()
147            coverage.start()
148            COVERAGE = 1
149            import _Point
150            from _Point import *
151            import _Box
152            from _Box import *
153           
154        except:
155            print "Error setting up coverage checking"
156            COVERAGE = 0
157    else:
158        COVERAGE = 0
159
160    if os.environ.get('USEPYCHECK') == '1':
161        try:
162            import pychecker.checker
163        except:
164            print "Pychecker not installed on this machine"
165
166
167    unittest.TextTestRunner().run(testSuite())
168
169    if COVERAGE:
170        coverage.stop()
171        x = coverage.analysis(_Box)
172        print "\n"
173        coverage.report(_Box)
Note: See TracBrowser for help on using the repository browser.