/[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 993 - (show annotations)
Thu May 22 16:54:04 2003 UTC (21 years, 9 months ago) by tkoester
Original Path: trunk/thuban/test/test_range.py
File MIME type: text/x-python
File size: 3437 byte(s)
* Thuban/Model/range.py, test/test_range.py: Brought over new Range
from SciParam that now really is immutable.

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, _inf
24
25 class RangeTest(support.FloatTestCase):
26
27 def test_equal(self):
28 """test if different ways to create a range yield equal ranges"""
29 range = Range()
30 self.assertEqual(range, Range(''))
31 self.assertEqual(range, Range(']-oo;oo['))
32 self.assertEqual(range, Range((']', -_inf, _inf, '[')))
33 self.assertEqual(range, Range((']', '-oo', 'oo', '[')))
34 range = Range('[0;1]')
35 self.assertEqual(range, Range('[000;1.0]'))
36 self.assertEqual(range, Range(('[', '0', 1.0, ']')))
37 range2 = range
38 self.assertEqual(range, range2)
39 range3 = Range(range)
40 self.assertEqual(range3, range2)
41 range = Range(']0;99]')
42 self.assertEqual(range, Range(']0;99E+00]'))
43 self.assertEqual(range, Range(']0;9.9E+01]'))
44 self.assertEqual(range, Range(']0;990E-01]'))
45 self.assertEqual(range, Range(']0;.99E+02]'))
46 self.assertEqual(range, Range((']', 0, '.99E+02', ']')))
47
48 def test_different(self):
49 """test if different ranges are different"""
50 range = Range('[-1;1]')
51 self.failIfEqual(range, Range(']-1;1]'))
52 self.failIfEqual(range, Range('[-1;1['))
53 self.failIfEqual(range, Range(']-1;1['))
54 self.failIfEqual(range, Range('[0;1]'))
55 self.failIfEqual(range, Range('[-1;0]'))
56
57 def test_contains(self):
58 """test value in range"""
59 range = Range((']', '0', 99, ']'))
60 for value in [-0.1, 0, 99.1]:
61 self.failIf(value in range)
62 for value in [0.1, 9.9, 99]:
63 self.assert_(value in range)
64 range = Range('[-oo;0]')
65 for value in [0.1, float('1e100'), float('1e10000')]:
66 self.failIf(value in range)
67 for value in [0.0, float('-1e100'), float('-1e10000')]:
68 self.assert_(value in range)
69
70 def test_float(self):
71 """test string to float conversion"""
72 range = Range()
73 self.assertFloatEqual(range.float('oo'), _inf)
74 self.assertFloatEqual(range.float('-oo'), -_inf)
75 for value in [-100000000000000000000l, 12345.6789, 0, 0.0, 5.30e20]:
76 self.assertFloatEqual(range.float(str(value)), value)
77
78 def test_short_range(self):
79 """test if range parser handles short ranges"""
80 range = Range('[0;0]')
81 self.failIf(-0.001 in range)
82 self.assert_(0 in range)
83 self.failIf(0.001 in range)
84
85 def test_bad_ranges(self):
86 """test if range parser raises correct exception on bad ranges"""
87 for range in [0, 1.1]:
88 self.assertRaises(TypeError, Range, range)
89 for range in ['x', ']x;9]', ']]0;1]', '[0;1]]', '[0;x]', '0',
90 '[0]', '[;]', '[0;]', '[;0]', '[1;0]',
91 ']0;0]', '[0;0[', ']0;0[',
92 ('[',), ('[', 0), ('[', 0, 1), ('[', 0, ']'),
93 ('', 0, 1, ']'), ('[', 0, 1, '')]:
94 self.assertRaises(ValueError, Range, range)
95
96
97 if __name__ == "__main__":
98 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