meeting 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -27,6 +27,12 @@ Feature: Meeting Committee Calculations
27
27
  Then the committee should have used quorum "from state"
28
28
  And the conclusion of the committee should have "number" of "9"
29
29
 
30
+ Scenario: eGRID subregion committee from default
31
+ Given a meeting emitter
32
+ When the "egrid_subregion" committee is calculated
33
+ Then the committee should have used quorum "default"
34
+ And the conclusion of the committee should have "abbreviation" of "US"
35
+
30
36
  Scenario: eGRID subregion committee from zip code
31
37
  Given a meeting emitter
32
38
  And a characteristic "zip_code.name" of "94122"
@@ -34,6 +40,13 @@ Feature: Meeting Committee Calculations
34
40
  Then the committee should have used quorum "from zip code"
35
41
  And the conclusion of the committee should have "abbreviation" of "CAMX"
36
42
 
43
+ Scenario: eGRID region committee from nothing
44
+ Given a meeting emitter
45
+ When the "egrid_subregion" committee is calculated
46
+ And the "egrid_region" committee is calculated
47
+ Then the committee should have used quorum "from eGRID subregion"
48
+ And the conclusion of the committee should have "name" of "US"
49
+
37
50
  Scenario: eGRID region committee from eGRID subregion
38
51
  Given a meeting emitter
39
52
  And a characteristic "egrid_subregion.abbreviation" of "CAMX"
@@ -56,25 +69,21 @@ Feature: Meeting Committee Calculations
56
69
 
57
70
  Scenario: Electricity intensity committee from default
58
71
  Given a meeting emitter
59
- When the "electricity_intensity" committee is calculated
60
- Then the committee should have used quorum "default"
61
- And the conclusion of the committee should be "0.072444"
62
-
63
- Scenario: Electricity intensity committee from eGRID region
64
- Given a meeting emitter
65
- And a characteristic "zip_code.name" of "94122"
66
72
  When the "egrid_subregion" committee is calculated
67
73
  And the "egrid_region" committee is calculated
68
74
  And the "electricity_intensity" committee is calculated
69
75
  Then the committee should have used quorum "from eGRID region"
70
- And the conclusion of the committee should be "0.080493"
76
+ And the conclusion of the committee should be "0.07626"
71
77
 
72
- Scenario: Electricity intensity committee from census division
78
+ Scenario: Electricity intensity committee from state
73
79
  Given a meeting emitter
74
- And a characteristic "census_division.number" of "9"
75
- When the "electricity_intensity" committee is calculated
76
- Then the committee should have used quorum "from census division"
77
- And the conclusion of the committee should be "3"
80
+ And a characteristic "state.postal_abbreviation" of "CA"
81
+ When the "census_division" committee is calculated
82
+ And the "egrid_subregion" committee is calculated
83
+ And the "egrid_region" committee is calculated
84
+ And the "electricity_intensity" committee is calculated
85
+ Then the committee should have used quorum "from eGRID region and census division"
86
+ And the conclusion of the committee should be "3.15789"
78
87
 
79
88
  Scenario: Electricity intensity committee from eGRID region and census division
80
89
  Given a meeting emitter
@@ -115,29 +124,21 @@ Feature: Meeting Committee Calculations
115
124
 
116
125
  Scenario: Emission factor committee from nothing
117
126
  Given a meeting emitter
118
- When the "natural_gas_intensity" committee is calculated
119
- And the "fuel_oil_intensity" committee is calculated
120
- And the "electricity_intensity" committee is calculated
121
- And the "district_heat_intensity" committee is calculated
122
- And the "emission_factor" committee is calculated
123
- Then the committee should have used quorum "from fuel intensities"
124
- And the conclusion of the committee should be "0.15470"
125
-
126
- Scenario: Emission factor committee from census division
127
- Given a meeting emitter
128
- And a characteristic "census_division.number" of "9"
129
- When the "natural_gas_intensity" committee is calculated
127
+ When the "egrid_subregion" committee is calculated
128
+ And the "egrid_region" committee is calculated
129
+ And the "natural_gas_intensity" committee is calculated
130
130
  And the "fuel_oil_intensity" committee is calculated
131
131
  And the "electricity_intensity" committee is calculated
132
132
  And the "district_heat_intensity" committee is calculated
133
133
  And the "emission_factor" committee is calculated
134
- Then the committee should have used quorum "from fuel intensities"
135
- And the conclusion of the committee should be "8.50002"
134
+ Then the committee should have used quorum "from eGRID subregion and fuel intensities"
135
+ And the conclusion of the committee should be "0.16232"
136
136
 
137
- Scenario: Emission factor committee from eGRID subregion
137
+ Scenario: Emission factor committee from state
138
138
  Given a meeting emitter
139
- And a characteristic "zip_code.name" of "94122"
140
- When the "egrid_subregion" committee is calculated
139
+ And a characteristic "state.postal_abbreviation" of "CA"
140
+ When the "census_division" committee is calculated
141
+ And the "egrid_subregion" committee is calculated
141
142
  And the "egrid_region" committee is calculated
142
143
  And the "natural_gas_intensity" committee is calculated
143
144
  And the "fuel_oil_intensity" committee is calculated
@@ -145,9 +146,9 @@ Feature: Meeting Committee Calculations
145
146
  And the "district_heat_intensity" committee is calculated
146
147
  And the "emission_factor" committee is calculated
147
148
  Then the committee should have used quorum "from eGRID subregion and fuel intensities"
148
- And the conclusion of the committee should be "0.09030"
149
+ And the conclusion of the committee should be "8.81581"
149
150
 
150
- Scenario: Emission factor committee from eGRID subregion and census division
151
+ Scenario: Emission factor committee from zip code
151
152
  Given a meeting emitter
