purchase 0.1.2 → 0.1.4
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.
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
Feature: Purchase Committee Calculations
|
|
2
2
|
The purchase model should generate correct committee calculations
|
|
3
3
|
|
|
4
|
+
Scenario Outline: Cost committee from purchase amount
|
|
5
|
+
Given a purchase emitter
|
|
6
|
+
And a characteristic "purchase_amount" of "<amount>"
|
|
7
|
+
When the "cost" committee is calculated
|
|
8
|
+
And the conclusion of the committee should be "<cost>"
|
|
9
|
+
Examples:
|
|
10
|
+
| amount | cost |
|
|
11
|
+
| 831.23 | 748.107 |
|
|
12
|
+
| 11.00 | 9.9 |
|
|
13
|
+
|
|
4
14
|
Scenario Outline: Adjusted cost committee from cost and date
|
|
5
15
|
Given a purchase emitter
|
|
6
16
|
And a characteristic "cost" of "<cost>"
|
|
@@ -13,19 +23,6 @@ Feature: Purchase Committee Calculations
|
|
|
13
23
|
| 831.23 | 2010-08-01 | 688.67439 |
|
|
14
24
|
| 11.00 | 2005-07-14 | 9.11350 |
|
|
15
25
|
|
|
16
|
-
Scenario Outline: Adjusted cost committee from purchase amount and date
|
|
17
|
-
Given a purchase emitter
|
|
18
|
-
And a characteristic "purchase_amount" of "<amount>"
|
|
19
|
-
And characteristic "date" of "<date>"
|
|
20
|
-
When the "cost" committee is calculated
|
|
21
|
-
And the "adjusted_cost" committee is calculated
|
|
22
|
-
Then the committee should have used quorum "from cost and date"
|
|
23
|
-
And the conclusion of the committee should be "<adjusted_cost>"
|
|
24
|
-
Examples:
|
|
25
|
-
| amount | date | adjusted_cost |
|
|
26
|
-
| 831.23 | 2010-08-01 | 619.80695 |
|
|
27
|
-
| 11.00 | 2005-07-14 | 8.20215 |
|
|
28
|
-
|
|
29
26
|
Scenario Outline: Merchant category committee from merchant
|
|
30
27
|
Given a purchase emitter
|
|
31
28
|
And a characteristic "merchant.id" of "<id>"
|
|
@@ -57,10 +54,16 @@ Feature: Purchase Committee Calculations
|
|
|
57
54
|
And the "product_line_shares" committee is calculated
|
|
58
55
|
Then the conclusion of the committee should have a record identified with "ps_code" of "<ps_code>" and having "ratio" of "<share>"
|
|
59
56
|
Examples:
|
|
60
|
-
| mcc | ps_code
|
|
61
|
-
| 5111 |
|
|
62
|
-
| 5111 |
|
|
63
|
-
| 5111 |
|
|
57
|
+
| mcc | ps_code | share |
|
|
58
|
+
| 5111 | 20340 | 0.084 |
|
|
59
|
+
| 5111 | 20370 | 0.283 |
|
|
60
|
+
| 5111 | 20440 | 0.006 |
|
|
61
|
+
| 5111 | 20851 | 0.122 |
|
|
62
|
+
| 5111 | 20852 | 0.145 |
|
|
63
|
+
| 5111 | 20853 | 0.265 |
|
|
64
|
+
| 5111 | 20854 | 0.071 |
|
|
65
|
+
| 5111 | 29938 | 0.011 |
|
|
66
|
+
| 5111 | 29979 | 0.013 |
|
|
64
67
|
|
|
65
68
|
Scenario Outline: Sector shares committee from merchant category
|
|
66
69
|
Given a purchase emitter
|
|
@@ -71,21 +74,41 @@ Feature: Purchase Committee Calculations
|
|
|
71
74
|
Then the conclusion of the committee should have a record identified with "io_code" of "<io_code>" and having "emission_factor" of "<emission_factor>"
|
|
72
75
|
And the conclusion of the committee should have a record identified with "io_code" of "<io_code>" and having "share" of "<share>"
|
|
73
76
|
Examples:
|
|
74
|
-
| mcc | io_code | emission_factor | share
|
|
75
|
-
| 5111 |
|
|
76
|
-
| 5111 |
|
|
77
|
-
| 5111 |
|
|
78
|
-
| 5111 |
|
|
79
|
-
| 5111 |
|
|
80
|
-
|
|
|
81
|
-
|
|
|
82
|
-
|
|
|
83
|
-
|
|
|
84
|
-
|
|
|
85
|
-
|
|
|
86
|
-
|
|
|
87
|
-
|
|
|
88
|
-
|
|
|
77
|
+
| mcc | io_code | emission_factor | share |
|
|
78
|
+
| 5111 | 337212 | 0.544 | 0.084 |
|
|
79
|
+
| 5111 | 334111 | 0.284 | 0.0566 |
|
|
80
|
+
| 5111 | 334112 | 0.37 | 0.014716 |
|
|
81
|
+
| 5111 | 33411A | 0.362 | 0.01698 |
|
|
82
|
+
| 5111 | 511200 | 0.101 | 0.194704 |
|
|
83
|
+
| 5111 | 333315 | 0.623 | 0.001044 |
|
|
84
|
+
| 5111 | 3259A0 | 1.08 | 0.004194 |
|
|
85
|
+
| 5111 | 334300 | 0.549 | 0.000762 |
|
|
86
|
+
| 5111 | 322230 | 0.81 | 0.122 |
|
|
87
|
+
| 5111 | 322230 | 0.81 | 0.145 |
|
|
88
|
+
| 5111 | 322230 | 0.81 | 0.077645 |
|
|
89
|
+
| 5111 | 339940 | 0.535 | 0.078175 |
|
|
90
|
+
| 5111 | 325910 | 1.2 | 0.10918 |
|
|
91
|
+
| 5111 | 33331A | 0.567 | 0.002556 |
|
|
92
|
+
| 5111 | 333315 | 0.623 | 0.002201 |
|
|
93
|
+
| 5111 | 334111 | 0.284 | 0.0426 |
|
|
94
|
+
| 5111 | 334112 | 0.37 | 0.011005 |
|
|
95
|
+
| 5111 | 33411A | 0.362 | 0.012638 |
|
|
96
|
+
| 5111 | 323110 | 0.546 | 0.010505 |
|
|
97
|
+
| 5111 | 323120 | 0.358 | 0.000495 |
|
|
98
|
+
| 5111 | 532400 | 0.245 | 0.004251 |
|
|
99
|
+
| 5111 | 812900 | 0.22 | 0.001599 |
|
|
100
|
+
| 5111 | 532A00 | 0.23 | 0.001755 |
|
|
101
|
+
| 5111 | 561400 | 0.186 | 0.005395 |
|
|
102
|
+
| 5732 | 334300 | 0.549 | 0.25 |
|
|
103
|
+
| 5732 | 33411A | 0.362 | 0.5 |
|
|
104
|
+
| 5732 | 334210 | 1.6 | 0.2 |
|
|
105
|
+
| 5812 | 722000 | 0.8 | 1 |
|
|
106
|
+
| 3504 | 7211A0 | 0.559 | 1 |
|
|
107
|
+
| 5172 | 324110 | 2 | 0.8 |
|
|
108
|
+
| 5172 | 324121 | 1.3 | 0.05 |
|
|
109
|
+
| 5172 | 324122 | 0.9 | 0.05 |
|
|
110
|
+
| 5172 | 324191 | 0.2 | 0.05 |
|
|
111
|
+
| 5172 | 324199 | 1.2 | 0.05 |
|
|
89
112
|
|
|
90
113
|
Scenario Outline: Emission factor from merchant category
|
|
91
114
|
Given a purchase emitter
|
|
@@ -97,20 +120,40 @@ Feature: Purchase Committee Calculations
|
|
|
97
120
|
Then the conclusion of the committee should have a record identified with "io_code" of "<io_code>" and having "factor" of "<emission_factor_share>"
|
|
98
121
|
Examples:
|
|
99
122
|
| mcc | io_code | emission_factor_share |
|
|
100
|
-
| 5111 |
|
|
101
|
-
| 5111 |
|
|
102
|
-
| 5111 |
|
|
103
|
-
| 5111 |
|
|
104
|
-
| 5111 |
|
|
105
|
-
|
|
|
106
|
-
|
|
|
107
|
-
|
|
|
108
|
-
|
|
|
109
|
-
|
|
|
110
|
-
|
|
|
111
|
-
|
|
|
112
|
-
|
|
|
113
|
-
|
|
|
123
|
+
| 5111 | 337212 | 0.045696 |
|
|
124
|
+
| 5111 | 334111 | 0.0160744 |
|
|
125
|
+
| 5111 | 334112 | 0.00544492 |
|
|
126
|
+
| 5111 | 33411A | 0.00614676 |
|
|
127
|
+
| 5111 | 511200 | 0.019665104 |
|
|
128
|
+
| 5111 | 333315 | 0.000650412 |
|
|
129
|
+
| 5111 | 3259A0 | 0.00452952 |
|
|
130
|
+
| 5111 | 334300 | 0.000418338 |
|
|
131
|
+
| 5111 | 322230 | 0.09882 |
|
|
132
|
+
| 5111 | 322230 | 0.11745 |
|
|
133
|
+
| 5111 | 322230 | 0.06289245 |
|
|
134
|
+
| 5111 | 339940 | 0.041823625 |
|
|
135
|
+
| 5111 | 325910 | 0.131016 |
|
|
136
|
+
| 5111 | 33331A | 0.001449252 |
|
|
137
|
+
| 5111 | 333315 | 0.001371223 |
|
|
138
|
+
| 5111 | 334111 | 0.0120984 |
|
|
139
|
+
| 5111 | 334112 | 0.00407185 |
|
|
140
|
+
| 5111 | 33411A | 0.004574956 |
|
|
141
|
+
| 5111 | 323110 | 0.00573573 |
|
|
142
|
+
| 5111 | 323120 | 0.00017721 |
|
|
143
|
+
| 5111 | 532400 | 0.001041495 |
|
|
144
|
+
| 5111 | 812900 | 0.00035178 |
|
|
145
|
+
| 5111 | 532A00 | 0.00040365 |
|
|
146
|
+
| 5111 | 561400 | 0.00100347 |
|
|
147
|
+
| 5732 | 334300 | 0.13725 |
|
|
148
|
+
| 5732 | 33411A | 0.181 |
|
|
149
|
+
| 5732 | 334210 | 0.32 |
|
|
150
|
+
| 5812 | 722000 | 0.8 |
|
|
151
|
+
| 3504 | 7211A0 | 0.559 |
|
|
152
|
+
| 5172 | 324110 | 1.6 |
|
|
153
|
+
| 5172 | 324121 | 0.065 |
|
|
154
|
+
| 5172 | 324122 | 0.045 |
|
|
155
|
+
| 5172 | 324191 | 0.01 |
|
|
156
|
+
| 5172 | 324199 | 0.06 |
|
|
114
157
|
|
|
115
158
|
Scenario: Emission factor from default
|
|
116
159
|
Given a purchase emitter
|
|
@@ -131,19 +174,38 @@ Feature: Purchase Committee Calculations
|
|
|
131
174
|
And the "sector_emissions" committee is calculated
|
|
132
175
|
Then the conclusion of the committee should include "<emission>"
|
|
133
176
|
Examples:
|
|
134
|
-
| merchant | io_code | cost | date | emission
|
|
135
|
-
| 1 |
|
|
136
|
-
| 1 | 334111 | 100.00 | 2010-07-28 |
|
|
137
|
-
| 1 |
|
|
138
|
-
| 1 |
|
|
139
|
-
| 1 |
|
|
140
|
-
|
|
|
141
|
-
|
|
|
142
|
-
|
|
|
143
|
-
|
|
|
144
|
-
|
|
|
145
|
-
|
|
|
146
|
-
|
|
|
147
|
-
|
|
|
148
|
-
|
|
|
149
|
-
|
|
|
177
|
+
| merchant | io_code | cost | date | emission |
|
|
178
|
+
| 1 | 337212 | 100.00 | 2010-07-28 | 3.79 |
|
|
179
|
+
| 1 | 334111 | 100.00 | 2010-07-28 | 1.33 |
|
|
180
|
+
| 1 | 334112 | 100.00 | 2010-07-28 | 0.45 |
|
|
181
|
+
| 1 | 33411A | 100.00 | 2010-07-28 | 0.51 |
|
|
182
|
+
| 1 | 511200 | 100.00 | 2010-07-28 | 1.63 |
|
|
183
|
+
| 1 | 333315 | 100.00 | 2010-07-28 | 0.05 |
|
|
184
|
+
| 1 | 3259A0 | 100.00 | 2010-07-28 | 0.38 |
|
|
185
|
+
| 1 | 334300 | 100.00 | 2010-07-28 | 0.03 |
|
|
186
|
+
| 1 | 322230 | 100.00 | 2010-07-28 | 8.19 |
|
|
187
|
+
| 1 | 322230 | 100.00 | 2010-07-28 | 9.73 |
|
|
188
|
+
| 1 | 322230 | 100.00 | 2010-07-28 | 5.21 |
|
|
189
|
+
| 1 | 339940 | 100.00 | 2010-07-28 | 3.47 |
|
|
190
|
+
| 1 | 325910 | 100.00 | 2010-07-28 | 10.85 |
|
|
191
|
+
| 1 | 33331A | 100.00 | 2010-07-28 | 0.12 |
|
|
192
|
+
| 1 | 333315 | 100.00 | 2010-07-28 | 0.11 |
|
|
193
|
+
| 1 | 334111 | 100.00 | 2010-07-28 | 1.00 |
|
|
194
|
+
| 1 | 334112 | 100.00 | 2010-07-28 | 0.34 |
|
|
195
|
+
| 1 | 33411A | 100.00 | 2010-07-28 | 0.38 |
|
|
196
|
+
| 1 | 323110 | 100.00 | 2010-07-28 | 0.48 |
|
|
197
|
+
| 1 | 323120 | 100.00 | 2010-07-28 | 0.01 |
|
|
198
|
+
| 1 | 532400 | 100.00 | 2010-07-28 | 0.09 |
|
|
199
|
+
| 1 | 812900 | 100.00 | 2010-07-28 | 0.03 |
|
|
200
|
+
| 1 | 532A00 | 100.00 | 2010-07-28 | 0.03 |
|
|
201
|
+
| 1 | 561400 | 100.00 | 2010-07-28 | 0.08 |
|
|
202
|
+
| 2 | 334300 | 100.00 | 2010-07-28 | 11.37 |
|
|
203
|
+
| 2 | 33411A | 100.00 | 2010-07-28 | 15.00 |
|
|
204
|
+
| 2 | 334210 | 100.00 | 2010-07-28 | 26.51 |
|
|
205
|
+
| 3 | 722000 | 100.00 | 2010-07-28 | 66.28 |
|
|
206
|
+
| 4 | 7211A0 | 100.00 | 2010-07-28 | 46.31 |
|
|
207
|
+
| 5 | 324110 | 100.00 | 2010-07-28 | 132.56 |
|
|
208
|
+
| 5 | 324121 | 100.00 | 2010-07-28 | 5.39 |
|
|
209
|
+
| 5 | 324122 | 100.00 | 2010-07-28 | 3.73 |
|
|
210
|
+
| 5 | 324191 | 100.00 | 2010-07-28 | 0.83 |
|
|
211
|
+
| 5 | 324199 | 100.00 | 2010-07-28 | 4.97 |
|
|
@@ -9,11 +9,25 @@ Feature: Purchase Emissions Calculations
|
|
|
9
9
|
Then the emission value should be within 1 kgs of <emission>
|
|
10
10
|
Examples:
|
|
11
11
|
| id | cost | date | emission |
|
|
12
|
-
| 1 | 100.00 | 2010-07-28 |
|
|
13
|
-
| 2 | 100.00 | 2010-07-28 |
|
|
12
|
+
| 1 | 100.00 | 2010-07-28 | 48.29 |
|
|
13
|
+
| 2 | 100.00 | 2010-07-28 | 52.88 |
|
|
14
14
|
| 3 | 100.00 | 2010-07-28 | 66.28 |
|
|
15
|
-
| 4 | 100.00 | 2010-07-28 |
|
|
15
|
+
| 4 | 100.00 | 2010-07-28 | 46.31 |
|
|
16
16
|
| 5 | 100.00 | 2010-07-28 | 147.47 |
|
|
17
|
+
|
|
18
|
+
Scenario Outline: Calculations starting from a merchant with purchase amount
|
|
19
|
+
Given a purchase has "merchant.id" of "<id>"
|
|
20
|
+
And it has "purchase_amount" of "<amount>"
|
|
21
|
+
And it has "date" of "<date>"
|
|
22
|
+
When emissions are calculated
|
|
23
|
+
Then the emission value should be within 1 kgs of <emission>
|
|
24
|
+
Examples:
|
|
25
|
+
| id | amount | date | emission |
|
|
26
|
+
| 1 | 100.00 | 2010-07-28 | 43.46 |
|
|
27
|
+
| 2 | 100.00 | 2010-07-28 | 47.59 |
|
|
28
|
+
| 3 | 100.00 | 2010-07-28 | 59.65 |
|
|
29
|
+
| 4 | 100.00 | 2010-07-28 | 41.68 |
|
|
30
|
+
| 5 | 100.00 | 2010-07-28 | 132.72 |
|
|
17
31
|
|
|
18
32
|
Scenario Outline: Calculations starting from a merchant category
|
|
19
33
|
Given a purchase has "merchant_category.mcc" of "<mcc>"
|
|
@@ -23,10 +37,10 @@ Feature: Purchase Emissions Calculations
|
|
|
23
37
|
Then the emission value should be within 0.1 kgs of <emission>
|
|
24
38
|
Examples:
|
|
25
39
|
| mcc | cost | date | emission |
|
|
26
|
-
| 5111 | 100.00 | 2010-07-28 |
|
|
27
|
-
| 5732 | 100.00 | 2010-07-28 |
|
|
40
|
+
| 5111 | 100.00 | 2010-07-28 | 48.29 |
|
|
41
|
+
| 5732 | 100.00 | 2010-07-28 | 52.88 |
|
|
28
42
|
| 5812 | 100.00 | 2010-07-28 | 66.28 |
|
|
29
|
-
| 3504 | 100.00 | 2010-07-28 |
|
|
43
|
+
| 3504 | 100.00 | 2010-07-28 | 46.31 |
|
|
30
44
|
| 5172 | 100.00 | 2010-07-28 | 147.47 |
|
|
31
45
|
|
|
32
46
|
Scenario Outline: Calculations starting from industry
|
|
@@ -37,10 +51,10 @@ Feature: Purchase Emissions Calculations
|
|
|
37
51
|
Then the emission value should be within 0.1 kgs of <emission>
|
|
38
52
|
Examples:
|
|
39
53
|
| naics | cost | date | emission |
|
|
40
|
-
| 45321 | 100.00 | 2010-07-28 |
|
|
41
|
-
| 443112 | 100.00 | 2010-07-28 |
|
|
54
|
+
| 45321 | 100.00 | 2010-07-28 | 48.29 |
|
|
55
|
+
| 443112 | 100.00 | 2010-07-28 | 52.88 |
|
|
42
56
|
| 72211 | 100.00 | 2010-07-28 | 66.28 |
|
|
43
|
-
| 72111 | 100.00 | 2010-07-28 |
|
|
57
|
+
| 72111 | 100.00 | 2010-07-28 | 46.31 |
|
|
44
58
|
| 32411 | 100.00 | 2010-07-28 | 132.56 |
|
|
45
59
|
| 324121 | 100.00 | 2010-07-28 | 5.39 |
|
|
46
60
|
| 324122 | 100.00 | 2010-07-28 | 3.73 |
|
|
@@ -120,8 +120,8 @@ module BrighterPlanet
|
|
|
120
120
|
|
|
121
121
|
committee :cost do
|
|
122
122
|
quorum 'from purchase amount', :needs => :purchase_amount do |characteristics|
|
|
123
|
-
# FIXME TODO take out tax
|
|
124
|
-
characteristics[:purchase_amount] * 0.9
|
|
123
|
+
# FIXME TODO take out tax
|
|
124
|
+
characteristics[:purchase_amount].to_f * 0.9
|
|
125
125
|
end
|
|
126
126
|
end
|
|
127
127
|
|
|
@@ -11,7 +11,7 @@ module BrighterPlanet
|
|
|
11
11
|
has.verb :take
|
|
12
12
|
has.aspect :perfect
|
|
13
13
|
|
|
14
|
-
has.modifier lambda { |purchase| "from #{
|
|
14
|
+
has.modifier lambda { |purchase| "from #{purchase.merchant}" }, :if => :merchant
|
|
15
15
|
has.modifier lambda { |purchase| "(#{purchase.inudstry} industry)" }, :if => :industry
|
|
16
16
|
has.modifier lambda { |purchase| "for $#{purchase.purchase_amount}" }, :if => :purchase_amount
|
|
17
17
|
has.modifier lambda { |purchase| "on #{date.to_formatted_s(:archive)}" }, :if => :date
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: purchase
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 19
|
|
5
5
|
prerelease: false
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 1
|
|
9
|
-
-
|
|
10
|
-
version: 0.1.
|
|
9
|
+
- 4
|
|
10
|
+
version: 0.1.4
|
|
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-08-
|
|
22
|
+
date: 2010-08-15 00:00:00 -04:00
|
|
23
23
|
default_executable:
|
|
24
24
|
dependencies:
|
|
25
25
|
- !ruby/object:Gem::Dependency
|