gpx_reader 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,18 @@
1
+ require 'test/unit'
2
+ require File.expand_path('../.') + '/gpx_reader/lib/gpx_reader'
3
+
4
+ class GPXRealFile < Test::Unit::TestCase
5
+
6
+ # takes some time to run (approx 25s)
7
+ REAL_FILE = File.join(File.dirname(__FILE__), "gpx_files/tranquiliste_2014_03_02.gpx")
8
+
9
+ def test_real_file
10
+ gpx = GPXReader::Gpx.new(File.open(REAL_FILE))
11
+ assert_equal(1, gpx.tracks.size)
12
+ assert_equal(1, gpx.tracks.first.segments.size)
13
+ assert_equal(5424, gpx.tracks.first.segments.first.points.size)
14
+ assert_equal(116, gpx.tracks.first.segments.first.points.first.hr)
15
+ assert_equal("15.76", sprintf('%.2f', gpx.tracks.first.distance))
16
+ end
17
+
18
+ end
@@ -0,0 +1,86 @@
1
+ require 'test/unit'
2
+ require File.expand_path('../.') + '/gpx_reader/lib/gpx_reader'
3
+
4
+ class GPXRealFile < Test::Unit::TestCase
5
+
6
+ #
7
+ TEXT_GPX = '<?xml version="1.0" encoding="UTF-8"?>
8
+ <gpx version="1.1" creator="Garmin Connect"
9
+ xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd"
10
+ xmlns="http://www.topografix.com/GPX/1/1"
11
+ xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
12
+ xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
13
+ <metadata>
14
+ <link href="connect.garmin.com">
15
+ <text>Garmin Connect</text>
16
+ </link>
17
+ <time>2014-02-20T08:42:59.000Z</time>
18
+ </metadata>
19
+ <trk>
20
+ <name>Track One</name>
21
+ <desc>Track One, one segment, 4 points</desc>
22
+ <trkseg>
23
+ <trkpt lon="6.934360396116972" lat="46.03442206978798">
24
+ <ele>1349</ele>
25
+ <time>2014-02-20T08:42:59.000Z</time>
26
+ <extensions>
27
+ <gpxtpx:TrackPointExtension>
28
+ <gpxtpx:hr>91</gpxtpx:hr>
29
+ </gpxtpx:TrackPointExtension>
30
+ </extensions>
31
+ </trkpt>
32
+ <trkpt lon="6.93439643830061" lat="46.03444067761302">
33
+ <ele>1350.5999755859375</ele>
34
+ <time>2014-02-20T08:43:00.000Z</time>
35
+ <extensions>
36
+ <gpxtpx:TrackPointExtension>
37
+ <gpxtpx:hr>92</gpxtpx:hr>
38
+ </gpxtpx:TrackPointExtension>
39
+ </extensions>
40
+ </trkpt>
41
+ <trkpt lon="6.934469779953361" lat="46.03447579778731">
42
+ <ele>1351.5999755859375</ele>
43
+ <time>2014-02-20T08:43:02.000Z</time>
44
+ <extensions>
45
+ <gpxtpx:TrackPointExtension>
46
+ <gpxtpx:hr>93</gpxtpx:hr>
47
+ </gpxtpx:TrackPointExtension>
48
+ </extensions>
49
+ </trkpt>
50
+ <trkpt lon="6.934554101899266" lat="46.03450287133455">
51
+ <ele>1351.5999755859375</ele>
52
+ <time>2014-02-20T08:43:05.000Z</time>
53
+ <extensions>
54
+ <gpxtpx:TrackPointExtension>
55
+ <gpxtpx:hr>94</gpxtpx:hr>
56
+ </gpxtpx:TrackPointExtension>
57
+ </extensions>
58
+ </trkpt>
59
+ </trkseg>
60
+ </trk>
61
+ </gpx>'
62
+
63
+ def test_load_data_from_string
64
+ gpx = GPXReader::Gpx.new(TEXT_GPX)
65
+ assert_equal(1, gpx.tracks.size)
66
+ assert_equal(1, gpx.tracks.first.segments.size)
67
+ assert_equal(4, gpx.tracks.first.segments.first.points.size)
68
+ assert_equal("Track One", gpx.tracks.first.name)
69
+ assert_equal("Track One, one segment, 4 points", gpx.tracks.first.desc)
70
+ assert_equal(Time.parse("2014-02-20 08:42:59 UTC"), gpx.time)
71
+ assert_equal(91, gpx.tracks.first.segments.first.points[0].hr)
72
+ assert_equal(92, gpx.tracks.first.segments.first.points[1].hr)
73
+ assert_equal(93, gpx.tracks.first.segments.first.points[2].hr)
74
+ assert_equal(94, gpx.tracks.first.segments.first.points[3].hr)
75
+ assert_equal(1349, gpx.tracks.first.segments.first.points.first.elevation)
76
+ assert_equal(6.934360396116972, gpx.tracks.first.segments.first.points[0].lon)
77
+ assert_equal(6.93439643830061, gpx.tracks.first.segments.first.points[1].lon)
78
+ assert_equal(6.934469779953361, gpx.tracks.first.segments.first.points[2].lon)
79
+ assert_equal(6.934554101899266, gpx.tracks.first.segments.first.points[3].lon)
80
+ assert_equal(46.03442206978798, gpx.tracks.first.segments.first.points[0].lat)
81
+ assert_equal(46.03444067761302, gpx.tracks.first.segments.first.points[1].lat)
82
+ assert_equal(46.03447579778731, gpx.tracks.first.segments.first.points[2].lat)
83
+ assert_equal(46.03450287133455, gpx.tracks.first.segments.first.points[3].lat)
84
+ end
85
+
86
+ end
metadata ADDED
@@ -0,0 +1,105 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gpx_reader
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Nicolas Aguttes
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-03-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: nokogiri
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.6.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.6.1
55
+ description: Gem to parse a gpx file or string
56
+ email:
57
+ - nicolas.aguttes@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - .DS_Store
63
+ - .gitignore
64
+ - Gemfile
65
+ - LICENSE.txt
66
+ - README.md
67
+ - Rakefile
68
+ - gpx_reader.gemspec
69
+ - lib/gpx_reader.rb
70
+ - lib/gpx_reader/gpx.rb
71
+ - lib/gpx_reader/point.rb
72
+ - lib/gpx_reader/segment.rb
73
+ - lib/gpx_reader/track.rb
74
+ - lib/gpx_reader/version.rb
75
+ - tests/.DS_Store
76
+ - tests/gpx_1track_4points.rb
77
+ - tests/gpx_files/1track_4points.gpx
78
+ - tests/gpx_files/tranquiliste_2014_03_02.gpx
79
+ - tests/gpx_real_file.rb
80
+ - tests/gpx_with_string.rb
81
+ homepage: ''
82
+ licenses:
83
+ - MIT
84
+ metadata: {}
85
+ post_install_message:
86
+ rdoc_options: []
87
+ require_paths:
88
+ - lib
89
+ required_ruby_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ required_rubygems_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ requirements: []
100
+ rubyforge_project:
101
+ rubygems_version: 2.0.3
102
+ signing_key:
103
+ specification_version: 4
104
+ summary: gpx reader
105
+ test_files: []