lib/earth/rail/rail_class/data_miner.rb in earth-0.3.9 vs lib/earth/rail/rail_class/data_miner.rb in earth-0.3.10
- old
+ new
@@ -26,7 +26,58 @@
store 'distance', :units_field_name => 'distance_units'
store 'speed', :units_field_name => 'speed_units'
store 'electricity_intensity', :units_field_name => 'electricity_intensity_units'
store 'diesel_intensity', :units_field_name => 'diesel_intensity_units'
end
+
+ verify "Passengers, distance, speed, and electricity intensity should be greater than zero" do
+ RailClass.all.each do |rail_class|
+ %w{ passengers distance speed electricity_intensity }.each do |attribute|
+ value = rail_class.send(:"#{attribute}")
+ unless value > 0
+ raise "Invalid #{attribute} for RailClass #{rail_class.name}: #{value} (should be > 0)"
+ end
+ end
+ end
+ end
+
+ verify "Distance units should be kilometres" do
+ RailClass.all.each do |rail_class|
+ unless rail_class.distance_units == "kilometres"
+ raise "Invalid distance units for RailClass #{rail_class.name}: #{rail_class.distance_units} (should be kilometres)"
+ end
+ end
+ end
+
+ verify "Speed units should be kilometres per hour" do
+ RailClass.all.each do |rail_class|
+ unless rail_class.speed_units == "kilometres_per_hour"
+ raise "Invalid speed units for RailClass #{rail_class.name}: #{rail_class.speed_units} (should be kilometres_per_hour)"
+ end
+ end
+ end
+
+ verify "Electricity intensity units should be kilowatt hours per kilometre" do
+ RailClass.all.each do |rail_class|
+ unless rail_class.electricity_intensity_units == "kilowatt_hours_per_kilometre"
+ raise "Invalid electricity intensity units for RailClass #{rail_class.name}: #{rail_class.electricity_intensity_units} (should be kilowatt_hours_per_kilometre)"
+ end
+ end
+ end
+
+ verify "Diesel intensity should be zero or more" do
+ RailClass.all.each do |rail_class|
+ unless rail_class.diesel_intensity >= 0
+ raise "Invalid diesel intensity for RailClass #{rail_class.name}: #{rail_class.diesel_intensity} (should be > 0)"
+ end
+ end
+ end
+
+ verify "Diesel intensity units should be litres per kilometre" do
+ RailClass.all.each do |rail_class|
+ unless rail_class.diesel_intensity_units == "litres_per_kilometre"
+ raise "Invalid distance units for RailClass #{rail_class.name}: #{rail_class.diesel_intensity_units} (should be litres_per_kilometre)"
+ end
+ end
+ end
end
end