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

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

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

revision 684 by jonathan, Tue Apr 15 21:55:12 2003 UTC revision 774 by jonathan, Tue Apr 29 14:34:45 2003 UTC
# Line 1  Line 1 
1  # Copyright (c) 2002 by Intevation GmbH  # Copyright (c) 2002, 2003 by Intevation GmbH
2  # Authors:  # Authors:
3  # Bernhard Herzog <[email protected]>  # Bernhard Herzog <[email protected]>
4  #  #
# Line 60  contents_single_map = '''\ Line 60  contents_single_map = '''\
60  </session>  </session>
61  '''  '''
62    
63    contents_classified_map_v0_2 = '''\
64    <?xml version="1.0" encoding="UTF-8"?>
65    <!DOCTYPE session SYSTEM "thuban.dtd">
66    <session title="single map&amp;layer">
67            <map title="Test Map">
68                    <projection>
69                            <parameter value="zone=26"/>
70                            <parameter value="proj=utm"/>
71                            <parameter value="ellps=clrk66"/>
72                    </projection>
73                    <layer title="My Layer" stroke_width="1" fill="None"
74                        filename="../../Data/iceland/political.shp"
75                        stroke="#000000">
76                <classification field="POPYREG" field_type="string">
77                    <clnull>
78                        <cldata stroke="#000000" stroke_width="1" fill="None"/>
79                    </clnull>
80                    <clpoint value="1">
81                        <cldata stroke="#000000" stroke_width="2" fill="None"/>
82                    </clpoint>
83                    <clpoint value="1">
84                        <cldata stroke="#000000" stroke_width="10" fill="None"/>
85                    </clpoint>
86                </classification>
87            </layer>
88                    <layer title="My Layer 2" stroke_width="1" fill="None"
89                        filename="../../Data/iceland/political.shp"
90                        stroke="#000000">
91                <classification field="AREA" field_type="double">
92                    <clnull>
93                        <cldata stroke="#000000" stroke_width="2" fill="None"/>
94                    </clnull>
95                    <clrange min="0" max="1">
96                        <cldata stroke="#111111" stroke_width="1" fill="None"/>
97                    </clrange>
98                    <clpoint value=".5">
99                        <cldata stroke="#000000" stroke_width="1" fill="#111111"/>
100                    </clpoint>
101                    <clrange min="-1" max="0">
102                        <cldata stroke="#000000" stroke_width="1" fill="None"/>
103                    </clrange>
104                    <clpoint value="-.5">
105                        <cldata stroke="#000000" stroke_width="1" fill="None"/>
106                    </clpoint>
107                </classification>
108            </layer>
109            </map>
110    </session>
111    '''
112    
113    contents_test_labels = '''\
114    <?xml version="1.0" encoding="UTF-8"?>
115    <!DOCTYPE session SYSTEM "thuban.dtd">
116    <session title="single map&amp;layer">
117            <map title="Test Map">
118                    <projection>
119                            <parameter value="zone=26"/>
120                            <parameter value="proj=utm"/>
121                            <parameter value="ellps=clrk66"/>
122                    </projection>
123                    <layer title="My Layer" stroke_width="1" fill="None"
124                        filename="../../Data/iceland/political.shp"
125                        stroke="#000000">
126                <classification field="POPYREG" field_type="string">
127                    <clnull label="hallo">
128                        <cldata stroke="#000000" stroke_width="1" fill="None"/>
129                    </clnull>
130                    <clpoint label="welt" value="1">
131                        <cldata stroke="#000000" stroke_width="2" fill="None"/>
132                    </clpoint>
133                </classification>
134            </layer>
135        </map>
136    </session>
137    '''
138    
139    contents_test_layer_projection = '''\
140    <?xml version="1.0" encoding="UTF-8"?>
141    <!DOCTYPE session SYSTEM "thuban.dtd">
142    <session title="single map&amp;layer">
143            <map title="Test Map">
144                    <projection>
145                            <parameter value="zone=26"/>
146                            <parameter value="proj=utm"/>
147                            <parameter value="ellps=clrk66"/>
148                    </projection>
149                    <layer title="My Layer" stroke_width="1" fill="None"
150                        filename="../../Data/iceland/political.shp"
151                        stroke="#000000">
152                        <projection name="hello">
153                            <parameter value="zone=13"/>
154                            <parameter value="proj=tmerc"/>
155                            <parameter value="ellps=clrk66"/>
156                        </projection>
157                <classification field="POPYREG" field_type="string">
158                    <clnull label="hallo">
159                        <cldata stroke="#000000" stroke_width="1" fill="None"/>
160                    </clnull>
161                    <clpoint label="welt" value="1">
162                        <cldata stroke="#000000" stroke_width="2" fill="None"/>
163                    </clpoint>
164                </classification>
165            </layer>
166                    <layer title="My Layer" stroke_width="1" fill="None"
167                        filename="../../Data/iceland/political.shp"
168                        stroke="#000000">
169                        <projection>
170                            <parameter value="proj=lcc"/>
171                            <parameter value="ellps=clrk66"/>
172                        </projection>
173            </layer>
174        </map>
175    </session>
176    '''
177    
178    contents_test_visible = '''\
179    <?xml version="1.0" encoding="UTF-8"?>
180    <!DOCTYPE session SYSTEM "thuban.dtd">
181    <session title="single map&amp;layer">
182            <map title="Test Map">
183                    <projection>
184                            <parameter value="zone=26"/>
185                            <parameter value="proj=utm"/>
186                            <parameter value="ellps=clrk66"/>
187                    </projection>
188                    <layer title="My Layer" stroke_width="1" fill="None"
189                        filename="../../Data/iceland/political.shp"
190                        stroke="#000000" visible="false">
191            </layer>
192        </map>
193    </session>
194    '''
195    
196  class LoadSessionTest(unittest.TestCase, support.FileTestMixin):  class LoadSessionTest(unittest.TestCase, support.FileTestMixin):
197    
# Line 68  class LoadSessionTest(unittest.TestCase, Line 200  class LoadSessionTest(unittest.TestCase,
200          file = open(self.temp_file_name("load_singlelayer.thuban"), "w")          file = open(self.temp_file_name("load_singlelayer.thuban"), "w")
201          file.write(contents_single_map)          file.write(contents_single_map)
202          file.close()          file.close()
203    
204            file = open(self.temp_file_name("load_classified_v0_2.thuban"), "w")
205            file.write(contents_classified_map_v0_2)
206            file.close()
207    
208            file = open(self.temp_file_name("load_labels.thuban"), "w")
209            file.write(contents_test_labels)
210            file.close()
211    
212            file = open(self.temp_file_name("load_layerproj.thuban"), "w")
213            file.write(contents_test_layer_projection)
214            file.close()
215    
216            file = open(self.temp_file_name("load_visible.thuban"), "w")
217            file.write(contents_test_visible)
218            file.close()
219    
220          self.session = None          self.session = None
221    
222      def tearDown(self):      def tearDown(self):
223          if self.session is not None:          if self.session is not None:
224              self.session.Destroy()              self.session.Destroy()
225            self.session = None
226    
227      def testSingleLayer(self):      def testSingleLayer(self):
228          """Load a session with a single map with a single layer"""          """Load a session with a single map with a single layer"""
# Line 105  class LoadSessionTest(unittest.TestCase, Line 255  class LoadSessionTest(unittest.TestCase,
255                                                       "political.shp")))                                                       "political.shp")))
256          eq(layer.GetClassification().GetDefaultFill(), Color.Transparent)          eq(layer.GetClassification().GetDefaultFill(), Color.Transparent)
257          eq(layer.GetClassification().GetDefaultLineColor().hex(), "#000000")          eq(layer.GetClassification().GetDefaultLineColor().hex(), "#000000")
258            eq(layer.Visible(), True)
259    
260          self.session.Destroy()          self.session.Destroy()
261          self.session = None          self.session = None
262    
263        def testLayerVisibility(self):
264            """Test that the visible flag is correctly loaded for a layer."""
265    
266            eq = self.assertEquals
267            session = load_session(self.temp_file_name("load_visible.thuban"))
268            self.session = session
269            maps = session.Maps()
270            eq(len(maps), 1)
271            map = maps[0]
272            layers = map.Layers()
273            eq(len(layers), 1)
274            layer = layers[0]
275    
276            eq(layer.Visible(), False)
277    
278      def testClassification(self):      def testClassification(self):
279          """Load a session with a map and classified layers."""          """Load a session with a map and classified layers."""
280    
281          eq = self.assertEquals          session = load_session(self.temp_file_name("load_classified_v0_2.thuban"))
         session = load_session("../Data/iceland_sample_test.thuban")  
