def test_add_routes(self):
        aggregator = RouteAggregator(1, 1, 2)
        rt0 = [PointXyz(5, 0, 0), PointXyz(6, 0, 0)]
        rt1 = [PointXyz(0, 0, 0), PointXyz(1, 0, 0), PointXyz(2, 0, 0)]
        aggregator._RouteAggregator__add_route(rt0,)
        aggregator._RouteAggregator__add_route(rt1)

        values = list(aggregator._RouteAggregator__locator._RouteCandidateInfoLocator__grid._GridMap2d__grid.values())[0]

        self.assertEqual(5, len(values))

        self.assertEqual(rt0[0], values[0].point)
        self.assertEqual(0, values[0].point_id)
        self.assertEqual(0, values[0].route_id)

        self.assertEqual(rt0[1], values[1].point)
        self.assertEqual(1, values[1].point_id)
        self.assertEqual(0, values[1].route_id)

        self.assertEqual(rt1[0], values[2].point)
        self.assertEqual(0, values[2].point_id)
        self.assertEqual(1, values[2].route_id)

        self.assertEqual(rt1[1], values[3].point)
        self.assertEqual(1, values[3].point_id)
        self.assertEqual(1, values[3].route_id)

        self.assertEqual(rt1[2], values[4].point)
        self.assertEqual(2, values[4].point_id)
        self.assertEqual(1, values[4].route_id)
 def test_two_joined_to_one_before(self):
     aggregator = RouteAggregator(1, 1, 2)
     aggregator.consume_route([PointXyz(3, 0, 0), PointXyz(4, 0, 0), PointXyz(5, 0, 0)])
     aggregator.consume_route([PointXyz(0, 0, 0), PointXyz(1, 0, 0), PointXyz(2, 0, 0)])
     self.assertEqual(2, len(aggregator.routes))
     aggregator.extend_routes()
     self.assertEqual(1, len(aggregator.routes))
     self.assertEquals([PointXyz(0, 0, 0), PointXyz(1, 0, 0), PointXyz(2, 0, 0), PointXyz(3, 0, 0), PointXyz(4, 0, 0), PointXyz(5, 0, 0)], aggregator.routes[0])
 def test_one_separate_one_extended_beg(self):
     aggregator = RouteAggregator(1, 1, 2)
     aggregator.consume_route([PointXyz(16, 0, 0), PointXyz(17, 0, 0), PointXyz(18, 0, 0)])
     aggregator.consume_route([PointXyz(3, 0, 0), PointXyz(4, 0, 0), PointXyz(5, 0, 0)])
     aggregator.consume_route([PointXyz(0, 0, 0), PointXyz(1, 0, 0), PointXyz(2, 0, 0)])
     self.assertEqual(3, len(aggregator.routes))
     aggregator.extend_routes()
     self.assertEqual(2, len(aggregator.routes))
Exemplo n.º 4
0
def __gps_point_to_xyz_point(gps_point: RouteGpsPoint) -> PointXyz:
    latRad = (gps_point.lat * math.pi) / 180.0
    lonRad = (gps_point.lng * math.pi) / 180.0

    cosLat = math.cos(latRad)

    return PointXyz(__EARTH_RADIUS_METERS * cosLat * math.cos(lonRad),
                    __EARTH_RADIUS_METERS * cosLat * math.sin(lonRad), 0
                    # __EARTH_RADIUS_METERS * math.sin(latRad) + gps_point.alt
                    )
 def test_joins_in_middle_into(self):
     aggregator = RouteAggregator(1, 1, 2)
     aggregator.consume_route([PointXyz(0, 0, 0), PointXyz(1, 0, 0), PointXyz(2, 0, 0), PointXyz(3, 0, 0), PointXyz(4, 0, 0), PointXyz(5, 0, 0)])
     aggregator.consume_route([PointXyz(2.1, -2, 0), PointXyz(2, -1, 0), PointXyz(2.1, 0, 0)])
     self.assertEqual(2, len(aggregator.routes))
     aggregator.extend_routes()
     self.assertEqual(2, len(aggregator.routes))
    def test_get_cloasest_points(self):
        aggregator = RouteAggregator(1, 1, 2)
        rt0 = [PointXyz(-5, 0, 0), PointXyz(5, 0, 0), PointXyz(7, 0, 0)]
        rt1 = [PointXyz(0, 0, 0), PointXyz(1, 0, 0), PointXyz(2, 0, 0)]
        aggregator._RouteAggregator__add_route(rt0)
        aggregator._RouteAggregator__add_route(rt1)

        infos = aggregator._RouteAggregator__get_closest_points(PointXyz(3, 0, 0), 2)

        self.assertEqual(3, len(infos))

        self.assertEqual(PointXyz(5, 0, 0), infos[0].point)
        self.assertEqual(1, infos[0].point_id)
        self.assertEqual(0, infos[0].route_id)

        self.assertEqual(PointXyz(1, 0, 0), infos[1].point)
        self.assertEqual(1, infos[1].point_id)
        self.assertEqual(1, infos[1].route_id)

        self.assertEqual(PointXyz(2, 0, 0), infos[2].point)
        self.assertEqual(2, infos[2].point_id)
        self.assertEqual(1, infos[2].route_id)
    def test_one_route_after_second_no_points_removed(self):
        aggregator = RouteAggregator(1, 1, 2)
        aggregator.consume_route([PointXyz(0, 0, 0), PointXyz(1, 0, 0), PointXyz(2, 0, 0)])
        aggregator.consume_route([PointXyz(3, 0, 0), PointXyz(4, 0, 0), PointXyz(5, 0, 0)])

        self.assertEqual(2, len(aggregator.routes))
        self.assertEqual(3, len(aggregator.routes[0]))
        self.assertEqual(3, len(aggregator.routes[1]))
 def test_add_route_small(self):
     aggregator = RouteAggregator(1, 1)
     aggregator._RouteAggregator__add_route([PointXyz(5, 0, 0)])
     self.assertEqual(0, len(aggregator.routes))
 def test_distant(self):
     aggregator = RouteAggregator(1, 1, 2)
     aggregator.consume_route([PointXyz(0, 0, 0), PointXyz(1, 0, 0), PointXyz(2, 0, 0)])
     aggregator.consume_route([PointXyz(5, 0, 0), PointXyz(6, 0, 0)])
     self.assertEqual(2, len(aggregator.routes))
