web/lib/django/contrib/gis/gdal/tests/test_envelope.py
changeset 0 0d40e90630ef
child 29 cc9b7e14412b
equal deleted inserted replaced
-1:000000000000 0:0d40e90630ef
       
     1 import unittest
       
     2 from django.contrib.gis.gdal import Envelope, OGRException
       
     3 
       
     4 class TestPoint(object):
       
     5     def __init__(self, x, y):
       
     6         self.x = x
       
     7         self.y = y
       
     8 
       
     9 class EnvelopeTest(unittest.TestCase):
       
    10 
       
    11     def setUp(self): 
       
    12         self.e = Envelope(0, 0, 5, 5) 
       
    13 
       
    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)) 
       
    27         try: 
       
    28             Envelope(0, 0, 0, 0) 
       
    29         except OGRException: 
       
    30             self.fail("shouldn't raise an exception for min_x == max_x or min_y == max_y")
       
    31 
       
    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))
       
    44 
       
    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)
       
    51 
       
    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) 
       
    58  		 
       
    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) 
       
    65 
       
    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) 
       
    70  		 
       
    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) 
       
    75  		 
       
    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) 
       
    80  		 
       
    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) 
       
    87 
       
    88 def suite():
       
    89     s = unittest.TestSuite()
       
    90     s.addTest(unittest.makeSuite(EnvelopeTest))
       
    91     return s
       
    92 
       
    93 def run(verbosity=2):
       
    94     unittest.TextTestRunner(verbosity=verbosity).run(suite())