Esempio n. 1
0
 def test_bearing_threshold(self):
     myconfig = Config(max_bear_deviation=10.0)
     reference = get_test_linelocation_3()
     decode(reference, self.reader, config=myconfig)
     too_strict_config = Config(max_bear_deviation=0.0)
     with self.assertRaises(LRDecodeError):
         decode(reference, self.reader, config=too_strict_config)
Esempio n. 2
0
 def test_observer_decode_poi(self):
     "Add a simple observer for decoding a valid POI with access point location"
     reference = get_test_poi()
     observer = SimpleObserver()
     decode(reference, self.reader, observer=observer)
     self.assertTrue(observer.candidates)
     self.assertListEqual(
         [route.success for route in observer.attempted_routes], [True])
Esempio n. 3
0
 def test_observer_decode_3_lrps(self):
     "Add a simple observer for decoding a line location of 3 lrps "
     observer = SimpleObserver()
     reference = get_test_linelocation_1()
     decode(reference, self.reader, observer=observer)
     self.assertTrue(observer.candidates)
     self.assertListEqual(
         [route.success for route in observer.attempted_routes],
         [True, True])
Esempio n. 4
0
 def test_decode_pointalongline(self):
     "Test a valid point along line location"
     # Get a list of 2 LRPs
     reference = get_test_pointalongline()
     pal: PointAlongLine = decode(reference, self.reader)
     coords = pal.coordinates()
     self.assertAlmostEqual(coords.lon, 13.4153, delta=0.0001)
     self.assertAlmostEqual(coords.lat, 52.5270, delta=0.0001)
Esempio n. 5
0
 def test_decode_poi(self):
     "Test decoding a valid POI with access point location"
     reference = get_test_poi()
     poi: PoiWithAccessPoint = decode(reference, self.reader)
     coords = poi.access_point_coordinates()
     self.assertAlmostEqual(coords.lon, 13.4153, delta=0.0001)
     self.assertAlmostEqual(coords.lat, 52.5270, delta=0.0001)
     self.assertEqual(poi.poi, Coordinates(13.414, 52.526))
Esempio n. 6
0
 def test_decode_midline(self):
     reference = get_test_linelocation_3()
     line_location = decode(reference, self.reader)
     coords = line_location.coordinates()
     self.assertEqual(len(coords), 2)
     for ((lon1, lat1), (lon2, lat2)) in zip(coords, [(13.411, 52.525),
                                                      (13.413, 52.525)]):
         self.assertAlmostEqual(lon1, lon2)
         self.assertAlmostEqual(lat1, lat2)
Esempio n. 7
0
 def test_backtracking(self):
     myconfig = Config(search_radius=5, max_dnp_deviation=0.02)
     reference = get_test_linelocation_4()
     observer = SimpleObserver()
     location = decode(reference,
                       self.reader,
                       observer=observer,
                       config=myconfig)
     lines = [l.line_id for l in location.lines]
     self.assertListEqual([20], lines)
     self.assertGreater(len(observer.failed_matches), 0)
Esempio n. 8
0
 def test_decode_offsets(self):
     "Decode a line location with offsets"
     reference = get_test_linelocation_1()
     reference = reference._replace(poffs=0.25)
     reference = reference._replace(noffs=0.75)
     path = decode(reference, self.reader)
     self.assertTrue(isinstance(path, LineLocation))
     path = path.coordinates()
     self.assertEqual(len(path), 4)
     self.assertAlmostEqual(path[0].lon, 13.4126, delta=0.001)
     self.assertAlmostEqual(path[0].lat, 52.525, delta=0.001)
     self.assertAlmostEqual(path[1].lon, 13.414, delta=0.001)
     self.assertAlmostEqual(path[1].lat, 52.525, delta=0.001)
Esempio n. 9
0
 def test_decode_3_lrps(self):
     "Decode a line location of 3 LRPs"
     reference = get_test_linelocation_1()
     location = decode(reference, self.reader)
     self.assertTrue(isinstance(location, LineLocation))
     lines = [l.line_id for l in location.lines]
     self.assertListEqual([1, 3, 4], lines)
     for (a, b) in zip(location.coordinates(), [
             Coordinates(13.41, 52.525),
             Coordinates(13.414, 52.525),
             Coordinates(13.4145, 52.529),
             Coordinates(13.416, 52.525)
     ]):
         self.assertAlmostEqual(a.lon, b.lon, delta=0.00001)
         self.assertAlmostEqual(a.lat, b.lat, delta=0.00001)
Esempio n. 10
0
 def test_decode_coord(self):
     coord = Coordinates(13.0, 51.0)
     reference = GeoCoordinateLocationReference(coord)
     location = decode(reference, self.reader)
     self.assertAlmostEqual(coord.lon, location.lon)
     self.assertAlmostEqual(coord.lat, location.lat)
Esempio n. 11
0
 def test_decode_invalid_poi(self):
     "Test if decoding an invalid POI with access point location raises an error"
     reference = get_test_poi()
     reference = reference._replace(poffs=1500)
     with self.assertRaises(LRDecodeError):
         decode(reference, self.reader)
Esempio n. 12
0
 def test_decode_pointalong_raises(self):
     "Test an invalid point along line location with too high offset"
     # Get a list of 2 LRPs
     reference = get_test_invalid_pointalongline()
     with self.assertRaises(LRDecodeError):
         decode(reference, self.reader)
Esempio n. 13
0
 def test_inapt_reference_type(self):
     with self.assertRaises(LRDecodeError):
         decode("Hello", self.reader)
Esempio n. 14
0
 def test_decode_nopath(self):
     "Decode a line location where no short-enough path exists"
     reference = get_test_linelocation_2()
     with self.assertRaises(LRDecodeError):
         decode(reference, self.reader)