/[thuban]/branches/WIP-pyshapelib-bramz/test/test_range.py
ViewVC logotype

Contents of /branches/WIP-pyshapelib-bramz/test/test_range.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 905 - (show annotations)
Wed May 14 11:16:48 2003 UTC (21 years, 9 months ago) by jonathan
Original Path: trunk/thuban/test/test_range.py
File MIME type: text/x-python
File size: 3845 byte(s)
New. Imported from SciParam.

1 #!/usr/bin/env python
2 #
3 # Copyright (C) 2002, 2003 by Intevation GmbH
4 # Authors:
5 # Thomas Koester <[email protected]>
6 #
7 # This program is free software under the GPL (>=v2)
8 # Read the file COPYING coming with the software for details.
9
10 """
11 Unit test for range.py
12 """
13
14 __version__ = "$Revision$"
15 # $Source$
16 # $Id$
17
18 import unittest
19
20 import support
21 support.initthuban()
22
23 from Thuban.Model.range import Range
24 from Thuban.Model.range import _inf
25
26
27 class Importing(unittest.TestCase):
28
29 Range = Range
30
31 def test_import1(self):
32 """import Thuban.Model.range"""
33 import Thuban.Model.range
34 self.assert_(Thuban.Model.range.Range is self.Range)
35
36 def test_import2(self):
37 """import Thuban.Model.range.range"""
38 import Thuban.Model.range
39 self.assert_(Thuban.Model.range.Range is self.Range)
40
41 def test_import3(self):
42 """from Thuban.Model.range import Range"""
43 from Thuban.Model.range import Range
44 self.assert_(Range is self.Range)
45
46 #
47 # SyntaxWarning to import *
48 #
49 #def test_import4(self):
50 #"""from Thuban.Model.range import *"""
51 #from Thuban.Model.range import *
52 #self.assert_(Range is self.Range)
53
54
55 class RangeTest(support.FloatTestCase):
56
57 def test_equal(self):
58 """test if different ways to create a range yield equal ranges"""
59 range = Range()
60 self.assertEqual(range, Range(''))
61 self.assertEqual(range, Range(']-oo;oo['))
62 range.SetRange('[0;1]')
63 self.assertEqual(range, Range('[000;1.0]'))
64 range2 = range
65 self.assertEqual(range, range2)
66 range3 = Range(range)
67 self.assertEqual(range3, range2)
68 range = Range(']0;99]')
69 self.assertEqual(range, Range(']0;99E+00]'))
70 self.assertEqual(range, Range(']0;9.9E+01]'))
71 self.assertEqual(range, Range(']0;990E-01]'))
72 self.assertEqual(range, Range(']0;.99E+02]'))
73
74 def test_different(self):
75 """test if different ranges are different"""
76 range = Range('[-1;1]')
77 self.failIfEqual(range, Range(']-1;1]'))
78 self.failIfEqual(range, Range('[-1;1['))
79 self.failIfEqual(range, Range(']-1;1['))
80 self.failIfEqual(range, Range('[0;1]'))
81 self.failIfEqual(range, Range('[-1;0]'))
82
83 def test_contains(self):
84 """test value in range"""
85 range = Range(']0;99]')
86 for value in [-0.1, 0, 99.1]:
87 self.failIf(value in range)
88 for value in [0.1, 9.9, 99]:
89 self.assert_(value in range)
90 range = Range('[-oo;0]')
91 for value in [0.1, float('1e100'), float('1e10000')]:
92 self.failIf(value in range)
93 for value in [0.0, float('-1e100'), float('-1e10000')]:
94 self.assert_(value in range)
95
96 def test_float(self):
97 """test string to float conversion"""
98 range = Range()
99 self.assertFloatEqual(range.float('oo'), _inf)
100 self.assertFloatEqual(range.float('-oo'), -_inf)
101 for value in [-100000000000000000000l, 12345.6789, 0, 0.0, 5.30e20]:
102 self.assertFloatEqual(range.float(str(value)), value)
103
104 def test_short_range(self):
105 """test if range parser handles short ranges"""
106 range = Range('[0;0]')
107 self.failIf(-0.001 in range)
108 self.assert_(0 in range)
109 self.failIf(0.001 in range)
110
111 def test_bad_ranges(self):
112 """test if range parser raises correct exception on bad ranges"""
113 for range in [0, 1.1]:
114 self.assertRaises(TypeError, Range, range)
115 for range in ['x', ']x;9]', ']]0;1]', '[0;1]]', '[0;x]', '0',
116 '[0]', '[;]', '[0;]', '[;0]', '[1;0]',
117 ']0;0]', '[0;0[', ']0;0[']:
118 self.assertRaises(ValueError, Range, range)
119
120
121 if __name__ == "__main__":
122 unittest.main()

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26