diff options
| author | Teddy Wing | 2018-03-09 15:55:49 +0100 | 
|---|---|---|
| committer | Teddy Wing | 2018-03-14 16:38:39 +0100 | 
| commit | b27dd5fe2f061e2ef94d250fc5a06c1d8e84179a (patch) | |
| tree | 900a3ddcc45526b03e5b026f39422573e02301a4 /spec/lib | |
| parent | 23cc4317f72c3776307ee15344462e151ba1dc52 (diff) | |
| download | chouette-core-b27dd5fe2f061e2ef94d250fc5a06c1d8e84179a.tar.bz2 | |
Add `TomTom` class to communicate with their API
Provides an interface to communicate with the TomTom API. Currently
includes a method `#batch` to make a batch routing request
(https://developer.tomtom.com/online-routing/online-routing-documentation/batch-routing).
Left a bunch of development-related code in just to preserve my
in-progress stages. Originally I was told to use the matrix routing API,
but that turned out to not match what we wanted. Namely, matrix routing
would produce a table with every point routed with every other point. We
instead want routes of each segment in a line, in order (or, just the
diagonal of the matrix). Using the batch API allows us to get the routes
we need without doing unnecessary work.
Update the `WayCost` class to provide `departure` and `arrival` methods
as readers, and make `id` an optional parameter for now. (We still need
to figure out how we're dealing with ID.)
Refs #6095
Diffstat (limited to 'spec/lib')
| -rw-r--r-- | spec/lib/tom_tom_spec.rb | 25 | 
1 files changed, 25 insertions, 0 deletions
| diff --git a/spec/lib/tom_tom_spec.rb b/spec/lib/tom_tom_spec.rb new file mode 100644 index 000000000..57f22d26a --- /dev/null +++ b/spec/lib/tom_tom_spec.rb @@ -0,0 +1,25 @@ +RSpec.describe TomTom do +  let(:tomtom) { TomTom.new } + +  describe "#convert_way_costs_for_batch" do +    it "turns WayCost points into a collection of colon-separated strings" do +      way_costs = [ +        WayCost.new( +          departure: Geokit::LatLng.new(2, 48), +          arrival: Geokit::LatLng.new(3, 46) +        ), +        WayCost.new( +          departure: Geokit::LatLng.new(-71, 42), +          arrival: Geokit::LatLng.new(-71.5, 42.9) +        ) +      ] + +      expect( +        tomtom.convert_way_costs_for_batch(way_costs) +      ).to eq([ +        '2,48:3,46', +        '-71,42:-71.5,42.9' +      ]) +    end +  end +end | 
