/[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 698 by jonathan, Wed Apr 16 16:40:18 2003 UTC revision 752 by jonathan, Fri Apr 25 14:23:34 2003 UTC
# Line 14  __version__ = "$Revision$" Line 14  __version__ = "$Revision$"
14  # $Id$  # $Id$
15    
16  import unittest  import unittest
17    import os
18    
19  import support  import support
20  support.initthuban()  support.initthuban()
# Line 24  import Thuban.Model.resource as resource Line 25  import Thuban.Model.resource as resource
25    
26  from test_save import sax_eventlist  from test_save import sax_eventlist
27    
28    from xml.sax import SAXParseException
29    
30    
31  class TestProjection(unittest.TestCase, support.FloatComparisonMixin):  class TestProjection(unittest.TestCase, support.FloatComparisonMixin):
32    
# Line 48  class TestProjection(unittest.TestCase, Line 51  class TestProjection(unittest.TestCase,
51                                    3875381.8535437919, 252962.10480170773),                                    3875381.8535437919, 252962.10480170773),
52                                   epsilon = 1e-5)                                   epsilon = 1e-5)
53    
54            self.assertEquals(proj.GetParameter("zone"), "26")
55            self.assertEquals(proj.GetParameter("proj"), "utm")
56            self.assertEquals(proj.GetParameter("ellps"), "clrk66")
57            self.assertEquals(proj.GetParameter("hallo"), "")
58    
59    
60  sample_projfile = '''\  sample_projfile = '''\
# Line 107  class TestProjFile(unittest.TestCase, su Line 114  class TestProjFile(unittest.TestCase, su
114      def compare_xml(self, xml1, xml2):      def compare_xml(self, xml1, xml2):
115          self.assertEquals(sax_eventlist(xml1), sax_eventlist(xml2))          self.assertEquals(sax_eventlist(xml1), sax_eventlist(xml2))
116    
117        def test(self):
118            """Test ProjFile"""
119    
120            proj0 = Projection(["proj=tmerc", "ellps=clrk66"])
121            proj1 = Projection(["proj=utm", "ellps=clrk66"])
122            proj2 = Projection(["proj=lcc", "ellps=clrk66"])
123    
124            eq = self.assertEquals
125    
126            #
127            # __init__()
128            # GetFilename()
129            # SetFilename()
130            #
131            for name in ["", "hello_world"]:
132                projFile = ProjFile(name)
133                eq(projFile.GetFilename(), name)
134    
135                projFile.SetFilename("XXX")
136                projFile.SetFilename(name)
137                eq(projFile.GetFilename(), name)
138    
139            # initial number of projections should be 0
140            eq(len(projFile.GetProjections()), 0)
141    
142            #
143            # Add()
144            # Remove()
145            #
146            projFile.Add(proj0)
147            eq(len(projFile.GetProjections()), 1)
148            projFile.Remove(proj0)
149            eq(len(projFile.GetProjections()), 0)
150    
151            # try to remove something that doesn't exist
152            self.assertRaises(ValueError, projFile.Remove, proj0)
153    
154            projFile.Add(proj0)
155            projFile.Add(proj1)
156            projFile.Add(proj2)
157            eq(len(projFile.GetProjections()), 3)
158    
159            # GetProjections() -- tests order
160            projs = projFile.GetProjections()
161            eq(projs[0], proj0)
162            eq(projs[1], proj1)
163            eq(projs[2], proj2)
164    
165            #
166            # SetAllParameters()
167            # SetName()
168            # SetProjection()
169            #
170            params = ["proj=utm", "ellps=clrk66", "zone=13"]
171            proj0.SetAllParameters(params)
172            eq(proj0.GetAllParameters(), params)
173            
174            proj2.SetName("something")
175            proj0.SetProjection(proj2)
176            eq(proj0.GetName(), "something")
177            eq(proj0.GetAllParameters(), proj2.GetAllParameters())
178    
179      def testRead(self):      def testRead(self):
180          """Test ReadProjFile"""          """Test ReadProjFile"""
181    
182          self.doTestRead(sample_projfile_data, sample_projfile)          self.doTestRead(sample_projfile_data, sample_projfile)
183          self.doTestRead(sample_projfile_data2, sample_projfile2)          self.doTestRead(sample_projfile_data2, sample_projfile2)
184    
185            #
186            # file doesn't exist
187            #
188            self.assertRaises(IOError,
189                resource.ReadProjFile, self.temp_file_name("nonexistent.proj"))
190    
191            #
192            # file isn't readable
193            #
194            filename = self.temp_file_name("projfile.proj")
195            file = open(filename, "w")
196            file.close()
197            os.chmod(filename, 0200) # write-only
198            self.assertRaises(IOError, resource.ReadProjFile, filename)
199            os.chmod(filename, 0600) # read/write so we reuse the file
200    
201            #
202            # file has invalid XML (or none at all)
203            #
204            filename = self.temp_file_name("projfile.proj")
205            file = open(filename, "w")
206            file.close()
207    
208            self.assertRaises(SAXParseException, resource.ReadProjFile, filename)
209    
210      def testWrite(self):      def testWrite(self):
211          """Test WriteProjFile"""          """Test WriteProjFile"""
212    
# Line 145  class TestProjFile(unittest.TestCase, su Line 239  class TestProjFile(unittest.TestCase, su
239    
240          eq = self.assertEquals          eq = self.assertEquals
241    
242          eq(pf.GetFileName(), filename)          eq(pf.GetFilename(), filename)
243    
244          for proj, d in zip(pf.GetProjections(), data):          for proj, d in zip(pf.GetProjections(), data):
245              eq(proj.GetName(), d[0])              eq(proj.GetName(), d[0])
246              for param in proj.GetParameters():              for param in proj.GetAllParameters():
247                  self.assert_(param in d[1])                  self.assert_(param in d[1])
248    
249    

Legend:
Removed from v.698  
changed lines
  Added in v.752

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26