earth 0.12.3 → 0.12.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.
- data/Gemfile +1 -0
- data/TODO +1 -0
- data/bin/earth_tester.rb +39 -47
- data/data/air/airlines.csv +45 -0
- data/data/air/airports.csv +11 -0
- data/data/hospitality/lodging_classes.csv +4 -0
- data/data/locality/national_electricity_efs.csv +137 -0
- data/earth.gemspec +1 -1
- data/errata/airline/bts_carrier_codes_errata.csv +2 -0
- data/lib/earth.rb +3 -0
- data/lib/earth/active_record_base_class_methods.rb +25 -0
- data/lib/earth/air/aircraft.rb +5 -4
- data/lib/earth/air/airline.rb +5 -1
- data/lib/earth/air/airline/data_miner.rb +1 -1
- data/lib/earth/air/airport.rb +10 -2
- data/lib/earth/air/airport/data_miner.rb +11 -5
- data/lib/earth/air/bts_aircraft.rb +1 -1
- data/lib/earth/air/flight_segment.rb +14 -1
- data/lib/earth/air/flight_segment/data_miner.rb +6 -13
- data/lib/earth/automobile/automobile_activity_year/data_miner.rb +1 -1
- data/lib/earth/automobile/automobile_activity_year_type/data_miner.rb +1 -1
- data/lib/earth/automobile/automobile_fuel/data_miner.rb +5 -5
- data/lib/earth/automobile/automobile_make/data_miner.rb +1 -1
- data/lib/earth/automobile/automobile_make_model/data_miner.rb +1 -1
- data/lib/earth/automobile/automobile_make_model_year/data_miner.rb +1 -1
- data/lib/earth/automobile/automobile_make_model_year_variant/data_miner.rb +6 -6
- data/lib/earth/automobile/automobile_type_fuel/data_miner.rb +2 -2
- data/lib/earth/automobile/automobile_type_fuel_year/data_miner.rb +1 -1
- data/lib/earth/conversions_ext.rb +7 -6
- data/lib/earth/fuel/fuel.rb +1 -1
- data/lib/earth/fuel/fuel/data_miner.rb +1 -3
- data/lib/earth/hospitality/commercial_building_energy_consumption_survey_response.rb +3 -1
- data/lib/earth/hospitality/commercial_building_energy_consumption_survey_response/data_miner.rb +44 -11
- data/lib/earth/hospitality/lodging_class.rb +0 -1
- data/lib/earth/hospitality/lodging_class/data_miner.rb +3 -9
- data/lib/earth/industry/merchant_category/data_miner.rb +14 -0
- data/lib/earth/locality/country.rb +33 -7
- data/lib/earth/locality/country/data_miner.rb +46 -32
- data/lib/earth/locality/egrid_subregion.rb +1 -1
- data/lib/earth/locality/egrid_subregion/data_miner.rb +16 -31
- data/lib/earth/locality/electricity_mix.rb +37 -0
- data/lib/earth/locality/electricity_mix/data_miner.rb +87 -0
- data/lib/earth/locality/state.rb +12 -4
- data/lib/earth/locality/state/data_miner.rb +33 -18
- data/lib/earth/locality/zip_code.rb +9 -1
- data/lib/earth/locality/zip_code/data_miner.rb +4 -0
- data/lib/earth/rail/country_rail_traction/data_miner.rb +2 -2
- data/lib/earth/rail/country_rail_traction_class/data_miner.rb +2 -2
- data/lib/earth/rail/national_transit_database_record.rb +4 -0
- data/lib/earth/rail/rail_company/data_miner.rb +3 -3
- data/lib/earth/rail/rail_fuel/data_miner.rb +1 -1
- data/lib/earth/residence/clothes_machine_use/data_miner.rb +1 -1
- data/lib/earth/residence/dishwasher_use/data_miner.rb +1 -1
- data/lib/earth/residence/residence_fuel_price.rb +1 -1
- data/lib/earth/version.rb +1 -1
- data/spec/earth/air/airline_spec.rb +1 -1
- data/spec/earth/air/airport_spec.rb +7 -0
- data/spec/earth/air/flight_segment_spec.rb +26 -12
- data/spec/earth/automobile/automobile_type_fuel_spec.rb +1 -1
- data/spec/earth/automobile/automobile_type_fuel_year_spec.rb +3 -3
- data/spec/earth/fuel/fuel_spec.rb +1 -1
- data/spec/earth/hospitality/commercial_building_energy_consumption_survey_response_spec.rb +32 -19
- data/spec/earth/hospitality/lodging_class_spec.rb +18 -0
- data/spec/earth/industry/mecs_energy_spec.rb +2 -2
- data/spec/earth/industry/mecs_ratio_spec.rb +1 -1
- data/spec/earth/industry/merchant_category_spec.rb +17 -0
- data/spec/earth/locality/country_spec.rb +32 -16
- data/spec/earth/locality/egrid_subregion_spec.rb +40 -27
- data/spec/earth/locality/electricity_mix_spec.rb +70 -0
- data/spec/earth/locality/state_spec.rb +10 -11
- data/spec/earth/locality/zip_code_spec.rb +9 -5
- data/spec/earth_spec.rb +4 -4
- data/spec/spec_helper.rb +3 -0
- metadata +19 -10
- data/lib/earth/hospitality/country_lodging_class.rb +0 -18
- data/lib/earth/hospitality/country_lodging_class/data_miner.rb +0 -40
- data/lib/earth/industry/merchant.rb +0 -9
- data/spec/earth/hospitality/country_lodging_class_spec.rb +0 -30
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'earth/hospitality/lodging_class'
|
3
|
+
|
4
|
+
describe LodgingClass do
|
5
|
+
describe 'when importing data', :data_miner => true do
|
6
|
+
before do
|
7
|
+
Earth.init :hospitality, :load_data_miner => true
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'imports data' do
|
11
|
+
LodgingClass.run_data_miner!
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'verify imported data', :sanity => true do
|
16
|
+
it { LodgingClass.count.should == 3 }
|
17
|
+
end
|
18
|
+
end
|
@@ -21,13 +21,13 @@ describe MecsEnergy do
|
|
21
21
|
apparel.census_region_number.should be_nil
|
22
22
|
apparel.energy.should be_within(20_000).of(14770781900)
|
23
23
|
apparel.energy_units.should == 'megajoules'
|
24
|
-
apparel.electricity.should
|
24
|
+
apparel.electricity.should be_within(1_000).of(7.trillion_btus.to(:megajoules))
|
25
25
|
apparel.electricity_units.should == 'megajoules'
|
26
26
|
apparel.residual_fuel_oil.should == 0
|
27
27
|
apparel.residual_fuel_oil_units.should == 'megajoules'
|
28
28
|
apparel.distillate_fuel_oil.should == 0
|
29
29
|
apparel.distillate_fuel_oil_units.should == 'megajoules'
|
30
|
-
apparel.natural_gas.should
|
30
|
+
apparel.natural_gas.should be_within(1_000).of(7.trillion_btus.to(:megajoules))
|
31
31
|
apparel.natural_gas_units.should == 'megajoules'
|
32
32
|
apparel.lpg_and_ngl.should == 0
|
33
33
|
apparel.lpg_and_ngl_units.should == 'megajoules'
|
@@ -19,7 +19,7 @@ describe MecsRatio do
|
|
19
19
|
it 'spot checks the data' do
|
20
20
|
apparel = MecsRatio.find_by_naics_code '315'
|
21
21
|
apparel.census_region_number.should be_nil
|
22
|
-
apparel.energy_per_dollar_of_shipments.should
|
22
|
+
apparel.energy_per_dollar_of_shipments.should be_within(5e-6).of(0.5.kbtus.to(:megajoules))
|
23
23
|
apparel.energy_per_dollar_of_shipments_units.should == 'megajoules'
|
24
24
|
end
|
25
25
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'earth/industry/merchant_category'
|
3
|
+
|
4
|
+
describe MerchantCategory do
|
5
|
+
describe 'import', :data_miner => true do
|
6
|
+
before do
|
7
|
+
Earth.init :industry, :load_data_miner => true, :skip_parent_associations => :true
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should import data' do
|
11
|
+
MerchantCategory.run_data_miner!
|
12
|
+
MerchantCategory.count.should > 0
|
13
|
+
MerchantCategory.first.mcc.to_s.should =~ /^\d+$/
|
14
|
+
MerchantCategory.first.description.to_s.should_not be_empty
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -6,11 +6,10 @@ require 'earth/locality/country'
|
|
6
6
|
describe Country do
|
7
7
|
describe 'import', :data_miner => true do
|
8
8
|
before do
|
9
|
-
Earth.init :locality, :load_data_miner => true
|
9
|
+
Earth.init :locality, :load_data_miner => true
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'should import data' do
|
13
|
-
Country.delete_all if Country.table_exists?
|
14
13
|
Country.run_data_miner!
|
15
14
|
end
|
16
15
|
end
|
@@ -38,17 +37,27 @@ describe Country do
|
|
38
37
|
describe 'electricity data' do
|
39
38
|
it { Country.where('electricity_emission_factor >= 0').count.should == 136 }
|
40
39
|
it { Country.where(:electricity_emission_factor_units => 'kilograms_co2e_per_kilowatt_hour').count.should == 136 }
|
40
|
+
it { Country.where('electricity_co2_emission_factor >= 0').count.should == 136 }
|
41
|
+
it { Country.where(:electricity_co2_emission_factor_units => 'kilograms_per_kilowatt_hour').count.should == 136 }
|
42
|
+
it { Country.where('electricity_ch4_emission_factor >= 0').count.should == 136 }
|
43
|
+
it { Country.where(:electricity_ch4_emission_factor_units => 'kilograms_co2e_per_kilowatt_hour').count.should == 136 }
|
44
|
+
it { Country.where('electricity_n2o_emission_factor >= 0').count.should == 136 }
|
45
|
+
it { Country.where(:electricity_n2o_emission_factor_units => 'kilograms_co2e_per_kilowatt_hour').count.should == 136 }
|
41
46
|
it { Country.where('electricity_loss_factor >= 0').count.should == 136 }
|
42
47
|
it { Country.maximum(:electricity_loss_factor).should < 0.3 }
|
43
48
|
|
44
49
|
# spot checks
|
45
|
-
it { us.electricity_emission_factor.should be_within(
|
46
|
-
it { us.
|
50
|
+
it { us.electricity_emission_factor.should be_within(6e-6).of(0.55437) }
|
51
|
+
it { us.electricity_co2_emission_factor.should be_within(5e-6).of(0.55165) }
|
52
|
+
it { us.electricity_ch4_emission_factor.should be_within(5e-9).of(0.00027255) }
|
53
|
+
it { us.electricity_n2o_emission_factor.should be_within(5e-8).of(0.0024437) }
|
47
54
|
it { us.electricity_loss_factor.should be_within(5e-6).of(0.06503) }
|
48
55
|
|
49
|
-
it { uk.electricity_emission_factor.should be_within(
|
50
|
-
it { uk.
|
51
|
-
it { uk.
|
56
|
+
it { uk.electricity_emission_factor.should be_within(5e-6).of(0.51020) }
|
57
|
+
it { uk.electricity_co2_emission_factor.should be_within(5e-6).of(0.5085) }
|
58
|
+
it { uk.electricity_ch4_emission_factor.should be_within(5e-9).of(0.00016875) }
|
59
|
+
it { uk.electricity_n2o_emission_factor.should be_within(5e-8).of(0.00152576) }
|
60
|
+
it { uk.electricity_loss_factor.should be_within(5e-4).of(0.073) }
|
52
61
|
end
|
53
62
|
|
54
63
|
describe 'flight data' do
|
@@ -58,9 +67,9 @@ describe Country do
|
|
58
67
|
end
|
59
68
|
|
60
69
|
describe 'lodging data' do
|
61
|
-
it { us.lodging_occupancy_rate.should be_within(
|
62
|
-
it { us.lodging_natural_gas_intensity.should be_within(
|
63
|
-
it { us.lodging_natural_gas_intensity_units.should == '
|
70
|
+
it { us.lodging_occupancy_rate.should be_within(5e-4).of(0.601) }
|
71
|
+
it { us.lodging_natural_gas_intensity.should be_within(5e-4).of(50.719) }
|
72
|
+
it { us.lodging_natural_gas_intensity_units.should == 'megajoules_per_room_night' }
|
64
73
|
end
|
65
74
|
|
66
75
|
describe 'rail data' do
|
@@ -93,11 +102,18 @@ describe Country do
|
|
93
102
|
end
|
94
103
|
|
95
104
|
describe '.fallback' do
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
105
|
+
let(:fallback) { Country.fallback }
|
106
|
+
|
107
|
+
it { fallback.name.should == 'fallback' }
|
108
|
+
it { fallback.electricity_emission_factor.should be_within(5e-6).of(0.62609) }
|
109
|
+
it { fallback.electricity_emission_factor_units.should == 'kilograms_co2e_per_kilowatt_hour' }
|
110
|
+
it { fallback.electricity_co2_emission_factor.should be_within(5e-6).of(0.62354) }
|
111
|
+
it { fallback.electricity_co2_emission_factor_units.should == 'kilograms_per_kilowatt_hour' }
|
112
|
+
it { fallback.electricity_ch4_emission_factor.should be_within(5e-6).of(0.00021) }
|
113
|
+
it { fallback.electricity_ch4_emission_factor_units.should == 'kilograms_co2e_per_kilowatt_hour' }
|
114
|
+
it { fallback.electricity_n2o_emission_factor.should be_within(5e-6).of(0.00234) }
|
115
|
+
it { fallback.electricity_n2o_emission_factor_units.should == 'kilograms_co2e_per_kilowatt_hour' }
|
116
|
+
it { fallback.electricity_loss_factor.should be_within(5e-4).of(0.096) }
|
117
|
+
it { fallback.electricity_mix.should == ElectricityMix.fallback }
|
102
118
|
end
|
103
119
|
end
|
@@ -13,37 +13,50 @@ describe EgridSubregion do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
describe 'verify imported data', :sanity => true do
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
it {
|
20
|
-
it { EgridSubregion.where("
|
21
|
-
it { EgridSubregion.where("
|
22
|
-
it { EgridSubregion.where(
|
16
|
+
let(:total) { EgridSubregion.count }
|
17
|
+
let(:akgd) { EgridSubregion.find 'akgd' }
|
18
|
+
|
19
|
+
it { total.should == 26 }
|
20
|
+
it { EgridSubregion.where("net_generation > 0").count.should == total }
|
21
|
+
it { EgridSubregion.where("co2_emission_factor > 0").count.should == total }
|
22
|
+
it { EgridSubregion.where(:co2_biogenic_emission_factor => nil).count.should == total }
|
23
|
+
it { EgridSubregion.where("ch4_emission_factor > 0").count.should == total }
|
24
|
+
it { EgridSubregion.where("n2o_emission_factor > 0").count.should == total }
|
25
|
+
|
26
|
+
# DEPRECATED
|
27
|
+
it { EgridSubregion.where("electricity_emission_factor > 0").count.should == total }
|
23
28
|
|
24
29
|
# spot check
|
25
|
-
it {
|
26
|
-
it {
|
27
|
-
it {
|
28
|
-
it {
|
29
|
-
it {
|
30
|
-
|
31
|
-
|
32
|
-
it {
|
33
|
-
|
34
|
-
it {
|
35
|
-
it {
|
36
|
-
it {
|
37
|
-
it {
|
30
|
+
it { akgd.net_generation.should be_within(5).of(5_337_982) }
|
31
|
+
it { akgd.co2_emission_factor.should be_within(5e-6).of(0.58099) }
|
32
|
+
it { akgd.co2_biogenic_emission_factor.should == nil }
|
33
|
+
it { akgd.ch4_emission_factor.should be_within(5e-6).of(0.00031) }
|
34
|
+
it { akgd.n2o_emission_factor.should be_within(5e-6).of(0.00104) }
|
35
|
+
|
36
|
+
# DEPRECATED
|
37
|
+
it { akgd.electricity_emission_factor.should be_within(5e-6).of(0.58234) }
|
38
|
+
|
39
|
+
it { akgd.net_generation_units.should == 'megawatt_hours' }
|
40
|
+
it { akgd.co2_emission_factor_units.should == 'kilograms_per_kilowatt_hour' }
|
41
|
+
it { akgd.co2_biogenic_emission_factor_units.should == nil }
|
42
|
+
it { akgd.ch4_emission_factor_units.should == 'kilograms_co2e_per_kilowatt_hour' }
|
43
|
+
it { akgd.n2o_emission_factor_units.should == 'kilograms_co2e_per_kilowatt_hour' }
|
44
|
+
|
45
|
+
# DEPRECATED
|
46
|
+
it { akgd.electricity_emission_factor_units.should == 'kilograms_co2e_per_kilowatt_hour' }
|
38
47
|
end
|
39
48
|
|
40
49
|
describe '.fallback' do
|
41
|
-
|
42
|
-
|
43
|
-
it {
|
44
|
-
it {
|
45
|
-
it {
|
46
|
-
it {
|
47
|
-
it {
|
50
|
+
let(:fallback) { EgridSubregion.fallback }
|
51
|
+
|
52
|
+
it { fallback.name.should == 'fallback' }
|
53
|
+
it { fallback.egrid_region.name.should == 'fallback' }
|
54
|
+
it { fallback.co2_emission_factor.should be_within(5e-6).of(0.55165) }
|
55
|
+
it { fallback.co2_biogenic_emission_factor.should == nil }
|
56
|
+
it { fallback.ch4_emission_factor.should be_within(5e-6).of(0.00027) }
|
57
|
+
it { fallback.n2o_emission_factor.should be_within(5e-6).of(0.00244) }
|
58
|
+
|
59
|
+
# DEPRECATED
|
60
|
+
it { fallback.electricity_emission_factor.should be_within(5e-6).of(0.55437) }
|
48
61
|
end
|
49
62
|
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'earth/locality/electricity_mix'
|
3
|
+
|
4
|
+
describe ElectricityMix do
|
5
|
+
describe 'import', :data_miner => true do
|
6
|
+
before do
|
7
|
+
Earth.init :locality, :load_data_miner => true
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should import data' do
|
11
|
+
ElectricityMix.run_data_miner!
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'verify imported data', :sanity => true do
|
16
|
+
let(:total) { ElectricityMix.count }
|
17
|
+
let(:uk) { ElectricityMix.find_by_country_iso_3166_code 'GB' }
|
18
|
+
let(:akgd) { ElectricityMix.find_by_egrid_subregion_abbreviation 'akgd' }
|
19
|
+
let(:us) { ElectricityMix.find_by_country_iso_3166_code 'US' }
|
20
|
+
let(:ca) { ElectricityMix.find_by_state_postal_abbreviation 'CA' }
|
21
|
+
|
22
|
+
it { total.should == 213 }
|
23
|
+
it { ElectricityMix.where('co2_emission_factor >= 0').count.should == total }
|
24
|
+
it { ElectricityMix.where(:co2_emission_factor_units => 'kilograms_per_kilowatt_hour').count.should == total }
|
25
|
+
it { ElectricityMix.where('ch4_emission_factor >= 0').count.should == total }
|
26
|
+
it { ElectricityMix.where(:ch4_emission_factor_units => 'kilograms_co2e_per_kilowatt_hour').count.should == total }
|
27
|
+
it { ElectricityMix.where('n2o_emission_factor >= 0').count.should == total }
|
28
|
+
it { ElectricityMix.where(:n2o_emission_factor_units => 'kilograms_co2e_per_kilowatt_hour').count.should == total }
|
29
|
+
it { ElectricityMix.where('loss_factor >= 0').count.should == total }
|
30
|
+
it { ElectricityMix.maximum(:loss_factor).should < 0.3 }
|
31
|
+
|
32
|
+
# spot checks
|
33
|
+
it { uk.co2_emission_factor.should be_within(5e-6).of(0.5085) }
|
34
|
+
it { uk.ch4_emission_factor.should be_within(5e-9).of(0.00016875) }
|
35
|
+
it { uk.n2o_emission_factor.should be_within(5e-9).of(0.00152576) }
|
36
|
+
it { uk.loss_factor.should be_within(5e-4).of(0.073) }
|
37
|
+
|
38
|
+
it { akgd.co2_emission_factor.should be_within(5e-6).of(0.58099) }
|
39
|
+
it { akgd.co2_biogenic_emission_factor.should == nil }
|
40
|
+
it { akgd.ch4_emission_factor.should be_within(5e-6).of(0.00031) }
|
41
|
+
it { akgd.n2o_emission_factor.should be_within(5e-6).of(0.00104) }
|
42
|
+
it { akgd.loss_factor.should be_within(5e-6).of(0.0584) }
|
43
|
+
|
44
|
+
it { us.co2_emission_factor.should be_within(5e-6).of(0.55165) }
|
45
|
+
it { us.ch4_emission_factor.should be_within(5e-9).of(0.00027255) }
|
46
|
+
it { us.n2o_emission_factor.should be_within(5e-8).of(0.0024437) }
|
47
|
+
it { us.loss_factor.should be_within(5e-6).of(0.06503) }
|
48
|
+
|
49
|
+
it { ca.co2_emission_factor.should be_within(5e-6).of(0.30163) }
|
50
|
+
it { ca.ch4_emission_factor.should be_within(5e-6).of(0.00033) }
|
51
|
+
it { ca.n2o_emission_factor.should be_within(5e-6).of(0.00085) }
|
52
|
+
it { ca.loss_factor.should be_within(5e-6).of(0.08208) }
|
53
|
+
end
|
54
|
+
|
55
|
+
describe '.fallback' do
|
56
|
+
it { ElectricityMix.fallback.name.should == 'fallback' }
|
57
|
+
it { ElectricityMix.fallback.co2_emission_factor.should be_within(5e-6).of(0.62354) }
|
58
|
+
it { ElectricityMix.fallback.ch4_emission_factor.should be_within(5e-6).of(0.00021) }
|
59
|
+
it { ElectricityMix.fallback.n2o_emission_factor.should be_within(5e-6).of(0.00234) }
|
60
|
+
it { ElectricityMix.fallback.loss_factor.should be_within(5e-6).of(0.096) }
|
61
|
+
end
|
62
|
+
|
63
|
+
describe '#energy_content' do
|
64
|
+
it { ElectricityMix.first.energy_content.should be_within(5e-6).of(3.6) }
|
65
|
+
end
|
66
|
+
|
67
|
+
describe '#energy_content_units' do
|
68
|
+
it { ElectricityMix.first.energy_content_units.should == 'megajoules_per_kilowatt_hour' }
|
69
|
+
end
|
70
|
+
end
|
@@ -4,7 +4,7 @@ require 'earth/locality/state'
|
|
4
4
|
describe State do
|
5
5
|
describe 'when importing data', :data_miner => true do
|
6
6
|
before do
|
7
|
-
Earth.init :locality, :load_data_miner => true
|
7
|
+
Earth.init :locality, :load_data_miner => true
|
8
8
|
end
|
9
9
|
|
10
10
|
it 'imports data' do
|
@@ -24,21 +24,21 @@ describe State do
|
|
24
24
|
end
|
25
25
|
|
26
26
|
it 'should have an average electricity emission factor' do
|
27
|
-
State.find('VT').electricity_emission_factor.should be_within(
|
27
|
+
State.find('VT').electricity_emission_factor.should be_within(5e-6).of(0.33313)
|
28
28
|
State.find('VT').electricity_emission_factor_units.should == "kilograms_co2e_per_kilowatt_hour"
|
29
|
-
State.find('CA').electricity_emission_factor.should be_within(
|
29
|
+
State.find('CA').electricity_emission_factor.should be_within(5e-6).of(0.30281)
|
30
30
|
State.find('CA').electricity_emission_factor_units.should == "kilograms_co2e_per_kilowatt_hour"
|
31
|
-
State.find('MT').electricity_emission_factor.should be_within(
|
31
|
+
State.find('MT').electricity_emission_factor.should be_within(5e-6).of(0.39160)
|
32
32
|
State.find('MT').electricity_emission_factor_units.should == "kilograms_co2e_per_kilowatt_hour"
|
33
|
-
State.find('NM').electricity_emission_factor.should be_within(
|
33
|
+
State.find('NM').electricity_emission_factor.should be_within(5e-6).of(0.54601)
|
34
34
|
State.find('NM').electricity_emission_factor_units.should == "kilograms_co2e_per_kilowatt_hour"
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'should have an average electricity loss factor' do
|
38
|
-
State.find('VT').electricity_loss_factor.should be_within(
|
39
|
-
State.find('CA').electricity_loss_factor.should be_within(
|
40
|
-
State.find('MT').electricity_loss_factor.should be_within(
|
41
|
-
State.find('NM').electricity_loss_factor.should be_within(
|
38
|
+
State.find('VT').electricity_loss_factor.should be_within(5e-6).of(0.05822)
|
39
|
+
State.find('CA').electricity_loss_factor.should be_within(5e-6).of(0.08208)
|
40
|
+
State.find('MT').electricity_loss_factor.should be_within(5e-6).of(0.08094)
|
41
|
+
State.find('NM').electricity_loss_factor.should be_within(5e-6).of(0.08007)
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
@@ -47,9 +47,8 @@ describe State do
|
|
47
47
|
require 'earth/locality/country'
|
48
48
|
end
|
49
49
|
|
50
|
-
it 'should the United States' do
|
50
|
+
it 'should return the United States' do
|
51
51
|
State.first.country.should == Country.united_states
|
52
|
-
State.last.country.should == Country.united_states
|
53
52
|
end
|
54
53
|
end
|
55
54
|
end
|
@@ -21,6 +21,15 @@ describe ZipCode do
|
|
21
21
|
it { ZipCode.where('population IS NOT NULL').count.should == 33120 }
|
22
22
|
end
|
23
23
|
|
24
|
+
# from acts_as_mappable
|
25
|
+
describe '.find_within' do
|
26
|
+
it { ZipCode.find_within(15, :units => :kms, :origin => ZipCode.find('05753').latitude_longitude).count.should == 7 }
|
27
|
+
end
|
28
|
+
|
29
|
+
describe '.known_subregion' do
|
30
|
+
it { ZipCode.known_subregion.where(:egrid_subregion_abbreviation => nil).count.should == 0 }
|
31
|
+
end
|
32
|
+
|
24
33
|
describe '#country' do
|
25
34
|
before do
|
26
35
|
require 'earth/locality/country'
|
@@ -38,9 +47,4 @@ describe ZipCode do
|
|
38
47
|
ZipCode.find('00210').latitude_longitude.should == ['43.005895', '-71.013202']
|
39
48
|
end
|
40
49
|
end
|
41
|
-
|
42
|
-
# from acts_as_mappable
|
43
|
-
describe '.find_within' do
|
44
|
-
it { ZipCode.find_within(15, :units => :kms, :origin => ZipCode.find('05753').latitude_longitude).count.should == 7 }
|
45
|
-
end
|
46
50
|
end
|
data/spec/earth_spec.rb
CHANGED
@@ -22,7 +22,7 @@ describe Earth do
|
|
22
22
|
|
23
23
|
describe '.resources' do
|
24
24
|
it 'should get a list of all resource names' do
|
25
|
-
Earth.resources.length.should ==
|
25
|
+
Earth.resources.length.should == 100
|
26
26
|
Earth.resources.should include('Aircraft')
|
27
27
|
Earth.resources.should include('Industry')
|
28
28
|
end
|
@@ -34,9 +34,9 @@ describe Earth do
|
|
34
34
|
Earth.resources('diet').length.should == 2
|
35
35
|
Earth.resources('electricity').length.should == 3
|
36
36
|
Earth.resources('fuel').length.should == 5
|
37
|
-
Earth.resources('hospitality').length.should ==
|
38
|
-
Earth.resources('industry').length.should ==
|
39
|
-
Earth.resources('locality').length.should ==
|
37
|
+
Earth.resources('hospitality').length.should == 2
|
38
|
+
Earth.resources('industry').length.should == 17
|
39
|
+
Earth.resources('locality').length.should == 11
|
40
40
|
Earth.resources('pet').length.should == 4
|
41
41
|
Earth.resources('rail').length.should == 12
|
42
42
|
Earth.resources('residence').length.should == 9
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: earth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.12.
|
5
|
+
version: 0.12.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Seamus Abshere
|
@@ -12,7 +12,7 @@ autorequire:
|
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
14
|
|
15
|
-
date: 2012-
|
15
|
+
date: 2012-07-25 00:00:00 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: activerecord
|
@@ -131,7 +131,7 @@ dependencies:
|
|
131
131
|
requirements:
|
132
132
|
- - ">="
|
133
133
|
- !ruby/object:Gem::Version
|
134
|
-
version:
|
134
|
+
version: 2.0.2
|
135
135
|
type: :runtime
|
136
136
|
prerelease: false
|
137
137
|
version_requirements: *id011
|
@@ -314,6 +314,8 @@ files:
|
|
314
314
|
- TODO
|
315
315
|
- bin/earth_tester.rb
|
316
316
|
- certification_changelog.markdown
|
317
|
+
- data/air/airlines.csv
|
318
|
+
- data/air/airports.csv
|
317
319
|
- data/automobile/annual_emission_controls.csv
|
318
320
|
- data/automobile/annual_fuel_consumption.csv
|
319
321
|
- data/automobile/annual_sizes.csv
|
@@ -325,9 +327,11 @@ files:
|
|
325
327
|
- data/automobile/hybridity_multipliers.csv
|
326
328
|
- data/automobile/sizes.csv
|
327
329
|
- data/automobile/trip_distances.csv
|
330
|
+
- data/hospitality/lodging_classes.csv
|
328
331
|
- data/locality/country_flight_data.csv
|
329
332
|
- data/locality/egrid_relationships.csv
|
330
333
|
- data/locality/misc_zip_data.csv
|
334
|
+
- data/locality/national_electricity_efs.csv
|
331
335
|
- data/locality/us_auto_data.csv
|
332
336
|
- data/locality/wri_hdd_cdd_data.csv
|
333
337
|
- data/locality/zip_climate_divisions.csv
|
@@ -345,6 +349,7 @@ files:
|
|
345
349
|
- errata/readme
|
346
350
|
- lib/earth.rb
|
347
351
|
- lib/earth/acronyms.rb
|
352
|
+
- lib/earth/active_record_base_class_methods.rb
|
348
353
|
- lib/earth/air.rb
|
349
354
|
- lib/earth/air/aircraft.rb
|
350
355
|
- lib/earth/air/aircraft/data_miner.rb
|
@@ -450,8 +455,6 @@ files:
|
|
450
455
|
- lib/earth/hospitality.rb
|
451
456
|
- lib/earth/hospitality/commercial_building_energy_consumption_survey_response.rb
|
452
457
|
- lib/earth/hospitality/commercial_building_energy_consumption_survey_response/data_miner.rb
|
453
|
-
- lib/earth/hospitality/country_lodging_class.rb
|
454
|
-
- lib/earth/hospitality/country_lodging_class/data_miner.rb
|
455
458
|
- lib/earth/hospitality/data_miner.rb
|
456
459
|
- lib/earth/hospitality/lodging_class.rb
|
457
460
|
- lib/earth/hospitality/lodging_class/data_miner.rb
|
@@ -468,8 +471,8 @@ files:
|
|
468
471
|
- lib/earth/industry/mecs_energy/data_miner.rb
|
469
472
|
- lib/earth/industry/mecs_ratio.rb
|
470
473
|
- lib/earth/industry/mecs_ratio/data_miner.rb
|
471
|
-
- lib/earth/industry/merchant.rb
|
472
474
|
- lib/earth/industry/merchant_category.rb
|
475
|
+
- lib/earth/industry/merchant_category/data_miner.rb
|
473
476
|
- lib/earth/industry/merchant_category_industry.rb
|
474
477
|
- lib/earth/industry/naics_2002.rb
|
475
478
|
- lib/earth/industry/naics_2002/data_miner.rb
|
@@ -501,6 +504,8 @@ files:
|
|
501
504
|
- lib/earth/locality/egrid_region/data_miner.rb
|
502
505
|
- lib/earth/locality/egrid_subregion.rb
|
503
506
|
- lib/earth/locality/egrid_subregion/data_miner.rb
|
507
|
+
- lib/earth/locality/electricity_mix.rb
|
508
|
+
- lib/earth/locality/electricity_mix/data_miner.rb
|
504
509
|
- lib/earth/locality/petroleum_administration_for_defense_district.rb
|
505
510
|
- lib/earth/locality/petroleum_administration_for_defense_district/data_miner.rb
|
506
511
|
- lib/earth/locality/state.rb
|
@@ -604,11 +609,12 @@ files:
|
|
604
609
|
- spec/earth/electricity/green_button_adoption_spec.rb
|
605
610
|
- spec/earth/fuel/fuel_spec.rb
|
606
611
|
- spec/earth/hospitality/commercial_building_energy_consumption_survey_response_spec.rb
|
607
|
-
- spec/earth/hospitality/
|
612
|
+
- spec/earth/hospitality/lodging_class_spec.rb
|
608
613
|
- spec/earth/industry/cbecs_energy_intensity_spec.rb
|
609
614
|
- spec/earth/industry/industry_spec.rb
|
610
615
|
- spec/earth/industry/mecs_energy_spec.rb
|
611
616
|
- spec/earth/industry/mecs_ratio_spec.rb
|
617
|
+
- spec/earth/industry/merchant_category_spec.rb
|
612
618
|
- spec/earth/industry/naics_2002_naics_2007_concordance_spec.rb
|
613
619
|
- spec/earth/industry/naics_2002_sic_1987_concordance_spec.rb
|
614
620
|
- spec/earth/industry/naics_2002_spec.rb
|
@@ -618,6 +624,7 @@ files:
|
|
618
624
|
- spec/earth/locality/egrid_country_spec.rb
|
619
625
|
- spec/earth/locality/egrid_region_spec.rb
|
620
626
|
- spec/earth/locality/egrid_subregion_spec.rb
|
627
|
+
- spec/earth/locality/electricity_mix_spec.rb
|
621
628
|
- spec/earth/locality/state_spec.rb
|
622
629
|
- spec/earth/locality/zip_code_spec.rb
|
623
630
|
- spec/earth/pet/species_spec.rb
|
@@ -681,7 +688,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
681
688
|
requirements:
|
682
689
|
- - ">="
|
683
690
|
- !ruby/object:Gem::Version
|
684
|
-
hash: -
|
691
|
+
hash: -3264838130013702299
|
685
692
|
segments:
|
686
693
|
- 0
|
687
694
|
version: "0"
|
@@ -690,7 +697,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
690
697
|
requirements:
|
691
698
|
- - ">="
|
692
699
|
- !ruby/object:Gem::Version
|
693
|
-
hash: -
|
700
|
+
hash: -3264838130013702299
|
694
701
|
segments:
|
695
702
|
- 0
|
696
703
|
version: "0"
|
@@ -733,11 +740,12 @@ test_files:
|
|
733
740
|
- spec/earth/electricity/green_button_adoption_spec.rb
|
734
741
|
- spec/earth/fuel/fuel_spec.rb
|
735
742
|
- spec/earth/hospitality/commercial_building_energy_consumption_survey_response_spec.rb
|
736
|
-
- spec/earth/hospitality/
|
743
|
+
- spec/earth/hospitality/lodging_class_spec.rb
|
737
744
|
- spec/earth/industry/cbecs_energy_intensity_spec.rb
|
738
745
|
- spec/earth/industry/industry_spec.rb
|
739
746
|
- spec/earth/industry/mecs_energy_spec.rb
|
740
747
|
- spec/earth/industry/mecs_ratio_spec.rb
|
748
|
+
- spec/earth/industry/merchant_category_spec.rb
|
741
749
|
- spec/earth/industry/naics_2002_naics_2007_concordance_spec.rb
|
742
750
|
- spec/earth/industry/naics_2002_sic_1987_concordance_spec.rb
|
743
751
|
- spec/earth/industry/naics_2002_spec.rb
|
@@ -747,6 +755,7 @@ test_files:
|
|
747
755
|
- spec/earth/locality/egrid_country_spec.rb
|
748
756
|
- spec/earth/locality/egrid_region_spec.rb
|
749
757
|
- spec/earth/locality/egrid_subregion_spec.rb
|
758
|
+
- spec/earth/locality/electricity_mix_spec.rb
|
750
759
|
- spec/earth/locality/state_spec.rb
|
751
760
|
- spec/earth/locality/zip_code_spec.rb
|
752
761
|
- spec/earth/pet/species_spec.rb
|