flight 0.1.10 → 0.1.11

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.
@@ -62,6 +62,16 @@ Feature: Flight Committee Calculations
62
62
  # airline exists but not in t100
63
63
  # origin not in t100, dest in t100
64
64
 
65
+ Scenario: Cohort committee from segments with no passengers should be nil
66
+ Given a flight emitter
67
+ And a characteristic "segments_per_trip" of "1"
68
+ And a characteristic "origin_airport.iata_code" of "AZP"
69
+ And a characteristic "destination_airport.iata_code" of "BZP"
70
+ And a characteristic "aircraft.bp_code" of "6"
71
+ And a characteristic "airline.iata_code" of "ZA"
72
+ When the "cohort" committee is calculated
73
+ Then the conclusion of the committee should be nil
74
+
65
75
  Scenario: Aircraft class committee from aircraft
66
76
  Given a flight emitter
67
77
  And a characteristic "aircraft.bp_code" of "BP-FM1"
@@ -269,6 +269,7 @@ module BrighterPlanet
269
269
  passengers = flight_segments.inject(0) do |passengers, flight_segment|
270
270
  passengers + flight_segment.passengers
271
271
  end
272
+ puts "passengers: #{passengers.inspect}"
272
273
 
273
274
  bts_codes = flight_segments.map(&:aircraft_bts_code).uniq
274
275
  relevant_aircraft = Aircraft.find_all_by_bts_code(bts_codes).inject({}) do |hsh, aircraft|
@@ -280,14 +281,27 @@ module BrighterPlanet
280
281
  flight_segments.inject(0) do |coefficient, flight_segment|
281
282
  bts_code = flight_segment.aircraft_bts_code.to_s
282
283
  aircraft = relevant_aircraft[bts_code]
284
+ if aircraft.nil?
285
+ puts "aircraft is nil, bts_code is #{bts_code}"
286
+ puts "flight segment: #{flight_segment.inspect}"
287
+ end
283
288
  aircraft_coefficient = aircraft.send(name)
289
+ if aircraft.aircraft_class.nil?
290
+ puts "aircraft #{aircraft.inspect} has nil class"
291
+ puts "flight segment: #{flight_segment.inspect}"
292
+ end
284
293
  if aircraft_coefficient.nil?
285
294
  aircraft_coefficient = aircraft.aircraft_class.send(name)
286
295
  end
296
+ # puts "coeff = #{coefficient} + (#{aircraft_coefficient} * #{flight_segment.passengers}) = #{coefficient + (aircraft_coefficient * flight_segment.passengers)}"
287
297
  coefficient + (aircraft_coefficient * flight_segment.passengers)
288
298
  end
289
299
  end
290
300
 
301
+ puts "m3 coeff = #{sum_coefficients.call(:m3).inspect}"
302
+ puts "m2 coeff = #{sum_coefficients.call(:m2).inspect}"
303
+ puts "m1 coeff = #{sum_coefficients.call(:m1).inspect}"
304
+ puts "endpoint_fuel coeff = #{sum_coefficients.call(:endpoint_fuel).inspect}"
291
305
  m3 = sum_coefficients.call(:m3) / passengers
292
306
  m2 = sum_coefficients.call(:m2) / passengers
293
307
  m1 = sum_coefficients.call(:m1) / passengers
@@ -535,7 +549,7 @@ module BrighterPlanet
535
549
  end
536
550
  cohort = FlightSegment.strict_cohort provided_characteristics
537
551
  end
538
- if cohort.any?
552
+ if cohort.any? && !cohort.all? { |fs| fs.passengers.zero? }
539
553
  cohort
540
554
  else
541
555
  nil
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 10
9
- version: 0.1.10
8
+ - 11
9
+ version: 0.1.11
10
10
  platform: ruby
11
11
  authors:
12
12
  - Andy Rossmeissl
@@ -18,11 +18,12 @@ autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
20
 
21
- date: 2011-01-07 00:00:00 -05:00
21
+ date: 2011-01-10 00:00:00 -05:00
22
22
  default_executable:
23
23
  dependencies:
24
24
  - !ruby/object:Gem::Dependency
25
25
  name: activerecord
26
+ prerelease: false
26
27
  requirement: &id001 !ruby/object:Gem::Requirement
27
28
  none: false
28
29
  requirements:
@@ -32,10 +33,10 @@ dependencies:
32
33
  - 3
33
34
  version: "3"
34
35
  type: :development
35
- prerelease: false
36
36
  version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: bundler
