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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1264 - (hide annotations)
Fri Jun 20 14:15:56 2003 UTC (21 years, 8 months ago) by jonathan
Original Path: trunk/thuban/test/test_range.py
File MIME type: text/x-python
File size: 3444 byte(s)
(RangeTest): Inherit from
        support.FloatComparisonMixin now that we don't have
        support.FloatTestCase.

1 jonathan 905 #!/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 jonathan 970 from Thuban.Model.range import Range, _inf
24 jonathan 905
25 jonathan 1264 class RangeTest(support.FloatComparisonMixin):
26 jonathan 905
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 jonathan 970 self.assertEqual(range, Range((']', -_inf, _inf, '[')))
33     self.assertEqual(range, Range((']', '-oo', 'oo', '[')))
34 tkoester 993 range = Range('[0;1]')
35 jonathan 905 self.assertEqual(range, Range('[000;1.0]'))
36 jonathan 970 self.assertEqual(range, Range(('[', '0', 1.0, ']')))
37 jonathan 905 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 jonathan 970 self.assertEqual(range, Range((']', 0, '.99E+02', ']')))
47 jonathan 905
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 jonathan 970 range = Range((']', '0', 99, ']'))
60 jonathan 905 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 jonathan 970 ']0;0]', '[0;0[', ']0;0[',
92     ('[',), ('[', 0), ('[', 0, 1), ('[', 0, ']'),
93     ('', 0, 1, ']'), ('[', 0, 1, '')]:
94 jonathan 905 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