282          self.session = session          self.session = session
283    
284          map = self.session.Maps()[0] # only one map in the sample          map = self.session.Maps()[0] # only one map in the sample
285    
286          layers = map.Layers()          expected = [("My Layer", 2,
         eq(len(layers), 3)  
   
         expected = (("political", 0,  
                         [("default", (), "",  
                             ("#000000", 1, "#c0c0c0"))]),  
                     ("roads-line", 5,  
287                          [("default", (), "",                          [("default", (), "",
288                              ("#000000", 1, "None")),                              ("#000000", 1, "None")),
289                           ("range", (0.001, 0.3996), "short roads",                           ("single", "1", "",
290                              ("#ffffff", 1, "#ffffff")),                              ("#000000", 2, "None")),
291                           ("range", (0.3996, 0.7982), "less short",                           ("single", "1", "",
292                              ("#ccf4cc", 1, "#ccf4cc")),                              ("#000000", 10, "None"))]),
293                           ("range", (0.7982, 1.1968), "bit longer",                       ("My Layer 2", 4,
294                              ("#99ea99", 1, "#99ea99")),                           [("default", (), "",
295                           ("range", (1.1968, 1.5954), "where's the end?",                              ("#000000", 2, "None")),
296                              ("#66e066", 1, "#66e066")),                            ("range", (0, 1), "",
297                           ("range", (1.5954, 1.994), "long roads",                              ("#111111", 1, "None")),
298                              ("#33d633", 1, "#33d633"))]),                            ("single", .5, "",
299                      ("something else", 6,                              ("#000000", 1, "#111111")),
300                          [("default", (), "",                            ("range", (-1, 0), "",
301                              ("#000000", 1, "None")),                              ("#000000", 1, "None")),
302                           ("single", ("BUILDING"),  "",                            ("single", -.5, "",
303                              ("#0000ff", 1, "#0000ff")),                              ("#000000", 1, "None"))])]
                          ("single", ("FARM"), "",  
                             ("#00aaff", 1, "#00aaff")),  
                          ("single", ("HUT"), "",  
                             ("#00ffaa", 1, "#00ffaa")),  
                          ("single", ("LIGHTHOUSE"), "",  
                             ("#00ff00", 1, "#00ff00")),  
                          ("single", ("OTHER/UNKNOWN"), "",  
                             ("#aaff00", 1, "#aaff00")),  
                          ("single", ("RUINS"), "",  
                             ("#ffaa00", 1, "#ffaa00"))]))  
