automobile 0.0.12 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- data/features/automobile_committees.feature +30 -15
- data/features/automobile_emissions.feature +7 -8
- data/features/support/env.rb +1 -1
- data/lib/automobile/carbon_model.rb +5 -4
- data/lib/automobile/characterization.rb +0 -4
- data/lib/automobile/data.rb +0 -2
- data/lib/automobile/summarization.rb +0 -3
- metadata +22 -25
@@ -1,21 +1,36 @@
|
|
1
1
|
Feature: Automobile Committee Calculations
|
2
2
|
The automobile model should generate correct committee calculations
|
3
3
|
|
4
|
-
Scenario Outline:
|
5
|
-
Given an automobile
|
6
|
-
And
|
7
|
-
|
8
|
-
|
4
|
+
Scenario Outline: Retirement committee from acquisition
|
5
|
+
Given an automobile emitter
|
6
|
+
And a characteristic "timeframe" of "<timeframe>"
|
7
|
+
And a characteristic "acquisition" of "<acquisition>"
|
8
|
+
When the "retirement" committee is calculated
|
9
|
+
Then the conclusion of the committee should be "<retirement_committee>"
|
9
10
|
Examples:
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
| timeframe | acquisition | retirement_committee |
|
12
|
+
| 2009-03-04/2009-08-17 | 2010-04-21 | 2010-04-21 |
|
13
|
+
| 2009-03-04/2009-08-17 | 2007-01-30 | 2009-08-17 |
|
14
|
+
| 2009-03-04/2009-08-17 | | 2009-08-17 |
|
13
15
|
|
14
|
-
Scenario Outline:
|
15
|
-
Given an automobile
|
16
|
-
And
|
17
|
-
|
18
|
-
|
16
|
+
Scenario Outline: Acquisition committee from model year or year
|
17
|
+
Given an automobile emitter
|
18
|
+
And a characteristic "model_year.name" of "<make_model_year>"
|
19
|
+
And a characteristic "year" of "<year>"
|
20
|
+
When the "acquisition" committee is calculated
|
21
|
+
Then the conclusion of the committee should be "<acquisition_committee>"
|
19
22
|
Examples:
|
20
|
-
|
|
21
|
-
| 2007
|
23
|
+
| make_model_year | year | acquisition_committee |
|
24
|
+
| | 2007 | 2007-01-01 |
|
25
|
+
| Honda FIT 2008 | | 2008-01-01 |
|
26
|
+
|
27
|
+
Scenario Outline: Acquisition committee from retirement
|
28
|
+
Given an automobile emitter
|
29
|
+
And a characteristic "timeframe" of "<timeframe>"
|
30
|
+
And a characteristic "retirement" of "<retirement>"
|
31
|
+
When the "acquisition" committee is calculated
|
32
|
+
Then the conclusion of the committee should be "<acquisition_committee>"
|
33
|
+
Examples:
|
34
|
+
| timeframe | retirement | acquisition_committee |
|
35
|
+
| 2010-08-10/2010-09-16 | 2007-02-03 | 2007-02-03 |
|
36
|
+
| 2010-08-10/2010-09-16 | | 2010-08-10 |
|
@@ -2,13 +2,12 @@ Feature: Automobile Emissions Calculations
|
|
2
2
|
The automobile model should generate correct emission calculations
|
3
3
|
|
4
4
|
Scenario Outline: Standard Calculations for automobiles
|
5
|
-
Given an automobile has "annual_distance_estimate" of "<
|
6
|
-
And it has "
|
7
|
-
And it has "
|
8
|
-
And it has "retirement" "<retirement>"
|
5
|
+
Given an automobile has "annual_distance_estimate" of "<distance>"
|
6
|
+
And it has "timeframe" of "<timeframe>"
|
7
|
+
And it has "model_year.name" of "<make_model_year>"
|
9
8
|
When emissions are calculated
|
10
|
-
Then the emission value should be within 0.1 kgs of <emission>
|
9
|
+
Then the emission value should be within "0.1" kgs of "<emission>"
|
11
10
|
Examples:
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
| distance | make_model_year | timeframe | emission |
|
12
|
+
| 30000 | Acura RSX 2003 | 2008-01-30/2009-05-20| 8706.4 |
|
13
|
+
| 80000 | Honda FIT 2008 | 2008-01-30/2009-05-20| 23217.1 |
|
data/features/support/env.rb
CHANGED
@@ -1,11 +1,9 @@
|
|
1
|
-
require 'leap'
|
2
1
|
require 'conversions'
|
3
2
|
|
4
3
|
module BrighterPlanet
|
5
4
|
module Automobile
|
6
5
|
module CarbonModel
|
7
6
|
def self.included(base)
|
8
|
-
base.extend ::Leap::Subject
|
9
7
|
base.decide :emission, :with => :characteristics do
|
10
8
|
committee :emission do # returns kg CO2
|
11
9
|
quorum 'from fuel', :needs => [:fuel_consumed, :emission_factor], :appreciates => :fuel_type do |characteristics|
|
@@ -187,8 +185,11 @@ module BrighterPlanet
|
|
187
185
|
|
188
186
|
committee :acquisition do
|
189
187
|
quorum 'from model year or year', :appreciates => [:model_year, :year] do |characteristics|
|
190
|
-
|
191
|
-
|
188
|
+
if characteristics[:model_year]
|
189
|
+
Date.new characteristics[:model_year].year, 1, 1
|
190
|
+
elsif characteristics[:year]
|
191
|
+
Date.new characteristics[:year].to_i, 1, 1
|
192
|
+
end
|
192
193
|
end
|
193
194
|
quorum 'from retirement', :appreciates => :retirement do |characteristics, timeframe|
|
194
195
|
[ timeframe.from, characteristics[:retirement] ].compact.min
|
@@ -1,10 +1,7 @@
|
|
1
|
-
require 'characterizable'
|
2
|
-
|
3
1
|
module BrighterPlanet
|
4
2
|
module Automobile
|
5
3
|
module Characterization
|
6
4
|
def self.included(base)
|
7
|
-
base.send :include, Characterizable
|
8
5
|
base.characterize do
|
9
6
|
has :make do |make|
|
10
7
|
make.reveals :model_year do |model_year|
|
@@ -35,7 +32,6 @@ module BrighterPlanet
|
|
35
32
|
# has :annual_fuel_cost, :trumps => [:annual_distance_estimate, :weekly_distance_estimate, :daily_distance_estimate, :daily_duration, :weekly_fuel_cost], :measures => :cost
|
36
33
|
# has :weekly_fuel_cost, :trumps => [:annual_distance_estimate, :weekly_distance_estimate, :daily_distance_estimate, :daily_duration, :annual_fuel_cost], :measures => :cost
|
37
34
|
end
|
38
|
-
base.add_implicit_characteristics
|
39
35
|
end
|
40
36
|
end
|
41
37
|
end
|
data/lib/automobile/data.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: automobile
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 13
|
10
|
+
version: 0.0.13
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andy Rossmeissl
|
@@ -19,7 +19,7 @@ autorequire:
|
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
21
|
|
22
|
-
date: 2010-09-
|
22
|
+
date: 2010-09-21 00:00:00 -04:00
|
23
23
|
default_executable:
|
24
24
|
dependencies:
|
25
25
|
- !ruby/object:Gem::Dependency
|
@@ -29,15 +29,14 @@ dependencies:
|
|
29
29
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ~>
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
hash:
|
34
|
+
hash: 7
|
35
35
|
segments:
|
36
36
|
- 3
|
37
37
|
- 0
|
38
38
|
- 0
|
39
|
-
|
40
|
-
version: 3.0.0.beta4
|
39
|
+
version: 3.0.0
|
41
40
|
requirement: *id001
|
42
41
|
- !ruby/object:Gem::Dependency
|
43
42
|
type: :development
|
@@ -46,16 +45,14 @@ dependencies:
|
|
46
45
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
47
46
|
none: false
|
48
47
|
requirements:
|
49
|
-
- -
|
48
|
+
- - ~>
|
50
49
|
- !ruby/object:Gem::Version
|
51
|
-
hash:
|
50
|
+
hash: 23
|
52
51
|
segments:
|
53
52
|
- 1
|
54
53
|
- 0
|
55
54
|
- 0
|
56
|
-
|
57
|
-
- 2
|
58
|
-
version: 1.0.0.beta.2
|
55
|
+
version: 1.0.0
|
59
56
|
requirement: *id002
|
60
57
|
- !ruby/object:Gem::Dependency
|
61
58
|
type: :development
|
@@ -64,7 +61,7 @@ dependencies:
|
|
64
61
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
65
62
|
none: false
|
66
63
|
requirements:
|
67
|
-
- -
|
64
|
+
- - ~>
|
68
65
|
- !ruby/object:Gem::Version
|
69
66
|
hash: 57
|
70
67
|
segments:
|
@@ -80,7 +77,7 @@ dependencies:
|
|
80
77
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
81
78
|
none: false
|
82
79
|
requirements:
|
83
|
-
- -
|
80
|
+
- - ~>
|
84
81
|
- !ruby/object:Gem::Version
|
85
82
|
hash: 7
|
86
83
|
segments:
|
@@ -124,7 +121,7 @@ dependencies:
|
|
124
121
|
version_requirements: &id007 !ruby/object:Gem::Requirement
|
125
122
|
none: false
|
126
123
|
requirements:
|
127
|
-
- -
|
124
|
+
- - ~>
|
128
125
|
- !ruby/object:Gem::Version
|
129
126
|
hash: 62196417
|
130
127
|
segments:
|
@@ -142,14 +139,14 @@ dependencies:
|
|
142
139
|
version_requirements: &id008 !ruby/object:Gem::Requirement
|
143
140
|
none: false
|
144
141
|
requirements:
|
145
|
-
- -
|
142
|
+
- - ~>
|
146
143
|
- !ruby/object:Gem::Version
|
147
|
-
hash:
|
144
|
+
hash: 57
|
148
145
|
segments:
|
149
146
|
- 0
|
150
|
-
-
|
151
|
-
-
|
152
|
-
version: 0.
|
147
|
+
- 1
|
148
|
+
- 17
|
149
|
+
version: 0.1.17
|
153
150
|
requirement: *id008
|
154
151
|
- !ruby/object:Gem::Dependency
|
155
152
|
type: :runtime
|
@@ -158,14 +155,14 @@ dependencies:
|
|
158
155
|
version_requirements: &id009 !ruby/object:Gem::Requirement
|
159
156
|
none: false
|
160
157
|
requirements:
|
161
|
-
- -
|
158
|
+
- - ~>
|
162
159
|
- !ruby/object:Gem::Version
|
163
|
-
hash:
|
160
|
+
hash: 19
|
164
161
|
segments:
|
165
162
|
- 0
|
166
|
-
- 0
|
167
163
|
- 1
|
168
|
-
|
164
|
+
- 4
|
165
|
+
version: 0.1.4
|
169
166
|
requirement: *id009
|
170
167
|
description: A software model in Ruby for the greenhouse gas emissions of an automobile
|
171
168
|
email: andy@rossmeissl.net
|