Exemplo n.º 1
0
    def test_two_edge_path(self):
        first_start = data_factory.right_angle_start
        first_middle = data_factory.right_angle_middle
        first_end = data_factory.right_angle_end
        first_right_angled_road = data_factory.create_part(
            first_start, first_middle, first_end)

        second_start = first_end
        second_middle = Point('%.1f' % (first_end.latitude + 0.1),
                              first_end.longitude)
        second_end = Point('%.1f' % (first_end.latitude + 0.1),
                           '%.1f' % (first_end.longitude + 0.1))
        second_right_angled_road = data_factory.create_part(
            second_start, second_middle, second_end)

        shapefile = data_factory.create_shapefile([first_right_angled_road] +
                                                  [second_right_angled_road])

        networkx = convert._to_networkx_graph(shapefile)
        G = convert.load_graph_from_shapefile_records(networkx)

        actual_distance = distance.using_route(G, first_start, second_end)

        self.assertTrue(
            abs(actual_distance -
                (data_factory.right_angle_distance * 2)) < 1 * ureg.metre)
Exemplo n.º 2
0
    def test_unpickle_graph(self):
        G = nx.read_gpickle("/tmp/columbia.roads.pickle")

        expected_distance = 0.17716759526992643 * ureg.kilometres
        start = Point(-75.490017, +10.478256)
        end = Point(-75.488535, +10.480564)
        actual_distance = distance.using_route(G, start, end)
        self.assertEqual(actual_distance, expected_distance)
Exemplo n.º 3
0
    def test_there_and_back(self):
        right_angled_road = data_factory.create_part(
            data_factory.right_angle_start, data_factory.right_angle_middle,
            data_factory.right_angle_end)
        shapefile = data_factory.create_shapefile([right_angled_road])

        networkx = convert._to_networkx_graph(shapefile)
        G = convert.load_graph_from_shapefile_records(networkx)

        outward_distance = distance.using_route(G,
                                                data_factory.right_angle_start,
                                                data_factory.right_angle_end)
        self.assertEqual(outward_distance, data_factory.right_angle_distance)

        inward_distance = distance.using_route(G, data_factory.right_angle_end,
                                               data_factory.right_angle_start)
        self.assertEqual(inward_distance, data_factory.right_angle_distance)
Exemplo n.º 4
0
    def test_simple_triangle(self):
        right_angled_road = data_factory.create_part(
            data_factory.right_angle_start, data_factory.right_angle_middle,
            data_factory.right_angle_end)
        shapefile = data_factory.create_shapefile([right_angled_road])

        networkx = convert._to_networkx_graph(shapefile)
        G = convert.load_graph_from_shapefile_records(networkx)
        actual_distance = distance.using_route(G,
                                               data_factory.right_angle_start,
                                               data_factory.right_angle_end)

        self.assertEqual(actual_distance, data_factory.right_angle_distance)
Exemplo n.º 5
0
    def test_two_path_options(self):
        start = data_factory.right_angle_start
        end = data_factory.right_angle_end
        expected_distance = distance.using_latitude_and_longitude(start, end)

        roads = self.create_three_edge_short_road(
            start, end) + self.create_two_edge_long_road(start, end)
        shapefile = data_factory.create_shapefile(roads)

        networkx = convert._to_networkx_graph(shapefile)
        G = convert.load_graph_from_shapefile_records(networkx)
        actual_distance = distance.using_route(G, start, end)

        self.assertTrue(
            abs(actual_distance - expected_distance) < 1 * ureg.metre)
Exemplo n.º 6
0
 def test_zero_distance(self):
     actual_distance = distance.using_route([],
                                            data_factory.right_angle_start,
                                            data_factory.right_angle_start)
     self.assertEqual(actual_distance, 0 * ureg.kilometres)