urbanopt-cli 0.6.2 → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +32 -0
- data/CMakeLists.txt +23 -23
- data/FindOpenStudioSDK.cmake +6 -6
- data/Gemfile +5 -5
- data/example_files/Gemfile +10 -7
- data/example_files/base_workflow_res.osw +10 -0
- data/example_files/example_project_combined.json +13 -3
- data/example_files/example_project_with_PV.json +751 -0
- data/example_files/mappers/Baseline.rb +51 -30
- data/example_files/mappers/CreateBar.rb +37 -0
- data/example_files/mappers/FlexibleHotWater.rb +69 -0
- data/example_files/mappers/Floorspace.rb +30 -0
- data/example_files/mappers/HighEfficiency.rb +5 -4
- data/example_files/mappers/base_workflow.osw +5 -0
- data/example_files/mappers/createbar_workflow.osw +3 -1
- data/example_files/mappers/floorspace_workflow.osw +2 -1
- data/example_files/measures/BuildResidentialModel/measure.rb +109 -76
- data/example_files/osm_building/7.osm +0 -307
- data/example_files/osm_building/8.osm +0 -419
- data/example_files/osm_building/9.osm +0 -664
- data/example_files/reopt/base_assumptions.json +3 -3
- data/example_files/reopt/multiPV_assumptions.json +2 -2
- data/example_files/residential/enclosure.tsv +102 -102
- data/example_files/resources/hpxml-measures/.github/workflows/config.yml +22 -16
- data/example_files/resources/hpxml-measures/.gitignore +3 -7
- data/example_files/resources/hpxml-measures/.rubocop.yml +67 -8
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +1752 -1455
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +3229 -5431
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +386 -553
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +1075 -363
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/measure.rb +212 -0
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/measure.xml +898 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules.rb +109 -188
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_README.md +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML/resources/schedules_clothes_dryer_power_consumption_dist.csv → BuildResidentialScheduleFile/resources/schedules_clothes_dryer_consumption_dist.csv} +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML/resources/schedules_clothes_dryer_power_duration_dist.csv → BuildResidentialScheduleFile/resources/schedules_clothes_dryer_duration_dist.csv} +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML/resources/schedules_clothes_washer_power_consumption_dist.csv → BuildResidentialScheduleFile/resources/schedules_clothes_washer_consumption_dist.csv} +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML/resources/schedules_clothes_washer_power_duration_dist.csv → BuildResidentialScheduleFile/resources/schedules_clothes_washer_duration_dist.csv} +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_config.json +2 -2
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_config.md +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML/resources/schedules_cooking_power_consumption_dist.csv → BuildResidentialScheduleFile/resources/schedules_cooking_consumption_dist.csv} +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML/resources/schedules_cooking_power_duration_dist.csv → BuildResidentialScheduleFile/resources/schedules_cooking_duration_dist.csv} +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML/resources/schedules_dishwasher_power_consumption_dist.csv → BuildResidentialScheduleFile/resources/schedules_dishwasher_consumption_dist.csv} +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML/resources/schedules_dishwasher_power_duration_dist.csv → BuildResidentialScheduleFile/resources/schedules_dishwasher_duration_dist.csv} +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML/resources/schedules_clothes_washer_cluster_size_probability.csv → BuildResidentialScheduleFile/resources/schedules_hot_water_clothes_washer_cluster_size_probability.csv} +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML/resources/schedules_clothes_washer_event_duration_probability.csv → BuildResidentialScheduleFile/resources/schedules_hot_water_clothes_washer_event_duration_probability.csv} +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML/resources/schedules_dishwasher_cluster_size_probability.csv → BuildResidentialScheduleFile/resources/schedules_hot_water_dishwasher_cluster_size_probability.csv} +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML/resources/schedules_dishwasher_event_duration_probability.csv → BuildResidentialScheduleFile/resources/schedules_hot_water_dishwasher_event_duration_probability.csv} +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_shower_cluster_size_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_shower_event_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_0_cooking_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_0_cooking_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_0_cooking_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_0_dishwashing_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_0_dishwashing_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_0_dishwashing_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_0_laundry_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_0_laundry_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_0_laundry_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_0_shower_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_0_shower_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_0_shower_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_1_cooking_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_1_cooking_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_1_cooking_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_1_dishwashing_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_1_dishwashing_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_1_dishwashing_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_1_laundry_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_1_laundry_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_1_laundry_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_1_shower_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_1_shower_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_1_shower_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_2_cooking_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_2_cooking_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_2_cooking_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_2_dishwashing_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_2_dishwashing_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_2_dishwashing_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_2_laundry_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_2_laundry_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_2_laundry_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_2_shower_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_2_shower_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_2_shower_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_3_cooking_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_3_cooking_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_3_cooking_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_3_dishwashing_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_3_dishwashing_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_3_dishwashing_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_3_laundry_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_3_laundry_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_3_laundry_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_3_shower_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_3_shower_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_duration_probability_cluster_3_shower_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_mkv_chain_initial_prob_cluster_0.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_mkv_chain_initial_prob_cluster_1.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_mkv_chain_initial_prob_cluster_2.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_mkv_chain_initial_prob_cluster_3.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_mkv_chain_transition_prob_cluster_0.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_mkv_chain_transition_prob_cluster_1.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_mkv_chain_transition_prob_cluster_2.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_mkv_chain_transition_prob_cluster_3.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekday_state_and_monthly_schedule_shift.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_0_cooking_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_0_cooking_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_0_cooking_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_0_dishwashing_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_0_dishwashing_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_0_dishwashing_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_0_laundry_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_0_laundry_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_0_laundry_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_0_shower_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_0_shower_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_0_shower_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_1_cooking_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_1_cooking_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_1_cooking_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_1_dishwashing_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_1_dishwashing_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_1_dishwashing_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_1_laundry_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_1_laundry_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_1_laundry_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_1_shower_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_1_shower_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_1_shower_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_2_cooking_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_2_cooking_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_2_cooking_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_2_dishwashing_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_2_dishwashing_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_2_dishwashing_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_2_laundry_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_2_laundry_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_2_laundry_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_2_shower_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_2_shower_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_2_shower_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_3_cooking_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_3_cooking_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_3_cooking_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_3_dishwashing_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_3_dishwashing_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_3_dishwashing_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_3_laundry_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_3_laundry_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_3_laundry_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_3_shower_evening_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_3_shower_midday_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_duration_probability_cluster_3_shower_morning_duration_probability.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_mkv_chain_initial_prob_cluster_0.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_mkv_chain_initial_prob_cluster_1.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_mkv_chain_initial_prob_cluster_2.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_mkv_chain_initial_prob_cluster_3.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_mkv_chain_transition_prob_cluster_0.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_mkv_chain_transition_prob_cluster_1.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_mkv_chain_transition_prob_cluster_2.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_mkv_chain_transition_prob_cluster_3.csv +0 -0
- data/example_files/resources/hpxml-measures/{BuildResidentialHPXML → BuildResidentialScheduleFile}/resources/schedules_weekend_state_and_monthly_schedule_shift.csv +0 -0
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/tests/build_residential_schedule_file_test.rb +526 -0
- data/example_files/resources/hpxml-measures/Changelog.md +84 -8
- data/example_files/resources/hpxml-measures/Gemfile +3 -0
- data/example_files/resources/hpxml-measures/Gemfile.lock +3 -11
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +387 -387
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +167 -251
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/BaseElements.xsd +275 -59
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/EPvalidator.xml +471 -247
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXML.xsd +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLDataTypes.xsd +171 -79
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLvalidator.xml +155 -78
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +188 -141
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/battery.rb +83 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +99 -11
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +558 -342
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/energyplus.rb +2 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +64 -72
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hotwater_appliances.rb +96 -93
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +965 -350
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +887 -216
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +664 -760
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +306 -287
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/lighting.rb +20 -29
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/location.rb +0 -20
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/lu_hvac_equipment_efficiency.csv +493 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/lu_water_heater_efficiency.csv +157 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/materials.rb +156 -108
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/meta_measure.rb +41 -3
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/minitest_helper.rb +14 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +18 -18
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/pv.rb +14 -7
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/smooth.csv +8761 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/stochastic-vacancy.csv +8761 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/stochastic.csv +8761 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +431 -428
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/validator.rb +21 -12
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +3 -3
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +245 -234
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/weather.rb +10 -5
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +19 -8
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +44 -23
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_battery.rb +241 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +1374 -297
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_enclosure.rb +702 -55
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +0 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +238 -40
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +0 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_schedules.rb +186 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +955 -176
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +47 -61
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/util.rb +1 -1
- data/example_files/resources/hpxml-measures/LICENSE.md +1 -1
- data/example_files/resources/hpxml-measures/README.md +12 -9
- data/example_files/resources/hpxml-measures/Rakefile +1 -1
- data/example_files/resources/hpxml-measures/ReportHPXMLOutput/measure.rb +448 -0
- data/example_files/resources/hpxml-measures/ReportHPXMLOutput/measure.xml +81 -0
- data/example_files/resources/hpxml-measures/ReportHPXMLOutput/resources/constants.rb +71 -0
- data/example_files/resources/hpxml-measures/ReportHPXMLOutput/tests/hpxml_output_report_test.rb +232 -0
- data/example_files/resources/hpxml-measures/ReportSimulationOutput/measure.rb +1977 -0
- data/example_files/resources/hpxml-measures/{SimulationOutputReport → ReportSimulationOutput}/measure.xml +682 -31
- data/example_files/resources/hpxml-measures/{SimulationOutputReport → ReportSimulationOutput}/resources/constants.rb +20 -2
- data/example_files/resources/hpxml-measures/{SimulationOutputReport → ReportSimulationOutput}/tests/output_report_test.rb +83 -218
- data/example_files/resources/hpxml-measures/docs/source/index.rst +1 -2
- data/example_files/resources/hpxml-measures/docs/source/intro.rst +6 -3
- data/example_files/resources/hpxml-measures/docs/source/usage_instructions.rst +73 -0
- data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +915 -494
- data/example_files/resources/hpxml-measures/docs/source/workflow_outputs.rst +263 -111
- data/example_files/resources/hpxml-measures/tasks.rb +3830 -6981
- data/example_files/resources/hpxml-measures/weather/ZAF_Cape.Town.688160_IWEC-cache.csv +35 -0
- data/example_files/resources/hpxml-measures/weather/ZAF_Cape.Town.688160_IWEC.epw +8768 -0
- data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +25 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +102 -91
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-portable.xml +93 -83
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-whole-home.xml +93 -83
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-multiple.xml +93 -83
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +93 -83
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +102 -91
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +103 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +96 -85
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +102 -91
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +102 -91
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +102 -91
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +96 -125
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +119 -104
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +94 -89
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +93 -83
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-battery-outside.xml +584 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml +99 -68
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +119 -79
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml +99 -68
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-heated-space.xml +99 -68
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml +99 -68
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml +97 -66
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.xml +97 -66
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml +97 -66
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +100 -69
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +100 -69
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-baseboard.xml +94 -65
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.xml +94 -65
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml +94 -65
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +94 -65
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +97 -68
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-baseboard.xml +94 -65
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.xml +94 -65
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml +94 -65
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +97 -68
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +97 -68
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +98 -67
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +96 -64
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +105 -84
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-multiple.xml +108 -77
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +100 -69
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +100 -69
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +98 -67
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +97 -66
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +97 -66
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +97 -66
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/invalid-facility-type-surfaces.xml → base-bldgtype-single-family-attached-2stories.xml} +152 -167
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached.xml +124 -114
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +102 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +102 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +102 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +105 -96
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +102 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +102 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +102 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +102 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +102 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +102 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +104 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +102 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +102 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +108 -101
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +96 -85
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-elec-uef.xml +105 -96
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef-fhr.xml +574 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +105 -96
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-uef.xml +105 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +131 -119
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +120 -99
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +131 -118
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-orientations.xml +579 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +110 -101
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +213 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/invalid-id.xml → base-enclosure-skylights-physical-properties.xml} +123 -105
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-shading.xml +114 -105
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +112 -103
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +92 -82
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +533 -547
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces2.xml +545 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/generator-output-greater-than-consumption.xml → base-enclosure-thermal-mass.xml} +117 -111
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +239 -109
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +88 -79
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-physical-properties.xml +584 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-shading.xml +115 -106
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +89 -79
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-basement-garage.xml +123 -110
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +119 -172
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-wall-interior-insulation.xml +107 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-crawlspace.xml +572 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +119 -128
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +92 -82
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +117 -110
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +106 -91
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +107 -98
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +105 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +108 -98
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +108 -98
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +115 -110
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml +103 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-switchover-temperature.xml +590 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml +589 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-heating-only.xml +105 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-manual-s-oversize-allowances.xml +103 -93
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed.xml +106 -93
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-manual-s-oversize-allowances.xml +103 -93
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed.xml +106 -93
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/hvac-invalid-distribution-system-type.xml → base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-boiler.xml} +587 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-manual-s-oversize-allowances.xml +103 -93
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed.xml +106 -93
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-elec-only.xml +102 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-central-ac-1-speed.xml +103 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-only.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-1-speed.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-2-speed.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-var-speed.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-plus-air-to-air-heat-pump-heating.xml +108 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed.xml +106 -93
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml +106 -93
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-elec-resistance-only.xml +99 -92
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-evap-cooler-furnace-gas.xml +103 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-floor-furnace-propane-only.xml +99 -92
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-elec-only.xml +102 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-2-speed.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-var-speed.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-only.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-room-ac.xml +103 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml +105 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-manual-s-oversize-allowances.xml +103 -93
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump.xml +106 -93
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-cooling-only.xml +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-heating-only.xml +105 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-manual-s-oversize-allowances.xml +103 -93
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted.xml +106 -93
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ductless-backup-stove.xml +541 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/invalid-relatedhvac-dhw-indirect.xml → base-hvac-autosize-ptac-with-heating.xml} +528 -517
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/boiler-invalid-afue.xml → base-hvac-autosize-ptac.xml} +109 -113
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp.xml +531 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-only.xml +99 -92
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-stove-oil-only.xml +99 -92
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-wall-furnace-elec-only.xml +100 -93
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +102 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +103 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +106 -96
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/unattached-solar-thermal-system.xml → base-hvac-ducts-area-fractions.xml} +596 -577
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.xml → base-hvac-ducts-leakage-cfm50.xml} +108 -106
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +99 -92
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +103 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +99 -92
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +99 -92
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fixed-heater-gas-only.xml +99 -92
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only.xml +99 -92
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-coal-only.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +102 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +103 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-cooling-only.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-heating-only.xml +102 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +103 -93
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.xml → base-hvac-install-quality-air-to-air-heat-pump-1-speed.xml} +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.xml → base-hvac-install-quality-air-to-air-heat-pump-2-speed.xml} +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.xml → base-hvac-install-quality-air-to-air-heat-pump-var-speed.xml} +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.xml → base-hvac-install-quality-furnace-gas-central-ac-1-speed.xml} +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.xml → base-hvac-install-quality-furnace-gas-central-ac-2-speed.xml} +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.xml → base-hvac-install-quality-furnace-gas-central-ac-var-speed.xml} +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-install-quality-all-furnace-gas-only.xml → base-hvac-install-quality-furnace-gas-only.xml} +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-install-quality-all-ground-to-air-heat-pump.xml → base-hvac-install-quality-ground-to-air-heat-pump.xml} +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.xml → base-hvac-install-quality-mini-split-air-conditioner-only-ducted.xml} +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-install-quality-all-mini-split-heat-pump-ducted.xml → base-hvac-install-quality-mini-split-heat-pump-ducted.xml} +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +99 -92
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +101 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +103 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +104 -94
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-backup-stove.xml +542 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +101 -92
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +124 -100
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-none.xml +94 -89
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-portable-heater-gas-only.xml +99 -92
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat-detailed.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/cfis-with-hydronic-distribution.xml → base-hvac-ptac-with-heating.xml} +530 -532
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/hvac-distribution-return-duct-leakage-missing.xml → base-hvac-ptac.xml} +515 -528
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-pthp.xml +531 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +99 -92
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-ceer.xml +516 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +99 -92
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-seasons.xml +584 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +99 -92
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +99 -92
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +100 -93
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +110 -96
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-holiday.xml +586 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +95 -86
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +108 -98
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/invalid-foundation-wall-properties.xml → base-location-capetown-zaf.xml} +134 -127
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +92 -82
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +105 -98
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-helena-mt.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-honolulu-hi.xml +92 -82
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +92 -82
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-phoenix-az.xml +92 -82
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-portland-or.xml +108 -98
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +107 -98
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +104 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +107 -98
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +105 -96
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +141 -114
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +106 -97
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +105 -96
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +101 -101
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +105 -96
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +157 -112
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +157 -112
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +96 -87
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +108 -99
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shielding-of-home.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +113 -102
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-multiple-buildings.xml +318 -291
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-ah.xml +608 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/enclosure-garage-missing-roof-ceiling.xml → base-pv-battery-garage.xml} +678 -626
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/multifamily-reference-surface.xml → base-pv-battery-outside-degrades.xml} +610 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-outside.xml +608 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +105 -96
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.xml → base-schedules-detailed-smooth.xml} +105 -101
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.xml → base-schedules-detailed-stochastic-vacancy.xml} +105 -98
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.xml → base-schedules-detailed-stochastic.xml} +105 -101
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-lighting-detailed.xml → base-schedules-simple.xml} +625 -585
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +104 -95
- data/example_files/resources/hpxml-measures/workflow/template-build-hpxml-and-stocastic-schedules.osw +129 -0
- data/example_files/resources/hpxml-measures/workflow/template-stochastic-schedules.osw +53 -0
- data/example_files/resources/hpxml-measures/workflow/template.osw +7 -2
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AC.xml +75 -44
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AL.xml +75 -44
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AC.xml +75 -44
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AL.xml +75 -44
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AC.xml +75 -44
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AL.xml +75 -44
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AC.xml +75 -44
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AL.xml +75 -44
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AC.xml +63 -32
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AL.xml +63 -32
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AC.xml +66 -35
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AL.xml +66 -35
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AC.xml +66 -35
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AL.xml +66 -35
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AC.xml +69 -38
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AL.xml +69 -38
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AC.xml +75 -44
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AL.xml +75 -44
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AC.xml +75 -44
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AL.xml +75 -44
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AC.xml +75 -44
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AL.xml +75 -44
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L302XC.xml +78 -47
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L304XC.xml +78 -47
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L322XC.xml +114 -103
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L324XC.xml +126 -103
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results.csv +321 -294
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_ashrae_140.csv +26 -26
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_hvac_sizing.csv +320 -293
- data/example_files/resources/hpxml-measures/workflow/tests/compare.py +351 -0
- data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +253 -260
- data/example_files/visualization/input_visualization_feature.html +14 -5
- data/example_files/visualization/input_visualization_scenario.html +12 -6
- data/example_files/weather/USA_NY_Buffalo-Greater.Buffalo.Intl.AP.725280_TMY3.ddy +17 -17
- data/lib/uo_cli/version.rb +1 -1
- data/lib/uo_cli.rb +66 -17
- data/uo_cli.gemspec +6 -6
- metadata +219 -639
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/constants.rb +0 -59
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-coal.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief-portable.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief-whole-home.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-gas.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-modified.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-none.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-oil.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-propane.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-wood.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-flat.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-radiant-barrier.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-unvented-insulated-roof.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-vented.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-boiler-only-baseboard.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-mechvent-preconditioning.osw +0 -348
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-mechvent.osw +0 -342
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-pv.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-water-heater.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-single-family-attached.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless-outside.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-dwhr.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-outside.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-standbyloss.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-with-solar-fraction.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-electric.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-gas.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-hpwh.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-indirect.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-low-flow-fixtures.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-none.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-demand.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-manual.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-nocontrol.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-temperature.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-timer.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-evacuated-tube.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-flat-plate.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-ics.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-fraction.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-indirect-flat-plate.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-thermosyphon-flat-plate.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-coal.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-elec-uef.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-outside.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-uef.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-outside.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-uef.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar-fraction.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-oil.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-wood.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-outside.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-uef.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-uef.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar-fraction.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-propane.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories-garage.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-1.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-2.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-4.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-5.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-garage.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-ach-house-pressure.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm-house-pressure.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm50.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-flue.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-natural-ach.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-overhangs.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-windows-none.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-ambient.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-conditioned-basement-slab-insulation.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-slab.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-assembly-r.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-wall-insulation.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unvented-crawlspace.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-vented-crawlspace.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed-heating-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-2-speed.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-var-speed.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-coal-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-elec-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-central-ac-1-speed.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-oil-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-propane-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-wood-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-1-speed.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-2-speed.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-var-speed.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-mini-split-heat-pump-ducted.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ducts-leakage-percent.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-elec-resistance-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-furnace-gas.osw +0 -335
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only-ducted.osw +0 -335
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only.osw +0 -335
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fireplace-wood-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fixed-heater-gas-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-floor-furnace-propane-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-coal-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-central-ac-1-speed.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-2-speed.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-var-speed.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-room-ac.osw +0 -336
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-oil-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-propane-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-wood-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump-cooling-only.osw +0 -336
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump-heating-only.osw +0 -336
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump.osw +0 -336
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.osw +0 -340
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.osw +0 -340
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.osw +0 -340
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-only.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-ground-to-air-heat-pump.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-mini-split-heat-pump-ducted.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.osw +0 -340
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ducted.osw +0 -336
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ductless.osw +0 -336
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-cooling-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-heating-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ductless.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-none.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-portable-heater-gas-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-programmable-thermostat-detailed.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only-33percent.osw +0 -336
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only.osw +0 -336
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-setpoints.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-oil-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-wood-pellets-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-undersized.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-wall-furnace-elec-only.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-ceiling-fans.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-detailed.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-AMY-2012.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-baltimore-md.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-dallas-tx.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-duluth-mn.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-helena-mt.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-honolulu-hi.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-miami-fl.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-phoenix-az.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-portland-or.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-balanced.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-bath-kitchen-fans.osw +0 -345
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis-evap-cooler-only-ducted.osw +0 -335
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv-atre-asre.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust-rated-flow-rate.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv-asre.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-supply.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-whole-house-fan.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-defaults.osw +0 -324
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon2.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-neighbor-shading.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-shielding-of-home.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-usage-multiplier.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-pv.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-stochastic-vacant.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-stochastic.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-user-specified.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-calendar-year-custom.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-custom.osw +0 -342
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-disabled.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-runperiod-1-month.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-timestep-10-mins.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-auto.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-double-exterior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-eaves.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-single-exterior-front.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-bottom-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-bottom.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-middle-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-middle.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-top-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-top.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-bottom-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-bottom.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-middle-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-middle.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-top-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-top.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-bottom-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-bottom.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-middle-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-middle.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-top-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-top.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-bottom-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-bottom.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-middle-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-middle.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-top-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-top.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-middle-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-middle.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-top-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-top.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-bottom-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-bottom.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-middle-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-middle.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-top-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-top.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-bottom-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-bottom.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-middle-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-middle.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-top-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-top.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-bottom-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-bottom.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-middle-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-middle.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-top-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-top.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-bottom-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-bottom.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-middle-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-middle.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-top-double-loaded-interior.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-top.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-gable.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-hip.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-flat.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-double-exterior.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-double-loaded-interior.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-single-exterior-front.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab-middle.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab-right.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement-middle.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement-right.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace-middle.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace-right.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace-middle.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace-right.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-dhw-solar-latitude.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-atticroof-conditioned-eaves-gable.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-atticroof-conditioned-eaves-hip.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-atticroof-conditioned.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-partially-protruded.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-windows-shading.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-gas-hot-tub-heater-with-zero-kwh.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-gas-pool-heater-with-zero-kwh.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-pv-roofpitch.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-schedules-random-seed.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-boiler-to-heat-pump.osw +0 -336
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-boiler-to-heating-system.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-fireplace-to-heat-pump.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-fireplace-to-heating-system.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-portable-heater-to-heat-pump.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-portable-heater-to-heating-system.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-refrigerator.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-clothes-washer-kwh.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-dishwasher-kwh.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-extra-refrigerator-kwh.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-freezer-kwh.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-refrigerator-kwh.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-floor-insulation.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-one-floor-above-grade.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-basement-with-ceiling-insulation.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/cooling-system-and-heat-pump.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/dhw-indirect-without-boiler.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/ducts-location-and-areas-not-same-type.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/foundation-wall-insulation-greater-than-height.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/heating-system-and-heat-pump.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-crawlspace-zero-foundation-height.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-slab-non-zero-foundation-height.osw +0 -341
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-no-building-orientation.osw +0 -338
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-fuel-loads.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-other-plug-loads.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-tv-plug-loads.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-vehicle-plug-loads.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-well-pump-plug-loads.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-electric-heat-pump-water-heater.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-ceiling-fan-quantity.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-geometry-num-bathrooms.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-but-no-primary-heating.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-majority-heat.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-total-heat-load.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-ambient.osw +0 -339
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-no-building-orientation.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-finished-basement-zero-foundation-height.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-slab-non-zero-foundation-height.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-with-shared-system.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/slab-non-zero-foundation-height-above-grade.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unconditioned-basement-with-wall-and-ceiling-insulation.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-attic-with-floor-and-roof-insulation.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-crawlspace-with-wall-and-ceiling-insulation.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-attic-with-floor-and-roof-insulation.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-crawlspace-with-wall-and-ceiling-insulation.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/zero-number-of-bedrooms.osw +0 -337
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/schedules/stochastic.csv +0 -8761
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/schedules/user-specified.csv +0 -8761
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/schedules/vacant.csv +0 -8761
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_bath_schedule_1bed.csv +0 -369
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_bath_schedule_2bed.csv +0 -465
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_bath_schedule_3bed.csv +0 -611
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_bath_schedule_4bed.csv +0 -685
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_bath_schedule_5bed.csv +0 -767
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_clotheswasher_schedule_1bed.csv +0 -637
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_clotheswasher_schedule_2bed.csv +0 -744
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_clotheswasher_schedule_3bed.csv +0 -929
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_clotheswasher_schedule_4bed.csv +0 -1044
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_clotheswasher_schedule_5bed.csv +0 -1250
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_dishwasher_schedule_1bed.csv +0 -754
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_dishwasher_schedule_2bed.csv +0 -961
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_dishwasher_schedule_3bed.csv +0 -1102
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_dishwasher_schedule_4bed.csv +0 -1293
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_dishwasher_schedule_5bed.csv +0 -1508
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_fixtures_schedule_1bed.csv +0 -13097
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_fixtures_schedule_2bed.csv +0 -15977
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_fixtures_schedule_3bed.csv +0 -18624
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_fixtures_schedule_4bed.csv +0 -22075
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_fixtures_schedule_5bed.csv +0 -25005
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data_hot_water_max_flows.csv +0 -6
- data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.rb +0 -2444
- data/example_files/resources/hpxml-measures/docs/source/build_residential_hpxml.rst +0 -110
- data/example_files/resources/hpxml-measures/docs/source/getting_started.rst +0 -57
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic-vacant.xml +0 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic.xml +0 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-user-specified.xml +0 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-dryer-location.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-washer-location.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cooking-range-location.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dehumidifier-fraction-served.xml +0 -535
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dehumidifier-setpoints.xml +0 -535
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-frac-load-served.xml +0 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-ef-tank.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-uef-tank-heat-pump.xml +0 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dishwasher-location.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-leakage-cfm25.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-leakage-percent.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location-unconditioned-space.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duplicate-id.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-attic-missing-roof.xml +0 -547
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-exterior-foundation-wall.xml +0 -544
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-slab.xml +0 -547
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa2.xml +0 -448
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-exterior-wall.xml +0 -614
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-slab.xml +0 -611
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-ceiling-roof.xml +0 -551
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-exterior-wall.xml +0 -473
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-floor-slab.xml +0 -489
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-sensible-fuel-load.xml +0 -760
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-sensible-plug-load.xml +0 -759
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-total-fuel-load.xml +0 -761
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-total-plug-load.xml +0 -759
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/furnace-invalid-afue.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/generator-number-of-bedrooms-served.xml +0 -460
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/heat-pump-mixed-fixed-and-autosize-capacities.xml +0 -560
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-cooling.xml +0 -921
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-heating.xml +0 -921
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-cooling.xml +0 -547
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-heating.xml +0 -547
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-frac-load-served.xml +0 -921
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-inconsistent-fan-powers.xml +0 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-shared-negative-seer-eq.xml +0 -407
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-assembly-effective-rvalue.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-boolean.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-float.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-integer.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-daylight-saving.xml +0 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-distribution-cfa-served.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-epw-filepath.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-equipment.xml +0 -466
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-id2.xml +0 -591
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-infiltration-volume.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-input-parameters.xml +0 -565
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-neighbor-shading-azimuth.xml +0 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-bedrooms-served.xml +0 -465
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-conditioned-floors.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-units-served.xml +0 -451
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-desuperheater.xml +0 -551
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-runperiod.xml +0 -565
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-schema-version.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-shared-vent-in-unit-flowrate.xml +0 -473
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-timestep.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-window-height.xml +0 -583
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/lighting-fractions.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-duct-location.xml +0 -917
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-elements.xml +0 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-appliance.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-duct.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-water-heater.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-buildings-without-building-id.xml +0 -1657
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-buildings-wrong-building-id.xml +0 -1657
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-shared-cooling-systems.xml +0 -432
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-shared-heating-systems.xml +0 -434
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-roof.xml +0 -591
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-wall.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/num-bedrooms-exceeds-limit.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/orphaned-hvac-distribution.xml +0 -547
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerator-location.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-multiple-primary.xml +0 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-no-primary.xml +0 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-desuperheater.xml +0 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-dhw-indirect.xml +0 -527
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-fraction-one.xml +0 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-combi-tankless.xml +0 -532
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-desuperheater.xml +0 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-dhw-indirect.xml +0 -532
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-cfis.xml +0 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-door.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-hvac-distribution.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-clothes-washer-water-heater.xml +0 -466
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-dishwasher-water-heater.xml +0 -466
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-skylight.xml +0 -591
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-window.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location-other.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location.xml +0 -563
- data/example_files/resources/hpxml-measures/workflow/tests/compare.rb +0 -130
@@ -104,19 +104,48 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
104
104
|
_test_default_site_values(hpxml_default, HPXML::SiteTypeSuburban, HPXML::ShieldingNormal)
|
105
105
|
end
|
106
106
|
|
107
|
+
def test_neighbor_buildings
|
108
|
+
# Test inputs not overridden by defaults
|
109
|
+
hpxml = _create_hpxml('base-misc-neighbor-shading.xml')
|
110
|
+
hpxml.neighbor_buildings[0].azimuth = 123
|
111
|
+
hpxml.neighbor_buildings[1].azimuth = 321
|
112
|
+
hpxml.walls[0].azimuth = 123
|
113
|
+
hpxml.walls[1].azimuth = 321
|
114
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
115
|
+
hpxml_default = _test_measure()
|
116
|
+
_test_default_neighbor_building_values(hpxml_default, [123, 321])
|
117
|
+
|
118
|
+
# Test defaults
|
119
|
+
hpxml.neighbor_buildings[0].azimuth = nil
|
120
|
+
hpxml.neighbor_buildings[1].azimuth = nil
|
121
|
+
hpxml.neighbor_buildings[0].orientation = HPXML::OrientationEast
|
122
|
+
hpxml.neighbor_buildings[1].orientation = HPXML::OrientationNorth
|
123
|
+
hpxml.walls[0].azimuth = 90
|
124
|
+
hpxml.walls[1].azimuth = 0
|
125
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
126
|
+
hpxml_default = _test_measure()
|
127
|
+
_test_default_neighbor_building_values(hpxml_default, [90, 0])
|
128
|
+
end
|
129
|
+
|
107
130
|
def test_occupancy
|
108
131
|
# Test inputs not overridden by defaults
|
109
132
|
hpxml = _create_hpxml('base.xml')
|
110
133
|
hpxml.building_occupancy.number_of_residents = 1
|
134
|
+
hpxml.building_occupancy.weekday_fractions = ConstantDaySchedule
|
135
|
+
hpxml.building_occupancy.weekend_fractions = ConstantDaySchedule
|
136
|
+
hpxml.building_occupancy.monthly_multipliers = ConstantMonthSchedule
|
111
137
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
112
138
|
hpxml_default = _test_measure()
|
113
|
-
_test_default_occupancy_values(hpxml_default, 1)
|
139
|
+
_test_default_occupancy_values(hpxml_default, 1, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
114
140
|
|
115
141
|
# Test defaults
|
116
142
|
hpxml.building_occupancy.number_of_residents = nil
|
143
|
+
hpxml.building_occupancy.weekday_fractions = nil
|
144
|
+
hpxml.building_occupancy.weekend_fractions = nil
|
145
|
+
hpxml.building_occupancy.monthly_multipliers = nil
|
117
146
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
118
147
|
hpxml_default = _test_measure()
|
119
|
-
_test_default_occupancy_values(hpxml_default, 3)
|
148
|
+
_test_default_occupancy_values(hpxml_default, 3, Schedule.OccupantsWeekdayFractions, Schedule.OccupantsWeekendFractions, Schedule.OccupantsMonthlyMultipliers)
|
120
149
|
end
|
121
150
|
|
122
151
|
def test_building_construction
|
@@ -145,12 +174,33 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
145
174
|
hpxml_default = _test_measure()
|
146
175
|
_test_default_building_construction_values(hpxml_default, 27000, 10, false, 2)
|
147
176
|
|
148
|
-
# Test defaults w/
|
177
|
+
# Test defaults w/ conditioned building volume
|
149
178
|
hpxml.building_construction.conditioned_building_volume = 20000
|
150
179
|
hpxml.building_construction.average_ceiling_height = nil
|
151
180
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
152
181
|
hpxml_default = _test_measure()
|
153
182
|
_test_default_building_construction_values(hpxml_default, 20000, 7.4, false, 2)
|
183
|
+
|
184
|
+
# Test defaults w/ infiltration volume
|
185
|
+
hpxml.building_construction.conditioned_building_volume = nil
|
186
|
+
hpxml.air_infiltration_measurements[0].infiltration_volume = 25650
|
187
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
188
|
+
hpxml_default = _test_measure()
|
189
|
+
_test_default_building_construction_values(hpxml_default, 21600, 8, false, 2)
|
190
|
+
|
191
|
+
# Test defaults w/ infiltration volume
|
192
|
+
hpxml.building_construction.conditioned_building_volume = nil
|
193
|
+
hpxml.air_infiltration_measurements[0].infiltration_volume = 18000
|
194
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
195
|
+
hpxml_default = _test_measure()
|
196
|
+
_test_default_building_construction_values(hpxml_default, 18000, 6.67, false, 2)
|
197
|
+
|
198
|
+
# Test defaults w/ conditioned crawlspace
|
199
|
+
hpxml = _create_hpxml('base-foundation-conditioned-crawlspace.xml')
|
200
|
+
hpxml.building_construction.conditioned_building_volume = nil
|
201
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
202
|
+
hpxml_default = _test_measure()
|
203
|
+
_test_default_building_construction_values(hpxml_default, 16200, 8, false, 2)
|
154
204
|
end
|
155
205
|
|
156
206
|
def test_infiltration
|
@@ -159,20 +209,27 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
159
209
|
hpxml.air_infiltration_measurements[0].infiltration_volume = 25000
|
160
210
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
161
211
|
hpxml_default = _test_measure()
|
162
|
-
_test_default_infiltration_values(hpxml_default, 25000)
|
212
|
+
_test_default_infiltration_values(hpxml_default.air_infiltration_measurements[0], 25000)
|
163
213
|
|
164
214
|
# Test defaults w/ conditioned basement
|
165
215
|
hpxml.air_infiltration_measurements[0].infiltration_volume = nil
|
166
216
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
167
217
|
hpxml_default = _test_measure()
|
168
|
-
_test_default_infiltration_values(hpxml_default, 2700 * 8)
|
218
|
+
_test_default_infiltration_values(hpxml_default.air_infiltration_measurements[0], 2700 * 8)
|
169
219
|
|
170
220
|
# Test defaults w/o conditioned basement
|
171
221
|
hpxml = _create_hpxml('base-foundation-slab.xml')
|
172
222
|
hpxml.air_infiltration_measurements[0].infiltration_volume = nil
|
173
223
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
174
224
|
hpxml_default = _test_measure()
|
175
|
-
_test_default_infiltration_values(hpxml_default, 1350 * 8)
|
225
|
+
_test_default_infiltration_values(hpxml_default.air_infiltration_measurements[0], 1350 * 8)
|
226
|
+
|
227
|
+
# Test defaults w/ conditioned crawlspace
|
228
|
+
hpxml = _create_hpxml('base-foundation-conditioned-crawlspace.xml')
|
229
|
+
hpxml.air_infiltration_measurements[0].infiltration_volume = nil
|
230
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
231
|
+
hpxml_default = _test_measure()
|
232
|
+
_test_default_infiltration_values(hpxml_default.air_infiltration_measurements[0], 1350 * 12)
|
176
233
|
end
|
177
234
|
|
178
235
|
def test_attics
|
@@ -181,13 +238,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
181
238
|
hpxml.attics[0].vented_attic_sla = 0.001
|
182
239
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
183
240
|
hpxml_default = _test_measure()
|
184
|
-
_test_default_attic_values(hpxml_default, 0.001)
|
241
|
+
_test_default_attic_values(hpxml_default.attics[0], 0.001)
|
185
242
|
|
186
243
|
# Test defaults
|
187
244
|
hpxml.attics[0].vented_attic_sla = nil
|
188
245
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
189
246
|
hpxml_default = _test_measure()
|
190
|
-
_test_default_attic_values(hpxml_default, 1.0 / 300.0)
|
247
|
+
_test_default_attic_values(hpxml_default.attics[0], 1.0 / 300.0)
|
191
248
|
end
|
192
249
|
|
193
250
|
def test_foundations
|
@@ -196,13 +253,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
196
253
|
hpxml.foundations[0].vented_crawlspace_sla = 0.001
|
197
254
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
198
255
|
hpxml_default = _test_measure()
|
199
|
-
_test_default_foundation_values(hpxml_default, 0.001)
|
256
|
+
_test_default_foundation_values(hpxml_default.foundations[0], 0.001)
|
200
257
|
|
201
258
|
# Test defaults
|
202
259
|
hpxml.foundations[0].vented_crawlspace_sla = nil
|
203
260
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
204
261
|
hpxml_default = _test_measure()
|
205
|
-
_test_default_foundation_values(hpxml_default, 1.0 / 150.0)
|
262
|
+
_test_default_foundation_values(hpxml_default.foundations[0], 1.0 / 150.0)
|
206
263
|
end
|
207
264
|
|
208
265
|
def test_roofs
|
@@ -212,26 +269,55 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
212
269
|
hpxml.roofs[0].solar_absorptance = 0.77
|
213
270
|
hpxml.roofs[0].roof_color = HPXML::ColorDark
|
214
271
|
hpxml.roofs[0].emittance = 0.88
|
272
|
+
hpxml.roofs[0].interior_finish_type = HPXML::InteriorFinishPlaster
|
273
|
+
hpxml.roofs[0].interior_finish_thickness = 0.25
|
274
|
+
hpxml.roofs[0].azimuth = 123
|
275
|
+
hpxml.roofs[0].radiant_barrier_grade = 3
|
215
276
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
216
277
|
hpxml_default = _test_measure()
|
217
|
-
_test_default_roof_values(hpxml_default, HPXML::RoofTypeMetal, 0.77, HPXML::ColorDark, 0.88, true)
|
278
|
+
_test_default_roof_values(hpxml_default.roofs[0], HPXML::RoofTypeMetal, 0.77, HPXML::ColorDark, 0.88, true, 3, HPXML::InteriorFinishPlaster, 0.25, 123)
|
218
279
|
|
219
280
|
# Test defaults w/ RoofColor
|
220
281
|
hpxml.roofs[0].roof_type = nil
|
221
282
|
hpxml.roofs[0].solar_absorptance = nil
|
222
283
|
hpxml.roofs[0].roof_color = HPXML::ColorLight
|
223
284
|
hpxml.roofs[0].emittance = nil
|
224
|
-
hpxml.roofs[0].
|
285
|
+
hpxml.roofs[0].interior_finish_thickness = nil
|
286
|
+
hpxml.roofs[0].orientation = HPXML::OrientationNortheast
|
287
|
+
hpxml.roofs[0].azimuth = nil
|
288
|
+
hpxml.roofs[0].radiant_barrier_grade = nil
|
225
289
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
226
290
|
hpxml_default = _test_measure()
|
227
|
-
_test_default_roof_values(hpxml_default, HPXML::RoofTypeAsphaltShingles, 0.75, HPXML::ColorLight, 0.90,
|
291
|
+
_test_default_roof_values(hpxml_default.roofs[0], HPXML::RoofTypeAsphaltShingles, 0.75, HPXML::ColorLight, 0.90, true, 1, HPXML::InteriorFinishPlaster, 0.5, 45)
|
228
292
|
|
229
293
|
# Test defaults w/ SolarAbsorptance
|
230
294
|
hpxml.roofs[0].solar_absorptance = 0.99
|
231
295
|
hpxml.roofs[0].roof_color = nil
|
296
|
+
hpxml.roofs[0].interior_finish_type = nil
|
297
|
+
hpxml.roofs[0].radiant_barrier = nil
|
298
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
299
|
+
hpxml_default = _test_measure()
|
300
|
+
_test_default_roof_values(hpxml_default.roofs[0], HPXML::RoofTypeAsphaltShingles, 0.99, HPXML::ColorDark, 0.90, false, nil, HPXML::InteriorFinishNone, nil, 45)
|
301
|
+
|
302
|
+
# Test defaults w/o RoofColor & SolarAbsorptance
|
303
|
+
hpxml.roofs[0].solar_absorptance = nil
|
304
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
305
|
+
hpxml_default = _test_measure()
|
306
|
+
_test_default_roof_values(hpxml_default.roofs[0], HPXML::RoofTypeAsphaltShingles, 0.85, HPXML::ColorMedium, 0.90, false, nil, HPXML::InteriorFinishNone, nil, 45)
|
307
|
+
|
308
|
+
# Test defaults w/ conditioned space
|
309
|
+
hpxml = _create_hpxml('base-atticroof-cathedral.xml')
|
310
|
+
hpxml.roofs[0].roof_type = nil
|
311
|
+
hpxml.roofs[0].solar_absorptance = nil
|
312
|
+
hpxml.roofs[0].roof_color = HPXML::ColorLight
|
313
|
+
hpxml.roofs[0].emittance = nil
|
314
|
+
hpxml.roofs[0].interior_finish_type = nil
|
315
|
+
hpxml.roofs[0].interior_finish_thickness = nil
|
316
|
+
hpxml.roofs[0].orientation = HPXML::OrientationNortheast
|
317
|
+
hpxml.roofs[0].azimuth = nil
|
232
318
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
233
319
|
hpxml_default = _test_measure()
|
234
|
-
_test_default_roof_values(hpxml_default, HPXML::RoofTypeAsphaltShingles, 0.
|
320
|
+
_test_default_roof_values(hpxml_default.roofs[0], HPXML::RoofTypeAsphaltShingles, 0.75, HPXML::ColorLight, 0.90, false, nil, HPXML::InteriorFinishGypsumBoard, 0.5, 45)
|
235
321
|
end
|
236
322
|
|
237
323
|
def test_rim_joists
|
@@ -241,25 +327,34 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
241
327
|
hpxml.rim_joists[0].solar_absorptance = 0.55
|
242
328
|
hpxml.rim_joists[0].color = HPXML::ColorLight
|
243
329
|
hpxml.rim_joists[0].emittance = 0.88
|
330
|
+
hpxml.rim_joists[0].azimuth = 123
|
244
331
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
245
332
|
hpxml_default = _test_measure()
|
246
|
-
_test_default_rim_joist_values(hpxml_default, HPXML::SidingTypeBrick, 0.55, HPXML::ColorLight, 0.88)
|
333
|
+
_test_default_rim_joist_values(hpxml_default.rim_joists[0], HPXML::SidingTypeBrick, 0.55, HPXML::ColorLight, 0.88, 123)
|
247
334
|
|
248
335
|
# Test defaults w/ Color
|
249
336
|
hpxml.rim_joists[0].siding = nil
|
250
337
|
hpxml.rim_joists[0].solar_absorptance = nil
|
251
338
|
hpxml.rim_joists[0].color = HPXML::ColorDark
|
252
339
|
hpxml.rim_joists[0].emittance = nil
|
340
|
+
hpxml.rim_joists[0].orientation = HPXML::OrientationNorthwest
|
341
|
+
hpxml.rim_joists[0].azimuth = nil
|
253
342
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
254
343
|
hpxml_default = _test_measure()
|
255
|
-
_test_default_rim_joist_values(hpxml_default, HPXML::SidingTypeWood, 0.95, HPXML::ColorDark, 0.90)
|
344
|
+
_test_default_rim_joist_values(hpxml_default.rim_joists[0], HPXML::SidingTypeWood, 0.95, HPXML::ColorDark, 0.90, 315)
|
256
345
|
|
257
346
|
# Test defaults w/ SolarAbsorptance
|
258
347
|
hpxml.rim_joists[0].solar_absorptance = 0.99
|
259
348
|
hpxml.rim_joists[0].color = nil
|
260
349
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
261
350
|
hpxml_default = _test_measure()
|
262
|
-
_test_default_rim_joist_values(hpxml_default, HPXML::SidingTypeWood, 0.99, HPXML::ColorDark, 0.90)
|
351
|
+
_test_default_rim_joist_values(hpxml_default.rim_joists[0], HPXML::SidingTypeWood, 0.99, HPXML::ColorDark, 0.90, 315)
|
352
|
+
|
353
|
+
# Test defaults w/o Color & SolarAbsorptance
|
354
|
+
hpxml.rim_joists[0].solar_absorptance = nil
|
355
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
356
|
+
hpxml_default = _test_measure()
|
357
|
+
_test_default_rim_joist_values(hpxml_default.rim_joists[0], HPXML::SidingTypeWood, 0.7, HPXML::ColorMedium, 0.90, 315)
|
263
358
|
end
|
264
359
|
|
265
360
|
def test_walls
|
@@ -269,40 +364,130 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
269
364
|
hpxml.walls[0].solar_absorptance = 0.66
|
270
365
|
hpxml.walls[0].color = HPXML::ColorDark
|
271
366
|
hpxml.walls[0].emittance = 0.88
|
367
|
+
hpxml.walls[0].interior_finish_type = HPXML::InteriorFinishWood
|
368
|
+
hpxml.walls[0].interior_finish_thickness = 0.75
|
369
|
+
hpxml.walls[0].azimuth = 123
|
272
370
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
273
371
|
hpxml_default = _test_measure()
|
274
|
-
_test_default_wall_values(hpxml_default, HPXML::SidingTypeFiberCement, 0.66, HPXML::ColorDark, 0.88)
|
372
|
+
_test_default_wall_values(hpxml_default.walls[0], HPXML::SidingTypeFiberCement, 0.66, HPXML::ColorDark, 0.88, HPXML::InteriorFinishWood, 0.75, 123)
|
275
373
|
|
276
|
-
# Test defaults
|
374
|
+
# Test defaults w/ Color
|
277
375
|
hpxml.walls[0].siding = nil
|
278
376
|
hpxml.walls[0].solar_absorptance = nil
|
279
377
|
hpxml.walls[0].color = HPXML::ColorLight
|
280
378
|
hpxml.walls[0].emittance = nil
|
379
|
+
hpxml.walls[0].interior_finish_type = HPXML::InteriorFinishWood
|
380
|
+
hpxml.walls[0].interior_finish_thickness = nil
|
381
|
+
hpxml.walls[0].orientation = HPXML::OrientationSouth
|
382
|
+
hpxml.walls[0].azimuth = nil
|
281
383
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
282
384
|
hpxml_default = _test_measure()
|
283
|
-
_test_default_wall_values(hpxml_default, HPXML::SidingTypeWood, 0.5, HPXML::ColorLight, 0.90)
|
385
|
+
_test_default_wall_values(hpxml_default.walls[0], HPXML::SidingTypeWood, 0.5, HPXML::ColorLight, 0.90, HPXML::InteriorFinishWood, 0.5, 180)
|
284
386
|
|
285
|
-
# Test defaults
|
387
|
+
# Test defaults w/ SolarAbsorptance
|
286
388
|
hpxml.walls[0].solar_absorptance = 0.99
|
287
389
|
hpxml.walls[0].color = nil
|
390
|
+
hpxml.walls[0].interior_finish_type = nil
|
288
391
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
289
392
|
hpxml_default = _test_measure()
|
290
|
-
_test_default_wall_values(hpxml_default, HPXML::SidingTypeWood, 0.99, HPXML::ColorDark, 0.90)
|
393
|
+
_test_default_wall_values(hpxml_default.walls[0], HPXML::SidingTypeWood, 0.99, HPXML::ColorDark, 0.90, HPXML::InteriorFinishGypsumBoard, 0.5, 180)
|
394
|
+
|
395
|
+
# Test defaults w/o Color & SolarAbsorptance
|
396
|
+
hpxml.walls[0].solar_absorptance = nil
|
397
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
398
|
+
hpxml_default = _test_measure()
|
399
|
+
_test_default_wall_values(hpxml_default.walls[0], HPXML::SidingTypeWood, 0.7, HPXML::ColorMedium, 0.90, HPXML::InteriorFinishGypsumBoard, 0.5, 180)
|
400
|
+
|
401
|
+
# Test defaults w/ unconditioned space
|
402
|
+
hpxml.walls[1].siding = nil
|
403
|
+
hpxml.walls[1].solar_absorptance = nil
|
404
|
+
hpxml.walls[1].color = HPXML::ColorLight
|
405
|
+
hpxml.walls[1].emittance = nil
|
406
|
+
hpxml.walls[1].interior_finish_type = nil
|
407
|
+
hpxml.walls[1].interior_finish_thickness = nil
|
408
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
409
|
+
hpxml_default = _test_measure()
|
410
|
+
_test_default_wall_values(hpxml_default.walls[1], HPXML::SidingTypeWood, 0.5, HPXML::ColorLight, 0.90, HPXML::InteriorFinishNone, nil, 180)
|
291
411
|
end
|
292
412
|
|
293
413
|
def test_foundation_walls
|
294
414
|
# Test inputs not overridden by defaults
|
295
415
|
hpxml = _create_hpxml('base.xml')
|
296
416
|
hpxml.foundation_walls[0].thickness = 7.0
|
417
|
+
hpxml.foundation_walls[0].interior_finish_type = HPXML::InteriorFinishGypsumCompositeBoard
|
418
|
+
hpxml.foundation_walls[0].interior_finish_thickness = 0.625
|
419
|
+
hpxml.foundation_walls[0].azimuth = 123
|
420
|
+
hpxml.foundation_walls[0].area = 789
|
421
|
+
hpxml.foundation_walls[0].insulation_interior_distance_to_top = 0.5
|
422
|
+
hpxml.foundation_walls[0].insulation_interior_distance_to_bottom = 7.75
|
423
|
+
hpxml.foundation_walls[0].insulation_exterior_distance_to_top = 0.75
|
424
|
+
hpxml.foundation_walls[0].insulation_exterior_distance_to_bottom = 7.5
|
425
|
+
hpxml.foundation_walls[0].type = HPXML::FoundationWallTypeConcreteBlock
|
297
426
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
298
427
|
hpxml_default = _test_measure()
|
299
|
-
_test_default_foundation_wall_values(hpxml_default, 7.0
|
428
|
+
_test_default_foundation_wall_values(hpxml_default.foundation_walls[0], 7.0, HPXML::InteriorFinishGypsumCompositeBoard, 0.625, 123,
|
429
|
+
789, 0.5, 7.75, 0.75, 7.5, HPXML::FoundationWallTypeConcreteBlock)
|
300
430
|
|
301
431
|
# Test defaults
|
302
432
|
hpxml.foundation_walls[0].thickness = nil
|
433
|
+
hpxml.foundation_walls[0].interior_finish_type = nil
|
434
|
+
hpxml.foundation_walls[0].interior_finish_thickness = nil
|
435
|
+
hpxml.foundation_walls[0].orientation = HPXML::OrientationSoutheast
|
436
|
+
hpxml.foundation_walls[0].azimuth = nil
|
437
|
+
hpxml.foundation_walls[0].area = nil
|
438
|
+
hpxml.foundation_walls[0].length = 100
|
439
|
+
hpxml.foundation_walls[0].insulation_interior_distance_to_bottom = nil
|
440
|
+
hpxml.foundation_walls[0].insulation_exterior_distance_to_bottom = nil
|
441
|
+
hpxml.foundation_walls[0].type = nil
|
442
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
443
|
+
hpxml_default = _test_measure()
|
444
|
+
_test_default_foundation_wall_values(hpxml_default.foundation_walls[0], 8.0, HPXML::InteriorFinishGypsumBoard, 0.5, 135,
|
445
|
+
800, 0.5, 8.0, 0.75, 8.0, HPXML::FoundationWallTypeSolidConcrete)
|
446
|
+
|
447
|
+
# Test defaults w/ unconditioned surfaces
|
448
|
+
hpxml = _create_hpxml('base-foundation-unconditioned-basement.xml')
|
449
|
+
hpxml.foundation_walls[0].thickness = nil
|
450
|
+
hpxml.foundation_walls[0].interior_finish_type = nil
|
451
|
+
hpxml.foundation_walls[0].interior_finish_thickness = nil
|
452
|
+
hpxml.foundation_walls[0].orientation = HPXML::OrientationSoutheast
|
453
|
+
hpxml.foundation_walls[0].azimuth = nil
|
454
|
+
hpxml.foundation_walls[0].area = nil
|
455
|
+
hpxml.foundation_walls[0].length = 100
|
456
|
+
hpxml.foundation_walls[0].height = 10
|
457
|
+
hpxml.foundation_walls[0].insulation_interior_distance_to_top = nil
|
458
|
+
hpxml.foundation_walls[0].insulation_interior_distance_to_bottom = nil
|
459
|
+
hpxml.foundation_walls[0].insulation_exterior_distance_to_top = nil
|
460
|
+
hpxml.foundation_walls[0].insulation_exterior_distance_to_bottom = nil
|
461
|
+
hpxml.foundation_walls[0].type = nil
|
462
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
463
|
+
hpxml_default = _test_measure()
|
464
|
+
_test_default_foundation_wall_values(hpxml_default.foundation_walls[0], 8.0, HPXML::InteriorFinishNone, nil, 135,
|
465
|
+
1000, 0.0, 10.0, 0.0, 10.0, HPXML::FoundationWallTypeSolidConcrete)
|
466
|
+
end
|
467
|
+
|
468
|
+
def test_frame_floors
|
469
|
+
# Test inputs not overridden by defaults
|
470
|
+
hpxml = _create_hpxml('base.xml')
|
471
|
+
hpxml.frame_floors[0].interior_finish_type = HPXML::InteriorFinishWood
|
472
|
+
hpxml.frame_floors[0].interior_finish_thickness = 0.375
|
473
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
474
|
+
hpxml_default = _test_measure()
|
475
|
+
_test_default_frame_floor_values(hpxml_default.frame_floors[0], HPXML::InteriorFinishWood, 0.375)
|
476
|
+
|
477
|
+
# Test defaults w/ ceiling
|
478
|
+
hpxml.frame_floors[0].interior_finish_type = nil
|
479
|
+
hpxml.frame_floors[0].interior_finish_thickness = nil
|
480
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
481
|
+
hpxml_default = _test_measure()
|
482
|
+
_test_default_frame_floor_values(hpxml_default.frame_floors[0], HPXML::InteriorFinishGypsumBoard, 0.5)
|
483
|
+
|
484
|
+
# Test defaults w/ floor
|
485
|
+
hpxml = _create_hpxml('base-foundation-vented-crawlspace.xml')
|
486
|
+
hpxml.frame_floors[1].interior_finish_type = nil
|
487
|
+
hpxml.frame_floors[1].interior_finish_thickness = nil
|
303
488
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
304
489
|
hpxml_default = _test_measure()
|
305
|
-
|
490
|
+
_test_default_frame_floor_values(hpxml_default.frame_floors[1], HPXML::InteriorFinishNone, nil)
|
306
491
|
end
|
307
492
|
|
308
493
|
def test_slabs
|
@@ -313,7 +498,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
313
498
|
hpxml.slabs[0].carpet_fraction = 0.5
|
314
499
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
315
500
|
hpxml_default = _test_measure()
|
316
|
-
_test_default_slab_values(hpxml_default, 7.0, 1.1, 0.5)
|
501
|
+
_test_default_slab_values(hpxml_default.slabs[0], 7.0, 1.1, 0.5)
|
317
502
|
|
318
503
|
# Test defaults w/ conditioned basement
|
319
504
|
hpxml.slabs[0].thickness = nil
|
@@ -321,7 +506,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
321
506
|
hpxml.slabs[0].carpet_fraction = nil
|
322
507
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
323
508
|
hpxml_default = _test_measure()
|
324
|
-
_test_default_slab_values(hpxml_default, 4.0, 2.0, 0.8)
|
509
|
+
_test_default_slab_values(hpxml_default.slabs[0], 4.0, 2.0, 0.8)
|
325
510
|
|
326
511
|
# Test defaults w/ crawlspace
|
327
512
|
hpxml = _create_hpxml('base-foundation-unvented-crawlspace.xml')
|
@@ -330,7 +515,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
330
515
|
hpxml.slabs[0].carpet_fraction = nil
|
331
516
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
332
517
|
hpxml_default = _test_measure()
|
333
|
-
_test_default_slab_values(hpxml_default, 0.0, 0.0, 0.0)
|
518
|
+
_test_default_slab_values(hpxml_default.slabs[0], 0.0, 0.0, 0.0)
|
334
519
|
end
|
335
520
|
|
336
521
|
def test_windows
|
@@ -342,11 +527,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
342
527
|
window.exterior_shading_factor_winter = 0.55
|
343
528
|
window.interior_shading_factor_summer = 0.66
|
344
529
|
window.interior_shading_factor_winter = 0.77
|
530
|
+
window.azimuth = 123
|
345
531
|
end
|
346
532
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
347
533
|
hpxml_default = _test_measure()
|
348
534
|
n_windows = hpxml_default.windows.size
|
349
|
-
_test_default_window_values(hpxml_default, [0.44] * n_windows, [0.55] * n_windows, [0.66] * n_windows, [0.77] * n_windows, [0.5] * n_windows)
|
535
|
+
_test_default_window_values(hpxml_default, [0.44] * n_windows, [0.55] * n_windows, [0.66] * n_windows, [0.77] * n_windows, [0.5] * n_windows, [123] * n_windows)
|
350
536
|
|
351
537
|
# Test defaults
|
352
538
|
hpxml.windows.each do |window|
|
@@ -355,11 +541,54 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
355
541
|
window.exterior_shading_factor_winter = nil
|
356
542
|
window.interior_shading_factor_summer = nil
|
357
543
|
window.interior_shading_factor_winter = nil
|
544
|
+
window.orientation = HPXML::OrientationSouthwest
|
545
|
+
window.azimuth = nil
|
358
546
|
end
|
359
547
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
360
548
|
hpxml_default = _test_measure()
|
361
549
|
n_windows = hpxml_default.windows.size
|
362
|
-
_test_default_window_values(hpxml_default, [1.0] * n_windows, [1.0] * n_windows, [0.7] * n_windows, [0.85] * n_windows, [0.67] * n_windows)
|
550
|
+
_test_default_window_values(hpxml_default, [1.0] * n_windows, [1.0] * n_windows, [0.7] * n_windows, [0.85] * n_windows, [0.67] * n_windows, [225] * n_windows)
|
551
|
+
end
|
552
|
+
|
553
|
+
def test_windows_properties
|
554
|
+
# [frame_type, thermal_break, glass_layers, glass_type, gas_fill] => [ufactor, shgc]
|
555
|
+
tests = { [HPXML::WindowFrameTypeAluminum, false, HPXML::WindowLayersSinglePane, nil, nil] => [1.27, 0.75],
|
556
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersSinglePane, nil, nil] => [0.89, 0.64],
|
557
|
+
[HPXML::WindowFrameTypeAluminum, false, HPXML::WindowLayersSinglePane, HPXML::WindowGlassTypeTintedReflective, nil] => [1.27, 0.64],
|
558
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersSinglePane, HPXML::WindowGlassTypeTintedReflective, nil] => [0.89, 0.54],
|
559
|
+
[HPXML::WindowFrameTypeAluminum, false, HPXML::WindowLayersDoublePane, nil, HPXML::WindowGasAir] => [0.81, 0.67],
|
560
|
+
[HPXML::WindowFrameTypeAluminum, true, HPXML::WindowLayersDoublePane, nil, HPXML::WindowGasAir] => [0.60, 0.67],
|
561
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersDoublePane, nil, HPXML::WindowGasAir] => [0.51, 0.56],
|
562
|
+
[HPXML::WindowFrameTypeAluminum, false, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeTintedReflective, HPXML::WindowGasAir] => [0.81, 0.55],
|
563
|
+
[HPXML::WindowFrameTypeAluminum, true, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeTintedReflective, HPXML::WindowGasAir] => [0.60, 0.55],
|
564
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeTintedReflective, HPXML::WindowGasAir] => [0.51, 0.46],
|
565
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeLowE, HPXML::WindowGasAir] => [0.42, 0.52],
|
566
|
+
[HPXML::WindowFrameTypeAluminum, true, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeLowE, HPXML::WindowGasArgon] => [0.47, 0.62],
|
567
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeLowE, HPXML::WindowGasArgon] => [0.39, 0.52],
|
568
|
+
[HPXML::WindowFrameTypeAluminum, false, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeReflective, HPXML::WindowGasAir] => [0.67, 0.37],
|
569
|
+
[HPXML::WindowFrameTypeAluminum, true, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeReflective, HPXML::WindowGasAir] => [0.47, 0.37],
|
570
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeReflective, HPXML::WindowGasAir] => [0.39, 0.31],
|
571
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeReflective, HPXML::WindowGasArgon] => [0.36, 0.31],
|
572
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersTriplePane, HPXML::WindowGlassTypeLowE, HPXML::WindowGasArgon] => [0.27, 0.31],
|
573
|
+
[nil, nil, HPXML::WindowLayersGlassBlock, nil, nil] => [0.60, 0.60] }
|
574
|
+
tests.each do |k, v|
|
575
|
+
frame_type, thermal_break, glass_layers, glass_type, gas_fill = k
|
576
|
+
ufactor, shgc = v
|
577
|
+
|
578
|
+
hpxml = _create_hpxml('base.xml')
|
579
|
+
hpxml.windows[0].ufactor = nil
|
580
|
+
hpxml.windows[0].shgc = nil
|
581
|
+
hpxml.windows[0].frame_type = frame_type
|
582
|
+
hpxml.windows[0].thermal_break = thermal_break
|
583
|
+
hpxml.windows[0].glass_layers = glass_layers
|
584
|
+
hpxml.windows[0].glass_type = glass_type
|
585
|
+
hpxml.windows[0].gas_fill = gas_fill
|
586
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
587
|
+
hpxml_default = _test_measure()
|
588
|
+
|
589
|
+
assert_equal(ufactor, hpxml_default.windows[0].ufactor)
|
590
|
+
assert_equal(shgc, hpxml_default.windows[0].shgc)
|
591
|
+
end
|
363
592
|
end
|
364
593
|
|
365
594
|
def test_skylights
|
@@ -370,11 +599,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
370
599
|
skylight.exterior_shading_factor_winter = 0.55
|
371
600
|
skylight.interior_shading_factor_summer = 0.66
|
372
601
|
skylight.interior_shading_factor_winter = 0.77
|
602
|
+
skylight.azimuth = 123
|
373
603
|
end
|
374
604
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
375
605
|
hpxml_default = _test_measure()
|
376
606
|
n_skylights = hpxml_default.skylights.size
|
377
|
-
_test_default_skylight_values(hpxml_default, [0.44] * n_skylights, [0.55] * n_skylights, [0.66] * n_skylights, [0.77] * n_skylights)
|
607
|
+
_test_default_skylight_values(hpxml_default, [0.44] * n_skylights, [0.55] * n_skylights, [0.66] * n_skylights, [0.77] * n_skylights, [123] * n_skylights)
|
378
608
|
|
379
609
|
# Test defaults
|
380
610
|
hpxml.skylights.each do |skylight|
|
@@ -382,11 +612,113 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
382
612
|
skylight.exterior_shading_factor_winter = nil
|
383
613
|
skylight.interior_shading_factor_summer = nil
|
384
614
|
skylight.interior_shading_factor_winter = nil
|
615
|
+
skylight.orientation = HPXML::OrientationWest
|
616
|
+
skylight.azimuth = nil
|
385
617
|
end
|
386
618
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
387
619
|
hpxml_default = _test_measure()
|
388
620
|
n_skylights = hpxml_default.skylights.size
|
389
|
-
_test_default_skylight_values(hpxml_default, [1.0] * n_skylights, [1.0] * n_skylights, [1.0] * n_skylights, [1.0] * n_skylights)
|
621
|
+
_test_default_skylight_values(hpxml_default, [1.0] * n_skylights, [1.0] * n_skylights, [1.0] * n_skylights, [1.0] * n_skylights, [270] * n_skylights)
|
622
|
+
end
|
623
|
+
|
624
|
+
def test_skylights_properties
|
625
|
+
# [frame_type, thermal_break, glass_layers, glass_type, gas_fill] => [ufactor, shgc]
|
626
|
+
tests = { [HPXML::WindowFrameTypeAluminum, false, HPXML::WindowLayersSinglePane, nil, nil] => [1.98, 0.75],
|
627
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersSinglePane, nil, nil] => [1.47, 0.64],
|
628
|
+
[HPXML::WindowFrameTypeAluminum, false, HPXML::WindowLayersSinglePane, HPXML::WindowGlassTypeTintedReflective, nil] => [1.98, 0.64],
|
629
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersSinglePane, HPXML::WindowGlassTypeTintedReflective, nil] => [1.47, 0.54],
|
630
|
+
[HPXML::WindowFrameTypeAluminum, false, HPXML::WindowLayersDoublePane, nil, HPXML::WindowGasAir] => [1.30, 0.67],
|
631
|
+
[HPXML::WindowFrameTypeAluminum, true, HPXML::WindowLayersDoublePane, nil, HPXML::WindowGasAir] => [1.10, 0.67],
|
632
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersDoublePane, nil, HPXML::WindowGasAir] => [0.84, 0.56],
|
633
|
+
[HPXML::WindowFrameTypeAluminum, false, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeTintedReflective, HPXML::WindowGasAir] => [1.30, 0.55],
|
634
|
+
[HPXML::WindowFrameTypeAluminum, true, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeTintedReflective, HPXML::WindowGasAir] => [1.10, 0.55],
|
635
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeTintedReflective, HPXML::WindowGasAir] => [0.84, 0.46],
|
636
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeLowE, HPXML::WindowGasAir] => [0.74, 0.52],
|
637
|
+
[HPXML::WindowFrameTypeAluminum, true, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeLowE, HPXML::WindowGasArgon] => [0.95, 0.62],
|
638
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeLowE, HPXML::WindowGasArgon] => [0.68, 0.52],
|
639
|
+
[HPXML::WindowFrameTypeAluminum, false, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeReflective, HPXML::WindowGasAir] => [1.17, 0.37],
|
640
|
+
[HPXML::WindowFrameTypeAluminum, true, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeReflective, HPXML::WindowGasAir] => [0.98, 0.37],
|
641
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeReflective, HPXML::WindowGasAir] => [0.71, 0.31],
|
642
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersDoublePane, HPXML::WindowGlassTypeReflective, HPXML::WindowGasArgon] => [0.65, 0.31],
|
643
|
+
[HPXML::WindowFrameTypeWood, nil, HPXML::WindowLayersTriplePane, HPXML::WindowGlassTypeLowE, HPXML::WindowGasArgon] => [0.47, 0.31],
|
644
|
+
[nil, nil, HPXML::WindowLayersGlassBlock, nil, nil] => [0.60, 0.60] }
|
645
|
+
tests.each do |k, v|
|
646
|
+
frame_type, thermal_break, glass_layers, glass_type, gas_fill = k
|
647
|
+
ufactor, shgc = v
|
648
|
+
|
649
|
+
hpxml = _create_hpxml('base-enclosure-skylights.xml')
|
650
|
+
hpxml.skylights[0].ufactor = nil
|
651
|
+
hpxml.skylights[0].shgc = nil
|
652
|
+
hpxml.skylights[0].frame_type = frame_type
|
653
|
+
hpxml.skylights[0].thermal_break = thermal_break
|
654
|
+
hpxml.skylights[0].glass_layers = glass_layers
|
655
|
+
hpxml.skylights[0].glass_type = glass_type
|
656
|
+
hpxml.skylights[0].gas_fill = gas_fill
|
657
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
658
|
+
hpxml_default = _test_measure()
|
659
|
+
|
660
|
+
assert_equal(ufactor, hpxml_default.skylights[0].ufactor)
|
661
|
+
assert_equal(shgc, hpxml_default.skylights[0].shgc)
|
662
|
+
end
|
663
|
+
end
|
664
|
+
|
665
|
+
def test_doors
|
666
|
+
# Test inputs not overridden by defaults
|
667
|
+
hpxml = _create_hpxml('base.xml')
|
668
|
+
hpxml.doors.each_with_index do |door, i|
|
669
|
+
door.azimuth = 35 * (i + 1)
|
670
|
+
end
|
671
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
672
|
+
hpxml_default = _test_measure()
|
673
|
+
_test_default_door_values(hpxml_default, [35, 70])
|
674
|
+
|
675
|
+
# Test defaults w/ AttachedToWall azimuth
|
676
|
+
hpxml.walls[0].azimuth = 89
|
677
|
+
hpxml.doors.each do |door|
|
678
|
+
door.azimuth = nil
|
679
|
+
end
|
680
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
681
|
+
hpxml_default = _test_measure()
|
682
|
+
_test_default_door_values(hpxml_default, [89, 89])
|
683
|
+
|
684
|
+
# Test defaults w/o AttachedToWall azimuth
|
685
|
+
hpxml.walls[0].azimuth = nil
|
686
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
687
|
+
hpxml_default = _test_measure()
|
688
|
+
_test_default_door_values(hpxml_default, [0, 0])
|
689
|
+
|
690
|
+
# Test defaults w/ Orientation
|
691
|
+
hpxml.doors.each do |door|
|
692
|
+
door.orientation = HPXML::OrientationEast
|
693
|
+
end
|
694
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
695
|
+
hpxml_default = _test_measure()
|
696
|
+
_test_default_door_values(hpxml_default, [90, 90])
|
697
|
+
end
|
698
|
+
|
699
|
+
def test_thermal_mass
|
700
|
+
# Test inputs not overridden by defaults
|
701
|
+
hpxml = _create_hpxml('base-enclosure-thermal-mass.xml')
|
702
|
+
hpxml.partition_wall_mass.area_fraction = 0.5
|
703
|
+
hpxml.partition_wall_mass.interior_finish_thickness = 0.75
|
704
|
+
hpxml.partition_wall_mass.interior_finish_type = HPXML::InteriorFinishWood
|
705
|
+
hpxml.furniture_mass.area_fraction = 0.75
|
706
|
+
hpxml.furniture_mass.type = HPXML::FurnitureMassTypeHeavyWeight
|
707
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
708
|
+
hpxml_default = _test_measure()
|
709
|
+
_test_default_partition_wall_mass_values(hpxml_default.partition_wall_mass, 0.5, HPXML::InteriorFinishWood, 0.75)
|
710
|
+
_test_default_furniture_mass_values(hpxml_default.furniture_mass, 0.75, HPXML::FurnitureMassTypeHeavyWeight)
|
711
|
+
|
712
|
+
# Test defaults
|
713
|
+
hpxml.partition_wall_mass.area_fraction = nil
|
714
|
+
hpxml.partition_wall_mass.interior_finish_thickness = nil
|
715
|
+
hpxml.partition_wall_mass.interior_finish_type = nil
|
716
|
+
hpxml.furniture_mass.area_fraction = nil
|
717
|
+
hpxml.furniture_mass.type = nil
|
718
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
719
|
+
hpxml_default = _test_measure()
|
720
|
+
_test_default_partition_wall_mass_values(hpxml_default.partition_wall_mass, 1.0, HPXML::InteriorFinishGypsumBoard, 0.5)
|
721
|
+
_test_default_furniture_mass_values(hpxml_default.furniture_mass, 0.4, HPXML::FurnitureMassTypeLightWeight)
|
390
722
|
end
|
391
723
|
|
392
724
|
def test_central_air_conditioners
|
@@ -398,9 +730,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
398
730
|
hpxml.cooling_systems[0].charge_defect_ratio = -0.11
|
399
731
|
hpxml.cooling_systems[0].airflow_defect_ratio = -0.22
|
400
732
|
hpxml.cooling_systems[0].cooling_capacity = 12345
|
733
|
+
hpxml.cooling_systems[0].cooling_efficiency_seer = 12.5
|
734
|
+
hpxml.cooling_systems[0].year_installed = 2010
|
401
735
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
402
736
|
hpxml_default = _test_measure()
|
403
|
-
_test_default_central_air_conditioner_values(hpxml_default, 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345)
|
737
|
+
_test_default_central_air_conditioner_values(hpxml_default.cooling_systems[0], 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 12.5)
|
404
738
|
|
405
739
|
# Test defaults
|
406
740
|
hpxml.cooling_systems[0].cooling_shr = nil
|
@@ -409,9 +743,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
409
743
|
hpxml.cooling_systems[0].charge_defect_ratio = nil
|
410
744
|
hpxml.cooling_systems[0].airflow_defect_ratio = nil
|
411
745
|
hpxml.cooling_systems[0].cooling_capacity = nil
|
746
|
+
hpxml.cooling_systems[0].cooling_efficiency_seer = nil
|
747
|
+
hpxml.cooling_systems[0].year_installed = 2010
|
412
748
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
413
749
|
hpxml_default = _test_measure()
|
414
|
-
_test_default_central_air_conditioner_values(hpxml_default, 0.73, HPXML::HVACCompressorTypeSingleStage, 0.
|
750
|
+
_test_default_central_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, HPXML::HVACCompressorTypeSingleStage, 0.375, 0, 0, nil, 13.76)
|
415
751
|
end
|
416
752
|
|
417
753
|
def test_room_air_conditioners
|
@@ -419,16 +755,20 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
419
755
|
hpxml = _create_hpxml('base-hvac-room-ac-only.xml')
|
420
756
|
hpxml.cooling_systems[0].cooling_shr = 0.88
|
421
757
|
hpxml.cooling_systems[0].cooling_capacity = 12345
|
758
|
+
hpxml.cooling_systems[0].cooling_efficiency_eer = 12.5
|
759
|
+
hpxml.cooling_systems[0].year_installed = 2010
|
422
760
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
423
761
|
hpxml_default = _test_measure()
|
424
|
-
|
762
|
+
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.88, 12345, 12.5)
|
425
763
|
|
426
764
|
# Test defaults
|
427
765
|
hpxml.cooling_systems[0].cooling_shr = nil
|
428
766
|
hpxml.cooling_systems[0].cooling_capacity = nil
|
767
|
+
hpxml.cooling_systems[0].cooling_efficiency_eer = nil
|
768
|
+
hpxml.cooling_systems[0].year_installed = 2010
|
429
769
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
430
770
|
hpxml_default = _test_measure()
|
431
|
-
|
771
|
+
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.65, nil, 9.93)
|
432
772
|
end
|
433
773
|
|
434
774
|
def test_evaporative_coolers
|
@@ -437,13 +777,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
437
777
|
hpxml.cooling_systems[0].cooling_capacity = 12345
|
438
778
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
439
779
|
hpxml_default = _test_measure()
|
440
|
-
_test_default_evap_cooler_values(hpxml_default, 12345)
|
780
|
+
_test_default_evap_cooler_values(hpxml_default.cooling_systems[0], 12345)
|
441
781
|
|
442
782
|
# Test defaults
|
443
783
|
hpxml.cooling_systems[0].cooling_capacity = nil
|
444
784
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
445
785
|
hpxml_default = _test_measure()
|
446
|
-
_test_default_evap_cooler_values(hpxml_default, nil)
|
786
|
+
_test_default_evap_cooler_values(hpxml_default.cooling_systems[0], nil)
|
447
787
|
end
|
448
788
|
|
449
789
|
def test_mini_split_air_conditioners
|
@@ -456,7 +796,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
456
796
|
hpxml.cooling_systems[0].cooling_capacity = 12345
|
457
797
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
458
798
|
hpxml_default = _test_measure()
|
459
|
-
_test_default_mini_split_air_conditioner_values(hpxml_default, 0.78, 0.66, -0.11, -0.22, 12345)
|
799
|
+
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.78, 0.66, -0.11, -0.22, 12345)
|
460
800
|
|
461
801
|
# Test defaults
|
462
802
|
hpxml.cooling_systems[0].cooling_shr = nil
|
@@ -466,7 +806,52 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
466
806
|
hpxml.cooling_systems[0].cooling_capacity = nil
|
467
807
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
468
808
|
hpxml_default = _test_measure()
|
469
|
-
_test_default_mini_split_air_conditioner_values(hpxml_default, 0.73, 0.18, 0, 0, nil)
|
809
|
+
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, 0.18, 0, 0, nil)
|
810
|
+
|
811
|
+
# Test defaults w/ ductless
|
812
|
+
hpxml.cooling_systems[0].distribution_system.delete
|
813
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
814
|
+
hpxml_default = _test_measure()
|
815
|
+
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, 0.07, 0, 0, nil)
|
816
|
+
end
|
817
|
+
|
818
|
+
def test_ptac
|
819
|
+
# Test inputs not overridden by defaults
|
820
|
+
hpxml = _create_hpxml('base-hvac-ptac-with-heating.xml')
|
821
|
+
hpxml.cooling_systems[0].cooling_shr = 0.75
|
822
|
+
hpxml.cooling_systems[0].cooling_capacity = 12345
|
823
|
+
hpxml.cooling_systems[0].cooling_efficiency_eer = 12.5
|
824
|
+
hpxml.heating_systems[0].heating_efficiency_percent = 0.98
|
825
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
826
|
+
hpxml_default = _test_measure()
|
827
|
+
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.75, 12345, 12.5)
|
828
|
+
_test_default_elec_resistance(hpxml_default.heating_systems[0], 0.98)
|
829
|
+
|
830
|
+
# Test defaults
|
831
|
+
hpxml.cooling_systems[0].cooling_shr = nil
|
832
|
+
hpxml.cooling_systems[0].cooling_capacity = nil
|
833
|
+
hpxml.heating_systems[0].heating_efficiency_percent = nil
|
834
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
835
|
+
hpxml_default = _test_measure()
|
836
|
+
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.65, nil, 12.5)
|
837
|
+
_test_default_elec_resistance(hpxml_default.heating_systems[0], 1.0)
|
838
|
+
end
|
839
|
+
|
840
|
+
def test_elec_resistance
|
841
|
+
# Test inputs not overridden by defaults
|
842
|
+
hpxml = _create_hpxml('base-hvac-elec-resistance-only.xml')
|
843
|
+
hpxml.heating_systems[0].heating_efficiency_percent = 0.98
|
844
|
+
hpxml.heating_systems[0].year_installed = 2010
|
845
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
846
|
+
hpxml_default = _test_measure()
|
847
|
+
_test_default_elec_resistance(hpxml_default.heating_systems[0], 0.98)
|
848
|
+
|
849
|
+
# Test defaults
|
850
|
+
hpxml.heating_systems[0].heating_efficiency_percent = nil
|
851
|
+
hpxml.heating_systems[0].year_installed = 2010
|
852
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
853
|
+
hpxml_default = _test_measure()
|
854
|
+
_test_default_elec_resistance(hpxml_default.heating_systems[0], 1.0)
|
470
855
|
end
|
471
856
|
|
472
857
|
def test_furnaces
|
@@ -475,17 +860,21 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
475
860
|
hpxml.heating_systems[0].fan_watts_per_cfm = 0.66
|
476
861
|
hpxml.heating_systems[0].airflow_defect_ratio = -0.22
|
477
862
|
hpxml.heating_systems[0].heating_capacity = 12345
|
863
|
+
hpxml.heating_systems[0].heating_efficiency_afue = 0.85
|
864
|
+
hpxml.heating_systems[0].year_installed = 2010
|
478
865
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
479
866
|
hpxml_default = _test_measure()
|
480
|
-
_test_default_furnace_values(hpxml_default, 0.66, -0.22, 12345)
|
867
|
+
_test_default_furnace_values(hpxml_default.heating_systems[0], 0.66, -0.22, 12345, 0.85)
|
481
868
|
|
482
869
|
# Test defaults
|
483
870
|
hpxml.heating_systems[0].fan_watts_per_cfm = nil
|
484
871
|
hpxml.heating_systems[0].airflow_defect_ratio = nil
|
485
872
|
hpxml.heating_systems[0].heating_capacity = nil
|
873
|
+
hpxml.heating_systems[0].heating_efficiency_afue = nil
|
874
|
+
hpxml.heating_systems[0].year_installed = 2010
|
486
875
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
487
876
|
hpxml_default = _test_measure()
|
488
|
-
_test_default_furnace_values(hpxml_default, 0.
|
877
|
+
_test_default_furnace_values(hpxml_default.heating_systems[0], 0.5, 0, nil, 0.848)
|
489
878
|
|
490
879
|
# Test defaults w/ gravity distribution system
|
491
880
|
hpxml = _create_hpxml('base-hvac-furnace-gas-only.xml')
|
@@ -493,9 +882,10 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
493
882
|
hpxml.heating_systems[0].fan_watts_per_cfm = nil
|
494
883
|
hpxml.heating_systems[0].airflow_defect_ratio = nil
|
495
884
|
hpxml.heating_systems[0].heating_capacity = nil
|
885
|
+
hpxml.heating_systems[0].year_installed = 2010
|
496
886
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
497
887
|
hpxml_default = _test_measure()
|
498
|
-
_test_default_furnace_values(hpxml_default, 0.0, 0, nil)
|
888
|
+
_test_default_furnace_values(hpxml_default.heating_systems[0], 0.0, 0, nil, 0.92)
|
499
889
|
end
|
500
890
|
|
501
891
|
def test_wall_furnaces
|
@@ -503,16 +893,20 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
503
893
|
hpxml = _create_hpxml('base-hvac-wall-furnace-elec-only.xml')
|
504
894
|
hpxml.heating_systems[0].fan_watts = 22
|
505
895
|
hpxml.heating_systems[0].heating_capacity = 12345
|
896
|
+
hpxml.heating_systems[0].heating_efficiency_afue = 0.60
|
897
|
+
hpxml.heating_systems[0].year_installed = 2010
|
506
898
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
507
899
|
hpxml_default = _test_measure()
|
508
|
-
_test_default_wall_furnace_values(hpxml_default, 22, 12345)
|
900
|
+
_test_default_wall_furnace_values(hpxml_default.heating_systems[0], 22, 12345, 0.60)
|
509
901
|
|
510
902
|
# Test defaults
|
511
903
|
hpxml.heating_systems[0].fan_watts = nil
|
512
904
|
hpxml.heating_systems[0].heating_capacity = nil
|
905
|
+
hpxml.heating_systems[0].heating_efficiency_afue = nil
|
906
|
+
hpxml.heating_systems[0].year_installed = 2010
|
513
907
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
514
908
|
hpxml_default = _test_measure()
|
515
|
-
_test_default_wall_furnace_values(hpxml_default, 0, nil)
|
909
|
+
_test_default_wall_furnace_values(hpxml_default.heating_systems[0], 0, nil, 0.98)
|
516
910
|
end
|
517
911
|
|
518
912
|
def test_floor_furnaces
|
@@ -520,15 +914,19 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
520
914
|
hpxml = _create_hpxml('base-hvac-floor-furnace-propane-only.xml')
|
521
915
|
hpxml.heating_systems[0].fan_watts = 22
|
522
916
|
hpxml.heating_systems[0].heating_capacity = 12345
|
917
|
+
hpxml.heating_systems[0].heating_efficiency_afue = 0.66
|
918
|
+
hpxml.heating_systems[0].year_installed = 1980
|
523
919
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
524
920
|
hpxml_default = _test_measure()
|
525
|
-
_test_default_floor_furnace_values(hpxml_default, 22, 12345)
|
921
|
+
_test_default_floor_furnace_values(hpxml_default.heating_systems[0], 22, 12345, 0.66)
|
526
922
|
|
527
923
|
# Test defaults
|
528
924
|
hpxml.heating_systems[0].fan_watts = nil
|
925
|
+
hpxml.heating_systems[0].heating_efficiency_afue = nil
|
926
|
+
hpxml.heating_systems[0].year_installed = 1980
|
529
927
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
530
928
|
hpxml_default = _test_measure()
|
531
|
-
_test_default_floor_furnace_values(hpxml_default, 0, nil)
|
929
|
+
_test_default_floor_furnace_values(hpxml_default.heating_systems[0], 0, nil, 0.60)
|
532
930
|
end
|
533
931
|
|
534
932
|
def test_boilers
|
@@ -536,30 +934,38 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
536
934
|
hpxml = _create_hpxml('base-hvac-boiler-gas-only.xml')
|
537
935
|
hpxml.heating_systems[0].electric_auxiliary_energy = 99.9
|
538
936
|
hpxml.heating_systems[0].heating_capacity = 12345
|
937
|
+
hpxml.heating_systems[0].heating_efficiency_afue = 0.85
|
938
|
+
hpxml.heating_systems[0].year_installed = 2010
|
539
939
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
540
940
|
hpxml_default = _test_measure()
|
541
|
-
_test_default_boiler_values(hpxml_default, 99.9, 12345)
|
941
|
+
_test_default_boiler_values(hpxml_default.heating_systems[0], 99.9, 12345, 0.85)
|
542
942
|
|
543
943
|
# Test defaults w/ in-unit boiler
|
544
944
|
hpxml.heating_systems[0].electric_auxiliary_energy = nil
|
545
945
|
hpxml.heating_systems[0].heating_capacity = nil
|
946
|
+
hpxml.heating_systems[0].heating_efficiency_afue = nil
|
947
|
+
hpxml.heating_systems[0].year_installed = 2010
|
546
948
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
547
949
|
hpxml_default = _test_measure()
|
548
|
-
_test_default_boiler_values(hpxml_default, 170.0, nil)
|
950
|
+
_test_default_boiler_values(hpxml_default.heating_systems[0], 170.0, nil, 0.797)
|
549
951
|
|
550
952
|
# Test inputs not overridden by defaults (shared boiler)
|
551
953
|
hpxml = _create_hpxml('base-bldgtype-multifamily-shared-boiler-only-baseboard.xml')
|
552
954
|
hpxml.heating_systems[0].shared_loop_watts = nil
|
553
955
|
hpxml.heating_systems[0].electric_auxiliary_energy = 99.9
|
956
|
+
hpxml.heating_systems[0].heating_efficiency_afue = 0.85
|
957
|
+
hpxml.heating_systems[0].year_installed = 1980
|
554
958
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
555
959
|
hpxml_default = _test_measure()
|
556
|
-
_test_default_boiler_values(hpxml_default, 99.9, nil)
|
960
|
+
_test_default_boiler_values(hpxml_default.heating_systems[0], 99.9, nil, 0.85)
|
557
961
|
|
558
962
|
# Test defaults w/ shared boiler
|
559
963
|
hpxml.heating_systems[0].electric_auxiliary_energy = nil
|
964
|
+
hpxml.heating_systems[0].heating_efficiency_afue = nil
|
965
|
+
hpxml.heating_systems[0].year_installed = 1980
|
560
966
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
561
967
|
hpxml_default = _test_measure()
|
562
|
-
_test_default_boiler_values(hpxml_default, 220.0, nil)
|
968
|
+
_test_default_boiler_values(hpxml_default.heating_systems[0], 220.0, nil, 0.723)
|
563
969
|
end
|
564
970
|
|
565
971
|
def test_stoves
|
@@ -567,16 +973,20 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
567
973
|
hpxml = _create_hpxml('base-hvac-stove-oil-only.xml')
|
568
974
|
hpxml.heating_systems[0].fan_watts = 22
|
569
975
|
hpxml.heating_systems[0].heating_capacity = 12345
|
976
|
+
hpxml.heating_systems[0].heating_efficiency_percent = 0.70
|
977
|
+
hpxml.heating_systems[0].year_installed = 1980
|
570
978
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
571
979
|
hpxml_default = _test_measure()
|
572
|
-
_test_default_stove_values(hpxml_default, 22, 12345)
|
980
|
+
_test_default_stove_values(hpxml_default.heating_systems[0], 22, 12345, 0.70)
|
573
981
|
|
574
982
|
# Test defaults
|
575
983
|
hpxml.heating_systems[0].fan_watts = nil
|
576
984
|
hpxml.heating_systems[0].heating_capacity = nil
|
985
|
+
hpxml.heating_systems[0].heating_efficiency_percent = nil
|
986
|
+
hpxml.heating_systems[0].year_installed = 1980
|
577
987
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
578
988
|
hpxml_default = _test_measure()
|
579
|
-
_test_default_stove_values(hpxml_default, 40, nil)
|
989
|
+
_test_default_stove_values(hpxml_default.heating_systems[0], 40, nil, 0.81)
|
580
990
|
end
|
581
991
|
|
582
992
|
def test_portable_heaters
|
@@ -584,16 +994,20 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
584
994
|
hpxml = _create_hpxml('base-hvac-portable-heater-gas-only.xml')
|
585
995
|
hpxml.heating_systems[0].fan_watts = 22
|
586
996
|
hpxml.heating_systems[0].heating_capacity = 12345
|
997
|
+
hpxml.heating_systems[0].heating_efficiency_percent = 0.65
|
998
|
+
hpxml.heating_systems[0].year_installed = 2010
|
587
999
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
588
1000
|
hpxml_default = _test_measure()
|
589
|
-
_test_default_portable_heater_values(hpxml_default, 22, 12345)
|
1001
|
+
_test_default_portable_heater_values(hpxml_default.heating_systems[0], 22, 12345, 0.65)
|
590
1002
|
|
591
1003
|
# Test defaults
|
592
1004
|
hpxml.heating_systems[0].fan_watts = nil
|
593
1005
|
hpxml.heating_systems[0].heating_capacity = nil
|
1006
|
+
hpxml.heating_systems[0].heating_efficiency_percent = nil
|
1007
|
+
hpxml.heating_systems[0].year_installed = 2010
|
594
1008
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
595
1009
|
hpxml_default = _test_measure()
|
596
|
-
_test_default_portable_heater_values(hpxml_default, 0, nil)
|
1010
|
+
_test_default_portable_heater_values(hpxml_default.heating_systems[0], 0, nil, 0.81)
|
597
1011
|
end
|
598
1012
|
|
599
1013
|
def test_fixed_heaters
|
@@ -601,16 +1015,20 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
601
1015
|
hpxml = _create_hpxml('base-hvac-fixed-heater-gas-only.xml')
|
602
1016
|
hpxml.heating_systems[0].fan_watts = 22
|
603
1017
|
hpxml.heating_systems[0].heating_capacity = 12345
|
1018
|
+
hpxml.heating_systems[0].heating_efficiency_percent = 0.60
|
1019
|
+
hpxml.heating_systems[0].year_installed = 2010
|
604
1020
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
605
1021
|
hpxml_default = _test_measure()
|
606
|
-
_test_default_fixed_heater_values(hpxml_default, 22, 12345)
|
1022
|
+
_test_default_fixed_heater_values(hpxml_default.heating_systems[0], 22, 12345, 0.60)
|
607
1023
|
|
608
1024
|
# Test defaults
|
609
1025
|
hpxml.heating_systems[0].fan_watts = nil
|
610
1026
|
hpxml.heating_systems[0].heating_capacity = nil
|
1027
|
+
hpxml.heating_systems[0].heating_efficiency_percent = nil
|
1028
|
+
hpxml.heating_systems[0].year_installed = 2010
|
611
1029
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
612
1030
|
hpxml_default = _test_measure()
|
613
|
-
_test_default_fixed_heater_values(hpxml_default, 0, nil)
|
1031
|
+
_test_default_fixed_heater_values(hpxml_default.heating_systems[0], 0, nil, 0.81)
|
614
1032
|
end
|
615
1033
|
|
616
1034
|
def test_fireplaces
|
@@ -618,16 +1036,30 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
618
1036
|
hpxml = _create_hpxml('base-hvac-fireplace-wood-only.xml')
|
619
1037
|
hpxml.heating_systems[0].fan_watts = 22
|
620
1038
|
hpxml.heating_systems[0].heating_capacity = 12345
|
1039
|
+
hpxml.heating_systems[0].heating_efficiency_percent = 0.50
|
1040
|
+
hpxml.heating_systems[0].year_installed = 2010
|
621
1041
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
622
1042
|
hpxml_default = _test_measure()
|
623
|
-
_test_default_fireplace_values(hpxml_default, 22, 12345)
|
1043
|
+
_test_default_fireplace_values(hpxml_default.heating_systems[0], 22, 12345, 0.50)
|
624
1044
|
|
625
1045
|
# Test defaults
|
626
1046
|
hpxml.heating_systems[0].fan_watts = nil
|
627
1047
|
hpxml.heating_systems[0].heating_capacity = nil
|
1048
|
+
hpxml.heating_systems[0].heating_efficiency_percent = nil
|
1049
|
+
hpxml.heating_systems[0].year_installed = 2010
|
1050
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1051
|
+
hpxml_default = _test_measure()
|
1052
|
+
_test_default_fireplace_values(hpxml_default.heating_systems[0], 0, nil, 0.60)
|
1053
|
+
|
1054
|
+
# Test defaults with electric fireplace
|
1055
|
+
hpxml.heating_systems[0].heating_system_fuel = HPXML::FuelTypeElectricity
|
1056
|
+
hpxml.heating_systems[0].fan_watts = nil
|
1057
|
+
hpxml.heating_systems[0].heating_capacity = nil
|
1058
|
+
hpxml.heating_systems[0].heating_efficiency_percent = nil
|
1059
|
+
hpxml.heating_systems[0].year_installed = 2010
|
628
1060
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
629
1061
|
hpxml_default = _test_measure()
|
630
|
-
_test_default_fireplace_values(hpxml_default, 0, nil)
|
1062
|
+
_test_default_fireplace_values(hpxml_default.heating_systems[0], 0, nil, 1.0)
|
631
1063
|
end
|
632
1064
|
|
633
1065
|
def test_air_source_heat_pumps
|
@@ -642,9 +1074,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
642
1074
|
hpxml.heat_pumps[0].heating_capacity = 23456
|
643
1075
|
hpxml.heat_pumps[0].heating_capacity_17F = 9876
|
644
1076
|
hpxml.heat_pumps[0].backup_heating_capacity = 34567
|
1077
|
+
hpxml.heat_pumps[0].cooling_efficiency_seer = 14.0
|
1078
|
+
hpxml.heat_pumps[0].heating_efficiency_hspf = 8.0
|
1079
|
+
hpxml.heat_pumps[0].year_installed = 2010
|
645
1080
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
646
1081
|
hpxml_default = _test_measure()
|
647
|
-
_test_default_air_to_air_heat_pump_values(hpxml_default, 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 23456, 9876, 34567)
|
1082
|
+
_test_default_air_to_air_heat_pump_values(hpxml_default.heat_pumps[0], 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 23456, 9876, 34567, 14.0, 8.0)
|
648
1083
|
|
649
1084
|
# Test defaults
|
650
1085
|
hpxml.heat_pumps[0].cooling_shr = nil
|
@@ -656,9 +1091,32 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
656
1091
|
hpxml.heat_pumps[0].heating_capacity = nil
|
657
1092
|
hpxml.heat_pumps[0].heating_capacity_17F = nil
|
658
1093
|
hpxml.heat_pumps[0].backup_heating_capacity = nil
|
1094
|
+
hpxml.heat_pumps[0].cooling_efficiency_seer = nil
|
1095
|
+
hpxml.heat_pumps[0].heating_efficiency_hspf = nil
|
1096
|
+
hpxml.heat_pumps[0].year_installed = 2010
|
659
1097
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
660
1098
|
hpxml_default = _test_measure()
|
661
|
-
_test_default_air_to_air_heat_pump_values(hpxml_default, 0.73, HPXML::HVACCompressorTypeSingleStage, 0.5, 0, 0, nil, nil, nil, nil)
|
1099
|
+
_test_default_air_to_air_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, HPXML::HVACCompressorTypeSingleStage, 0.5, 0, 0, nil, nil, nil, nil, 13.76, 7.9)
|
1100
|
+
end
|
1101
|
+
|
1102
|
+
def test_pthp
|
1103
|
+
# Test inputs not overridden by defaults
|
1104
|
+
hpxml = _create_hpxml('base-hvac-pthp.xml')
|
1105
|
+
hpxml.heat_pumps[0].cooling_shr = 0.88
|
1106
|
+
hpxml.heat_pumps[0].cooling_capacity = 12345
|
1107
|
+
hpxml.heat_pumps[0].heating_capacity = 23456
|
1108
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1109
|
+
hpxml_default = _test_measure()
|
1110
|
+
_test_default_pthp_values(hpxml_default.heat_pumps[0], 0.88, 12345, 23456)
|
1111
|
+
|
1112
|
+
# Test defaults
|
1113
|
+
hpxml.heat_pumps[0].cooling_shr = nil
|
1114
|
+
hpxml.heat_pumps[0].cooling_capacity = nil
|
1115
|
+
hpxml.heat_pumps[0].heating_capacity = nil
|
1116
|
+
hpxml.heat_pumps[0].backup_heating_capacity = nil
|
1117
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1118
|
+
hpxml_default = _test_measure()
|
1119
|
+
_test_default_pthp_values(hpxml_default.heat_pumps[0], 0.65, nil, nil)
|
662
1120
|
end
|
663
1121
|
|
664
1122
|
def test_mini_split_heat_pumps
|
@@ -674,7 +1132,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
674
1132
|
hpxml.heat_pumps[0].backup_heating_capacity = 34567
|
675
1133
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
676
1134
|
hpxml_default = _test_measure()
|
677
|
-
_test_default_mini_split_heat_pump_values(hpxml_default, 0.78, 0.66, -0.11, -0.22, 12345, 23456, 9876, 34567)
|
1135
|
+
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.78, 0.66, -0.11, -0.22, 12345, 23456, 9876, 34567)
|
678
1136
|
|
679
1137
|
# Test defaults
|
680
1138
|
hpxml.heat_pumps[0].cooling_shr = nil
|
@@ -687,7 +1145,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
687
1145
|
hpxml.heat_pumps[0].backup_heating_capacity = nil
|
688
1146
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
689
1147
|
hpxml_default = _test_measure()
|
690
|
-
_test_default_mini_split_heat_pump_values(hpxml_default, 0.73, 0.18, 0, 0, nil, nil, nil, nil)
|
1148
|
+
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, 0.18, 0, 0, nil, nil, nil, nil)
|
1149
|
+
|
1150
|
+
# Test defaults w/ ductless
|
1151
|
+
hpxml.heat_pumps[0].distribution_system.delete
|
1152
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1153
|
+
hpxml_default = _test_measure()
|
1154
|
+
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, 0.07, 0, 0, nil, nil, nil, nil)
|
691
1155
|
end
|
692
1156
|
|
693
1157
|
def test_ground_source_heat_pumps
|
@@ -701,7 +1165,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
701
1165
|
hpxml.heat_pumps[0].backup_heating_capacity = 34567
|
702
1166
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
703
1167
|
hpxml_default = _test_measure()
|
704
|
-
_test_default_ground_to_air_heat_pump_values(hpxml_default, 9.9, 0.66, -0.22, 12345, 23456, 34567)
|
1168
|
+
_test_default_ground_to_air_heat_pump_values(hpxml_default.heat_pumps[0], 9.9, 0.66, -0.22, 12345, 23456, 34567)
|
705
1169
|
|
706
1170
|
# Test defaults
|
707
1171
|
hpxml.heat_pumps[0].pump_watts_per_ton = nil
|
@@ -712,7 +1176,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
712
1176
|
hpxml.heat_pumps[0].backup_heating_capacity = nil
|
713
1177
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
714
1178
|
hpxml_default = _test_measure()
|
715
|
-
_test_default_ground_to_air_heat_pump_values(hpxml_default, 30.0, 0.375, 0, nil, nil, nil)
|
1179
|
+
_test_default_ground_to_air_heat_pump_values(hpxml_default.heat_pumps[0], 30.0, 0.375, 0, nil, nil, nil)
|
716
1180
|
end
|
717
1181
|
|
718
1182
|
def test_hvac_increased_hardsized_equipment
|
@@ -749,16 +1213,32 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
749
1213
|
hpxml = _create_hpxml('base-hvac-programmable-thermostat.xml')
|
750
1214
|
hpxml.hvac_controls[0].heating_setback_start_hour = 12
|
751
1215
|
hpxml.hvac_controls[0].cooling_setup_start_hour = 12
|
1216
|
+
hpxml.hvac_controls[0].seasons_heating_begin_month = 1
|
1217
|
+
hpxml.hvac_controls[0].seasons_heating_begin_day = 1
|
1218
|
+
hpxml.hvac_controls[0].seasons_heating_end_month = 6
|
1219
|
+
hpxml.hvac_controls[0].seasons_heating_end_day = 30
|
1220
|
+
hpxml.hvac_controls[0].seasons_cooling_begin_month = 7
|
1221
|
+
hpxml.hvac_controls[0].seasons_cooling_begin_day = 1
|
1222
|
+
hpxml.hvac_controls[0].seasons_cooling_end_month = 12
|
1223
|
+
hpxml.hvac_controls[0].seasons_cooling_end_day = 31
|
752
1224
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
753
1225
|
hpxml_default = _test_measure()
|
754
|
-
_test_default_hvac_control_values(hpxml_default, 12, 12)
|
1226
|
+
_test_default_hvac_control_values(hpxml_default.hvac_controls[0], 12, 12, 1, 1, 6, 30, 7, 1, 12, 31)
|
755
1227
|
|
756
1228
|
# Test defaults
|
757
1229
|
hpxml.hvac_controls[0].heating_setback_start_hour = nil
|
758
1230
|
hpxml.hvac_controls[0].cooling_setup_start_hour = nil
|
1231
|
+
hpxml.hvac_controls[0].seasons_heating_begin_month = nil
|
1232
|
+
hpxml.hvac_controls[0].seasons_heating_begin_day = nil
|
1233
|
+
hpxml.hvac_controls[0].seasons_heating_end_month = nil
|
1234
|
+
hpxml.hvac_controls[0].seasons_heating_end_day = nil
|
1235
|
+
hpxml.hvac_controls[0].seasons_cooling_begin_month = nil
|
1236
|
+
hpxml.hvac_controls[0].seasons_cooling_begin_day = nil
|
1237
|
+
hpxml.hvac_controls[0].seasons_cooling_end_month = nil
|
1238
|
+
hpxml.hvac_controls[0].seasons_cooling_end_day = nil
|
759
1239
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
760
1240
|
hpxml_default = _test_measure()
|
761
|
-
_test_default_hvac_control_values(hpxml_default, 23, 9)
|
1241
|
+
_test_default_hvac_control_values(hpxml_default.hvac_controls[0], 23, 9, 1, 1, 12, 31, 1, 1, 12, 31)
|
762
1242
|
end
|
763
1243
|
|
764
1244
|
def test_hvac_distribution
|
@@ -770,8 +1250,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
770
1250
|
expected_return_locations = ['attic - unvented']
|
771
1251
|
expected_supply_areas = [150.0]
|
772
1252
|
expected_return_areas = [50.0]
|
1253
|
+
expected_supply_fracs = [1.0]
|
1254
|
+
expected_return_fracs = [1.0]
|
773
1255
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
774
|
-
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1256
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1257
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
775
1258
|
|
776
1259
|
# Test defaults w/ conditioned basement
|
777
1260
|
hpxml.hvac_distributions[0].number_of_return_registers = nil
|
@@ -787,8 +1270,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
787
1270
|
expected_return_locations = ['basement - conditioned']
|
788
1271
|
expected_supply_areas = [729.0]
|
789
1272
|
expected_return_areas = [270.0]
|
1273
|
+
expected_supply_fracs = [1.0]
|
1274
|
+
expected_return_fracs = [1.0]
|
790
1275
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
791
|
-
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1276
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1277
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
792
1278
|
|
793
1279
|
# Test defaults w/ multiple foundations
|
794
1280
|
hpxml = _create_hpxml('base-foundation-multiple.xml')
|
@@ -804,8 +1290,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
804
1290
|
expected_return_locations = ['basement - unconditioned']
|
805
1291
|
expected_supply_areas = [364.5]
|
806
1292
|
expected_return_areas = [67.5]
|
1293
|
+
expected_supply_fracs = [1.0]
|
1294
|
+
expected_return_fracs = [1.0]
|
807
1295
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
808
|
-
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1296
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1297
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
809
1298
|
|
810
1299
|
# Test defaults w/ foundation exposed to ambient
|
811
1300
|
hpxml = _create_hpxml('base-foundation-ambient.xml')
|
@@ -821,8 +1310,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
821
1310
|
expected_return_locations = ['attic - unvented']
|
822
1311
|
expected_supply_areas = [364.5]
|
823
1312
|
expected_return_areas = [67.5]
|
1313
|
+
expected_supply_fracs = [1.0]
|
1314
|
+
expected_return_fracs = [1.0]
|
824
1315
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
825
|
-
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1316
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1317
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
826
1318
|
|
827
1319
|
# Test defaults w/ building/unit adjacent to other housing unit
|
828
1320
|
hpxml = _create_hpxml('base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml')
|
@@ -838,8 +1330,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
838
1330
|
expected_return_locations = ['living space']
|
839
1331
|
expected_supply_areas = [243.0]
|
840
1332
|
expected_return_areas = [45.0]
|
1333
|
+
expected_supply_fracs = [1.0]
|
1334
|
+
expected_return_fracs = [1.0]
|
841
1335
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
842
|
-
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1336
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1337
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
843
1338
|
|
844
1339
|
# Test defaults w/ 2-story building
|
845
1340
|
hpxml = _create_hpxml('base-enclosure-2stories.xml')
|
@@ -851,12 +1346,15 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
851
1346
|
end
|
852
1347
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
853
1348
|
hpxml_default = _test_measure()
|
854
|
-
expected_supply_locations = ['basement - conditioned', 'living space']
|
855
|
-
expected_return_locations = ['basement - conditioned', 'living space']
|
856
|
-
expected_supply_areas = [
|
857
|
-
expected_return_areas = [
|
1349
|
+
expected_supply_locations = ['basement - conditioned', 'basement - conditioned', 'living space', 'living space']
|
1350
|
+
expected_return_locations = ['basement - conditioned', 'basement - conditioned', 'living space', 'living space']
|
1351
|
+
expected_supply_areas = [410.06, 410.06, 136.69, 136.69]
|
1352
|
+
expected_return_areas = [227.82, 227.82, 75.94, 75.94]
|
1353
|
+
expected_supply_fracs = [0.375, 0.375, 0.125, 0.125]
|
1354
|
+
expected_return_fracs = [0.375, 0.375, 0.125, 0.125]
|
858
1355
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
859
|
-
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1356
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1357
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
860
1358
|
|
861
1359
|
# Test defaults w/ 1-story building & multiple HVAC systems
|
862
1360
|
hpxml = _create_hpxml('base-hvac-multiple.xml')
|
@@ -872,8 +1370,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
872
1370
|
expected_return_locations = ['basement - conditioned', 'basement - conditioned'] * hpxml_default.hvac_distributions.size
|
873
1371
|
expected_supply_areas = [36.45, 36.45] * hpxml_default.hvac_distributions.size
|
874
1372
|
expected_return_areas = [13.5, 13.5] * hpxml_default.hvac_distributions.size
|
1373
|
+
expected_supply_fracs = [0.5, 0.5] * hpxml_default.hvac_distributions.size
|
1374
|
+
expected_return_fracs = [0.5, 0.5] * hpxml_default.hvac_distributions.size
|
875
1375
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
876
|
-
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1376
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1377
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
877
1378
|
|
878
1379
|
# Test defaults w/ 2-story building & multiple HVAC systems
|
879
1380
|
hpxml = _create_hpxml('base-hvac-multiple.xml')
|
@@ -889,13 +1390,44 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
889
1390
|
expected_supply_locations = ['basement - conditioned', 'basement - conditioned', 'living space', 'living space'] * hpxml_default.hvac_distributions.size
|
890
1391
|
expected_return_locations = ['basement - conditioned', 'basement - conditioned', 'living space', 'living space'] * hpxml_default.hvac_distributions.size
|
891
1392
|
expected_supply_areas = [27.34, 27.34, 9.11, 9.11] * hpxml_default.hvac_distributions.size
|
892
|
-
expected_return_areas = [10.
|
1393
|
+
expected_return_areas = [10.125, 10.125, 3.375, 3.375] * hpxml_default.hvac_distributions.size
|
1394
|
+
expected_supply_fracs = [0.375, 0.375, 0.125, 0.125] * hpxml_default.hvac_distributions.size
|
1395
|
+
expected_return_fracs = [0.375, 0.375, 0.125, 0.125] * hpxml_default.hvac_distributions.size
|
893
1396
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
894
|
-
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1397
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1398
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
1399
|
+
|
1400
|
+
# Test defaults w/ 2-story building & multiple HVAC systems & duct area fractions
|
1401
|
+
hpxml = _create_hpxml('base-hvac-multiple.xml')
|
1402
|
+
hpxml.building_construction.number_of_conditioned_floors_above_grade = 2
|
1403
|
+
hpxml.hvac_distributions.each do |hvac_distribution|
|
1404
|
+
next unless hvac_distribution.distribution_system_type == HPXML::HVACDistributionTypeAir
|
1405
|
+
|
1406
|
+
hvac_distribution.ducts[0].duct_fraction_area = 0.75
|
1407
|
+
hvac_distribution.ducts[1].duct_fraction_area = 0.25
|
1408
|
+
hvac_distribution.ducts[2].duct_fraction_area = 0.5
|
1409
|
+
hvac_distribution.ducts[3].duct_fraction_area = 0.5
|
1410
|
+
end
|
1411
|
+
hpxml.hvac_distributions.each do |hvac_distribution|
|
1412
|
+
hvac_distribution.ducts.each do |duct|
|
1413
|
+
duct.duct_surface_area = nil
|
1414
|
+
end
|
1415
|
+
end
|
1416
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1417
|
+
hpxml_default = _test_measure()
|
1418
|
+
expected_supply_locations = ['attic - unvented', 'outside', 'attic - unvented', 'outside'] * hpxml_default.hvac_distributions.size
|
1419
|
+
expected_return_locations = ['attic - unvented', 'outside', 'attic - unvented', 'outside'] * hpxml_default.hvac_distributions.size
|
1420
|
+
expected_supply_areas = [54.675, 18.225] * hpxml_default.hvac_distributions.size
|
1421
|
+
expected_return_areas = [13.5, 13.5] * hpxml_default.hvac_distributions.size
|
1422
|
+
expected_supply_fracs = [0.75, 0.25] * hpxml_default.hvac_distributions.size
|
1423
|
+
expected_return_fracs = [0.5, 0.5] * hpxml_default.hvac_distributions.size
|
1424
|
+
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1425
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1426
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers)
|
895
1427
|
end
|
896
1428
|
|
897
1429
|
def test_mech_ventilation_fans
|
898
|
-
# Test inputs not overridden by defaults
|
1430
|
+
# Test inputs not overridden by defaults w/ shared exhaust system
|
899
1431
|
hpxml = _create_hpxml('base-mechvent-exhaust.xml')
|
900
1432
|
hpxml.building_construction.residential_facility_type = HPXML::ResidentialTypeSFA
|
901
1433
|
vent_fan = hpxml.ventilation_fans.select { |f| f.used_for_whole_building_ventilation }[0]
|
@@ -903,9 +1435,41 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
903
1435
|
vent_fan.fraction_recirculation = 0.0
|
904
1436
|
vent_fan.in_unit_flow_rate = 10.0
|
905
1437
|
vent_fan.hours_in_operation = 22.0
|
1438
|
+
vent_fan.fan_power = 12.5
|
1439
|
+
vent_fan.tested_flow_rate = nil
|
1440
|
+
vent_fan.rated_flow_rate = nil
|
1441
|
+
vent_fan.calculated_flow_rate = nil
|
1442
|
+
vent_fan.delivered_ventilation = 89
|
1443
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1444
|
+
hpxml_default = _test_measure()
|
1445
|
+
_test_default_mech_vent_values(hpxml_default, true, 22.0, 12.5, 89)
|
1446
|
+
|
1447
|
+
# Test inputs w/ TestedFlowRate
|
1448
|
+
vent_fan.tested_flow_rate = 79
|
1449
|
+
vent_fan.rated_flow_rate = nil
|
1450
|
+
vent_fan.calculated_flow_rate = nil
|
1451
|
+
vent_fan.delivered_ventilation = nil
|
1452
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1453
|
+
hpxml_default = _test_measure()
|
1454
|
+
_test_default_mech_vent_values(hpxml_default, true, 22.0, 12.5, 79)
|
1455
|
+
|
1456
|
+
# Test inputs w/ RatedFlowRate
|
1457
|
+
vent_fan.tested_flow_rate = nil
|
1458
|
+
vent_fan.rated_flow_rate = 69
|
1459
|
+
vent_fan.calculated_flow_rate = nil
|
1460
|
+
vent_fan.delivered_ventilation = nil
|
1461
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1462
|
+
hpxml_default = _test_measure()
|
1463
|
+
_test_default_mech_vent_values(hpxml_default, true, 22.0, 12.5, 69)
|
1464
|
+
|
1465
|
+
# Test inputs w/ CalculatedFlowRate
|
1466
|
+
vent_fan.tested_flow_rate = nil
|
1467
|
+
vent_fan.rated_flow_rate = nil
|
1468
|
+
vent_fan.calculated_flow_rate = 59
|
1469
|
+
vent_fan.delivered_ventilation = nil
|
906
1470
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
907
1471
|
hpxml_default = _test_measure()
|
908
|
-
_test_default_mech_vent_values(hpxml_default, true, 22.0)
|
1472
|
+
_test_default_mech_vent_values(hpxml_default, true, 22.0, 12.5, 59)
|
909
1473
|
|
910
1474
|
# Test defaults
|
911
1475
|
vent_fan.rated_flow_rate = nil
|
@@ -915,25 +1479,104 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
915
1479
|
vent_fan.fraction_recirculation = nil
|
916
1480
|
vent_fan.in_unit_flow_rate = nil
|
917
1481
|
vent_fan.hours_in_operation = nil
|
1482
|
+
vent_fan.fan_power = nil
|
1483
|
+
vent_fan.tested_flow_rate = nil
|
1484
|
+
vent_fan.rated_flow_rate = nil
|
1485
|
+
vent_fan.calculated_flow_rate = nil
|
1486
|
+
vent_fan.delivered_ventilation = nil
|
1487
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1488
|
+
hpxml_default = _test_measure()
|
1489
|
+
_test_default_mech_vent_values(hpxml_default, false, 24.0, 35.0, 100)
|
1490
|
+
|
1491
|
+
# Test defaults w/ SFA building
|
1492
|
+
hpxml = _create_hpxml('base-bldgtype-single-family-attached.xml')
|
1493
|
+
hpxml.ventilation_fans.add(id: 'MechanicalVentilation',
|
1494
|
+
fan_type: HPXML::MechVentTypeExhaust,
|
1495
|
+
used_for_whole_building_ventilation: true)
|
1496
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1497
|
+
hpxml_default = _test_measure()
|
1498
|
+
_test_default_mech_vent_values(hpxml_default, false, 24.0, 27.2, 78)
|
1499
|
+
|
1500
|
+
# Test defaults w/ MF building
|
1501
|
+
hpxml = _create_hpxml('base-bldgtype-multifamily.xml')
|
1502
|
+
hpxml.ventilation_fans.add(id: 'MechanicalVentilation',
|
1503
|
+
fan_type: HPXML::MechVentTypeExhaust,
|
1504
|
+
used_for_whole_building_ventilation: true)
|
1505
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1506
|
+
hpxml_default = _test_measure()
|
1507
|
+
_test_default_mech_vent_values(hpxml_default, false, 24.0, 19.8, 56.5)
|
1508
|
+
|
1509
|
+
# Test defaults w/ nACH infiltration
|
1510
|
+
hpxml = _create_hpxml('base-enclosure-infil-natural-ach.xml')
|
1511
|
+
hpxml.ventilation_fans.add(id: 'MechanicalVentilation',
|
1512
|
+
fan_type: HPXML::MechVentTypeExhaust,
|
1513
|
+
used_for_whole_building_ventilation: true)
|
1514
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1515
|
+
hpxml_default = _test_measure()
|
1516
|
+
_test_default_mech_vent_values(hpxml_default, false, 24.0, 21.6, 61.7)
|
1517
|
+
|
1518
|
+
# Test defaults w/ CFM50 infiltration
|
1519
|
+
hpxml = _create_hpxml('base-enclosure-infil-cfm50.xml')
|
1520
|
+
hpxml.ventilation_fans.add(id: 'MechanicalVentilation',
|
1521
|
+
fan_type: HPXML::MechVentTypeExhaust,
|
1522
|
+
used_for_whole_building_ventilation: true)
|
1523
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1524
|
+
hpxml_default = _test_measure()
|
1525
|
+
_test_default_mech_vent_values(hpxml_default, false, 24.0, 34.9, 99.6)
|
1526
|
+
|
1527
|
+
# Test defaults w/ balanced system
|
1528
|
+
hpxml = _create_hpxml('base.xml')
|
1529
|
+
hpxml.ventilation_fans.add(id: 'MechanicalVentilation',
|
1530
|
+
fan_type: HPXML::MechVentTypeBalanced,
|
1531
|
+
used_for_whole_building_ventilation: true)
|
1532
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1533
|
+
hpxml_default = _test_measure()
|
1534
|
+
_test_default_mech_vent_values(hpxml_default, false, 24.0, 52.8, 75.4)
|
1535
|
+
|
1536
|
+
# Test defaults w/ cathedral ceiling
|
1537
|
+
hpxml = _create_hpxml('base-atticroof-cathedral.xml')
|
1538
|
+
hpxml.ventilation_fans.add(id: 'MechanicalVentilation',
|
1539
|
+
fan_type: HPXML::MechVentTypeExhaust,
|
1540
|
+
used_for_whole_building_ventilation: true)
|
918
1541
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
919
1542
|
hpxml_default = _test_measure()
|
920
|
-
_test_default_mech_vent_values(hpxml_default, false, 24.0)
|
1543
|
+
_test_default_mech_vent_values(hpxml_default, false, 24.0, 27.0, 77.1)
|
921
1544
|
|
922
1545
|
# Test inputs not overridden by defaults w/ CFIS
|
923
1546
|
hpxml = _create_hpxml('base-mechvent-cfis.xml')
|
924
1547
|
vent_fan = hpxml.ventilation_fans.select { |f| f.used_for_whole_building_ventilation }[0]
|
925
1548
|
vent_fan.is_shared_system = false
|
926
1549
|
vent_fan.hours_in_operation = 12.0
|
1550
|
+
vent_fan.fan_power = 12.5
|
927
1551
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
928
1552
|
hpxml_default = _test_measure()
|
929
|
-
_test_default_mech_vent_values(hpxml_default, false, 12.0)
|
1553
|
+
_test_default_mech_vent_values(hpxml_default, false, 12.0, 12.5, 330)
|
930
1554
|
|
931
1555
|
# Test defaults w/ CFIS
|
932
1556
|
vent_fan.is_shared_system = nil
|
933
1557
|
vent_fan.hours_in_operation = nil
|
1558
|
+
vent_fan.fan_power = nil
|
934
1559
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
935
1560
|
hpxml_default = _test_measure()
|
936
|
-
_test_default_mech_vent_values(hpxml_default, false, 8.0)
|
1561
|
+
_test_default_mech_vent_values(hpxml_default, false, 8.0, 165.0, 330)
|
1562
|
+
|
1563
|
+
# Test inputs not overridden by defaults w/ ERV
|
1564
|
+
hpxml = _create_hpxml('base-mechvent-erv.xml')
|
1565
|
+
vent_fan = hpxml.ventilation_fans.select { |f| f.used_for_whole_building_ventilation }[0]
|
1566
|
+
vent_fan.is_shared_system = false
|
1567
|
+
vent_fan.hours_in_operation = 20.0
|
1568
|
+
vent_fan.fan_power = 45.0
|
1569
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1570
|
+
hpxml_default = _test_measure()
|
1571
|
+
_test_default_mech_vent_values(hpxml_default, false, 20.0, 45.0, 110)
|
1572
|
+
|
1573
|
+
# Test defaults w/ ERV
|
1574
|
+
vent_fan.is_shared_system = nil
|
1575
|
+
vent_fan.hours_in_operation = nil
|
1576
|
+
vent_fan.fan_power = nil
|
1577
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1578
|
+
hpxml_default = _test_measure()
|
1579
|
+
_test_default_mech_vent_values(hpxml_default, false, 24.0, 110.0, 110)
|
937
1580
|
end
|
938
1581
|
|
939
1582
|
def test_local_ventilation_fans
|
@@ -973,6 +1616,24 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
973
1616
|
_test_default_bath_fan_values(hpxml_default, 2, 50, 1, 15, 7)
|
974
1617
|
end
|
975
1618
|
|
1619
|
+
def test_whole_house_fan
|
1620
|
+
# Test inputs not overridden by defaults
|
1621
|
+
hpxml = _create_hpxml('base-mechvent-whole-house-fan.xml')
|
1622
|
+
whf = hpxml.ventilation_fans.select { |f| f.used_for_seasonal_cooling_load_reduction }[0]
|
1623
|
+
whf.rated_flow_rate = 3000
|
1624
|
+
whf.fan_power = 321
|
1625
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1626
|
+
hpxml_default = _test_measure()
|
1627
|
+
_test_default_whole_house_fan_values(hpxml_default, 3000, 321)
|
1628
|
+
|
1629
|
+
# Test defaults
|
1630
|
+
whf.rated_flow_rate = nil
|
1631
|
+
whf.fan_power = nil
|
1632
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1633
|
+
hpxml_default = _test_measure()
|
1634
|
+
_test_default_whole_house_fan_values(hpxml_default, 5400, 540)
|
1635
|
+
end
|
1636
|
+
|
976
1637
|
def test_storage_water_heaters
|
977
1638
|
# Test inputs not overridden by defaults
|
978
1639
|
hpxml = _create_hpxml('base.xml')
|
@@ -985,11 +1646,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
985
1646
|
wh.recovery_efficiency = 0.95
|
986
1647
|
wh.location = HPXML::LocationLivingSpace
|
987
1648
|
wh.temperature = 111
|
1649
|
+
wh.energy_factor = 0.90
|
1650
|
+
wh.year_installed = 2003
|
988
1651
|
end
|
989
1652
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
990
1653
|
hpxml_default = _test_measure()
|
991
1654
|
_test_default_storage_water_heater_values(hpxml_default,
|
992
|
-
[true, 15000.0, 40.0, 0.95, HPXML::LocationLivingSpace, 111])
|
1655
|
+
[true, 15000.0, 40.0, 0.95, HPXML::LocationLivingSpace, 111, 0.90])
|
993
1656
|
|
994
1657
|
# Test defaults w/ 3-bedroom house & electric storage water heater
|
995
1658
|
hpxml.water_heating_systems.each do |wh|
|
@@ -999,11 +1662,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
999
1662
|
wh.recovery_efficiency = nil
|
1000
1663
|
wh.location = nil
|
1001
1664
|
wh.temperature = nil
|
1665
|
+
wh.energy_factor = nil
|
1666
|
+
wh.year_installed = 2003
|
1002
1667
|
end
|
1003
1668
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1004
1669
|
hpxml_default = _test_measure()
|
1005
1670
|
_test_default_storage_water_heater_values(hpxml_default,
|
1006
|
-
[false, 18766.7, 50.0, 0.98, HPXML::LocationBasementConditioned, 125])
|
1671
|
+
[false, 18766.7, 50.0, 0.98, HPXML::LocationBasementConditioned, 125, 0.857])
|
1007
1672
|
|
1008
1673
|
# Test defaults w/ 5-bedroom house & electric storage water heater
|
1009
1674
|
hpxml = _create_hpxml('base-enclosure-beds-5.xml')
|
@@ -1014,11 +1679,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1014
1679
|
wh.recovery_efficiency = nil
|
1015
1680
|
wh.location = nil
|
1016
1681
|
wh.temperature = nil
|
1682
|
+
wh.energy_factor = nil
|
1683
|
+
wh.year_installed = 2010
|
1017
1684
|
end
|
1018
1685
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1019
1686
|
hpxml_default = _test_measure()
|
1020
1687
|
_test_default_storage_water_heater_values(hpxml_default,
|
1021
|
-
[false, 18766.7, 66.0, 0.98, HPXML::LocationBasementConditioned, 125])
|
1688
|
+
[false, 18766.7, 66.0, 0.98, HPXML::LocationBasementConditioned, 125, 0.90])
|
1022
1689
|
|
1023
1690
|
# Test defaults w/ 3-bedroom house & 2 storage water heaters (1 electric and 1 natural gas)
|
1024
1691
|
hpxml = _create_hpxml('base-dhw-multiple.xml')
|
@@ -1031,12 +1698,45 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1031
1698
|
wh.recovery_efficiency = nil
|
1032
1699
|
wh.location = nil
|
1033
1700
|
wh.temperature = nil
|
1701
|
+
wh.energy_factor = nil
|
1702
|
+
wh.year_installed = 2010
|
1034
1703
|
end
|
1035
1704
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1036
1705
|
hpxml_default = _test_measure()
|
1037
1706
|
_test_default_storage_water_heater_values(hpxml_default,
|
1038
|
-
[false, 15354.6, 50.0, 0.98, HPXML::LocationBasementConditioned, 125],
|
1039
|
-
[false, 36000.0, 40.0, 0.
|
1707
|
+
[false, 15354.6, 50.0, 0.98, HPXML::LocationBasementConditioned, 125, 0.90],
|
1708
|
+
[false, 36000.0, 40.0, 0.746, HPXML::LocationBasementConditioned, 125, 0.55])
|
1709
|
+
|
1710
|
+
# Test inputs not overridden by defaults w/ UEF
|
1711
|
+
hpxml = _create_hpxml('base-dhw-tank-gas-uef.xml')
|
1712
|
+
hpxml.water_heating_systems.each do |wh|
|
1713
|
+
wh.first_hour_rating = nil
|
1714
|
+
wh.usage_bin = HPXML::WaterHeaterUsageBinVerySmall
|
1715
|
+
end
|
1716
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1717
|
+
hpxml_default = _test_measure()
|
1718
|
+
assert_nil(hpxml_default.water_heating_systems[0].first_hour_rating)
|
1719
|
+
assert_equal(HPXML::WaterHeaterUsageBinVerySmall, hpxml_default.water_heating_systems[0].usage_bin)
|
1720
|
+
|
1721
|
+
# Test defaults w/ UEF & FHR
|
1722
|
+
hpxml.water_heating_systems.each do |wh|
|
1723
|
+
wh.first_hour_rating = 40
|
1724
|
+
wh.usage_bin = nil
|
1725
|
+
end
|
1726
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1727
|
+
hpxml_default = _test_measure()
|
1728
|
+
assert_equal(40, hpxml_default.water_heating_systems[0].first_hour_rating)
|
1729
|
+
assert_equal(HPXML::WaterHeaterUsageBinLow, hpxml_default.water_heating_systems[0].usage_bin)
|
1730
|
+
|
1731
|
+
# Test defaults w/ UEF & no FHR
|
1732
|
+
hpxml.water_heating_systems.each do |wh|
|
1733
|
+
wh.first_hour_rating = nil
|
1734
|
+
wh.usage_bin = nil
|
1735
|
+
end
|
1736
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1737
|
+
hpxml_default = _test_measure()
|
1738
|
+
assert_nil(hpxml_default.water_heating_systems[0].first_hour_rating)
|
1739
|
+
assert_equal(HPXML::WaterHeaterUsageBinMedium, hpxml_default.water_heating_systems[0].usage_bin)
|
1040
1740
|
end
|
1041
1741
|
|
1042
1742
|
def test_tankless_water_heaters
|
@@ -1068,7 +1768,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1068
1768
|
hpxml.hot_water_distributions[0].pipe_r_value = 2.5
|
1069
1769
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1070
1770
|
hpxml_default = _test_measure()
|
1071
|
-
_test_default_standard_distribution_values(hpxml_default, 50.0, 2.5)
|
1771
|
+
_test_default_standard_distribution_values(hpxml_default.hot_water_distributions[0], 50.0, 2.5)
|
1072
1772
|
|
1073
1773
|
# Test inputs not overridden by defaults -- recirculation
|
1074
1774
|
hpxml = _create_hpxml('base-dhw-recirc-demand.xml')
|
@@ -1076,14 +1776,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1076
1776
|
hpxml.hot_water_distributions[0].pipe_r_value = 2.5
|
1077
1777
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1078
1778
|
hpxml_default = _test_measure()
|
1079
|
-
_test_default_recirc_distribution_values(hpxml_default, 50.0, 50.0, 65.0, 2.5)
|
1779
|
+
_test_default_recirc_distribution_values(hpxml_default.hot_water_distributions[0], 50.0, 50.0, 65.0, 2.5)
|
1080
1780
|
|
1081
1781
|
# Test inputs not overridden by defaults -- shared recirculation
|
1082
1782
|
hpxml = _create_hpxml('base-bldgtype-multifamily-shared-water-heater-recirc.xml')
|
1083
1783
|
hpxml.hot_water_distributions[0].shared_recirculation_pump_power = 333.0
|
1084
1784
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1085
1785
|
hpxml_default = _test_measure()
|
1086
|
-
_test_default_shared_recirc_distribution_values(hpxml_default, 333.0)
|
1786
|
+
_test_default_shared_recirc_distribution_values(hpxml_default.hot_water_distributions[0], 333.0)
|
1087
1787
|
|
1088
1788
|
# Test defaults w/ conditioned basement
|
1089
1789
|
hpxml = _create_hpxml('base.xml')
|
@@ -1091,7 +1791,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1091
1791
|
hpxml.hot_water_distributions[0].pipe_r_value = nil
|
1092
1792
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1093
1793
|
hpxml_default = _test_measure()
|
1094
|
-
_test_default_standard_distribution_values(hpxml_default, 93.48, 0.0)
|
1794
|
+
_test_default_standard_distribution_values(hpxml_default.hot_water_distributions[0], 93.48, 0.0)
|
1095
1795
|
|
1096
1796
|
# Test defaults w/ unconditioned basement
|
1097
1797
|
hpxml = _create_hpxml('base-foundation-unconditioned-basement.xml')
|
@@ -1099,7 +1799,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1099
1799
|
hpxml.hot_water_distributions[0].pipe_r_value = nil
|
1100
1800
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1101
1801
|
hpxml_default = _test_measure()
|
1102
|
-
_test_default_standard_distribution_values(hpxml_default, 88.48, 0.0)
|
1802
|
+
_test_default_standard_distribution_values(hpxml_default.hot_water_distributions[0], 88.48, 0.0)
|
1103
1803
|
|
1104
1804
|
# Test defaults w/ 2-story building
|
1105
1805
|
hpxml = _create_hpxml('base-enclosure-2stories.xml')
|
@@ -1107,7 +1807,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1107
1807
|
hpxml.hot_water_distributions[0].pipe_r_value = nil
|
1108
1808
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1109
1809
|
hpxml_default = _test_measure()
|
1110
|
-
_test_default_standard_distribution_values(hpxml_default, 103.48, 0.0)
|
1810
|
+
_test_default_standard_distribution_values(hpxml_default.hot_water_distributions[0], 103.48, 0.0)
|
1111
1811
|
|
1112
1812
|
# Test defaults w/ recirculation & conditioned basement
|
1113
1813
|
hpxml = _create_hpxml('base-dhw-recirc-demand.xml')
|
@@ -1117,7 +1817,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1117
1817
|
hpxml.hot_water_distributions[0].pipe_r_value = nil
|
1118
1818
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1119
1819
|
hpxml_default = _test_measure()
|
1120
|
-
_test_default_recirc_distribution_values(hpxml_default, 166.96, 10.0, 50.0, 0.0)
|
1820
|
+
_test_default_recirc_distribution_values(hpxml_default.hot_water_distributions[0], 166.96, 10.0, 50.0, 0.0)
|
1121
1821
|
|
1122
1822
|
# Test defaults w/ recirculation & unconditioned basement
|
1123
1823
|
hpxml = _create_hpxml('base-foundation-unconditioned-basement.xml')
|
@@ -1127,7 +1827,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1127
1827
|
recirculation_control_type: HPXML::DHWRecirControlTypeSensor)
|
1128
1828
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1129
1829
|
hpxml_default = _test_measure()
|
1130
|
-
_test_default_recirc_distribution_values(hpxml_default, 156.96, 10.0, 50.0, 0.0)
|
1830
|
+
_test_default_recirc_distribution_values(hpxml_default.hot_water_distributions[0], 156.96, 10.0, 50.0, 0.0)
|
1131
1831
|
|
1132
1832
|
# Test defaults w/ recirculation & 2-story building
|
1133
1833
|
hpxml = _create_hpxml('base-enclosure-2stories.xml')
|
@@ -1137,51 +1837,60 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1137
1837
|
recirculation_control_type: HPXML::DHWRecirControlTypeSensor)
|
1138
1838
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1139
1839
|
hpxml_default = _test_measure()
|
1140
|
-
_test_default_recirc_distribution_values(hpxml_default, 186.96, 10.0, 50.0, 0.0)
|
1840
|
+
_test_default_recirc_distribution_values(hpxml_default.hot_water_distributions[0], 186.96, 10.0, 50.0, 0.0)
|
1141
1841
|
|
1142
1842
|
# Test defaults w/ shared recirculation
|
1143
1843
|
hpxml = _create_hpxml('base-bldgtype-multifamily-shared-water-heater-recirc.xml')
|
1144
1844
|
hpxml.hot_water_distributions[0].shared_recirculation_pump_power = nil
|
1145
1845
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1146
1846
|
hpxml_default = _test_measure()
|
1147
|
-
_test_default_shared_recirc_distribution_values(hpxml_default, 220.0)
|
1847
|
+
_test_default_shared_recirc_distribution_values(hpxml_default.hot_water_distributions[0], 220.0)
|
1148
1848
|
end
|
1149
1849
|
|
1150
1850
|
def test_water_fixtures
|
1151
1851
|
# Test inputs not overridden by defaults
|
1152
1852
|
hpxml = _create_hpxml('base.xml')
|
1153
1853
|
hpxml.water_heating.water_fixtures_usage_multiplier = 2.0
|
1854
|
+
hpxml.water_heating.water_fixtures_weekday_fractions = ConstantDaySchedule
|
1855
|
+
hpxml.water_heating.water_fixtures_weekend_fractions = ConstantDaySchedule
|
1856
|
+
hpxml.water_heating.water_fixtures_monthly_multipliers = ConstantMonthSchedule
|
1154
1857
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1155
1858
|
hpxml_default = _test_measure()
|
1156
|
-
_test_default_water_fixture_values(hpxml_default, 2.0)
|
1859
|
+
_test_default_water_fixture_values(hpxml_default, 2.0, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
1157
1860
|
|
1158
1861
|
# Test defaults
|
1159
1862
|
hpxml.water_heating.water_fixtures_usage_multiplier = nil
|
1863
|
+
hpxml.water_heating.water_fixtures_weekday_fractions = nil
|
1864
|
+
hpxml.water_heating.water_fixtures_weekend_fractions = nil
|
1865
|
+
hpxml.water_heating.water_fixtures_monthly_multipliers = nil
|
1160
1866
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1161
1867
|
hpxml_default = _test_measure()
|
1162
|
-
_test_default_water_fixture_values(hpxml_default, 1.0)
|
1868
|
+
_test_default_water_fixture_values(hpxml_default, 1.0, Schedule.FixturesWeekdayFractions, Schedule.FixturesWeekendFractions, Schedule.FixturesMonthlyMultipliers)
|
1163
1869
|
end
|
1164
1870
|
|
1165
1871
|
def test_solar_thermal_systems
|
1166
1872
|
# Test inputs not overridden by defaults
|
1167
1873
|
hpxml = _create_hpxml('base-dhw-solar-direct-flat-plate.xml')
|
1168
1874
|
hpxml.solar_thermal_systems[0].storage_volume = 55.0
|
1875
|
+
hpxml.solar_thermal_systems[0].collector_azimuth = 123
|
1169
1876
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1170
1877
|
hpxml_default = _test_measure()
|
1171
|
-
_test_default_solar_thermal_values(hpxml_default, 55.0)
|
1878
|
+
_test_default_solar_thermal_values(hpxml_default.solar_thermal_systems[0], 55.0, 123)
|
1172
1879
|
|
1173
1880
|
# Test defaults w/ collector area of 40 sqft
|
1174
1881
|
hpxml.solar_thermal_systems[0].storage_volume = nil
|
1882
|
+
hpxml.solar_thermal_systems[0].collector_orientation = HPXML::OrientationNorth
|
1883
|
+
hpxml.solar_thermal_systems[0].collector_azimuth = nil
|
1175
1884
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1176
1885
|
hpxml_default = _test_measure()
|
1177
|
-
_test_default_solar_thermal_values(hpxml_default, 60.0)
|
1886
|
+
_test_default_solar_thermal_values(hpxml_default.solar_thermal_systems[0], 60.0, 0)
|
1178
1887
|
|
1179
1888
|
# Test defaults w/ collector area of 100 sqft
|
1180
1889
|
hpxml.solar_thermal_systems[0].collector_area = 100.0
|
1181
1890
|
hpxml.solar_thermal_systems[0].storage_volume = nil
|
1182
1891
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1183
1892
|
hpxml_default = _test_measure()
|
1184
|
-
_test_default_solar_thermal_values(hpxml_default, 150.0)
|
1893
|
+
_test_default_solar_thermal_values(hpxml_default.solar_thermal_systems[0], 150.0, 0)
|
1185
1894
|
end
|
1186
1895
|
|
1187
1896
|
def test_pv_systems
|
@@ -1196,10 +1905,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1196
1905
|
pv.location = HPXML::LocationGround
|
1197
1906
|
pv.tracking = HPXML::PVTrackingType1Axis
|
1198
1907
|
pv.module_type = HPXML::PVModuleTypePremium
|
1908
|
+
pv.array_azimuth = 123
|
1199
1909
|
end
|
1200
1910
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1201
1911
|
hpxml_default = _test_measure()
|
1202
|
-
_test_default_pv_system_values(hpxml_default, 0.90, 0.20, true, HPXML::LocationGround, HPXML::PVTrackingType1Axis, HPXML::PVModuleTypePremium)
|
1912
|
+
_test_default_pv_system_values(hpxml_default, 0.90, 0.20, true, HPXML::LocationGround, HPXML::PVTrackingType1Axis, HPXML::PVModuleTypePremium, 123)
|
1203
1913
|
|
1204
1914
|
# Test defaults w/o year modules manufactured
|
1205
1915
|
hpxml.pv_systems.each do |pv|
|
@@ -1209,10 +1919,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1209
1919
|
pv.location = nil
|
1210
1920
|
pv.tracking = nil
|
1211
1921
|
pv.module_type = nil
|
1922
|
+
pv.array_orientation = HPXML::OrientationSoutheast
|
1923
|
+
pv.array_azimuth = nil
|
1212
1924
|
end
|
1213
1925
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1214
1926
|
hpxml_default = _test_measure()
|
1215
|
-
_test_default_pv_system_values(hpxml_default, 0.96, 0.14, false, HPXML::LocationRoof, HPXML::PVTrackingTypeFixed, HPXML::PVModuleTypeStandard)
|
1927
|
+
_test_default_pv_system_values(hpxml_default, 0.96, 0.14, false, HPXML::LocationRoof, HPXML::PVTrackingTypeFixed, HPXML::PVModuleTypeStandard, 135)
|
1216
1928
|
|
1217
1929
|
# Test defaults w/ year modules manufactured
|
1218
1930
|
hpxml.pv_systems.each do |pv|
|
@@ -1220,7 +1932,50 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1220
1932
|
end
|
1221
1933
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1222
1934
|
hpxml_default = _test_measure()
|
1223
|
-
_test_default_pv_system_values(hpxml_default, 0.96, 0.186, false, HPXML::LocationRoof, HPXML::PVTrackingTypeFixed, HPXML::PVModuleTypeStandard)
|
1935
|
+
_test_default_pv_system_values(hpxml_default, 0.96, 0.186, false, HPXML::LocationRoof, HPXML::PVTrackingTypeFixed, HPXML::PVModuleTypeStandard, 135)
|
1936
|
+
end
|
1937
|
+
|
1938
|
+
def test_batteries
|
1939
|
+
# Test inputs not overridden by defaults
|
1940
|
+
hpxml = _create_hpxml('base-pv-battery-outside.xml')
|
1941
|
+
hpxml.batteries[0].nominal_capacity_kwh = 45.0
|
1942
|
+
hpxml.batteries[0].nominal_capacity_ah = nil
|
1943
|
+
hpxml.batteries[0].rated_power_output = 1234.0
|
1944
|
+
hpxml.batteries[0].location = HPXML::LocationBasementConditioned
|
1945
|
+
hpxml.batteries[0].lifetime_model = HPXML::BatteryLifetimeModelKandlerSmith
|
1946
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1947
|
+
hpxml_default = _test_measure()
|
1948
|
+
_test_default_battery_values(hpxml_default, 45.0, nil, 1234.0, HPXML::LocationBasementConditioned, HPXML::BatteryLifetimeModelKandlerSmith)
|
1949
|
+
|
1950
|
+
# Test w/ Ah instead of kWh
|
1951
|
+
hpxml.batteries[0].nominal_capacity_kwh = nil
|
1952
|
+
hpxml.batteries[0].nominal_capacity_ah = 987.0
|
1953
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1954
|
+
hpxml_default = _test_measure()
|
1955
|
+
_test_default_battery_values(hpxml_default, nil, 987.0, 1234.0, HPXML::LocationBasementConditioned, HPXML::BatteryLifetimeModelKandlerSmith)
|
1956
|
+
|
1957
|
+
# Test defaults
|
1958
|
+
hpxml.batteries[0].nominal_capacity_kwh = nil
|
1959
|
+
hpxml.batteries[0].nominal_capacity_ah = nil
|
1960
|
+
hpxml.batteries[0].rated_power_output = nil
|
1961
|
+
hpxml.batteries[0].location = nil
|
1962
|
+
hpxml.batteries[0].lifetime_model = nil
|
1963
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1964
|
+
hpxml_default = _test_measure()
|
1965
|
+
_test_default_battery_values(hpxml_default, 10.0, nil, 5000.0, HPXML::LocationOutside, HPXML::BatteryLifetimeModelNone)
|
1966
|
+
|
1967
|
+
# Test defaults w/ kWh
|
1968
|
+
hpxml.batteries[0].nominal_capacity_kwh = 14.0
|
1969
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1970
|
+
hpxml_default = _test_measure()
|
1971
|
+
_test_default_battery_values(hpxml_default, 14.0, nil, 7000.0, HPXML::LocationOutside, HPXML::BatteryLifetimeModelNone)
|
1972
|
+
|
1973
|
+
# Test defaults w/ Ah
|
1974
|
+
hpxml.batteries[0].nominal_capacity_kwh = nil
|
1975
|
+
hpxml.batteries[0].nominal_capacity_ah = 280.0
|
1976
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1977
|
+
hpxml_default = _test_measure()
|
1978
|
+
_test_default_battery_values(hpxml_default, nil, 280.0, 7000.0, HPXML::LocationOutside, HPXML::BatteryLifetimeModelNone)
|
1224
1979
|
end
|
1225
1980
|
|
1226
1981
|
def test_generators
|
@@ -1250,14 +2005,16 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1250
2005
|
hpxml.building_construction.residential_facility_type = HPXML::ResidentialTypeSFA
|
1251
2006
|
hpxml.water_heating_systems[0].is_shared_system = true
|
1252
2007
|
hpxml.water_heating_systems[0].number_of_units_served = 6
|
1253
|
-
hpxml.water_heating_systems[0].fraction_dhw_load_served = 0
|
1254
2008
|
hpxml.clothes_washers[0].location = HPXML::LocationBasementConditioned
|
1255
2009
|
hpxml.clothes_washers[0].is_shared_appliance = true
|
1256
2010
|
hpxml.clothes_washers[0].usage_multiplier = 1.5
|
1257
2011
|
hpxml.clothes_washers[0].water_heating_system_idref = hpxml.water_heating_systems[0].id
|
2012
|
+
hpxml.clothes_washers[0].weekday_fractions = ConstantDaySchedule
|
2013
|
+
hpxml.clothes_washers[0].weekend_fractions = ConstantDaySchedule
|
2014
|
+
hpxml.clothes_washers[0].monthly_multipliers = ConstantMonthSchedule
|
1258
2015
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1259
2016
|
hpxml_default = _test_measure()
|
1260
|
-
_test_default_clothes_washer_values(hpxml_default, true, HPXML::LocationBasementConditioned, 1.21, 380.0, 0.12, 1.09, 27.0, 3.2, 6.0, 1.5)
|
2017
|
+
_test_default_clothes_washer_values(hpxml_default.clothes_washers[0], true, HPXML::LocationBasementConditioned, 1.21, 380.0, 0.12, 1.09, 27.0, 3.2, 6.0, 1.5, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
1261
2018
|
|
1262
2019
|
# Test defaults
|
1263
2020
|
hpxml.clothes_washers[0].is_shared_appliance = nil
|
@@ -1270,9 +2027,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1270
2027
|
hpxml.clothes_washers[0].capacity = nil
|
1271
2028
|
hpxml.clothes_washers[0].label_usage = nil
|
1272
2029
|
hpxml.clothes_washers[0].usage_multiplier = nil
|
2030
|
+
hpxml.clothes_washers[0].weekday_fractions = nil
|
2031
|
+
hpxml.clothes_washers[0].weekend_fractions = nil
|
2032
|
+
hpxml.clothes_washers[0].monthly_multipliers = nil
|
1273
2033
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1274
2034
|
hpxml_default = _test_measure()
|
1275
|
-
_test_default_clothes_washer_values(hpxml_default, false, HPXML::LocationLivingSpace, 1.0, 400.0, 0.12, 1.09, 27.0, 3.0, 6.0, 1.0)
|
2035
|
+
_test_default_clothes_washer_values(hpxml_default.clothes_washers[0], false, HPXML::LocationLivingSpace, 1.0, 400.0, 0.12, 1.09, 27.0, 3.0, 6.0, 1.0, Schedule.ClothesWasherWeekdayFractions, Schedule.ClothesWasherWeekendFractions, Schedule.ClothesWasherMonthlyMultipliers)
|
1276
2036
|
|
1277
2037
|
# Test defaults before 301-2019 Addendum A
|
1278
2038
|
hpxml = _create_hpxml('base.xml')
|
@@ -1287,9 +2047,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1287
2047
|
hpxml.clothes_washers[0].capacity = nil
|
1288
2048
|
hpxml.clothes_washers[0].label_usage = nil
|
1289
2049
|
hpxml.clothes_washers[0].usage_multiplier = nil
|
2050
|
+
hpxml.clothes_washers[0].weekday_fractions = nil
|
2051
|
+
hpxml.clothes_washers[0].weekend_fractions = nil
|
2052
|
+
hpxml.clothes_washers[0].monthly_multipliers = nil
|
1290
2053
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1291
2054
|
hpxml_default = _test_measure()
|
1292
|
-
_test_default_clothes_washer_values(hpxml_default, false, HPXML::LocationLivingSpace, 0.331, 704.0, 0.08, 0.58, 23.0, 2.874, 999, 1.0)
|
2055
|
+
_test_default_clothes_washer_values(hpxml_default.clothes_washers[0], false, HPXML::LocationLivingSpace, 0.331, 704.0, 0.08, 0.58, 23.0, 2.874, 999, 1.0, Schedule.ClothesWasherWeekdayFractions, Schedule.ClothesWasherWeekendFractions, Schedule.ClothesWasherMonthlyMultipliers)
|
1293
2056
|
end
|
1294
2057
|
|
1295
2058
|
def test_clothes_dryers
|
@@ -1298,42 +2061,47 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1298
2061
|
hpxml.building_construction.residential_facility_type = HPXML::ResidentialTypeSFA
|
1299
2062
|
hpxml.water_heating_systems[0].is_shared_system = true
|
1300
2063
|
hpxml.water_heating_systems[0].number_of_units_served = 6
|
1301
|
-
hpxml.water_heating_systems[0].fraction_dhw_load_served = 0
|
1302
2064
|
hpxml.clothes_dryers[0].location = HPXML::LocationBasementConditioned
|
1303
2065
|
hpxml.clothes_dryers[0].is_shared_appliance = true
|
1304
2066
|
hpxml.clothes_dryers[0].combined_energy_factor = 3.33
|
1305
2067
|
hpxml.clothes_dryers[0].usage_multiplier = 1.1
|
2068
|
+
hpxml.clothes_dryers[0].weekday_fractions = ConstantDaySchedule
|
2069
|
+
hpxml.clothes_dryers[0].weekend_fractions = ConstantDaySchedule
|
2070
|
+
hpxml.clothes_dryers[0].monthly_multipliers = ConstantMonthSchedule
|
1306
2071
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1307
2072
|
hpxml_default = _test_measure()
|
1308
|
-
_test_default_clothes_dryer_values(hpxml_default, true, HPXML::LocationBasementConditioned, 3.33, 1.1)
|
2073
|
+
_test_default_clothes_dryer_values(hpxml_default.clothes_dryers[0], true, HPXML::LocationBasementConditioned, 3.33, 1.1, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
1309
2074
|
|
1310
2075
|
# Test defaults w/ electric clothes dryer
|
1311
2076
|
hpxml.clothes_dryers[0].location = nil
|
1312
2077
|
hpxml.clothes_dryers[0].is_shared_appliance = nil
|
1313
2078
|
hpxml.clothes_dryers[0].combined_energy_factor = nil
|
1314
2079
|
hpxml.clothes_dryers[0].usage_multiplier = nil
|
2080
|
+
hpxml.clothes_dryers[0].weekday_fractions = nil
|
2081
|
+
hpxml.clothes_dryers[0].weekend_fractions = nil
|
2082
|
+
hpxml.clothes_dryers[0].monthly_multipliers = nil
|
1315
2083
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1316
2084
|
hpxml_default = _test_measure()
|
1317
|
-
_test_default_clothes_dryer_values(hpxml_default, false, HPXML::LocationLivingSpace, 3.01, 1.0)
|
2085
|
+
_test_default_clothes_dryer_values(hpxml_default.clothes_dryers[0], false, HPXML::LocationLivingSpace, 3.01, 1.0, Schedule.ClothesDryerWeekdayFractions, Schedule.ClothesDryerWeekendFractions, Schedule.ClothesDryerMonthlyMultipliers)
|
1318
2086
|
|
1319
2087
|
# Test defaults w/ gas clothes dryer
|
1320
2088
|
hpxml.clothes_dryers[0].fuel_type = HPXML::FuelTypeNaturalGas
|
1321
2089
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1322
2090
|
hpxml_default = _test_measure()
|
1323
|
-
_test_default_clothes_dryer_values(hpxml_default, false, HPXML::LocationLivingSpace, 3.01, 1.0)
|
2091
|
+
_test_default_clothes_dryer_values(hpxml_default.clothes_dryers[0], false, HPXML::LocationLivingSpace, 3.01, 1.0, Schedule.ClothesDryerWeekdayFractions, Schedule.ClothesDryerWeekendFractions, Schedule.ClothesDryerMonthlyMultipliers)
|
1324
2092
|
|
1325
2093
|
# Test defaults w/ electric clothes dryer before 301-2019 Addendum A
|
1326
2094
|
hpxml.header.eri_calculation_version = '2019'
|
1327
2095
|
hpxml.clothes_dryers[0].fuel_type = HPXML::FuelTypeElectricity
|
1328
2096
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1329
2097
|
hpxml_default = _test_measure()
|
1330
|
-
_test_default_clothes_dryer_values(hpxml_default, false, HPXML::LocationLivingSpace, 2.62, 1.0)
|
2098
|
+
_test_default_clothes_dryer_values(hpxml_default.clothes_dryers[0], false, HPXML::LocationLivingSpace, 2.62, 1.0, Schedule.ClothesDryerWeekdayFractions, Schedule.ClothesDryerWeekendFractions, Schedule.ClothesDryerMonthlyMultipliers)
|
1331
2099
|
|
1332
2100
|
# Test defaults w/ gas clothes dryer before 301-2019 Addendum A
|
1333
2101
|
hpxml.clothes_dryers[0].fuel_type = HPXML::FuelTypeNaturalGas
|
1334
2102
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1335
2103
|
hpxml_default = _test_measure()
|
1336
|
-
_test_default_clothes_dryer_values(hpxml_default, false, HPXML::LocationLivingSpace, 2.32, 1.0)
|
2104
|
+
_test_default_clothes_dryer_values(hpxml_default.clothes_dryers[0], false, HPXML::LocationLivingSpace, 2.32, 1.0, Schedule.ClothesDryerWeekdayFractions, Schedule.ClothesDryerWeekendFractions, Schedule.ClothesDryerMonthlyMultipliers)
|
1337
2105
|
end
|
1338
2106
|
|
1339
2107
|
def test_clothes_dryer_exhaust
|
@@ -1345,21 +2113,21 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1345
2113
|
clothes_dryer.vented_flow_rate = 200
|
1346
2114
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1347
2115
|
hpxml_default = _test_measure()
|
1348
|
-
_test_default_clothes_dryer_exhaust_values(hpxml_default, true, 200)
|
2116
|
+
_test_default_clothes_dryer_exhaust_values(hpxml_default.clothes_dryers[0], true, 200)
|
1349
2117
|
|
1350
2118
|
# Test inputs not overridden by defaults w/ unvented dryer
|
1351
2119
|
clothes_dryer.is_vented = false
|
1352
2120
|
clothes_dryer.vented_flow_rate = nil
|
1353
2121
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1354
2122
|
hpxml_default = _test_measure()
|
1355
|
-
_test_default_clothes_dryer_exhaust_values(hpxml_default, false, nil)
|
2123
|
+
_test_default_clothes_dryer_exhaust_values(hpxml_default.clothes_dryers[0], false, nil)
|
1356
2124
|
|
1357
2125
|
# Test defaults
|
1358
2126
|
clothes_dryer.is_vented = nil
|
1359
2127
|
clothes_dryer.vented_flow_rate = nil
|
1360
2128
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1361
2129
|
hpxml_default = _test_measure()
|
1362
|
-
_test_default_clothes_dryer_exhaust_values(hpxml_default, true, 100)
|
2130
|
+
_test_default_clothes_dryer_exhaust_values(hpxml_default.clothes_dryers[0], true, 100)
|
1363
2131
|
end
|
1364
2132
|
|
1365
2133
|
def test_dishwashers
|
@@ -1368,14 +2136,16 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1368
2136
|
hpxml.building_construction.residential_facility_type = HPXML::ResidentialTypeSFA
|
1369
2137
|
hpxml.water_heating_systems[0].is_shared_system = true
|
1370
2138
|
hpxml.water_heating_systems[0].number_of_units_served = 6
|
1371
|
-
hpxml.water_heating_systems[0].fraction_dhw_load_served = 0
|
1372
2139
|
hpxml.dishwashers[0].location = HPXML::LocationBasementConditioned
|
1373
2140
|
hpxml.dishwashers[0].is_shared_appliance = true
|
1374
2141
|
hpxml.dishwashers[0].usage_multiplier = 1.3
|
1375
2142
|
hpxml.dishwashers[0].water_heating_system_idref = hpxml.water_heating_systems[0].id
|
2143
|
+
hpxml.dishwashers[0].weekday_fractions = ConstantDaySchedule
|
2144
|
+
hpxml.dishwashers[0].weekend_fractions = ConstantDaySchedule
|
2145
|
+
hpxml.dishwashers[0].monthly_multipliers = ConstantMonthSchedule
|
1376
2146
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1377
2147
|
hpxml_default = _test_measure()
|
1378
|
-
_test_default_dishwasher_values(hpxml_default, true, HPXML::LocationBasementConditioned, 307.0, 0.12, 1.09, 22.32, 4.0, 12, 1.3)
|
2148
|
+
_test_default_dishwasher_values(hpxml_default.dishwashers[0], true, HPXML::LocationBasementConditioned, 307.0, 0.12, 1.09, 22.32, 4.0, 12, 1.3, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
1379
2149
|
|
1380
2150
|
# Test defaults
|
1381
2151
|
hpxml.dishwashers[0].is_shared_appliance = nil
|
@@ -1387,15 +2157,18 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1387
2157
|
hpxml.dishwashers[0].label_usage = nil
|
1388
2158
|
hpxml.dishwashers[0].place_setting_capacity = nil
|
1389
2159
|
hpxml.dishwashers[0].usage_multiplier = nil
|
2160
|
+
hpxml.dishwashers[0].weekday_fractions = nil
|
2161
|
+
hpxml.dishwashers[0].weekend_fractions = nil
|
2162
|
+
hpxml.dishwashers[0].monthly_multipliers = nil
|
1390
2163
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1391
2164
|
hpxml_default = _test_measure()
|
1392
|
-
_test_default_dishwasher_values(hpxml_default, false, HPXML::LocationLivingSpace, 467.0, 0.12, 1.09, 33.12, 4.0, 12, 1.0)
|
2165
|
+
_test_default_dishwasher_values(hpxml_default.dishwashers[0], false, HPXML::LocationLivingSpace, 467.0, 0.12, 1.09, 33.12, 4.0, 12, 1.0, Schedule.DishwasherWeekdayFractions, Schedule.DishwasherWeekendFractions, Schedule.DishwasherMonthlyMultipliers)
|
1393
2166
|
|
1394
2167
|
# Test defaults before 301-2019 Addendum A
|
1395
2168
|
hpxml.header.eri_calculation_version = '2019'
|
1396
2169
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1397
2170
|
hpxml_default = _test_measure()
|
1398
|
-
_test_default_dishwasher_values(hpxml_default, false, HPXML::LocationLivingSpace, 467.0, 999, 999, 999, 999, 12, 1.0)
|
2171
|
+
_test_default_dishwasher_values(hpxml_default.dishwashers[0], false, HPXML::LocationLivingSpace, 467.0, 999, 999, 999, 999, 12, 1.0, Schedule.DishwasherWeekdayFractions, Schedule.DishwasherWeekendFractions, Schedule.DishwasherMonthlyMultipliers)
|
1399
2172
|
end
|
1400
2173
|
|
1401
2174
|
def test_refrigerators
|
@@ -1419,20 +2192,20 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1419
2192
|
hpxml.refrigerators[0].monthly_multipliers = nil
|
1420
2193
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1421
2194
|
hpxml_default = _test_measure()
|
1422
|
-
_test_default_refrigerator_values(hpxml_default, HPXML::LocationLivingSpace, 691.0, 1.0,
|
2195
|
+
_test_default_refrigerator_values(hpxml_default, HPXML::LocationLivingSpace, 691.0, 1.0, Schedule.RefrigeratorWeekdayFractions, Schedule.RefrigeratorWeekendFractions, Schedule.RefrigeratorMonthlyMultipliers)
|
1423
2196
|
|
1424
2197
|
# Test defaults w/ refrigerator in 5-bedroom house
|
1425
2198
|
hpxml.building_construction.number_of_bedrooms = 5
|
1426
2199
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1427
2200
|
hpxml_default = _test_measure()
|
1428
|
-
_test_default_refrigerator_values(hpxml_default, HPXML::LocationLivingSpace, 727.0, 1.0,
|
2201
|
+
_test_default_refrigerator_values(hpxml_default, HPXML::LocationLivingSpace, 727.0, 1.0, Schedule.RefrigeratorWeekdayFractions, Schedule.RefrigeratorWeekendFractions, Schedule.RefrigeratorMonthlyMultipliers)
|
1429
2202
|
|
1430
2203
|
# Test defaults before 301-2019 Addendum A
|
1431
2204
|
hpxml.header.eri_calculation_version = '2019'
|
1432
2205
|
hpxml.building_construction.number_of_bedrooms = 3
|
1433
2206
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1434
2207
|
hpxml_default = _test_measure()
|
1435
|
-
_test_default_refrigerator_values(hpxml_default, HPXML::LocationLivingSpace, 691.0, 1.0,
|
2208
|
+
_test_default_refrigerator_values(hpxml_default, HPXML::LocationLivingSpace, 691.0, 1.0, Schedule.RefrigeratorWeekdayFractions, Schedule.RefrigeratorWeekendFractions, Schedule.RefrigeratorMonthlyMultipliers)
|
1436
2209
|
end
|
1437
2210
|
|
1438
2211
|
def test_extra_refrigerators
|
@@ -1461,7 +2234,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1461
2234
|
end
|
1462
2235
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1463
2236
|
hpxml_default = _test_measure()
|
1464
|
-
_test_default_extra_refrigerators_values(hpxml_default, HPXML::LocationBasementConditioned, 244.0, 1.0,
|
2237
|
+
_test_default_extra_refrigerators_values(hpxml_default, HPXML::LocationBasementConditioned, 244.0, 1.0, Schedule.ExtraRefrigeratorWeekdayFractions, Schedule.ExtraRefrigeratorWeekendFractions, Schedule.ExtraRefrigeratorMonthlyMultipliers)
|
1465
2238
|
end
|
1466
2239
|
|
1467
2240
|
def test_freezers
|
@@ -1490,7 +2263,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1490
2263
|
end
|
1491
2264
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1492
2265
|
hpxml_default = _test_measure()
|
1493
|
-
_test_default_freezers_values(hpxml_default, HPXML::LocationBasementConditioned, 320.0, 1.0,
|
2266
|
+
_test_default_freezers_values(hpxml_default, HPXML::LocationBasementConditioned, 320.0, 1.0, Schedule.FreezerWeekdayFractions, Schedule.FreezerWeekendFractions, Schedule.FreezerMonthlyMultipliers)
|
1494
2267
|
end
|
1495
2268
|
|
1496
2269
|
def test_cooking_ranges
|
@@ -1504,7 +2277,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1504
2277
|
hpxml.cooking_ranges[0].monthly_multipliers = ConstantMonthSchedule
|
1505
2278
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1506
2279
|
hpxml_default = _test_measure()
|
1507
|
-
_test_default_cooking_range_values(hpxml_default, HPXML::LocationBasementConditioned, true, 1.1, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
2280
|
+
_test_default_cooking_range_values(hpxml_default.cooking_ranges[0], HPXML::LocationBasementConditioned, true, 1.1, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
1508
2281
|
|
1509
2282
|
# Test defaults
|
1510
2283
|
hpxml.cooking_ranges[0].location = nil
|
@@ -1515,13 +2288,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1515
2288
|
hpxml.cooking_ranges[0].monthly_multipliers = nil
|
1516
2289
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1517
2290
|
hpxml_default = _test_measure()
|
1518
|
-
_test_default_cooking_range_values(hpxml_default, HPXML::LocationLivingSpace, false, 1.0,
|
2291
|
+
_test_default_cooking_range_values(hpxml_default.cooking_ranges[0], HPXML::LocationLivingSpace, false, 1.0, Schedule.CookingRangeWeekdayFractions, Schedule.CookingRangeWeekendFractions, Schedule.CookingRangeMonthlyMultipliers)
|
1519
2292
|
|
1520
2293
|
# Test defaults before 301-2019 Addendum A
|
1521
2294
|
hpxml.header.eri_calculation_version = '2019'
|
1522
2295
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1523
2296
|
hpxml_default = _test_measure()
|
1524
|
-
_test_default_cooking_range_values(hpxml_default, HPXML::LocationLivingSpace, false, 1.0,
|
2297
|
+
_test_default_cooking_range_values(hpxml_default.cooking_ranges[0], HPXML::LocationLivingSpace, false, 1.0, Schedule.CookingRangeWeekdayFractions, Schedule.CookingRangeWeekendFractions, Schedule.CookingRangeMonthlyMultipliers)
|
1525
2298
|
end
|
1526
2299
|
|
1527
2300
|
def test_ovens
|
@@ -1530,19 +2303,19 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1530
2303
|
hpxml.ovens[0].is_convection = true
|
1531
2304
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1532
2305
|
hpxml_default = _test_measure()
|
1533
|
-
_test_default_oven_values(hpxml_default, true)
|
2306
|
+
_test_default_oven_values(hpxml_default.ovens[0], true)
|
1534
2307
|
|
1535
2308
|
# Test defaults
|
1536
2309
|
hpxml.ovens[0].is_convection = nil
|
1537
2310
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1538
2311
|
hpxml_default = _test_measure()
|
1539
|
-
_test_default_oven_values(hpxml_default, false)
|
2312
|
+
_test_default_oven_values(hpxml_default.ovens[0], false)
|
1540
2313
|
|
1541
2314
|
# Test defaults before 301-2019 Addendum A
|
1542
2315
|
hpxml.header.eri_calculation_version = '2019'
|
1543
2316
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1544
2317
|
hpxml_default = _test_measure()
|
1545
|
-
_test_default_oven_values(hpxml_default, false)
|
2318
|
+
_test_default_oven_values(hpxml_default.ovens[0], false)
|
1546
2319
|
end
|
1547
2320
|
|
1548
2321
|
def test_lighting
|
@@ -1605,9 +2378,9 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1605
2378
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1606
2379
|
hpxml_default = _test_measure()
|
1607
2380
|
_test_default_lighting_values(hpxml_default, 1.0, 1.0, 1.0,
|
1608
|
-
{ ext_wk_sch:
|
1609
|
-
ext_wknd_sch:
|
1610
|
-
ext_month_mult:
|
2381
|
+
{ ext_wk_sch: Schedule.LightingExteriorWeekdayFractions,
|
2382
|
+
ext_wknd_sch: Schedule.LightingExteriorWeekendFractions,
|
2383
|
+
ext_month_mult: Schedule.LightingExteriorMonthlyMultipliers })
|
1611
2384
|
|
1612
2385
|
# Test defaults w/ garage
|
1613
2386
|
hpxml = _create_hpxml('base-enclosure-garage.xml')
|
@@ -1617,12 +2390,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1617
2390
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1618
2391
|
hpxml_default = _test_measure()
|
1619
2392
|
_test_default_lighting_values(hpxml_default, 1.0, 1.0, 1.0,
|
1620
|
-
{ ext_wk_sch:
|
1621
|
-
ext_wknd_sch:
|
1622
|
-
ext_month_mult:
|
1623
|
-
grg_wk_sch:
|
1624
|
-
grg_wknd_sch:
|
1625
|
-
grg_month_mult:
|
2393
|
+
{ ext_wk_sch: Schedule.LightingExteriorWeekdayFractions,
|
2394
|
+
ext_wknd_sch: Schedule.LightingExteriorWeekendFractions,
|
2395
|
+
ext_month_mult: Schedule.LightingExteriorMonthlyMultipliers,
|
2396
|
+
grg_wk_sch: Schedule.LightingExteriorWeekdayFractions,
|
2397
|
+
grg_wknd_sch: Schedule.LightingExteriorWeekendFractions,
|
2398
|
+
grg_month_mult: Schedule.LightingExteriorMonthlyMultipliers })
|
1626
2399
|
end
|
1627
2400
|
|
1628
2401
|
def test_ceiling_fans
|
@@ -1630,18 +2403,24 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1630
2403
|
hpxml = _create_hpxml('base-lighting-ceiling-fans.xml')
|
1631
2404
|
hpxml.ceiling_fans[0].quantity = 2
|
1632
2405
|
hpxml.ceiling_fans[0].efficiency = 100
|
2406
|
+
hpxml.ceiling_fans[0].weekday_fractions = ConstantDaySchedule
|
2407
|
+
hpxml.ceiling_fans[0].weekend_fractions = ConstantDaySchedule
|
2408
|
+
hpxml.ceiling_fans[0].monthly_multipliers = ConstantMonthSchedule
|
1633
2409
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1634
2410
|
hpxml_default = _test_measure()
|
1635
|
-
_test_default_ceiling_fan_values(hpxml_default, 2, 100)
|
2411
|
+
_test_default_ceiling_fan_values(hpxml_default.ceiling_fans[0], 2, 100, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
1636
2412
|
|
1637
2413
|
# Test defaults
|
1638
2414
|
hpxml.ceiling_fans.each do |ceiling_fan|
|
1639
2415
|
ceiling_fan.quantity = nil
|
1640
2416
|
ceiling_fan.efficiency = nil
|
2417
|
+
ceiling_fan.weekday_fractions = nil
|
2418
|
+
ceiling_fan.weekend_fractions = nil
|
2419
|
+
ceiling_fan.monthly_multipliers = nil
|
1641
2420
|
end
|
1642
2421
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1643
2422
|
hpxml_default = _test_measure()
|
1644
|
-
_test_default_ceiling_fan_values(hpxml_default, 4, 70.4)
|
2423
|
+
_test_default_ceiling_fan_values(hpxml_default.ceiling_fans[0], 4, 70.4, Schedule.CeilingFanWeekdayFractions, Schedule.CeilingFanWeekendFractions, '0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0')
|
1645
2424
|
end
|
1646
2425
|
|
1647
2426
|
def test_pools
|
@@ -1661,8 +2440,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1661
2440
|
pool.pump_monthly_multipliers = ConstantMonthSchedule
|
1662
2441
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1663
2442
|
hpxml_default = _test_measure()
|
1664
|
-
_test_default_pool_heater_values(hpxml_default, HPXML::UnitsKwhPerYear, 1000, 1.4, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
1665
|
-
_test_default_pool_pump_values(hpxml_default, 3000, 1.3, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
2443
|
+
_test_default_pool_heater_values(hpxml_default.pools[0], HPXML::UnitsKwhPerYear, 1000, 1.4, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
2444
|
+
_test_default_pool_pump_values(hpxml_default.pools[0], 3000, 1.3, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
1666
2445
|
|
1667
2446
|
# Test defaults
|
1668
2447
|
pool = hpxml.pools[0]
|
@@ -1679,8 +2458,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1679
2458
|
pool.pump_monthly_multipliers = nil
|
1680
2459
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1681
2460
|
hpxml_default = _test_measure()
|
1682
|
-
_test_default_pool_heater_values(hpxml_default, HPXML::UnitsThermPerYear, 236, 1.0,
|
1683
|
-
_test_default_pool_pump_values(hpxml_default
|
2461
|
+
_test_default_pool_heater_values(hpxml_default.pools[0], HPXML::UnitsThermPerYear, 236, 1.0, Schedule.PoolHeaterWeekdayFractions, Schedule.PoolHeaterWeekendFractions, Schedule.PoolHeaterMonthlyMultipliers)
|
2462
|
+
_test_default_pool_pump_values(hpxml_default.pools[0], 2496, 1.0, Schedule.PoolPumpWeekdayFractions, Schedule.PoolPumpWeekendFractions, Schedule.PoolPumpMonthlyMultipliers)
|
1684
2463
|
|
1685
2464
|
# Test defaults 2
|
1686
2465
|
hpxml = _create_hpxml('base-misc-loads-large-uncommon2.xml')
|
@@ -1698,8 +2477,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1698
2477
|
pool.pump_monthly_multipliers = nil
|
1699
2478
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1700
2479
|
hpxml_default = _test_measure()
|
1701
|
-
_test_default_pool_heater_values(hpxml_default, nil, nil, nil, nil, nil, nil)
|
1702
|
-
_test_default_pool_pump_values(hpxml_default
|
2480
|
+
_test_default_pool_heater_values(hpxml_default.pools[0], nil, nil, nil, nil, nil, nil)
|
2481
|
+
_test_default_pool_pump_values(hpxml_default.pools[0], 2496, 1.0, Schedule.PoolPumpWeekdayFractions, Schedule.PoolPumpWeekendFractions, Schedule.PoolPumpMonthlyMultipliers)
|
1703
2482
|
end
|
1704
2483
|
|
1705
2484
|
def test_hot_tubs
|
@@ -1719,8 +2498,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1719
2498
|
hot_tub.pump_monthly_multipliers = ConstantMonthSchedule
|
1720
2499
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1721
2500
|
hpxml_default = _test_measure()
|
1722
|
-
_test_default_hot_tub_heater_values(hpxml_default, HPXML::UnitsThermPerYear, 1000, 0.8, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
1723
|
-
_test_default_hot_tub_pump_values(hpxml_default, 3000, 0.7, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
2501
|
+
_test_default_hot_tub_heater_values(hpxml_default.hot_tubs[0], HPXML::UnitsThermPerYear, 1000, 0.8, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
2502
|
+
_test_default_hot_tub_pump_values(hpxml_default.hot_tubs[0], 3000, 0.7, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
1724
2503
|
|
1725
2504
|
# Test defaults
|
1726
2505
|
hot_tub = hpxml.hot_tubs[0]
|
@@ -1737,8 +2516,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1737
2516
|
hot_tub.pump_monthly_multipliers = nil
|
1738
2517
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1739
2518
|
hpxml_default = _test_measure()
|
1740
|
-
_test_default_hot_tub_heater_values(hpxml_default, HPXML::UnitsKwhPerYear, 1125, 1.0,
|
1741
|
-
_test_default_hot_tub_pump_values(hpxml_default, 1111, 1.0,
|
2519
|
+
_test_default_hot_tub_heater_values(hpxml_default.hot_tubs[0], HPXML::UnitsKwhPerYear, 1125, 1.0, Schedule.HotTubHeaterWeekdayFractions, Schedule.HotTubHeaterWeekendFractions, Schedule.HotTubHeaterMonthlyMultipliers)
|
2520
|
+
_test_default_hot_tub_pump_values(hpxml_default.hot_tubs[0], 1111, 1.0, Schedule.HotTubPumpWeekdayFractions, Schedule.HotTubPumpWeekendFractions, Schedule.HotTubPumpMonthlyMultipliers)
|
1742
2521
|
|
1743
2522
|
# Test defaults 2
|
1744
2523
|
hpxml = _create_hpxml('base-misc-loads-large-uncommon2.xml')
|
@@ -1756,8 +2535,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1756
2535
|
hot_tub.pump_monthly_multipliers = nil
|
1757
2536
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1758
2537
|
hpxml_default = _test_measure()
|
1759
|
-
_test_default_hot_tub_heater_values(hpxml_default, HPXML::UnitsKwhPerYear, 225, 1.0,
|
1760
|
-
_test_default_hot_tub_pump_values(hpxml_default, 1111, 1.0,
|
2538
|
+
_test_default_hot_tub_heater_values(hpxml_default.hot_tubs[0], HPXML::UnitsKwhPerYear, 225, 1.0, Schedule.HotTubHeaterWeekdayFractions, Schedule.HotTubHeaterWeekendFractions, Schedule.HotTubHeaterMonthlyMultipliers)
|
2539
|
+
_test_default_hot_tub_pump_values(hpxml_default.hot_tubs[0], 1111, 1.0, Schedule.HotTubPumpWeekdayFractions, Schedule.HotTubPumpWeekendFractions, Schedule.HotTubPumpMonthlyMultipliers)
|
1761
2540
|
end
|
1762
2541
|
|
1763
2542
|
def test_plug_loads
|
@@ -1814,10 +2593,10 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1814
2593
|
end
|
1815
2594
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1816
2595
|
hpxml_default = _test_measure()
|
1817
|
-
_test_default_plug_load_values(hpxml_default, HPXML::PlugLoadTypeTelevision, 620, 1.0, 0.0, 1.0,
|
1818
|
-
_test_default_plug_load_values(hpxml_default, HPXML::PlugLoadTypeOther, 2457, 0.855, 0.045, 1.0,
|
1819
|
-
_test_default_plug_load_values(hpxml_default, HPXML::PlugLoadTypeElectricVehicleCharging, 1667, 0.0, 0.0, 1.0,
|
1820
|
-
_test_default_plug_load_values(hpxml_default, HPXML::PlugLoadTypeWellPump, 441, 0.0, 0.0, 1.0,
|
2596
|
+
_test_default_plug_load_values(hpxml_default, HPXML::PlugLoadTypeTelevision, 620, 1.0, 0.0, 1.0, Schedule.PlugLoadsTVWeekdayFractions, Schedule.PlugLoadsTVWeekendFractions, Schedule.PlugLoadsTVMonthlyMultipliers)
|
2597
|
+
_test_default_plug_load_values(hpxml_default, HPXML::PlugLoadTypeOther, 2457, 0.855, 0.045, 1.0, Schedule.PlugLoadsOtherWeekdayFractions, Schedule.PlugLoadsOtherWeekendFractions, Schedule.PlugLoadsOtherMonthlyMultipliers)
|
2598
|
+
_test_default_plug_load_values(hpxml_default, HPXML::PlugLoadTypeElectricVehicleCharging, 1667, 0.0, 0.0, 1.0, Schedule.PlugLoadsVehicleWeekdayFractions, Schedule.PlugLoadsVehicleWeekendFractions, Schedule.PlugLoadsVehicleMonthlyMultipliers)
|
2599
|
+
_test_default_plug_load_values(hpxml_default, HPXML::PlugLoadTypeWellPump, 441, 0.0, 0.0, 1.0, Schedule.PlugLoadsWellPumpWeekdayFractions, Schedule.PlugLoadsWellPumpWeekendFractions, Schedule.PlugLoadsWellPumpMonthlyMultipliers)
|
1821
2600
|
end
|
1822
2601
|
|
1823
2602
|
def test_fuel_loads
|
@@ -1865,9 +2644,97 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1865
2644
|
end
|
1866
2645
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1867
2646
|
hpxml_default = _test_measure()
|
1868
|
-
_test_default_fuel_load_values(hpxml_default, HPXML::FuelLoadTypeGrill, 33, 0.0, 0.0, 1.0,
|
1869
|
-
_test_default_fuel_load_values(hpxml_default, HPXML::FuelLoadTypeLighting, 20, 0.0, 0.0, 1.0,
|
1870
|
-
_test_default_fuel_load_values(hpxml_default, HPXML::FuelLoadTypeFireplace, 67, 0.5, 0.1, 1.0,
|
2647
|
+
_test_default_fuel_load_values(hpxml_default, HPXML::FuelLoadTypeGrill, 33, 0.0, 0.0, 1.0, Schedule.FuelLoadsGrillWeekdayFractions, Schedule.FuelLoadsGrillWeekendFractions, Schedule.FuelLoadsGrillMonthlyMultipliers)
|
2648
|
+
_test_default_fuel_load_values(hpxml_default, HPXML::FuelLoadTypeLighting, 20, 0.0, 0.0, 1.0, Schedule.FuelLoadsLightingWeekdayFractions, Schedule.FuelLoadsLightingWeekendFractions, Schedule.FuelLoadsLightingMonthlyMultipliers)
|
2649
|
+
_test_default_fuel_load_values(hpxml_default, HPXML::FuelLoadTypeFireplace, 67, 0.5, 0.1, 1.0, Schedule.FuelLoadsFireplaceWeekdayFractions, Schedule.FuelLoadsFireplaceWeekendFractions, Schedule.FuelLoadsFireplaceMonthlyMultipliers)
|
2650
|
+
end
|
2651
|
+
|
2652
|
+
def test_hvac_lookup
|
2653
|
+
central_air_conditioner_seer = HVAC.get_default_hvac_efficiency_by_year_installed(1970, 'central air conditioner', 'electricity', 'SEER')
|
2654
|
+
assert_equal(central_air_conditioner_seer, 8.0)
|
2655
|
+
|
2656
|
+
room_air_conditioner_eer = HVAC.get_default_hvac_efficiency_by_year_installed(1993, 'room air conditioner', 'electricity', 'EER')
|
2657
|
+
assert_equal(room_air_conditioner_eer, 9.05)
|
2658
|
+
|
2659
|
+
furnace_afue = HVAC.get_default_hvac_efficiency_by_year_installed(1997, 'Furnace', 'natural gas', 'AFUE')
|
2660
|
+
assert_equal(furnace_afue, 0.829)
|
2661
|
+
|
2662
|
+
furnace_afue = HVAC.get_default_hvac_efficiency_by_year_installed(1981, 'Furnace', 'diesel', 'AFUE')
|
2663
|
+
assert_equal(furnace_afue, 0.768)
|
2664
|
+
|
2665
|
+
wall_furnace_afue = HVAC.get_default_hvac_efficiency_by_year_installed(1997, 'WallFurnace', 'natural gas', 'AFUE')
|
2666
|
+
assert_equal(wall_furnace_afue, 0.656)
|
2667
|
+
|
2668
|
+
wall_furnace_afue = HVAC.get_default_hvac_efficiency_by_year_installed(1971, 'WallFurnace', 'propane', 'AFUE')
|
2669
|
+
assert_equal(wall_furnace_afue, 0.6)
|
2670
|
+
|
2671
|
+
wall_furnace_afue = HVAC.get_default_hvac_efficiency_by_year_installed(1970, 'FloorFurnace', 'natural gas', 'AFUE')
|
2672
|
+
assert_equal(wall_furnace_afue, 0.6)
|
2673
|
+
|
2674
|
+
boiler_afue = HVAC.get_default_hvac_efficiency_by_year_installed(2004, 'Boiler', 'propane', 'AFUE')
|
2675
|
+
assert_equal(boiler_afue, 0.831)
|
2676
|
+
|
2677
|
+
heatpump_seer = HVAC.get_default_hvac_efficiency_by_year_installed(1991, 'air-to-air', 'electricity', 'SEER')
|
2678
|
+
assert_equal(heatpump_seer, 9.77)
|
2679
|
+
|
2680
|
+
heatpump_hspf = HVAC.get_default_hvac_efficiency_by_year_installed(1988, 'air-to-air', 'electricity', 'HSPF')
|
2681
|
+
assert_equal(heatpump_hspf, 6.88)
|
2682
|
+
|
2683
|
+
assert_equal(
|
2684
|
+
HVAC.get_default_hvac_efficiency_by_year_installed(2010, 'air-to-air', 'electricity', 'SEER'),
|
2685
|
+
HVAC.get_default_hvac_efficiency_by_year_installed(2011, 'air-to-air', 'electricity', 'SEER')
|
2686
|
+
)
|
2687
|
+
|
2688
|
+
assert_equal(
|
2689
|
+
HVAC.get_default_hvac_efficiency_by_year_installed(2010, 'Furnace', 'natural gas', 'AFUE'),
|
2690
|
+
HVAC.get_default_hvac_efficiency_by_year_installed(2020, 'Furnace', 'natural gas', 'AFUE')
|
2691
|
+
)
|
2692
|
+
|
2693
|
+
assert_equal(
|
2694
|
+
HVAC.get_default_hvac_efficiency_by_year_installed(1969, 'Boiler', 'fuel oil', 'AFUE'),
|
2695
|
+
HVAC.get_default_hvac_efficiency_by_year_installed(1970, 'Boiler', 'fuel oil', 'AFUE')
|
2696
|
+
)
|
2697
|
+
|
2698
|
+
assert_equal(
|
2699
|
+
HVAC.get_default_hvac_efficiency_by_year_installed(1955, 'central air conditioner', 'electricity', 'SEER'),
|
2700
|
+
HVAC.get_default_hvac_efficiency_by_year_installed(1970, 'central air conditioner', 'electricity', 'SEER')
|
2701
|
+
)
|
2702
|
+
end
|
2703
|
+
|
2704
|
+
def test_dhw_lookup
|
2705
|
+
waterheater_elec_ef = Waterheater.get_default_water_heater_efficiency_by_year_installed(2006, 'electricity')
|
2706
|
+
assert_equal(waterheater_elec_ef, 0.9)
|
2707
|
+
|
2708
|
+
waterheater_natural_gas_ef = Waterheater.get_default_water_heater_efficiency_by_year_installed(1998, 'natural gas')
|
2709
|
+
assert_equal(waterheater_natural_gas_ef, 0.501)
|
2710
|
+
|
2711
|
+
waterheater_propane_ef = Waterheater.get_default_water_heater_efficiency_by_year_installed(2007, 'propane')
|
2712
|
+
assert_equal(waterheater_propane_ef, 0.55)
|
2713
|
+
|
2714
|
+
waterheater_fuel_oil_ef = Waterheater.get_default_water_heater_efficiency_by_year_installed(1989, 'fuel oil')
|
2715
|
+
assert_equal(waterheater_fuel_oil_ef, 0.54)
|
2716
|
+
|
2717
|
+
waterheater_fuel_oil_ef = Waterheater.get_default_water_heater_efficiency_by_year_installed(1989, 'wood')
|
2718
|
+
assert_equal(waterheater_fuel_oil_ef, 0.54)
|
2719
|
+
|
2720
|
+
['natural gas', 'electricity', 'propane', 'fuel oil'].each do |fuel_type|
|
2721
|
+
assert_equal(
|
2722
|
+
Waterheater.get_default_water_heater_efficiency_by_year_installed(2010, fuel_type),
|
2723
|
+
Waterheater.get_default_water_heater_efficiency_by_year_installed(2011, fuel_type)
|
2724
|
+
)
|
2725
|
+
assert_equal(
|
2726
|
+
Waterheater.get_default_water_heater_efficiency_by_year_installed(2010, fuel_type),
|
2727
|
+
Waterheater.get_default_water_heater_efficiency_by_year_installed(2020, fuel_type)
|
2728
|
+
)
|
2729
|
+
assert_equal(
|
2730
|
+
Waterheater.get_default_water_heater_efficiency_by_year_installed(1971, fuel_type),
|
2731
|
+
Waterheater.get_default_water_heater_efficiency_by_year_installed(1972, fuel_type)
|
2732
|
+
)
|
2733
|
+
assert_equal(
|
2734
|
+
Waterheater.get_default_water_heater_efficiency_by_year_installed(1955, fuel_type),
|
2735
|
+
Waterheater.get_default_water_heater_efficiency_by_year_installed(1972, fuel_type)
|
2736
|
+
)
|
2737
|
+
end
|
1871
2738
|
end
|
1872
2739
|
|
1873
2740
|
def _test_measure()
|
@@ -1928,8 +2795,30 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1928
2795
|
assert_equal(shielding_of_home, hpxml.site.shielding_of_home)
|
1929
2796
|
end
|
1930
2797
|
|
1931
|
-
def
|
2798
|
+
def _test_default_neighbor_building_values(hpxml, azimuths)
|
2799
|
+
assert_equal(azimuths.size, hpxml.neighbor_buildings.size)
|
2800
|
+
hpxml.neighbor_buildings.each_with_index do |neighbor_building, idx|
|
2801
|
+
assert_equal(azimuths[idx], neighbor_building.azimuth)
|
2802
|
+
end
|
2803
|
+
end
|
2804
|
+
|
2805
|
+
def _test_default_occupancy_values(hpxml, num_occupants, weekday_sch, weekend_sch, monthly_mults)
|
1932
2806
|
assert_equal(num_occupants, hpxml.building_occupancy.number_of_residents)
|
2807
|
+
if weekday_sch.nil?
|
2808
|
+
assert_nil(hpxml.building_occupancy.weekday_fractions)
|
2809
|
+
else
|
2810
|
+
assert_equal(weekday_sch, hpxml.building_occupancy.weekday_fractions)
|
2811
|
+
end
|
2812
|
+
if weekend_sch.nil?
|
2813
|
+
assert_nil(hpxml.building_occupancy.weekend_fractions)
|
2814
|
+
else
|
2815
|
+
assert_equal(weekend_sch, hpxml.building_occupancy.weekend_fractions)
|
2816
|
+
end
|
2817
|
+
if monthly_mults.nil?
|
2818
|
+
assert_nil(hpxml.building_occupancy.monthly_multipliers)
|
2819
|
+
else
|
2820
|
+
assert_equal(monthly_mults, hpxml.building_occupancy.monthly_multipliers)
|
2821
|
+
end
|
1933
2822
|
end
|
1934
2823
|
|
1935
2824
|
def _test_default_building_construction_values(hpxml, building_volume, average_ceiling_height, has_flue_or_chimney, n_bathrooms)
|
@@ -1939,67 +2828,94 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1939
2828
|
assert_equal(n_bathrooms, hpxml.building_construction.number_of_bathrooms)
|
1940
2829
|
end
|
1941
2830
|
|
1942
|
-
def _test_default_infiltration_values(
|
1943
|
-
air_infiltration_measurement = hpxml.air_infiltration_measurements[0]
|
1944
|
-
|
2831
|
+
def _test_default_infiltration_values(air_infiltration_measurement, volume)
|
1945
2832
|
assert_equal(volume, air_infiltration_measurement.infiltration_volume)
|
1946
2833
|
end
|
1947
2834
|
|
1948
|
-
def _test_default_attic_values(
|
1949
|
-
attic = hpxml.attics[0]
|
1950
|
-
|
2835
|
+
def _test_default_attic_values(attic, sla)
|
1951
2836
|
assert_in_epsilon(sla, attic.vented_attic_sla, 0.001)
|
1952
2837
|
end
|
1953
2838
|
|
1954
|
-
def _test_default_foundation_values(
|
1955
|
-
foundation = hpxml.foundations[0]
|
1956
|
-
|
2839
|
+
def _test_default_foundation_values(foundation, sla)
|
1957
2840
|
assert_in_epsilon(sla, foundation.vented_crawlspace_sla, 0.001)
|
1958
2841
|
end
|
1959
2842
|
|
1960
|
-
def _test_default_roof_values(
|
1961
|
-
|
1962
|
-
|
2843
|
+
def _test_default_roof_values(roof, roof_type, solar_absorptance, roof_color, emittance, radiant_barrier,
|
2844
|
+
radiant_barrier_grade, int_finish_type, int_finish_thickness, azimuth)
|
1963
2845
|
assert_equal(roof_type, roof.roof_type)
|
1964
2846
|
assert_equal(solar_absorptance, roof.solar_absorptance)
|
1965
2847
|
assert_equal(roof_color, roof.roof_color)
|
1966
2848
|
assert_equal(emittance, roof.emittance)
|
1967
2849
|
assert_equal(radiant_barrier, roof.radiant_barrier)
|
2850
|
+
if not radiant_barrier_grade.nil?
|
2851
|
+
assert_equal(radiant_barrier_grade, roof.radiant_barrier_grade)
|
2852
|
+
else
|
2853
|
+
assert_nil(roof.radiant_barrier_grade)
|
2854
|
+
end
|
2855
|
+
assert_equal(int_finish_type, roof.interior_finish_type)
|
2856
|
+
if not int_finish_thickness.nil?
|
2857
|
+
assert_equal(int_finish_thickness, roof.interior_finish_thickness)
|
2858
|
+
else
|
2859
|
+
assert_nil(roof.interior_finish_thickness)
|
2860
|
+
end
|
2861
|
+
assert_equal(azimuth, roof.azimuth)
|
1968
2862
|
end
|
1969
2863
|
|
1970
|
-
def _test_default_rim_joist_values(
|
1971
|
-
rim_joist = hpxml.rim_joists[0]
|
1972
|
-
|
2864
|
+
def _test_default_rim_joist_values(rim_joist, siding, solar_absorptance, color, emittance, azimuth)
|
1973
2865
|
assert_equal(siding, rim_joist.siding)
|
1974
2866
|
assert_equal(solar_absorptance, rim_joist.solar_absorptance)
|
1975
2867
|
assert_equal(color, rim_joist.color)
|
1976
2868
|
assert_equal(emittance, rim_joist.emittance)
|
2869
|
+
assert_equal(azimuth, rim_joist.azimuth)
|
1977
2870
|
end
|
1978
2871
|
|
1979
|
-
def _test_default_wall_values(
|
1980
|
-
wall = hpxml.walls[0]
|
1981
|
-
|
2872
|
+
def _test_default_wall_values(wall, siding, solar_absorptance, color, emittance, int_finish_type, int_finish_thickness, azimuth)
|
1982
2873
|
assert_equal(siding, wall.siding)
|
1983
2874
|
assert_equal(solar_absorptance, wall.solar_absorptance)
|
1984
2875
|
assert_equal(color, wall.color)
|
1985
2876
|
assert_equal(emittance, wall.emittance)
|
2877
|
+
assert_equal(int_finish_type, wall.interior_finish_type)
|
2878
|
+
if not int_finish_thickness.nil?
|
2879
|
+
assert_equal(int_finish_thickness, wall.interior_finish_thickness)
|
2880
|
+
else
|
2881
|
+
assert_nil(wall.interior_finish_thickness)
|
2882
|
+
end
|
1986
2883
|
end
|
1987
2884
|
|
1988
|
-
def _test_default_foundation_wall_values(
|
1989
|
-
|
1990
|
-
|
2885
|
+
def _test_default_foundation_wall_values(foundation_wall, thickness, int_finish_type, int_finish_thickness, azimuth, area,
|
2886
|
+
ins_int_top, ins_int_bottom, ins_ext_top, ins_ext_bottom, type)
|
1991
2887
|
assert_equal(thickness, foundation_wall.thickness)
|
2888
|
+
assert_equal(int_finish_type, foundation_wall.interior_finish_type)
|
2889
|
+
if not int_finish_thickness.nil?
|
2890
|
+
assert_equal(int_finish_thickness, foundation_wall.interior_finish_thickness)
|
2891
|
+
else
|
2892
|
+
assert_nil(foundation_wall.interior_finish_thickness)
|
2893
|
+
end
|
2894
|
+
assert_equal(azimuth, foundation_wall.azimuth)
|
2895
|
+
assert_equal(area, foundation_wall.area)
|
2896
|
+
assert_equal(ins_int_top, foundation_wall.insulation_interior_distance_to_top)
|
2897
|
+
assert_equal(ins_int_bottom, foundation_wall.insulation_interior_distance_to_bottom)
|
2898
|
+
assert_equal(ins_ext_top, foundation_wall.insulation_exterior_distance_to_top)
|
2899
|
+
assert_equal(ins_ext_bottom, foundation_wall.insulation_exterior_distance_to_bottom)
|
2900
|
+
assert_equal(type, foundation_wall.type)
|
1992
2901
|
end
|
1993
2902
|
|
1994
|
-
def
|
1995
|
-
|
2903
|
+
def _test_default_frame_floor_values(frame_floor, int_finish_type, int_finish_thickness)
|
2904
|
+
assert_equal(int_finish_type, frame_floor.interior_finish_type)
|
2905
|
+
if not int_finish_thickness.nil?
|
2906
|
+
assert_equal(int_finish_thickness, frame_floor.interior_finish_thickness)
|
2907
|
+
else
|
2908
|
+
assert_nil(frame_floor.interior_finish_thickness)
|
2909
|
+
end
|
2910
|
+
end
|
1996
2911
|
|
2912
|
+
def _test_default_slab_values(slab, thickness, carpet_r_value, carpet_fraction)
|
1997
2913
|
assert_equal(thickness, slab.thickness)
|
1998
2914
|
assert_equal(carpet_r_value, slab.carpet_r_value)
|
1999
2915
|
assert_equal(carpet_fraction, slab.carpet_fraction)
|
2000
2916
|
end
|
2001
2917
|
|
2002
|
-
def _test_default_window_values(hpxml, ext_summer_sfs, ext_winter_sfs, int_summer_sfs, int_winter_sfs, fraction_operable)
|
2918
|
+
def _test_default_window_values(hpxml, ext_summer_sfs, ext_winter_sfs, int_summer_sfs, int_winter_sfs, fraction_operable, azimuths)
|
2003
2919
|
assert_equal(ext_summer_sfs.size, hpxml.windows.size)
|
2004
2920
|
hpxml.windows.each_with_index do |window, idx|
|
2005
2921
|
assert_equal(ext_summer_sfs[idx], window.exterior_shading_factor_summer)
|
@@ -2007,23 +2923,40 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2007
2923
|
assert_equal(int_summer_sfs[idx], window.interior_shading_factor_summer)
|
2008
2924
|
assert_equal(int_winter_sfs[idx], window.interior_shading_factor_winter)
|
2009
2925
|
assert_equal(fraction_operable[idx], window.fraction_operable)
|
2926
|
+
assert_equal(azimuths[idx], window.azimuth)
|
2010
2927
|
end
|
2011
2928
|
end
|
2012
2929
|
|
2013
|
-
def _test_default_skylight_values(hpxml, ext_summer_sfs, ext_winter_sfs, int_summer_sfs, int_winter_sfs)
|
2930
|
+
def _test_default_skylight_values(hpxml, ext_summer_sfs, ext_winter_sfs, int_summer_sfs, int_winter_sfs, azimuths)
|
2014
2931
|
assert_equal(ext_summer_sfs.size, hpxml.skylights.size)
|
2015
2932
|
hpxml.skylights.each_with_index do |skylight, idx|
|
2016
2933
|
assert_equal(ext_summer_sfs[idx], skylight.exterior_shading_factor_summer)
|
2017
2934
|
assert_equal(ext_winter_sfs[idx], skylight.exterior_shading_factor_winter)
|
2018
2935
|
assert_equal(int_summer_sfs[idx], skylight.interior_shading_factor_summer)
|
2019
2936
|
assert_equal(int_winter_sfs[idx], skylight.interior_shading_factor_winter)
|
2937
|
+
assert_equal(azimuths[idx], skylight.azimuth)
|
2020
2938
|
end
|
2021
2939
|
end
|
2022
2940
|
|
2023
|
-
def
|
2024
|
-
|
2025
|
-
|
2941
|
+
def _test_default_door_values(hpxml, azimuths)
|
2942
|
+
hpxml.doors.each_with_index do |door, idx|
|
2943
|
+
assert_equal(azimuths[idx], door.azimuth)
|
2944
|
+
end
|
2945
|
+
end
|
2026
2946
|
|
2947
|
+
def _test_default_partition_wall_mass_values(partition_wall_mass, area_fraction, int_finish_type, int_finish_thickness)
|
2948
|
+
assert_equal(area_fraction, partition_wall_mass.area_fraction)
|
2949
|
+
assert_equal(int_finish_type, partition_wall_mass.interior_finish_type)
|
2950
|
+
assert_equal(int_finish_thickness, partition_wall_mass.interior_finish_thickness)
|
2951
|
+
end
|
2952
|
+
|
2953
|
+
def _test_default_furniture_mass_values(furniture_mass, area_fraction, type)
|
2954
|
+
assert_equal(area_fraction, furniture_mass.area_fraction)
|
2955
|
+
assert_equal(type, furniture_mass.type)
|
2956
|
+
end
|
2957
|
+
|
2958
|
+
def _test_default_central_air_conditioner_values(cooling_system, shr, compressor_type, fan_watts_per_cfm, charge_defect_ratio,
|
2959
|
+
airflow_defect_ratio, cooling_capacity, cooling_efficiency_seer)
|
2027
2960
|
assert_equal(shr, cooling_system.cooling_shr)
|
2028
2961
|
assert_equal(compressor_type, cooling_system.compressor_type)
|
2029
2962
|
assert_equal(fan_watts_per_cfm, cooling_system.fan_watts_per_cfm)
|
@@ -2034,22 +2967,28 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2034
2967
|
else
|
2035
2968
|
assert_equal(cooling_system.cooling_capacity, cooling_capacity)
|
2036
2969
|
end
|
2970
|
+
if cooling_efficiency_seer.nil?
|
2971
|
+
assert_nil(cooling_system.cooling_efficiency_seer)
|
2972
|
+
else
|
2973
|
+
assert_equal(cooling_system.cooling_efficiency_seer, cooling_efficiency_seer)
|
2974
|
+
end
|
2037
2975
|
end
|
2038
2976
|
|
2039
|
-
def
|
2040
|
-
cooling_system = hpxml.cooling_systems[0]
|
2041
|
-
|
2977
|
+
def _test_default_room_air_conditioner_ptac_values(cooling_system, shr, cooling_capacity, cooling_efficiency_eer)
|
2042
2978
|
assert_equal(shr, cooling_system.cooling_shr)
|
2043
2979
|
if cooling_capacity.nil?
|
2044
2980
|
assert(cooling_system.cooling_capacity > 0)
|
2045
2981
|
else
|
2046
2982
|
assert_equal(cooling_system.cooling_capacity, cooling_capacity)
|
2047
2983
|
end
|
2984
|
+
if cooling_efficiency_eer.nil?
|
2985
|
+
assert_nil(cooling_system.cooling_efficiency_eer)
|
2986
|
+
else
|
2987
|
+
assert_equal(cooling_system.cooling_efficiency_eer, cooling_efficiency_eer)
|
2988
|
+
end
|
2048
2989
|
end
|
2049
2990
|
|
2050
|
-
def _test_default_evap_cooler_values(
|
2051
|
-
cooling_system = hpxml.cooling_systems[0]
|
2052
|
-
|
2991
|
+
def _test_default_evap_cooler_values(cooling_system, cooling_capacity)
|
2053
2992
|
if cooling_capacity.nil?
|
2054
2993
|
assert(cooling_system.cooling_capacity > 0)
|
2055
2994
|
else
|
@@ -2057,10 +2996,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2057
2996
|
end
|
2058
2997
|
end
|
2059
2998
|
|
2060
|
-
def _test_default_mini_split_air_conditioner_values(
|
2999
|
+
def _test_default_mini_split_air_conditioner_values(cooling_system, shr, fan_watts_per_cfm, charge_defect_ratio,
|
2061
3000
|
airflow_defect_ratio, cooling_capacity)
|
2062
|
-
cooling_system = hpxml.cooling_systems[0]
|
2063
|
-
|
2064
3001
|
assert_equal(shr, cooling_system.cooling_shr)
|
2065
3002
|
assert_equal(fan_watts_per_cfm, cooling_system.fan_watts_per_cfm)
|
2066
3003
|
assert_equal(charge_defect_ratio, cooling_system.charge_defect_ratio)
|
@@ -2072,10 +3009,16 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2072
3009
|
end
|
2073
3010
|
end
|
2074
3011
|
|
2075
|
-
def
|
2076
|
-
|
2077
|
-
|
3012
|
+
def _test_default_elec_resistance(heating_system, heating_efficiency_percent)
|
3013
|
+
if heating_efficiency_percent.nil?
|
3014
|
+
assert_nil(heating_system.heating_efficiency_percent)
|
3015
|
+
else
|
3016
|
+
assert_equal(heating_system.heating_efficiency_percent, heating_efficiency_percent)
|
3017
|
+
end
|
3018
|
+
end
|
2078
3019
|
|
3020
|
+
def _test_default_furnace_values(heating_system, fan_watts_per_cfm, airflow_defect_ratio,
|
3021
|
+
heating_capacity, heating_efficiency_afue)
|
2079
3022
|
assert_equal(fan_watts_per_cfm, heating_system.fan_watts_per_cfm)
|
2080
3023
|
assert_equal(airflow_defect_ratio, heating_system.airflow_defect_ratio)
|
2081
3024
|
if heating_capacity.nil?
|
@@ -2083,90 +3026,115 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2083
3026
|
else
|
2084
3027
|
assert_equal(heating_system.heating_capacity, heating_capacity)
|
2085
3028
|
end
|
3029
|
+
if heating_efficiency_afue.nil?
|
3030
|
+
assert_nil(heating_system.heating_efficiency_afue)
|
3031
|
+
else
|
3032
|
+
assert_equal(heating_system.heating_efficiency_afue, heating_efficiency_afue)
|
3033
|
+
end
|
2086
3034
|
end
|
2087
3035
|
|
2088
|
-
def _test_default_wall_furnace_values(
|
2089
|
-
heating_system = hpxml.heating_systems[0]
|
2090
|
-
|
3036
|
+
def _test_default_wall_furnace_values(heating_system, fan_watts, heating_capacity, heating_efficiency_afue)
|
2091
3037
|
assert_equal(fan_watts, heating_system.fan_watts)
|
2092
3038
|
if heating_capacity.nil?
|
2093
3039
|
assert(heating_system.heating_capacity > 0)
|
2094
3040
|
else
|
2095
3041
|
assert_equal(heating_system.heating_capacity, heating_capacity)
|
2096
3042
|
end
|
3043
|
+
if heating_efficiency_afue.nil?
|
3044
|
+
assert_nil(heating_system.heating_efficiency_afue)
|
3045
|
+
else
|
3046
|
+
assert_equal(heating_system.heating_efficiency_afue, heating_efficiency_afue)
|
3047
|
+
end
|
2097
3048
|
end
|
2098
3049
|
|
2099
|
-
def _test_default_floor_furnace_values(
|
2100
|
-
heating_system = hpxml.heating_systems[0]
|
2101
|
-
|
3050
|
+
def _test_default_floor_furnace_values(heating_system, fan_watts, heating_capacity, heating_efficiency_afue)
|
2102
3051
|
assert_equal(fan_watts, heating_system.fan_watts)
|
2103
3052
|
if heating_capacity.nil?
|
2104
3053
|
assert(heating_system.heating_capacity > 0)
|
2105
3054
|
else
|
2106
3055
|
assert_equal(heating_system.heating_capacity, heating_capacity)
|
2107
3056
|
end
|
3057
|
+
if heating_efficiency_afue.nil?
|
3058
|
+
assert_nil(heating_system.heating_efficiency_afue)
|
3059
|
+
else
|
3060
|
+
assert_equal(heating_system.heating_efficiency_afue, heating_efficiency_afue)
|
3061
|
+
end
|
2108
3062
|
end
|
2109
3063
|
|
2110
|
-
def _test_default_boiler_values(
|
2111
|
-
heating_system = hpxml.heating_systems[0]
|
2112
|
-
|
3064
|
+
def _test_default_boiler_values(heating_system, eae, heating_capacity, heating_efficiency_afue)
|
2113
3065
|
assert_equal(eae, heating_system.electric_auxiliary_energy)
|
2114
3066
|
if heating_capacity.nil?
|
2115
3067
|
assert(heating_system.heating_capacity > 0)
|
2116
3068
|
else
|
2117
3069
|
assert_equal(heating_system.heating_capacity, heating_capacity)
|
2118
3070
|
end
|
3071
|
+
if heating_efficiency_afue.nil?
|
3072
|
+
assert_nil(heating_system.heating_efficiency_afue)
|
3073
|
+
else
|
3074
|
+
assert_equal(heating_system.heating_efficiency_afue, heating_efficiency_afue)
|
3075
|
+
end
|
2119
3076
|
end
|
2120
3077
|
|
2121
|
-
def _test_default_stove_values(
|
2122
|
-
heating_system = hpxml.heating_systems[0]
|
2123
|
-
|
3078
|
+
def _test_default_stove_values(heating_system, fan_watts, heating_capacity, heating_efficiency_percent)
|
2124
3079
|
assert_equal(fan_watts, heating_system.fan_watts)
|
2125
3080
|
if heating_capacity.nil?
|
2126
3081
|
assert(heating_system.heating_capacity > 0)
|
2127
3082
|
else
|
2128
3083
|
assert_equal(heating_system.heating_capacity, heating_capacity)
|
2129
3084
|
end
|
3085
|
+
if heating_efficiency_percent.nil?
|
3086
|
+
assert_nil(heating_system.heating_efficiency_percent)
|
3087
|
+
else
|
3088
|
+
assert_equal(heating_system.heating_efficiency_percent, heating_efficiency_percent)
|
3089
|
+
end
|
2130
3090
|
end
|
2131
3091
|
|
2132
|
-
def _test_default_portable_heater_values(
|
2133
|
-
heating_system = hpxml.heating_systems[0]
|
2134
|
-
|
3092
|
+
def _test_default_portable_heater_values(heating_system, fan_watts, heating_capacity, heating_efficiency_percent)
|
2135
3093
|
assert_equal(fan_watts, heating_system.fan_watts)
|
2136
3094
|
if heating_capacity.nil?
|
2137
3095
|
assert(heating_system.heating_capacity > 0)
|
2138
3096
|
else
|
2139
3097
|
assert_equal(heating_system.heating_capacity, heating_capacity)
|
2140
3098
|
end
|
3099
|
+
if heating_efficiency_percent.nil?
|
3100
|
+
assert_nil(heating_system.heating_efficiency_percent)
|
3101
|
+
else
|
3102
|
+
assert_equal(heating_system.heating_efficiency_percent, heating_efficiency_percent)
|
3103
|
+
end
|
2141
3104
|
end
|
2142
3105
|
|
2143
|
-
def _test_default_fixed_heater_values(
|
2144
|
-
heating_system = hpxml.heating_systems[0]
|
2145
|
-
|
3106
|
+
def _test_default_fixed_heater_values(heating_system, fan_watts, heating_capacity, heating_efficiency_percent)
|
2146
3107
|
assert_equal(fan_watts, heating_system.fan_watts)
|
2147
3108
|
if heating_capacity.nil?
|
2148
3109
|
assert(heating_system.heating_capacity > 0)
|
2149
3110
|
else
|
2150
3111
|
assert_equal(heating_system.heating_capacity, heating_capacity)
|
2151
3112
|
end
|
3113
|
+
if heating_efficiency_percent.nil?
|
3114
|
+
assert_nil(heating_system.heating_efficiency_percent)
|
3115
|
+
else
|
3116
|
+
assert_equal(heating_system.heating_efficiency_percent, heating_efficiency_percent)
|
3117
|
+
end
|
2152
3118
|
end
|
2153
3119
|
|
2154
|
-
def _test_default_fireplace_values(
|
2155
|
-
heating_system = hpxml.heating_systems[0]
|
2156
|
-
|
3120
|
+
def _test_default_fireplace_values(heating_system, fan_watts, heating_capacity, heating_efficiency_percent)
|
2157
3121
|
assert_equal(fan_watts, heating_system.fan_watts)
|
2158
3122
|
if heating_capacity.nil?
|
2159
3123
|
assert(heating_system.heating_capacity > 0)
|
2160
3124
|
else
|
2161
3125
|
assert_equal(heating_system.heating_capacity, heating_capacity)
|
2162
3126
|
end
|
3127
|
+
if heating_efficiency_percent.nil?
|
3128
|
+
assert_nil(heating_system.heating_efficiency_percent)
|
3129
|
+
else
|
3130
|
+
assert_equal(heating_system.heating_efficiency_percent, heating_efficiency_percent)
|
3131
|
+
end
|
2163
3132
|
end
|
2164
3133
|
|
2165
|
-
def _test_default_air_to_air_heat_pump_values(
|
3134
|
+
def _test_default_air_to_air_heat_pump_values(heat_pump, shr, compressor_type, fan_watts_per_cfm, charge_defect_ratio,
|
2166
3135
|
airflow_defect_ratio, cooling_capacity, heating_capacity,
|
2167
|
-
heating_capacity_17F, backup_heating_capacity
|
2168
|
-
|
2169
|
-
|
3136
|
+
heating_capacity_17F, backup_heating_capacity,
|
3137
|
+
cooling_efficiency_seer, heating_efficiency_hspf)
|
2170
3138
|
assert_equal(shr, heat_pump.cooling_shr)
|
2171
3139
|
assert_equal(compressor_type, heat_pump.compressor_type)
|
2172
3140
|
assert_equal(fan_watts_per_cfm, heat_pump.fan_watts_per_cfm)
|
@@ -2192,13 +3160,35 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2192
3160
|
else
|
2193
3161
|
assert_equal(heat_pump.backup_heating_capacity, backup_heating_capacity)
|
2194
3162
|
end
|
3163
|
+
if cooling_efficiency_seer.nil?
|
3164
|
+
assert_nil(heat_pump.cooling_efficiency_seer)
|
3165
|
+
else
|
3166
|
+
assert_equal(heat_pump.cooling_efficiency_seer, cooling_efficiency_seer)
|
3167
|
+
end
|
3168
|
+
if heating_efficiency_hspf.nil?
|
3169
|
+
assert_nil(heat_pump.heating_efficiency_hspf)
|
3170
|
+
else
|
3171
|
+
assert_equal(heat_pump.heating_efficiency_hspf, heating_efficiency_hspf)
|
3172
|
+
end
|
3173
|
+
end
|
3174
|
+
|
3175
|
+
def _test_default_pthp_values(heat_pump, shr, cooling_capacity, heating_capacity)
|
3176
|
+
assert_equal(shr, heat_pump.cooling_shr)
|
3177
|
+
if cooling_capacity.nil?
|
3178
|
+
assert(heat_pump.cooling_capacity > 0)
|
3179
|
+
else
|
3180
|
+
assert_equal(heat_pump.cooling_capacity, cooling_capacity)
|
3181
|
+
end
|
3182
|
+
if heating_capacity.nil?
|
3183
|
+
assert(heat_pump.heating_capacity > 0)
|
3184
|
+
else
|
3185
|
+
assert_equal(heat_pump.heating_capacity, heating_capacity)
|
3186
|
+
end
|
2195
3187
|
end
|
2196
3188
|
|
2197
|
-
def _test_default_mini_split_heat_pump_values(
|
3189
|
+
def _test_default_mini_split_heat_pump_values(heat_pump, shr, fan_watts_per_cfm, charge_defect_ratio,
|
2198
3190
|
airflow_defect_ratio, cooling_capacity, heating_capacity,
|
2199
3191
|
heating_capacity_17F, backup_heating_capacity)
|
2200
|
-
heat_pump = hpxml.heat_pumps[0]
|
2201
|
-
|
2202
3192
|
assert_equal(shr, heat_pump.cooling_shr)
|
2203
3193
|
assert_equal(fan_watts_per_cfm, heat_pump.fan_watts_per_cfm)
|
2204
3194
|
assert_equal(charge_defect_ratio, heat_pump.charge_defect_ratio)
|
@@ -2225,12 +3215,9 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2225
3215
|
end
|
2226
3216
|
end
|
2227
3217
|
|
2228
|
-
def _test_default_ground_to_air_heat_pump_values(
|
3218
|
+
def _test_default_ground_to_air_heat_pump_values(heat_pump, pump_watts_per_ton, fan_watts_per_cfm,
|
2229
3219
|
airflow_defect_ratio, cooling_capacity, heating_capacity,
|
2230
3220
|
backup_heating_capacity)
|
2231
|
-
|
2232
|
-
heat_pump = hpxml.heat_pumps[0]
|
2233
|
-
|
2234
3221
|
assert_equal(pump_watts_per_ton, heat_pump.pump_watts_per_ton)
|
2235
3222
|
assert_equal(fan_watts_per_cfm, heat_pump.fan_watts_per_cfm)
|
2236
3223
|
assert_equal(airflow_defect_ratio, heat_pump.airflow_defect_ratio)
|
@@ -2251,14 +3238,21 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2251
3238
|
end
|
2252
3239
|
end
|
2253
3240
|
|
2254
|
-
def _test_default_hvac_control_values(
|
2255
|
-
hvac_control = hpxml.hvac_controls[0]
|
2256
|
-
|
3241
|
+
def _test_default_hvac_control_values(hvac_control, htg_setback_start_hr, clg_setup_start_hr, htg_season_begin_month, htg_season_begin_day, htg_season_end_month, htg_season_end_day, clg_season_begin_month, clg_season_begin_day, clg_season_end_month, clg_season_end_day)
|
2257
3242
|
assert_equal(htg_setback_start_hr, hvac_control.heating_setback_start_hour)
|
2258
3243
|
assert_equal(clg_setup_start_hr, hvac_control.cooling_setup_start_hour)
|
2259
|
-
|
2260
|
-
|
2261
|
-
|
3244
|
+
assert_equal(htg_season_begin_month, hvac_control.seasons_heating_begin_month)
|
3245
|
+
assert_equal(htg_season_begin_day, hvac_control.seasons_heating_begin_day)
|
3246
|
+
assert_equal(htg_season_end_month, hvac_control.seasons_heating_end_month)
|
3247
|
+
assert_equal(htg_season_end_day, hvac_control.seasons_heating_end_day)
|
3248
|
+
assert_equal(clg_season_begin_month, hvac_control.seasons_cooling_begin_month)
|
3249
|
+
assert_equal(clg_season_begin_day, hvac_control.seasons_cooling_begin_day)
|
3250
|
+
assert_equal(clg_season_end_month, hvac_control.seasons_cooling_end_month)
|
3251
|
+
assert_equal(clg_season_end_day, hvac_control.seasons_cooling_end_day)
|
3252
|
+
end
|
3253
|
+
|
3254
|
+
def _test_default_duct_values(hpxml, supply_locations, return_locations, supply_areas, return_areas,
|
3255
|
+
supply_fracs, return_fracs, n_return_registers)
|
2262
3256
|
supply_duct_idx = 0
|
2263
3257
|
return_duct_idx = 0
|
2264
3258
|
hpxml.hvac_distributions.each do |hvac_distribution|
|
@@ -2269,54 +3263,71 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2269
3263
|
if duct.duct_type == HPXML::DuctTypeSupply
|
2270
3264
|
assert_equal(supply_locations[supply_duct_idx], duct.duct_location)
|
2271
3265
|
assert_in_epsilon(supply_areas[supply_duct_idx], duct.duct_surface_area, 0.01)
|
3266
|
+
assert_in_epsilon(supply_fracs[supply_duct_idx], duct.duct_fraction_area, 0.01)
|
2272
3267
|
supply_duct_idx += 1
|
2273
3268
|
elsif duct.duct_type == HPXML::DuctTypeReturn
|
2274
3269
|
assert_equal(return_locations[return_duct_idx], duct.duct_location)
|
2275
3270
|
assert_in_epsilon(return_areas[return_duct_idx], duct.duct_surface_area, 0.01)
|
3271
|
+
assert_in_epsilon(return_fracs[return_duct_idx], duct.duct_fraction_area, 0.01)
|
2276
3272
|
return_duct_idx += 1
|
2277
3273
|
end
|
2278
3274
|
end
|
2279
3275
|
end
|
2280
3276
|
end
|
2281
3277
|
|
2282
|
-
def _test_default_mech_vent_values(hpxml, is_shared_system, hours_in_operation)
|
3278
|
+
def _test_default_mech_vent_values(hpxml, is_shared_system, hours_in_operation, fan_power, flow_rate)
|
2283
3279
|
vent_fan = hpxml.ventilation_fans.select { |f| f.used_for_whole_building_ventilation }[0]
|
2284
3280
|
|
2285
3281
|
assert_equal(is_shared_system, vent_fan.is_shared_system)
|
2286
3282
|
assert_equal(hours_in_operation, vent_fan.hours_in_operation)
|
3283
|
+
assert_in_epsilon(fan_power, vent_fan.fan_power, 0.01)
|
3284
|
+
assert_in_epsilon(flow_rate, vent_fan.rated_flow_rate.to_f + vent_fan.calculated_flow_rate.to_f + vent_fan.tested_flow_rate.to_f + vent_fan.delivered_ventilation.to_f, 0.01)
|
2287
3285
|
end
|
2288
3286
|
|
2289
|
-
def _test_default_kitchen_fan_values(hpxml, quantity,
|
3287
|
+
def _test_default_kitchen_fan_values(hpxml, quantity, flow_rate, hours_in_operation, fan_power, start_hour)
|
2290
3288
|
kitchen_fan = hpxml.ventilation_fans.select { |f| f.used_for_local_ventilation && f.fan_location == HPXML::LocationKitchen }[0]
|
2291
3289
|
|
2292
3290
|
assert_equal(quantity, kitchen_fan.quantity)
|
2293
|
-
assert_equal(
|
3291
|
+
assert_equal(flow_rate, kitchen_fan.rated_flow_rate.to_f + kitchen_fan.calculated_flow_rate.to_f + kitchen_fan.tested_flow_rate.to_f + kitchen_fan.delivered_ventilation.to_f)
|
2294
3292
|
assert_equal(hours_in_operation, kitchen_fan.hours_in_operation)
|
2295
3293
|
assert_equal(fan_power, kitchen_fan.fan_power)
|
2296
3294
|
assert_equal(start_hour, kitchen_fan.start_hour)
|
2297
3295
|
end
|
2298
3296
|
|
2299
|
-
def _test_default_bath_fan_values(hpxml, quantity,
|
3297
|
+
def _test_default_bath_fan_values(hpxml, quantity, flow_rate, hours_in_operation, fan_power, start_hour)
|
2300
3298
|
bath_fan = hpxml.ventilation_fans.select { |f| f.used_for_local_ventilation && f.fan_location == HPXML::LocationBath }[0]
|
2301
3299
|
|
2302
3300
|
assert_equal(quantity, bath_fan.quantity)
|
2303
|
-
assert_equal(
|
3301
|
+
assert_equal(flow_rate, bath_fan.rated_flow_rate.to_f + bath_fan.calculated_flow_rate.to_f + bath_fan.tested_flow_rate.to_f + bath_fan.delivered_ventilation.to_f)
|
2304
3302
|
assert_equal(hours_in_operation, bath_fan.hours_in_operation)
|
2305
3303
|
assert_equal(fan_power, bath_fan.fan_power)
|
2306
3304
|
assert_equal(start_hour, bath_fan.start_hour)
|
2307
3305
|
end
|
2308
3306
|
|
3307
|
+
def _test_default_whole_house_fan_values(hpxml, flow_rate, fan_power)
|
3308
|
+
whf = hpxml.ventilation_fans.select { |f| f.used_for_seasonal_cooling_load_reduction }[0]
|
3309
|
+
|
3310
|
+
assert_equal(flow_rate, whf.rated_flow_rate.to_f + whf.calculated_flow_rate.to_f + whf.tested_flow_rate.to_f + whf.delivered_ventilation.to_f)
|
3311
|
+
assert_equal(fan_power, whf.fan_power)
|
3312
|
+
end
|
3313
|
+
|
2309
3314
|
def _test_default_storage_water_heater_values(hpxml, *expected_wh_values)
|
2310
3315
|
storage_water_heaters = hpxml.water_heating_systems.select { |w| w.water_heater_type == HPXML::WaterHeaterTypeStorage }
|
2311
3316
|
assert_equal(expected_wh_values.size, storage_water_heaters.size)
|
2312
3317
|
storage_water_heaters.each_with_index do |wh_system, idx|
|
2313
|
-
is_shared, heating_capacity, tank_volume, recovery_efficiency, location = expected_wh_values[idx]
|
3318
|
+
is_shared, heating_capacity, tank_volume, recovery_efficiency, location, temperature, energy_factor = expected_wh_values[idx]
|
2314
3319
|
|
2315
3320
|
assert_equal(is_shared, wh_system.is_shared_system)
|
2316
3321
|
assert_in_epsilon(heating_capacity, wh_system.heating_capacity, 0.01)
|
2317
3322
|
assert_equal(tank_volume, wh_system.tank_volume)
|
2318
3323
|
assert_in_epsilon(recovery_efficiency, wh_system.recovery_efficiency, 0.01)
|
2319
3324
|
assert_equal(location, wh_system.location)
|
3325
|
+
assert_equal(temperature, wh_system.temperature)
|
3326
|
+
if energy_factor.nil?
|
3327
|
+
assert_nil(wh_system.energy_factor)
|
3328
|
+
else
|
3329
|
+
assert_equal(energy_factor, wh_system.energy_factor)
|
3330
|
+
end
|
2320
3331
|
end
|
2321
3332
|
end
|
2322
3333
|
|
@@ -2330,39 +3341,47 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2330
3341
|
end
|
2331
3342
|
end
|
2332
3343
|
|
2333
|
-
def _test_default_standard_distribution_values(
|
2334
|
-
hot_water_distribution = hpxml.hot_water_distributions[0]
|
2335
|
-
|
3344
|
+
def _test_default_standard_distribution_values(hot_water_distribution, piping_length, pipe_r_value)
|
2336
3345
|
assert_in_epsilon(piping_length, hot_water_distribution.standard_piping_length, 0.01)
|
2337
3346
|
assert_equal(pipe_r_value, hot_water_distribution.pipe_r_value)
|
2338
3347
|
end
|
2339
3348
|
|
2340
|
-
def _test_default_recirc_distribution_values(
|
2341
|
-
hot_water_distribution = hpxml.hot_water_distributions[0]
|
2342
|
-
|
3349
|
+
def _test_default_recirc_distribution_values(hot_water_distribution, piping_length, branch_piping_length, pump_power, pipe_r_value)
|
2343
3350
|
assert_in_epsilon(piping_length, hot_water_distribution.recirculation_piping_length, 0.01)
|
2344
3351
|
assert_in_epsilon(branch_piping_length, hot_water_distribution.recirculation_branch_piping_length, 0.01)
|
2345
3352
|
assert_in_epsilon(pump_power, hot_water_distribution.recirculation_pump_power, 0.01)
|
2346
3353
|
assert_equal(pipe_r_value, hot_water_distribution.pipe_r_value)
|
2347
3354
|
end
|
2348
3355
|
|
2349
|
-
def _test_default_shared_recirc_distribution_values(
|
2350
|
-
hot_water_distribution = hpxml.hot_water_distributions[0]
|
2351
|
-
|
3356
|
+
def _test_default_shared_recirc_distribution_values(hot_water_distribution, pump_power)
|
2352
3357
|
assert_in_epsilon(pump_power, hot_water_distribution.shared_recirculation_pump_power, 0.01)
|
2353
3358
|
end
|
2354
3359
|
|
2355
|
-
def _test_default_water_fixture_values(hpxml, usage_multiplier)
|
3360
|
+
def _test_default_water_fixture_values(hpxml, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
2356
3361
|
assert_equal(usage_multiplier, hpxml.water_heating.water_fixtures_usage_multiplier)
|
3362
|
+
if weekday_sch.nil?
|
3363
|
+
assert_nil(hpxml.water_heating.water_fixtures_weekday_fractions)
|
3364
|
+
else
|
3365
|
+
assert_equal(weekday_sch, hpxml.water_heating.water_fixtures_weekday_fractions)
|
3366
|
+
end
|
3367
|
+
if weekend_sch.nil?
|
3368
|
+
assert_nil(hpxml.water_heating.water_fixtures_weekend_fractions)
|
3369
|
+
else
|
3370
|
+
assert_equal(weekend_sch, hpxml.water_heating.water_fixtures_weekend_fractions)
|
3371
|
+
end
|
3372
|
+
if monthly_mults.nil?
|
3373
|
+
assert_nil(hpxml.water_heating.water_fixtures_monthly_multipliers)
|
3374
|
+
else
|
3375
|
+
assert_equal(monthly_mults, hpxml.water_heating.water_fixtures_monthly_multipliers)
|
3376
|
+
end
|
2357
3377
|
end
|
2358
3378
|
|
2359
|
-
def _test_default_solar_thermal_values(
|
2360
|
-
solar_thermal_system = hpxml.solar_thermal_systems[0]
|
2361
|
-
|
3379
|
+
def _test_default_solar_thermal_values(solar_thermal_system, storage_volume, azimuth)
|
2362
3380
|
assert_equal(storage_volume, solar_thermal_system.storage_volume)
|
3381
|
+
assert_equal(azimuth, solar_thermal_system.collector_azimuth)
|
2363
3382
|
end
|
2364
3383
|
|
2365
|
-
def _test_default_pv_system_values(hpxml, interver_efficiency, system_loss_frac, is_shared_system, location, tracking, module_type)
|
3384
|
+
def _test_default_pv_system_values(hpxml, interver_efficiency, system_loss_frac, is_shared_system, location, tracking, module_type, azimuth)
|
2366
3385
|
hpxml.pv_systems.each_with_index do |pv, idx|
|
2367
3386
|
assert_equal(is_shared_system, pv.is_shared_system)
|
2368
3387
|
assert_equal(interver_efficiency, pv.inverter_efficiency)
|
@@ -2370,18 +3389,35 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2370
3389
|
assert_equal(location, pv.location)
|
2371
3390
|
assert_equal(tracking, pv.tracking)
|
2372
3391
|
assert_equal(module_type, pv.module_type)
|
3392
|
+
assert_equal(azimuth, pv.array_azimuth)
|
2373
3393
|
end
|
2374
3394
|
end
|
2375
3395
|
|
3396
|
+
def _test_default_battery_values(hpxml, nominal_capacity_kwh, nominal_capacity_ah, rated_power_output, location, lifetime_model)
|
3397
|
+
if nominal_capacity_kwh.nil?
|
3398
|
+
assert_nil(hpxml.batteries[0].nominal_capacity_kwh)
|
3399
|
+
else
|
3400
|
+
assert_equal(nominal_capacity_kwh, hpxml.batteries[0].nominal_capacity_kwh)
|
3401
|
+
end
|
3402
|
+
if nominal_capacity_ah.nil?
|
3403
|
+
assert_nil(hpxml.batteries[0].nominal_capacity_ah)
|
3404
|
+
else
|
3405
|
+
assert_equal(nominal_capacity_ah, hpxml.batteries[0].nominal_capacity_ah)
|
3406
|
+
end
|
3407
|
+
assert_equal(rated_power_output, hpxml.batteries[0].rated_power_output)
|
3408
|
+
assert_equal(location, hpxml.batteries[0].location)
|
3409
|
+
assert_equal(lifetime_model, hpxml.batteries[0].lifetime_model)
|
3410
|
+
end
|
3411
|
+
|
2376
3412
|
def _test_default_generator_values(hpxml, is_shared_system)
|
2377
3413
|
hpxml.generators.each_with_index do |generator, idx|
|
2378
3414
|
assert_equal(is_shared_system, generator.is_shared_system)
|
2379
3415
|
end
|
2380
3416
|
end
|
2381
3417
|
|
2382
|
-
def _test_default_clothes_washer_values(
|
2383
|
-
|
2384
|
-
|
3418
|
+
def _test_default_clothes_washer_values(clothes_washer, is_shared, location, imef, rated_annual_kwh, label_electric_rate,
|
3419
|
+
label_gas_rate, label_annual_gas_cost, capacity, label_usage, usage_multiplier,
|
3420
|
+
weekday_sch, weekend_sch, monthly_mults)
|
2385
3421
|
assert_equal(is_shared, clothes_washer.is_shared_appliance)
|
2386
3422
|
assert_equal(location, clothes_washer.location)
|
2387
3423
|
assert_equal(imef, clothes_washer.integrated_modified_energy_factor)
|
@@ -2392,20 +3428,47 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2392
3428
|
assert_equal(capacity, clothes_washer.capacity)
|
2393
3429
|
assert_equal(label_usage, clothes_washer.label_usage)
|
2394
3430
|
assert_equal(usage_multiplier, clothes_washer.usage_multiplier)
|
3431
|
+
if weekday_sch.nil?
|
3432
|
+
assert_nil(clothes_washer.weekday_fractions)
|
3433
|
+
else
|
3434
|
+
assert_equal(weekday_sch, clothes_washer.weekday_fractions)
|
3435
|
+
end
|
3436
|
+
if weekend_sch.nil?
|
3437
|
+
assert_nil(clothes_washer.weekend_fractions)
|
3438
|
+
else
|
3439
|
+
assert_equal(weekend_sch, clothes_washer.weekend_fractions)
|
3440
|
+
end
|
3441
|
+
if monthly_mults.nil?
|
3442
|
+
assert_nil(clothes_washer.monthly_multipliers)
|
3443
|
+
else
|
3444
|
+
assert_equal(monthly_mults, clothes_washer.monthly_multipliers)
|
3445
|
+
end
|
2395
3446
|
end
|
2396
3447
|
|
2397
|
-
def _test_default_clothes_dryer_values(
|
2398
|
-
|
2399
|
-
|
3448
|
+
def _test_default_clothes_dryer_values(clothes_dryer, is_shared, location, cef, usage_multiplier,
|
3449
|
+
weekday_sch, weekend_sch, monthly_mults)
|
2400
3450
|
assert_equal(is_shared, clothes_dryer.is_shared_appliance)
|
2401
3451
|
assert_equal(location, clothes_dryer.location)
|
2402
3452
|
assert_equal(cef, clothes_dryer.combined_energy_factor)
|
2403
3453
|
assert_equal(usage_multiplier, clothes_dryer.usage_multiplier)
|
3454
|
+
if weekday_sch.nil?
|
3455
|
+
assert_nil(clothes_dryer.weekday_fractions)
|
3456
|
+
else
|
3457
|
+
assert_equal(weekday_sch, clothes_dryer.weekday_fractions)
|
3458
|
+
end
|
3459
|
+
if weekend_sch.nil?
|
3460
|
+
assert_nil(clothes_dryer.weekend_fractions)
|
3461
|
+
else
|
3462
|
+
assert_equal(weekend_sch, clothes_dryer.weekend_fractions)
|
3463
|
+
end
|
3464
|
+
if monthly_mults.nil?
|
3465
|
+
assert_nil(clothes_dryer.monthly_multipliers)
|
3466
|
+
else
|
3467
|
+
assert_equal(monthly_mults, clothes_dryer.monthly_multipliers)
|
3468
|
+
end
|
2404
3469
|
end
|
2405
3470
|
|
2406
|
-
def _test_default_clothes_dryer_exhaust_values(
|
2407
|
-
clothes_dryer = hpxml.clothes_dryers[0]
|
2408
|
-
|
3471
|
+
def _test_default_clothes_dryer_exhaust_values(clothes_dryer, is_vented, vented_flow_rate)
|
2409
3472
|
assert_equal(is_vented, clothes_dryer.is_vented)
|
2410
3473
|
if vented_flow_rate.nil?
|
2411
3474
|
assert_nil(clothes_dryer.vented_flow_rate)
|
@@ -2414,9 +3477,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2414
3477
|
end
|
2415
3478
|
end
|
2416
3479
|
|
2417
|
-
def _test_default_dishwasher_values(
|
2418
|
-
dishwasher = hpxml.dishwashers[0]
|
2419
|
-
|
3480
|
+
def _test_default_dishwasher_values(dishwasher, is_shared, location, rated_annual_kwh, label_electric_rate, label_gas_rate, label_annual_gas_cost, label_usage, place_setting_capacity, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
2420
3481
|
assert_equal(is_shared, dishwasher.is_shared_appliance)
|
2421
3482
|
assert_equal(location, dishwasher.location)
|
2422
3483
|
assert_equal(rated_annual_kwh, dishwasher.rated_annual_kwh)
|
@@ -2426,6 +3487,21 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2426
3487
|
assert_equal(label_usage, dishwasher.label_usage)
|
2427
3488
|
assert_equal(place_setting_capacity, dishwasher.place_setting_capacity)
|
2428
3489
|
assert_equal(usage_multiplier, dishwasher.usage_multiplier)
|
3490
|
+
if weekday_sch.nil?
|
3491
|
+
assert_nil(dishwasher.weekday_fractions)
|
3492
|
+
else
|
3493
|
+
assert_equal(weekday_sch, dishwasher.weekday_fractions)
|
3494
|
+
end
|
3495
|
+
if weekend_sch.nil?
|
3496
|
+
assert_nil(dishwasher.weekend_fractions)
|
3497
|
+
else
|
3498
|
+
assert_equal(weekend_sch, dishwasher.weekend_fractions)
|
3499
|
+
end
|
3500
|
+
if monthly_mults.nil?
|
3501
|
+
assert_nil(dishwasher.monthly_multipliers)
|
3502
|
+
else
|
3503
|
+
assert_equal(monthly_mults, dishwasher.monthly_multipliers)
|
3504
|
+
end
|
2429
3505
|
end
|
2430
3506
|
|
2431
3507
|
def _test_default_refrigerator_values(hpxml, location, rated_annual_kwh, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
@@ -2501,9 +3577,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2501
3577
|
end
|
2502
3578
|
end
|
2503
3579
|
|
2504
|
-
def _test_default_cooking_range_values(
|
2505
|
-
cooking_range = hpxml.cooking_ranges[0]
|
2506
|
-
|
3580
|
+
def _test_default_cooking_range_values(cooking_range, location, is_induction, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
2507
3581
|
assert_equal(location, cooking_range.location)
|
2508
3582
|
assert_equal(is_induction, cooking_range.is_induction)
|
2509
3583
|
assert_equal(usage_multiplier, cooking_range.usage_multiplier)
|
@@ -2524,9 +3598,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2524
3598
|
end
|
2525
3599
|
end
|
2526
3600
|
|
2527
|
-
def _test_default_oven_values(
|
2528
|
-
oven = hpxml.ovens[0]
|
2529
|
-
|
3601
|
+
def _test_default_oven_values(oven, is_convection)
|
2530
3602
|
assert_equal(is_convection, oven.is_convection)
|
2531
3603
|
end
|
2532
3604
|
|
@@ -2601,16 +3673,27 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2601
3673
|
end
|
2602
3674
|
end
|
2603
3675
|
|
2604
|
-
def _test_default_ceiling_fan_values(
|
2605
|
-
ceiling_fan = hpxml.ceiling_fans[0]
|
2606
|
-
|
3676
|
+
def _test_default_ceiling_fan_values(ceiling_fan, quantity, efficiency, weekday_sch, weekend_sch, monthly_mults)
|
2607
3677
|
assert_equal(quantity, ceiling_fan.quantity)
|
2608
3678
|
assert_in_epsilon(efficiency, ceiling_fan.efficiency, 0.01)
|
3679
|
+
if weekday_sch.nil?
|
3680
|
+
assert_nil(ceiling_fan.weekday_fractions)
|
3681
|
+
else
|
3682
|
+
assert_equal(weekday_sch, ceiling_fan.weekday_fractions)
|
3683
|
+
end
|
3684
|
+
if weekend_sch.nil?
|
3685
|
+
assert_nil(ceiling_fan.weekend_fractions)
|
3686
|
+
else
|
3687
|
+
assert_equal(weekend_sch, ceiling_fan.weekend_fractions)
|
3688
|
+
end
|
3689
|
+
if monthly_mults.nil?
|
3690
|
+
assert_nil(ceiling_fan.monthly_multipliers)
|
3691
|
+
else
|
3692
|
+
assert_equal(monthly_mults, ceiling_fan.monthly_multipliers)
|
3693
|
+
end
|
2609
3694
|
end
|
2610
3695
|
|
2611
|
-
def _test_default_pool_heater_values(
|
2612
|
-
pool = hpxml.pools[0]
|
2613
|
-
|
3696
|
+
def _test_default_pool_heater_values(pool, load_units, load_value, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
2614
3697
|
if load_units.nil?
|
2615
3698
|
assert_nil(pool.heater_load_units)
|
2616
3699
|
else
|
@@ -2643,9 +3726,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2643
3726
|
end
|
2644
3727
|
end
|
2645
3728
|
|
2646
|
-
def _test_default_pool_pump_values(
|
2647
|
-
pool = hpxml.pools[0]
|
2648
|
-
|
3729
|
+
def _test_default_pool_pump_values(pool, kWh_per_year, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
2649
3730
|
assert_in_epsilon(kWh_per_year, pool.pump_kwh_per_year, 0.01)
|
2650
3731
|
assert_equal(usage_multiplier, pool.pump_usage_multiplier)
|
2651
3732
|
assert_equal(weekday_sch, pool.pump_weekday_fractions)
|
@@ -2653,9 +3734,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2653
3734
|
assert_equal(monthly_mults, pool.pump_monthly_multipliers)
|
2654
3735
|
end
|
2655
3736
|
|
2656
|
-
def _test_default_hot_tub_heater_values(
|
2657
|
-
hot_tub = hpxml.hot_tubs[0]
|
2658
|
-
|
3737
|
+
def _test_default_hot_tub_heater_values(hot_tub, load_units, load_value, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
2659
3738
|
if load_units.nil?
|
2660
3739
|
assert_nil(hot_tub.heater_load_units)
|
2661
3740
|
else
|
@@ -2688,9 +3767,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2688
3767
|
end
|
2689
3768
|
end
|
2690
3769
|
|
2691
|
-
def _test_default_hot_tub_pump_values(
|
2692
|
-
hot_tub = hpxml.hot_tubs[0]
|
2693
|
-
|
3770
|
+
def _test_default_hot_tub_pump_values(hot_tub, kWh_per_year, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
2694
3771
|
assert_in_epsilon(kWh_per_year, hot_tub.pump_kwh_per_year, 0.01)
|
2695
3772
|
assert_equal(usage_multiplier, hot_tub.pump_usage_multiplier)
|
2696
3773
|
assert_equal(weekday_sch, hot_tub.pump_weekday_fractions)
|