Exemplo n.º 10
0
 def test_covered(self):
     aggregator = RouteAggregator(1, 1, 2)
     aggregator.consume_route([PointXyz(0, 0, 0), PointXyz(1, 0, 0), PointXyz(2, 0, 0)])
     aggregator.consume_route([PointXyz(0.5, 0, 0), PointXyz(1.5, 0, 0)])
     self.assertEqual(1, len(aggregator.routes))
Exemplo n.º 11
0
 def test_clone(self):
     aggregator = RouteAggregator(1, 1)
     rt = [PointXyz(0, 0, 0), PointXyz(1, 0, 0), PointXyz(2, 0, 0)]
     aggregator.consume_route(rt)
     self.assertNotEqual(rt, aggregator.routes)
Exemplo n.º 12
0
 def test_one_connects_two(self):
     aggregator = RouteAggregator(1, 1, 2)
     aggregator.consume_route([PointXyz(6, 0, 0), PointXyz(7, 0, 0), PointXyz(8, 0, 0)])
     aggregator.consume_route([PointXyz(0, 0, 0), PointXyz(1, 0, 0), PointXyz(2, 0, 0)])
     aggregator.consume_route([PointXyz(3, 0, 0), PointXyz(4, 0, 0), PointXyz(5, 0, 0)])
     self.assertEqual(3, len(aggregator.routes))
     aggregator.extend_routes()
     self.assertEqual(1, len(aggregator.routes))
     self.assertEquals([PointXyz(0, 0, 0), PointXyz(1, 0, 0), PointXyz(2, 0, 0), PointXyz(3, 0, 0), PointXyz(4, 0, 0),
                        PointXyz(5, 0, 0), PointXyz(6, 0, 0), PointXyz(7, 0, 0), PointXyz(8, 0, 0)], aggregator.routes[0])
Exemplo n.º 13
0
 def test_separate_routes(self):
     aggregator = RouteAggregator(1, 1, 2)
     aggregator.consume_route([PointXyz(0, 0, 0), PointXyz(1, 0, 0), PointXyz(2, 0, 0)])
     aggregator.consume_route([PointXyz(10, 0, 0), PointXyz(11, 0, 0), PointXyz(12, 0, 0)])
     aggregator.extend_routes()
     self.assertEqual(2, len(aggregator.routes))
Exemplo n.º 14
0
 def test_distance(self):
     self.assertEqual(10, pointutils.distance(PointXyz(0, 0, 0), PointXyz(10, 0, 0)))
     self.assertEqual(10, pointutils.distance(PointXyz(0, 0, 0), PointXyz(0, 10, 0)))
     self.assertEqual(10, pointutils.distance(PointXyz(0, 0, 0), PointXyz(0, 0, 10)))
     self.assertEqual(math.sqrt(300), pointutils.distance(PointXyz(0, 0, 0), PointXyz(10, 10, 10)))