/[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 333 by bh, Fri Sep 20 15:47:07 2002 UTC revision 698 by jonathan, Wed Apr 16 16:40:18 2003 UTC
# Line 18  import unittest Line 18  import unittest
18  import support  import support
19  support.initthuban()  support.initthuban()
20    
21  from Thuban.Model.proj import Projection  from Thuban.Model.proj import Projection, ProjFile
22    
23    import Thuban.Model.resource as resource
24    
25    from test_save import sax_eventlist
26    
27    
28  class TestProjection(unittest.TestCase, support.FloatComparisonMixin):  class TestProjection(unittest.TestCase, support.FloatComparisonMixin):
# Line 46  class TestProjection(unittest.TestCase, Line 50  class TestProjection(unittest.TestCase,
50    
51    
52    
53    sample_projfile = '''\
54    <?xml version="1.0" encoding="UTF-8"?>
55    <!DOCTYPE projfile SYSTEM "thuban.dtd">
56    <projectionlist>
57        <projection name="Transverse Mercartor">
58            <parameter value="proj=tmerc"/>
59            <parameter value="ellps=clrk66"/>
60            <parameter value="lat_0=90w"/>
61            <parameter value="lon_0=90w"/>
62            <parameter value="k=1"/>
63        </projection>
64        <projection name="Transverse Mercartor">
65            <parameter value="proj=tmerc"/>
66            <parameter value="ellps=clrk66"/>
67            <parameter value="lat_0=30w"/>
68            <parameter value="lon_0=30w"/>
69            <parameter value="k=1"/>
70        </projection>
71        <projection name="Universal Transverse Mercartor">
72            <parameter value="proj=utm"/>
73            <parameter value="ellps=clrk66"/>
74            <parameter value="zone=1"/>
75        </projection>
76    </projectionlist>
77    '''
78    
79    sample_projfile_data = [("Transverse Mercartor", ["proj=tmerc",
80                                                      "ellps=clrk66",
81                                                      "lat_0=90w",
82                                                      "lon_0=90w",
83                                                      "k=1"]),
84                            ("Transverse Mercartor", ["proj=tmerc",
85                                                      "ellps=clrk66",
86                                                      "lat_0=30w",
87                                                      "lon_0=30w",
88                                                      "k=1"]),
89                            ("Universal Transverse Mercartor", ["proj=utm",
90                                                                "ellps=clrk66",
91                                                                "zone=1"])]
92    
93    sample_projfile2 = '''\
94    <?xml version="1.0" encoding="UTF-8"?>
95    <!DOCTYPE projfile SYSTEM "thuban.dtd">
96    <projectionlist>
97    </projectionlist>
98    '''
99    
100    sample_projfile_data2 = []
101    
102    class TestProjFile(unittest.TestCase, support.FileTestMixin):
103    
104        """Test cases for reading and writing projection files.
105        """
106    
107        def compare_xml(self, xml1, xml2):
108            self.assertEquals(sax_eventlist(xml1), sax_eventlist(xml2))
109    
110        def testRead(self):
111            """Test ReadProjFile"""
112    
113            self.doTestRead(sample_projfile_data, sample_projfile)
114            self.doTestRead(sample_projfile_data2, sample_projfile2)
115    
116        def testWrite(self):
117            """Test WriteProjFile"""
118    
119            self.doTestWrite(sample_projfile_data, sample_projfile)
120            self.doTestWrite(sample_projfile_data2, sample_projfile2)
121    
122        def doTestWrite(self, data, expected):
123    
124            filename = self.temp_file_name("projfile.proj")
125    
126            pf = ProjFile(filename)
127            for proj in data:
128                pf.Add(Projection(proj[1], proj[0]))
129    
130            resource.WriteProjFile(pf)
131    
132            file = open(filename)
133            written_contents = file.read()
134            file.close()
135            self.compare_xml(written_contents, expected)
136    
137        def doTestRead(self, data, input):
138    
139            filename = self.temp_file_name("projfile.proj")
140            file = open(filename, "w")
141            file.write(input)
142            file.close()
143    
144            pf = resource.ReadProjFile(filename)
145    
146            eq = self.assertEquals
147    
148            eq(pf.GetFileName(), filename)
149    
150            for proj, d in zip(pf.GetProjections(), data):
151                eq(proj.GetName(), d[0])
152                for param in proj.GetParameters():
153                    self.assert_(param in d[1])
154    
155    
156  if __name__ == "__main__":  if __name__ == "__main__":
157      unittest.main()      unittest.main()

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26