aboutsummaryrefslogtreecommitdiffstats
path: root/spec/lib/tom_tom_spec.rb
diff options
context:
space:
mode:
authorTeddy Wing2018-03-09 15:55:49 +0100
committerTeddy Wing2018-03-14 16:38:39 +0100
commitb27dd5fe2f061e2ef94d250fc5a06c1d8e84179a (patch)
tree900a3ddcc45526b03e5b026f39422573e02301a4 /spec/lib/tom_tom_spec.rb
parent23cc4317f72c3776307ee15344462e151ba1dc52 (diff)
downloadchouette-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/tom_tom_spec.rb')
-rw-r--r--spec/lib/tom_tom_spec.rb25
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