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

Diff of /branches/WIP-pyshapelib-bramz/test/test_proj.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1888 by jan, Thu Oct 30 09:31:56 2003 UTC revision 2696 by bernhard, Sun Sep 17 23:19:21 2006 UTC
# Line 14  __version__ = "$Revision$" Line 14  __version__ = "$Revision$"
14  # $Id$  # $Id$
15    
16  import unittest  import unittest
17    import locale
18  import os  import os
19    
20    import localessupport
21  import xmlsupport  import xmlsupport
22  import support  import support
23  support.initthuban()  support.initthuban()
# Line 55  class TestProjection(unittest.TestCase, Line 57  class TestProjection(unittest.TestCase,
57                                   (3620891.3077618643, 0.0,                                   (3620891.3077618643, 0.0,
58                                    3875381.8535437919, 252962.10480170773),                                    3875381.8535437919, 252962.10480170773),
59                                   epsilon = 1e-5)                                   epsilon = 1e-5)
60            self.assertFloatSeqEqual(proj.InverseBBox((3620891.3077618643, 0.0,
61                                                       3875381.8535437919,
62                                                       252962.10480170773)),
63                                     (-0.018341599754143501, 0.0,
64                                      2.017992992681688, 2.0377390677846736),
65                                     epsilon = 1e-5)
66    
67          # GetName()          # GetName()
68          self.assertEquals(proj.GetName(), _("Unknown"))          self.assertEquals(proj.GetName(), _("Unknown"))
# Line 90  class TestProjection(unittest.TestCase, Line 98  class TestProjection(unittest.TestCase,
98                             "ellps=clrk66"])                             "ellps=clrk66"])
99          self.assertEquals(proj.GetProjectedUnits(), PROJ_UNITS_DEGREES)          self.assertEquals(proj.GetProjectedUnits(), PROJ_UNITS_DEGREES)
100    
101        def test_lc_numeric_robustness(self):
102            """Test if an LC_NUMERIC local with comma as decimal_point will work.
103    
104            Some versions of proj are not robust against this.
105            Starting with Python 2.4 there is a different behaviour when
106            calling C extensions and now they will see changes locales settings
107            which might tickle the bug in proj.
108            """
109            params = ["proj=latlong", "to_meter=0.01745", "ellps=clrk66"]
110    
111            oldlocale = localessupport.setdecimalcommalocale()
112            if oldlocale == None:
113                raise support.SkipTest(
114                        "No locale with comma as decimal_point found.")
115    
116            proj = Projection(params)
117            result1 =  proj.Forward(1,1)
118    
119            locale.setlocale(locale.LC_NUMERIC, "C")
120            proj = Projection(params)
121            result2= proj.Forward(1,1)
122    
123            locale.setlocale(locale.LC_NUMERIC, oldlocale)
124            self.assertFloatSeqEqual(result1, result2, epsilon = 1e-5 )
125    
126      def test_get_projection_units_normal(self):      def test_get_projection_units_normal(self):
127          """Test Projection.GetProjectedUnits() for normal projection"""          """Test Projection.GetProjectedUnits() for normal projection"""
128          proj = Projection(["zone=26", "proj=utm", "ellps=clrk66"])          proj = Projection(["zone=26", "proj=utm", "ellps=clrk66"])
# Line 229  class ProjFileReadTests(ProjFileTest): Line 262  class ProjFileReadTests(ProjFileTest):
262          As currently written this only works on unix-like systems and          As currently written this only works on unix-like systems and
263          not e.g. on MS Windows.          not e.g. on MS Windows.
264          """          """
265            if os.name != "posix":
266                raise support.SkipTest("Test only works on posix systems")
267          filename = self.filename()          filename = self.filename()
268          file = open(filename, "w")          file = open(filename, "w")
269          file.close()          file.close()
# Line 244  class ProjFileReadTests(ProjFileTest): Line 279  class ProjFileReadTests(ProjFileTest):
279          self.assertRaises(SAXParseException, resource.read_proj_file, filename)          self.assertRaises(SAXParseException, resource.read_proj_file, filename)
280    
281      def test_get_system_proj_file(self):      def test_get_system_proj_file(self):
282          """Test resource.get_system_proj_file()          """Test resource.get_system_proj_file(DEFAULT_PROJ_FILE)
283    
284          This is primarily to test whether the system proj file contains          This is primarily to test whether the system proj file contains
285          invalid projection paramers and whether the proj file is not          invalid projection paramers and whether the proj file is not
286          empty          empty
287          """          """
288          projfile, warnings = resource.get_system_proj_file()          projfile, warnings\
289                      = resource.get_system_proj_file(resource.DEFAULT_PROJ_FILE)
290          self.assertEquals(warnings, [])          self.assertEquals(warnings, [])
291          self.assert_(len(projfile.GetProjections()) > 0)          self.assert_(len(projfile.GetProjections()) > 0)
292    
293          # see whether it got cached and we get the same projfile object          # see whether it got cached and we get the same projfile object
294          # when we read the file again          # when we read the file again
295          projfile2, warnings = resource.get_system_proj_file()          projfile2, warnings \
296                       = resource.get_system_proj_file(resource.DEFAULT_PROJ_FILE)
297          self.assert_(projfile is projfile2)          self.assert_(projfile is projfile2)
298    
299    

Legend:
Removed from v.1888  
changed lines
  Added in v.2696

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26