304    
305          eq(len(layers), len(expected))          self.TestLayers(map.Layers(), expected)
306    
307        def TestLayers(self, layers, expected):
308    
309          TITLE = 0          TITLE = 0
310          NUM_GROUPS = 1          NUM_GROUPS = 1
# Line 163  class LoadSessionTest(unittest.TestCase, Line 314  class LoadSessionTest(unittest.TestCase,
314          GROUP_LABEL = 2          GROUP_LABEL = 2
315          GROUP_PROPS = 3          GROUP_PROPS = 3
316    
317            eq = self.assertEquals
318    
319            eq(len(layers), len(expected))
320    
321          for layer, data in zip(layers, expected):          for layer, data in zip(layers, expected):
322              eq(layer.Title(), data[TITLE])              eq(layer.Title(), data[TITLE])
323    
# Line 194  class LoadSessionTest(unittest.TestCase, Line 349  class LoadSessionTest(unittest.TestCase,
349    
350                  i += 1                  i += 1
351    
352        def testLabels(self):
353            """Load a session and test for reading the group labels."""
354    
355            eq = self.assertEquals
356            session = load_session(self.temp_file_name("load_labels.thuban"))
357            self.session = session
358    
359            map = self.session.Maps()[0] # only one map in the sample
360    
361            expected = [("My Layer", 1,
362                            [("default", (), "hallo",
363                                ("#000000", 1, "None")),
364                             ("single", "1", "welt",
365                                ("#000000", 2, "None"))])]
366    
367            self.TestLayers(map.Layers(), expected)
368    
369        def testLayerProjection(self):
370            eq = self.assertEquals
371            neq = self.assertNotEqual
372    
373            session = load_session(self.temp_file_name("load_layerproj.thuban"))
374            self.session = session
375    
376            map = self.session.Maps()[0] # only one map in the sample
377    
378            layers = map.Layers() # two layers in the sample
379    
380            # test layer with a named projection
381            proj = layers[0].GetProjection()
382            neq(proj, None)
383            eq(proj.GetName(), "hello")
384            eq(proj.GetParameter("proj"), "tmerc")
385            eq(proj.GetParameter("zone"), "13")
386            eq(proj.GetParameter("ellps"), "clrk66")
387    
388            # test layer with an unnamed projection
389            proj = layers[1].GetProjection()
390            neq(proj, None)
391            eq(proj.GetName(), "Unknown")
392            eq(proj.GetParameter("proj"), "lcc")
393            eq(proj.GetParameter("ellps"), "clrk66")
394    
395  if __name__ == "__main__":  if __name__ == "__main__":
396      unittest.main()      unittest.main()
397    

Legend:
Removed from v.684  
changed lines
  Added in v.774

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26