2
from django.contrib.gis.gdal import Envelope, OGRException
4
class TestPoint(object):
5
def __init__(self, x, y):
9
class EnvelopeTest(unittest.TestCase):
12
self.e = Envelope(0, 0, 5, 5)
14
def test01_init(self):
15
"Testing Envelope initilization."
16
e1 = Envelope((0, 0, 5, 5))
17
e2 = Envelope(0, 0, 5, 5)
18
e3 = Envelope(0, '0', '5', 5) # Thanks to ww for this
19
e4 = Envelope(e1._envelope)
20
self.assertRaises(OGRException, Envelope, (5, 5, 0, 0))
21
self.assertRaises(OGRException, Envelope, 5, 5, 0, 0)
22
self.assertRaises(OGRException, Envelope, (0, 0, 5, 5, 3))
23
self.assertRaises(OGRException, Envelope, ())
24
self.assertRaises(ValueError, Envelope, 0, 'a', 5, 5)
25
self.assertRaises(TypeError, Envelope, u'foo')
26
self.assertRaises(OGRException, Envelope, (1, 1, 0, 0))
30
self.fail("shouldn't raise an exception for min_x == max_x or min_y == max_y")
32
def test02_properties(self):
33
"Testing Envelope properties."
34
e = Envelope(0, 0, 2, 3)
35
self.assertEqual(0, e.min_x)
36
self.assertEqual(0, e.min_y)
37
self.assertEqual(2, e.max_x)
38
self.assertEqual(3, e.max_y)
39
self.assertEqual((0, 0), e.ll)
40
self.assertEqual((2, 3), e.ur)
41
self.assertEqual((0, 0, 2, 3), e.tuple)
42
self.assertEqual('POLYGON((0.0 0.0,0.0 3.0,2.0 3.0,2.0 0.0,0.0 0.0))', e.wkt)
43
self.assertEqual('(0.0, 0.0, 2.0, 3.0)', str(e))
45
def test03_equivalence(self):
46
"Testing Envelope equivalence."
47
e1 = Envelope(0.523, 0.217, 253.23, 523.69)
48
e2 = Envelope((0.523, 0.217, 253.23, 523.69))
49
self.assertEqual(e1, e2)
50
self.assertEqual((0.523, 0.217, 253.23, 523.69), e1)
52
def test04_expand_to_include_pt_2_params(self):
53
"Testing Envelope expand_to_include -- point as two parameters."
54
self.e.expand_to_include(2, 6)
55
self.assertEqual((0, 0, 5, 6), self.e)
56
self.e.expand_to_include(-1, -1)
57
self.assertEqual((-1, -1, 5, 6), self.e)
59
def test05_expand_to_include_pt_2_tuple(self):
60
"Testing Envelope expand_to_include -- point as a single 2-tuple parameter."
61
self.e.expand_to_include((10, 10))
62
self.assertEqual((0, 0, 10, 10), self.e)
63
self.e.expand_to_include((-10, -10))
64
self.assertEqual((-10, -10, 10, 10), self.e)
66
def test06_expand_to_include_extent_4_params(self):
67
"Testing Envelope expand_to_include -- extent as 4 parameters."
68
self.e.expand_to_include(-1, 1, 3, 7)
69
self.assertEqual((-1, 0, 5, 7), self.e)
71
def test06_expand_to_include_extent_4_tuple(self):
72
"Testing Envelope expand_to_include -- extent as a single 4-tuple parameter."
73
self.e.expand_to_include((-1, 1, 3, 7))
74
self.assertEqual((-1, 0, 5, 7), self.e)
76
def test07_expand_to_include_envelope(self):
77
"Testing Envelope expand_to_include with Envelope as parameter."
78
self.e.expand_to_include(Envelope(-1, 1, 3, 7))
79
self.assertEqual((-1, 0, 5, 7), self.e)
81
def test08_expand_to_include_point(self):
82
"Testing Envelope expand_to_include with Point as parameter."
83
self.e.expand_to_include(TestPoint(-1, 1))
84
self.assertEqual((-1, 0, 5, 5), self.e)
85
self.e.expand_to_include(TestPoint(10, 10))
86
self.assertEqual((-1, 0, 10, 10), self.e)
89
s = unittest.TestSuite()
90
s.addTest(unittest.makeSuite(EnvelopeTest))
94
unittest.TextTestRunner(verbosity=verbosity).run(suite())