def test_iter_distance(self): # containes 3 points: filepath = Path(BASE_PATH, "fixture_files/garmin_connect_1.gpx") gpxpy_instance = parse_gpx_file(filepath) distances = [] total_points = [] total_distance = 0 for section_distance, points in iter_distances(gpxpy_instance, distance=1): distances.append(section_distance) total_distance += section_distance for point in points: total_points.append((point.latitude, point.longitude)) self.assertEqual( total_points, [ (51.437889290973544, 6.617012657225132), (51.43786800093949, 6.617006119340658), (51.437847297638655, 6.6170057002455), ], ) self.assert_equal_rounded(gpxpy_instance.length_3d(), 4.726553499192461) self.assert_equal_rounded(total_distance, 4.726553499192461) self.assertEqual(distances, [0, 2.413028183109784, 2.313525316082677])
def test_parse_no_heart_rate_gpx(self): filepath = Path(BASE_PATH, "fixture_files/garmin_no_heart_rate.gpx") gpxpy_instance = parse_gpx_file(filepath) print(gpxpy_instance) self.assertEqual( repr(gpxpy_instance), "GPX(tracks=[GPXTrack(name='Foo Bar', segments=[GPXTrackSegment(points=[...])])])" )
def test_parse_noi_track_gpx(self): filepath = Path(BASE_PATH, "fixture_files/no_track_points.gpx") gpxpy_instance = parse_gpx_file(filepath) print(gpxpy_instance) self.assertEqual( repr(gpxpy_instance), "GPX(waypoints=[GPXWaypoint(51.43788, 6.61701, name='Somewhere', description='foobar', symbol='Waypoint')])", )
def test_iter_extension_data(self): gpx_median = GpxMedian( gpxpy_instance=parse_gpx_file(Path(BASE_PATH, "fixture_files/garmin_connect_1.gpx")), distance=1 ) hr_data = tuple(gpx_median.iter_extension_data(key="hr")) pprint(hr_data) self.assertEqual(hr_data, (([120], 120, 120, 120), ([125], 125, 125, 125), ([130], 130, 130, 130))) cad_data = tuple(gpx_median.iter_extension_data(key="cad")) pprint(cad_data) self.assertEqual(cad_data, (([70], 70, 70, 70), ([75], 75, 75, 75), ([80], 80, 80, 80)))
def test_garmin_connect_1_gpx(self): # containes 3 points: filepath = Path(BASE_PATH, "fixture_files/garmin_connect_1.gpx") total_distance = 4.726553499192461 gpxpy_instance = parse_gpx_file(filepath) gpx_median = GpxMedian(gpxpy_instance, distance=1) self.assertEqual(gpx_median.total_distance, total_distance) distances = tuple(gpx_median.iter_section_distance()) self.assertEqual(reduce(operator.add, distances), total_distance) self.assertEqual(distances, (0, 2.413028183109784, 2.313525316082677))
def test_parse_gpx(self): filepath = Path(BASE_PATH, "fixture_files/garmin_connect_1.gpx") gpxpy_instance = parse_gpx_file(filepath) first_point = gpxpy_instance.tracks[0].segments[0].points[0] self.assertEqual(first_point.latitude, 51.43788929097354412078857421875) self.assertEqual(first_point.longitude, 6.617012657225131988525390625) extensions = first_point.extensions self.assertEqual(1, len(extensions)) self.assertEqual(extensions[0].getchildren()[0].text.strip(), "120") # hr self.assertEqual(extensions[0].getchildren()[1].text.strip(), "70") # cad
def test_svg(self): filepath = Path(BASE_PATH, "fixture_files/parliament_buildings.gpx") gpxpy_instance = parse_gpx_file(filepath) svg_string = gpx2svg_string(gpxpy_instance, pretty=True) print("-" * 79) print(svg_string) print("-" * 79) svg_reference = Path(BASE_PATH, "fixture_files/parliament_buildings.svg") with svg_reference.open("r") as f: svg_reference_string = f.read() self.assertEqual(svg_string, svg_reference_string)
def test_svg(self): filepath = Path(BASE_PATH, "fixture_files/parliament_buildings.gpx") gpxpy_instance = parse_gpx_file(filepath) svg_string = gpx2svg_string(gpxpy_instance, pretty=True) print("-" * 79) print(svg_string) print("-" * 79) svg_reference = Path(BASE_PATH, "fixture_files/parliament_buildings.svg") with svg_reference.open("r") as f: svg_reference_string = f.read() # Attributes in <svg ...> tag seems not to be ordered, so just compare # via parsed DOM-Tree ... but hey, it works ;) self.assertHTMLEqual(svg_string, svg_reference_string)
def setUp(self): gpxpy_instance = parse_gpx_file(Path(BASE_PATH, "fixture_files/garmin_connect_1.gpx")) self.gi = GpxIdentifier(gpxpy_instance)