152
153
  And a characteristic "zip_code.name" of "94122"
153
154
  When the "state" committee is calculated
@@ -4,22 +4,22 @@ Feature: Meeting Emissions Calculations
4
4
  Scenario: Calculations starting from nothing
5
5
  Given a meeting has nothing
6
6
  When emissions are calculated
7
- Then the emission value should be within "0.1" kgs of "1465.9"
7
+ Then the emission value should be within "0.1" kgs of "1538.2"
8
8
 
9
9
  Scenario: Calculations starting from duration
10
10
  Given a meeting has "duration" of "1"
11
11
  When emissions are calculated
12
- Then the emission value should be within "0.1" kgs of "183.2"
12
+ Then the emission value should be within "0.1" kgs of "192.3"
13
13
 
14
14
  Scenario: Calculations starting from area
15
15
  Given a meeting has "area" of "1000"
16
16
  When emissions are calculated
17
- Then the emission value should be within "0.1" kgs of "1237.6"
17
+ Then the emission value should be within "0.1" kgs of "1298.6"
18
18
 
19
19
  Scenario: Calculations starting from state
20
20
  Given a meeting has "state.postal_abbreviation" of "CA"
21
21
  When emissions are calculated
22
- Then the emission value should be within "0.1" kgs of "80547.2"
22
+ Then the emission value should be within "0.1" kgs of "83539.6"
23
23
 
24
24
  Scenario: Calculations starting from zip code
25
25
  Given a meeting has "zip_code.name" of "94122"
@@ -39,31 +39,6 @@ module BrighterPlanet
39
39
  (characteristics[:electricity_intensity] * characteristics[:egrid_subregion].electricity_emission_factor) +
40
40
  (characteristics[:district_heat_intensity] * district_heat_emission_factor)
41
41
  end
42
-
43
- quorum 'from fuel intensities', :needs => [:natural_gas_intensity, :fuel_oil_intensity, :electricity_intensity, :district_heat_intensity] do |characteristics|
44
- natural_gas = FuelType.find_by_name "Commercial Natural Gas"
45
- fuel_oil = FuelType.find_by_name "Distillate Fuel Oil 2"
46
- electricity = ResidenceFuelType.find_by_name "electricity"
47
-
48
- # FIXME TODO won't need this once we convert emission factors to co2 / unit energy
49
- # kg / J kg / cubic m J / cubic m
50
- natural_gas_energy_ef = natural_gas.emission_factor / 38_339_000
51
-
52
- # FIXME TODO won't need this once we convert emission factors to co2 / unit energy
53
- # kg / J kg / l J / l
54
- fuel_oil_energy_ef = fuel_oil.emission_factor / 38_655_000
55
-
56
- # based on CA-CP calculator
57
- # assume district heat is 50% natural gas 50% distillate fuel
58
- # assume natural gas boilers 81.7% efficient; fuel oil boilers 84.6% efficient
59
- # assume 5% transmission loss
60
- district_heat_emission_factor = (((natural_gas_energy_ef / 0.817) / 2) + ((fuel_oil_energy_ef / 0.846) / 2)) / 0.95
61
-
62
- (characteristics[:natural_gas_intensity] * natural_gas.emission_factor) +
63
- (characteristics[:fuel_oil_intensity] * fuel_oil.emission_factor) +
64
- (characteristics[:electricity_intensity] * electricity.emission_factor) +
65
- (characteristics[:district_heat_intensity] * district_heat_emission_factor)
66
- end
67
42
  end
68
43
 
69
44
  committee :natural_gas_intensity do # returns cubic metres per square metre hour
@@ -91,17 +66,9 @@ module BrighterPlanet
91
66
  characteristics[:census_division].meeting_building_electricity_intensity / (1 - characteristics[:egrid_region].loss_factor)
92
67
  end
93
68
 
94
- quorum 'from census division', :needs => :census_division do |characteristics|
95
- characteristics[:census_division].meeting_building_electricity_intensity
96
- end
97
-
98
69
  quorum 'from eGRID region', :needs => :egrid_region do |characteristics|
99
70
  CensusDivision.fallback.meeting_building_electricity_intensity / (1 - characteristics[:egrid_region].loss_factor)
100
71
  end
101
-
102
- quorum 'default' do
103
- CensusDivision.fallback.meeting_building_electricity_intensity
104
- end
105
72
  end
106
73
 
107
74
  committee :district_heat_intensity do # returns joules per square metre hour
@@ -124,6 +91,10 @@ module BrighterPlanet
124
91
  quorum 'from zip code', :needs => :zip_code do |characteristics|
125
92
  characteristics[:zip_code].egrid_subregion
126
93
  end
94
+
95
+ quorum 'default' do
96
+ EgridSubregion.find_by_abbreviation 'US'
97
+ end
127
98
  end
128
99
 
129
100
  committee :census_division do # returns census division
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meeting
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 5
10
- version: 0.0.5
9
+ - 6
10
+ version: 0.0.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andy Rossmeissl
@@ -164,6 +164,22 @@ dependencies:
164
164
  version: 0.1.4
165
165
  type: :runtime
166
166
  version_requirements: *id009
167
+ - !ruby/object:Gem::Dependency
168
+ name: earth
169
+ prerelease: false
170
+ requirement: &id010 !ruby/object:Gem::Requirement
171
+ none: false
172
+ requirements:
173
+ - - ~>
174
+ - !ruby/object:Gem::Version
175
+ hash: 21
176
+ segments:
177
+ - 0
178
+ - 2
179
+ - 1
180
+ version: 0.2.1
181
+ type: :runtime
182
+ version_requirements: *id010
167
183
  description: A software model in Ruby for the greenhouse gas emissions of a meeting
168
184
  email: andy@rossmeissl.net
169
185
  executables: []