mormon 2.0.0 → 2.0.3

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,124 @@
1
+ require 'spec_helper'
2
+ require 'mormon'
3
+
4
+ def _spec_osm_file
5
+ File.join File.dirname(__FILE__), "map.osm"
6
+ end
7
+
8
+ describe Mormon::OSM::DistanceOptimizer do
9
+ def stops_for_test()
10
+ nodes = []
11
+ node1 = Mormon::OSM::StopNode.new()
12
+ node1.road = "Albanigade"
13
+ node1.house_number = "5"
14
+ node1.zip_code = "5000"
15
+ node1.node_id = 320168440
16
+ node1.distance = ""
17
+ nodes.push node1
18
+
19
+ node2 = Mormon::OSM::StopNode.new()
20
+ node2.road = "Nonnebakken"
21
+ node2.house_number = "8"
22
+ node2.zip_code = "5000"
23
+ node2.node_id = 1665865875
24
+ node2.distance = ""
25
+ nodes.push node2
26
+
27
+ node3 = Mormon::OSM::StopNode.new()
28
+ node3.road = "Kronprinsensgade"
29
+ node3.house_number = "12"
30
+ node3.zip_code = "5000"
31
+ node3.node_id = 87280124
32
+ node3.distance = ""
33
+ nodes.push node3
34
+
35
+ node4 = Mormon::OSM::StopNode.new()
36
+ node4.road = "Allegade"
37
+ node4.house_number = "58"
38
+ node4.zip_code = "5000"
39
+ node4.node_id = 275977555
40
+ node4.distance = ""
41
+ nodes.push node4
42
+
43
+ node5 = Mormon::OSM::StopNode.new()
44
+ node5.road = "Alexandragade"
45
+ node5.house_number = "13"
46
+ node5.zip_code = "5000"
47
+ node5.node_id = 266138285
48
+ node5.distance = ""
49
+ nodes.push node5
50
+
51
+ node6 = Mormon::OSM::StopNode.new()
52
+ node6.road = "Allegade"
53
+ node6.house_number = "34"
54
+ node6.zip_code = "5000"
55
+ node6.node_id = 275977558
56
+ node6.distance = ""
57
+ nodes.push node6
58
+
59
+ node7 = Mormon::OSM::StopNode.new()
60
+ node7.road = "Albanigade"
61
+ node7.house_number = "23"
62
+ node7.zip_code = "5000"
63
+ node7.node_id = 205071329
64
+ node7.distance = ""
65
+ nodes.push node7
66
+
67
+ node8 = Mormon::OSM::StopNode.new()
68
+ node8.road = "Benediktsgade"
69
+ node8.house_number = "44"
70
+ node8.zip_code = "5000"
71
+ node8.node_id = 112240951
72
+ node8.distance = ""
73
+ nodes.push node8
74
+
75
+ return nodes
76
+ end
77
+
78
+ describe "Initializing test" do
79
+
80
+ it "Array correct length" do
81
+ stops = stops_for_test
82
+ stops.length.should eq 8
83
+ end
84
+
85
+ it "Should be sorted the initialized in correct order for sorting" do
86
+ stops = stops_for_test
87
+ stops[0].node_id.should eq 320168440
88
+ stops[1].node_id.should eq 1665865875
89
+ stops[2].node_id.should eq 87280124
90
+ stops[3].node_id.should eq 275977555
91
+ stops[4].node_id.should eq 266138285
92
+ stops[5].node_id.should eq 275977558
93
+ stops[6].node_id.should eq 205071329
94
+ stops[7].node_id.should eq 112240951
95
+ end
96
+
97
+ end
98
+
99
+ describe "Final result" do
100
+ it "should have sorted the array and calculated the correct distances" do
101
+ loader = Mormon::OSM::Loader.new _spec_osm_file
102
+ stops = stops_for_test
103
+ route = Mormon::OSM::DistanceOptimizer.route_planer(stops, loader)
104
+
105
+ route[0].node_id.should eq 320168440
106
+ route[1].node_id.should eq 205071329
107
+ route[2].node_id.should eq 87280124
108
+ route[3].node_id.should eq 1665865875
109
+ route[4].node_id.should eq 266138285
110
+ route[5].node_id.should eq 112240951
111
+ route[6].node_id.should eq 275977558
112
+ route[7].node_id.should eq 275977555
113
+
114
+ route[0].distance.should eq 0.0
115
+ route[1].distance.should eq 322.04
116
+ route[2].distance.should eq 364.36
117
+ route[3].distance.should eq 690.44
118
+ route[4].distance.should eq 699.35
119
+ route[5].distance.should eq 785.7
120
+ route[6].distance.should eq 996.89
121
+ route[7].distance.should eq 1274.89
122
+ end
123
+ end
124
+ end