source: subversion/applications/utils/where_are_they/test_mini_osm.py @ 29710

Last change on this file since 29710 was 2189, checked in by nickburch, 13 years ago

Add "where are they" stuff (http://wiki.openstreetmap.org/index.php/Where_Are_They) to svn

  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 2.8 KB
Line 
1#!/usr/bin/python
2# Tests for mini osm (mini_osm.py)
3#
4# Nick Burch - 30/07/2006
5
6import unittest
7from mini_osm import mini_osm_pgsql, mini_osm
8
9class TestMiniOSM(unittest.TestCase):
10        def testNew(self):
11                """Test new"""
12#               miniosm = mini_osm("pgsql")
13        def testNewPG(self):
14                """Test new"""
15                miniosm = mini_osm_pgsql()
16        def testNewRand(self):
17                """Test new"""
18                try:
19                        miniosm = mini_osm("madeup")
20                        self.fail("Didn't break")
21                except:
22                        pass
23
24        def testConnect(self):
25                """Test connecting"""
26#               miniosm = mini_osm("pgsql")
27#               miniosm.connect()
28        def testConnectPG(self):
29                """Test connecting"""
30                miniosm = mini_osm_pgsql()
31                miniosm.connect()
32
33        def testGetNodesWithTagNameAndTypeSQL(self):
34                """Test getting nodes by name + other tag"""
35                miniosm = mini_osm_pgsql()
36                miniosm.connect()
37
38                exp_i = {'lat': 51.728700000000003, 'id': 7211096, 'long': -1.2380899999999999, 'tags': [('place', 'village'), ('name', 'Iffley')]}
39                exp_b = {'lat': 51.381300000000003, 'id': 1947201, 'long': -2.3593199999999999, 'tags': [('place', 'city'), ('name', 'Bath')]}
40
41                # Iffley is a village
42                iffley = miniosm.getNodesWithTagNameAndType("Iffley","place",["village","town"])
43                self.assertEquals(len(iffley.keys()), 1)
44                self.assertEquals(iffley[iffley.keys()[0]], exp_i)
45
46                # Iffley isn't a town or a city
47                iffley = miniosm.getNodesWithTagNameAndType("Iffley","place",["city","town"])
48                self.assertEquals(len(iffley.keys()), 0)
49
50                # Bath is a city
51                bath = miniosm.getNodesWithTagNameAndType("Bath","place",["city","town"])
52                self.assertEquals(len(bath.keys()), 1)
53                self.assertEquals(bath[bath.keys()[0]], exp_b)
54
55        def testNodesInArea(self):
56                """Test nodes in the area"""
57                miniosm = mini_osm_pgsql()
58                miniosm.connect()
59                nodes = miniosm.getNodesInArea(51.716243333, -1.238533333, 100)
60
61                exp_a = {'lat': 51.715600000000002, 'id': 583488, 'long': -1.23712, 'tags': []}
62                exp_b = {'lat': 51.716799999999999, 'id': 583485, 'long': -1.23793, 'tags': []}
63                exp_c = {'lat': 51.716299999999997, 'id': 583486, 'long': -1.23733, 'tags': []}
64                self.assertEquals(len(nodes.keys()), 3)
65                self.assertEquals(nodes[nodes.keys()[0]], exp_a)
66                self.assertEquals(nodes[nodes.keys()[1]], exp_b)
67                self.assertEquals(nodes[nodes.keys()[2]], exp_c)
68
69        def testNodesInAreaWithTag(self):
70                """Test nodes in the area with tags"""
71                miniosm = mini_osm_pgsql()
72                miniosm.connect()
73
74                nodes = miniosm.getNodesInAreaWithTag(51.716243333, -1.238533333, 1750, "place")
75                exp = [ 
76                                [('place', 'village'), ('name', 'Iffley')],
77                                [('place', 'village'), ('name', 'Rose Hill')]
78                ]
79                self.assertEquals(nodes[nodes.keys()[0]]["tags"], exp[0])
80                self.assertEquals(nodes[nodes.keys()[1]]["tags"], exp[1])
81
82                nodes = miniosm.getNodesInAreaWithTag(51.716243333, -1.238533333, 1750, "amenity","petrol_station")
83                self.assertEquals(len(nodes.keys()), 1)
84
85
86if __name__ == '__main__':
87    unittest.main()
Note: See TracBrowser for help on using the repository browser.