39
+ prerelease: false
39
40
  requirement: &id002 !ruby/object:Gem::Requirement
40
41
  none: false
41
42
  requirements:
@@ -47,10 +48,10 @@ dependencies:
47
48
  - 0
48
49
  version: 1.0.0
49
50
  type: :development
50
- prerelease: false
51
51
  version_requirements: *id002
52
52
  - !ruby/object:Gem::Dependency
53
53
  name: cucumber
54
+ prerelease: false
54
55
  requirement: &id003 !ruby/object:Gem::Requirement
55
56
  none: false
56
57
  requirements:
@@ -60,10 +61,10 @@ dependencies:
60
61
  - 0
61
62
  version: "0"
62
63
  type: :development
63
- prerelease: false
64
64
  version_requirements: *id003
65
65
  - !ruby/object:Gem::Dependency
66
66
  name: jeweler
67
+ prerelease: false
67
68
  requirement: &id004 !ruby/object:Gem::Requirement
68
69
  none: false
69
70
  requirements:
@@ -75,10 +76,10 @@ dependencies:
75
76
  - 0
76
77
  version: 1.4.0
77
78
  type: :development
78
- prerelease: false
79
79
  version_requirements: *id004
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rake
82
+ prerelease: false
82
83
  requirement: &id005 !ruby/object:Gem::Requirement
83
84
  none: false
84
85
  requirements:
@@ -88,10 +89,10 @@ dependencies:
88
89
  - 0
89
90
  version: "0"
90
91
  type: :development
91
- prerelease: false
92
92
  version_requirements: *id005
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: rdoc
95
+ prerelease: false
95
96
  requirement: &id006 !ruby/object:Gem::Requirement
96
97
  none: false
97
98
  requirements:
@@ -101,10 +102,10 @@ dependencies:
101
102
  - 0
102
103
  version: "0"
103
104
  type: :development
104
- prerelease: false
105
105
  version_requirements: *id006
106
106
  - !ruby/object:Gem::Dependency
107
107
  name: rspec
108
+ prerelease: false
108
109
  requirement: &id007 !ruby/object:Gem::Requirement
109
110
  none: false
110
111
  requirements:
@@ -116,10 +117,10 @@ dependencies:
116
117
  - 1
117
118
  version: 2.0.1
118
119
  type: :development
119
- prerelease: false
120
120
  version_requirements: *id007
121
121
  - !ruby/object:Gem::Dependency
122
122
  name: sniff
123
+ prerelease: false
123
124
  requirement: &id008 !ruby/object:Gem::Requirement
124
125
  none: false
125
126
  requirements:
@@ -131,10 +132,10 @@ dependencies:
131
132
  - 12
132
133
  version: 0.4.12
133
134
  type: :development
134
- prerelease: false
135
135
  version_requirements: *id008
136
136
  - !ruby/object:Gem::Dependency
137
137
  name: emitter
138
+ prerelease: false
138
139
  requirement: &id009 !ruby/object:Gem::Requirement
139
140
  none: false
140
141
  requirements:
@@ -145,10 +146,10 @@ dependencies:
145
146
  - 3
146
147
  version: "0.3"
147
148
  type: :runtime
148
- prerelease: false
149
149
  version_requirements: *id009
150
150
  - !ruby/object:Gem::Dependency
151
151
  name: earth
152
+ prerelease: false
152
153
  requirement: &id010 !ruby/object:Gem::Requirement
153
154
  none: false
154
155
  requirements:
@@ -159,10 +160,10 @@ dependencies:
159
160
  - 3
160
161
  version: "0.3"
161
162
  type: :runtime
162
- prerelease: false
163
163
  version_requirements: *id010
164
164
  - !ruby/object:Gem::Dependency
165
165
  name: builder
166
+ prerelease: false
166
167
  requirement: &id011 !ruby/object:Gem::Requirement
167
168
  none: false
168
169
  requirements:
@@ -172,7 +173,6 @@ dependencies:
172
173
  - 0
173
174
  version: "0"
174
175
  type: :runtime
175
- prerelease: false
176
176
  version_requirements: *id011
177
177
  description: A software model in Ruby for the greenhouse gas emissions of a flight
178
178
  email: andy@rossmeissl.net
@@ -216,7 +216,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
216
  requirements:
217
217
  - - ">="
218
218
  - !ruby/object:Gem::Version
219
- hash: 805356979
220
219
  segments:
221
220
  - 0
222
221
  version: "0"