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

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI02-CSML/trunk/services/3rdParty/GeoTypes-0.6.0/tests/Circle_Test.py@2194
Revision 2194, 3.7 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 _Circle
17    from _Circle import *
18
19class CircleTest(unittest.TestCase):   
20    def testEqualities(self):
21        p = Circle()
22        q = Circle()
23        assert p != None
24        assert None != p
25        assert p != 0
26        assert p != {}
27        assert p != []
28        assert p == q
29       
30    def testCircle(self):
31        """
32        Check that the basic Circle class works
33        """
34
35        centre = Point("(1.0,1.0)")
36        radius = 5
37
38        c = Circle()
39        c.setCentre(centre)
40        c.setRadius(radius)
41
42        assert c.getCentre() == centre
43        assert c.getRadius() == radius
44        assert c.__str__() == "'<%s,%f>'" % (centre.__repr__(),
45                                               radius)
46        assert c.__repr__() == "(%s,%f)" % (centre.__repr__(),
47                                               radius)
48
49        c = Circle("<(1.0,1.0),5)")
50        assert c.getCentre() == centre
51        assert c.getRadius() == radius
52        assert c.__str__() == "'<%s,%f>'" % (centre.__repr__(),
53                                                radius)
54       
55        c1 = Circle("<(1.0,1.0),5>")
56        c2 = Circle("<(1.0,1.0),5>")
57
58        assert c1 == c2
59
60        c1 = Circle("<(1.0,1.0),5>")
61        c2 = Circle("<(1.0,2.0),5>")
62
63        assert c1 != c2
64
65        c1 = Circle("<(1.0,1.0),5>")
66        c2 = Circle("<(1.0,1.0),6>")
67
68        assert c1 != c2
69
70       
71
72    def testFactories(self):
73
74        centre = Point("(1.0,1.0)")
75        radius = 5
76
77       
78        c = circleFromCentreAndRadius(centre,radius)
79        assert c.getCentre() == centre
80        assert c.getRadius() == radius
81        assert c.__str__() == "'<%s,%f>'" % (centre.__repr__(),
82                                               radius)
83        assert c.__repr__() == "(%s,%f)" % (centre.__repr__(),
84                                               radius)
85
86
87        c = circelFromSequence(((1.0,1.0),5))
88        assert c.getCentre() == centre
89        assert c.getRadius() == radius
90        assert c.__str__() == "'<%s,%f>'" % (centre.__repr__(),
91                                               radius)
92        assert c.__repr__() == "(%s,%f)" % (centre.__repr__(),
93                                               radius)
94
95    def testzzz_CoverageAssertion(self):
96        try:
97            coverage.stop()
98        except:
99            return 1
100       
101        x = coverage.analysis(_Circle)
102        assert x[2]==[], "Coverage is less than 100%"
103       
104def testSuite():
105    return unittest.makeSuite(CircleTest,'test')
106
107if __name__ == "__main__":
108    if os.environ.get('USECOVERAGE') == '1':
109        try:
110            import coverage
111            coverage.erase()
112            coverage.start()
113            COVERAGE = 1
114            import _Point
115            from _Point import *
116            import _Circle
117            from _Circle import *
118
119        except:
120            print "Error setting up coverage checking"
121            COVERAGE = 0
122    else:
123        COVERAGE = 0
124
125    if os.environ.get('USEPYCHECK') == '1':
126        try:
127            import pychecker.checker
128        except:
129            print "Pychecker not installed on this machine"
130
131
132    unittest.TextTestRunner().run(testSuite())
133
134    if COVERAGE:
135        coverage.stop()
136        x = coverage.analysis(_Circle)
137        print "\n"
138        coverage.report(_Circle)
Note: See TracBrowser for help on using the repository browser.