automobile 0.0.12 → 0.0.13
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.
- 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
|