urbanopt-cli 0.5.1 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -1
- data/CMakeLists.txt +8 -8
- data/LICENSE.md +11 -1
- data/Rakefile +16 -6
- data/example_files/example_project_combined.json +100 -5
- data/example_files/mappers/Baseline.rb +31 -18
- data/example_files/mappers/CreateBar.rb +16 -6
- data/example_files/mappers/EvCharging.rb +20 -10
- data/example_files/mappers/Floorspace.rb +16 -6
- data/example_files/mappers/HighEfficiencyCreateBar.rb +16 -6
- data/example_files/mappers/HighEfficiencyFloorspace.rb +16 -6
- data/example_files/mappers/ThermalStorage.rb +16 -6
- data/example_files/measures/BuildResidentialModel/measure.rb +211 -129
- data/example_files/residential/clothes_dryer.tsv +7 -7
- data/example_files/residential/clothes_washer.tsv +1 -1
- data/example_files/residential/cooling_system.tsv +42 -22
- data/example_files/residential/dishwasher.tsv +1 -1
- data/example_files/residential/exhaust.tsv +3 -0
- data/example_files/residential/heat_pump.tsv +62 -40
- data/example_files/resources/hpxml-measures/.github/pull_request_template.md +1 -0
- data/example_files/resources/hpxml-measures/.github/workflows/config.yml +23 -0
- data/example_files/resources/hpxml-measures/.gitignore +1 -8
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +633 -1188
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +1524 -1211
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/constants.rb +0 -8
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +424 -335
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules.rb +104 -62
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_state_and_monthly_schedule_shift.csv +613 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_state_and_monthly_schedule_shift.csv +613 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-coal.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-50percent.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief-portable.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief-whole-home.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-gas.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-modified.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-none.osw +36 -60
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-oil.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-propane.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-wood.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-flat.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-radiant-barrier.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-unvented-insulated-roof.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-vented.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-mechvent-preconditioning.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-mechvent.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-pv.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-water-heater.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-single-family-attached.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless-outside.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-dwhr.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-outside.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-standbyloss.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-with-solar-fraction.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-electric.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-gas.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-hpwh.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-indirect.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-low-flow-fixtures.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-none.osw +32 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-demand.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-manual.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-nocontrol.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-temperature.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-timer.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-evacuated-tube.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-flat-plate.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-ics.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-fraction.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-indirect-flat-plate.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-thermosyphon-flat-plate.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-coal.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-elec-uef.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-outside.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-uef.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-outside.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-uef.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar-fraction.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-oil.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-wood.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-outside.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-uef.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-uef.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar-fraction.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-propane.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories-garage.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-1.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-2.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-4.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-5.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-garage.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-ach-house-pressure.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm-house-pressure.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm50.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-flue.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-natural-ach.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-overhangs.osw +32 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-windows-none.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-ambient.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-conditioned-basement-slab-insulation.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-slab.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-assembly-r.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-wall-insulation.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unvented-crawlspace.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-vented-crawlspace.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed-heating-only.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-2-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-var-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-coal-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-elec-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-central-ac-1-speed.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-oil-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-propane-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-wood-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-1-speed.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-2-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-var-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.osw +31 -57
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-mini-split-heat-pump-ducted.osw +32 -57
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ducts-leakage-percent.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-elec-resistance-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-furnace-gas.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only-ducted.osw +32 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fireplace-wood-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fixed-heater-gas-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-floor-furnace-propane-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-coal-only.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-central-ac-1-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-2-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-var-speed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-room-ac.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-oil-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-propane-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-wood-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump-cooling-only.osw +336 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump-heating-only.osw +336 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump.osw +31 -57
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-plug-loads-additional-multipliers.osw → base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.osw} +36 -58
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.osw +340 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.osw +340 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.osw +340 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-only.osw +338 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-ground-to-air-heat-pump.osw +338 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.osw +338 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-mini-split-heat-pump-ducted.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.osw +338 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.osw +340 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ducted.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ductless.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-cooling-only.osw +32 -57
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-heating-only.osw +32 -57
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted.osw +32 -57
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ductless.osw +32 -57
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-none.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-portable-heater-gas-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-programmable-thermostat-detailed.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only-33percent.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-setpoints.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-oil-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-wood-pellets-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-undersized.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-wall-furnace-elec-only.osw +31 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-ceiling-fans.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-detailed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-AMY-2012.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-baltimore-md.osw +40 -64
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-dallas-tx.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-duluth-mn.osw +44 -68
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-helena-mt.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-honolulu-hi.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-miami-fl.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-phoenix-az.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-portland-or.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-balanced.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-bath-kitchen-fans.osw +39 -65
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis-evap-cooler-only-ducted.osw +32 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv-atre-asre.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust-rated-flow-rate.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv-asre.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-supply.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-whole-house-fan.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-defaults.osw +29 -53
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon.osw +29 -53
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon2.osw +29 -53
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-neighbor-shading.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-shielding-of-home.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-usage-multiplier.osw +30 -54
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-pv.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-vacancy-6-months.osw → base-schedules-stochastic-vacant.osw} +34 -58
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-stochastic.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-user-specified.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-calendar-year-custom.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-custom.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-disabled.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-runperiod-1-month.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-timestep-10-mins.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +57 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-auto.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-double-exterior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-eaves.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-single-exterior-front.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-bottom-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-bottom.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-middle-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-middle.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-top-double-loaded-interior.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-top.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace.osw +341 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-gable.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-hip.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-double-exterior.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-double-loaded-interior.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-single-exterior-front.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab-middle.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab-right.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement-middle.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement-right.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace-middle.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace-right.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace-middle.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace-right.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-dhw-solar-latitude.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-atticroof-conditioned-eaves-gable.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-atticroof-conditioned-eaves-hip.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-atticroof-conditioned.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-partially-protruded.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-windows-shading.osw +339 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-pv-roofpitch.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-schedules-random-seed.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-boiler-to-heat-pump.osw +336 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-boiler-to-heating-system.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-fireplace-to-heat-pump.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-second-heating-system-fireplace.osw → extra-second-heating-system-fireplace-to-heating-system.osw} +34 -58
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-portable-heater-to-heat-pump.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-second-heating-system-portable-heater.osw → extra-second-heating-system-portable-heater-to-heating-system.osw} +32 -56
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-refrigerator.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-clothes-washer-kwh.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-dishwasher-kwh.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-extra-refrigerator-kwh.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-freezer-kwh.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-refrigerator-kwh.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-floor-insulation.osw +34 -58
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-one-floor-above-grade.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-basement-with-ceiling-insulation.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/cooling-system-and-heat-pump.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/dhw-indirect-without-boiler.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/ducts-location-and-areas-not-same-type.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/foundation-wall-insulation-greater-than-height.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/heating-system-and-heat-pump.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-crawlspace-zero-foundation-height.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-slab-non-zero-foundation-height.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-no-building-orientation.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-fuel-loads.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-other-plug-loads.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/{multipliers-without-plug-loads.osw → multipliers-without-tv-plug-loads.osw} +35 -59
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-vehicle-plug-loads.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-well-pump-plug-loads.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-electric-heat-pump-water-heater.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-ceiling-fan-quantity.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-geometry-num-bathrooms.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-but-no-primary-heating.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-majority-heat.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-total-heat-load.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-ambient.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-no-building-orientation.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-finished-basement-zero-foundation-height.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-slab-non-zero-foundation-height.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/slab-non-zero-foundation-height-above-grade.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unconditioned-basement-with-wall-and-ceiling-insulation.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-attic-with-floor-and-roof-insulation.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-crawlspace-with-wall-and-ceiling-insulation.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-attic-with-floor-and-roof-insulation.osw +33 -57
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-crawlspace-with-wall-and-ceiling-insulation.osw +31 -55
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/zero-number-of-bedrooms.osw +337 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/schedules/vacant.csv +8761 -0
- data/example_files/resources/hpxml-measures/Changelog.md +238 -0
- data/example_files/resources/hpxml-measures/Gemfile +4 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +265 -838
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +135 -114
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/BaseElements.xsd +5 -97
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/EPvalidator.xml +573 -193
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLDataTypes.xsd +2 -28
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLvalidator.xml +114 -22
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +107 -176
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +12 -180
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +481 -94
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/generator.rb +2 -6
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +23 -11
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hotwater_appliances.rb +27 -25
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +735 -453
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +417 -105
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +1377 -1335
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +1393 -1467
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/lighting.rb +2 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/location.rb +20 -7
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/meta_measure.rb +64 -3
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +2 -22
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/pv.rb +1 -3
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +15 -6
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/simcontrols.rb +7 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/unit_conversions.rb +2 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +3 -4
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +31 -30
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +4 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_constructions.rb +62 -16
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +507 -628
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +3 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +4 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +321 -6
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +3 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_location.rb +3 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_miscloads.rb +3 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +3 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_simcontrols.rb +3 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +25 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +3 -0
- data/example_files/resources/hpxml-measures/README.md +4 -4
- data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.rb +111 -37
- data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.xml +318 -490
- data/example_files/resources/hpxml-measures/SimulationOutputReport/tests/output_report_test.rb +237 -183
- data/example_files/resources/hpxml-measures/docs/source/conf.py +4 -1
- data/example_files/resources/hpxml-measures/docs/source/getting_started.rst +2 -2
- data/example_files/resources/hpxml-measures/docs/source/intro.rst +3 -105
- data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +476 -351
- data/example_files/resources/hpxml-measures/docs/source/workflow_outputs.rst +154 -130
- data/example_files/resources/hpxml-measures/tasks.rb +1287 -511
- data/example_files/resources/hpxml-measures/weather/USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3-cache.csv +35 -0
- data/example_files/resources/hpxml-measures/weather/USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3.epw +8768 -0
- data/example_files/resources/hpxml-measures/weather/USA_HI_Honolulu.Intl.AP.911820_TMY3-cache.csv +35 -0
- data/example_files/resources/hpxml-measures/weather/USA_HI_Honolulu.Intl.AP.911820_TMY3.epw +8768 -0
- data/example_files/resources/hpxml-measures/weather/USA_MT_Helena.Rgnl.AP.727720_TMY3-cache.csv +35 -0
- data/example_files/resources/hpxml-measures/weather/USA_MT_Helena.Rgnl.AP.727720_TMY3.epw +8768 -0
- data/example_files/resources/hpxml-measures/weather/USA_OR_Portland.Intl.AP.726980_TMY3-cache.csv +35 -0
- data/example_files/resources/hpxml-measures/weather/USA_OR_Portland.Intl.AP.726980_TMY3.epw +8768 -0
- data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +23 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-50percent.xml +2 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-portable.xml +2 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-whole-home.xml +2 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-multiple.xml +534 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +2 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +1 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-heated-space.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.xml +4 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml +20 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +27 -18
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +27 -18
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-baseboard.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.xml +4 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml +20 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +20 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +22 -11
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-baseboard.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.xml +4 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml +20 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +22 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +22 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +2 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-multiple.xml +2 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached.xml +14 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +563 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +1 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-elec-uef.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-uef.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +6 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-shading.xml +600 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces2.xml +2474 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-enclosure-windows-interior-shading.xml → base-enclosure-windows-shading.xml} +576 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-basement-garage.xml +643 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-wall-interior-insulation.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml +555 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml +561 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml +552 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-heating-only.xml +557 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-air-to-air-heat-pump-1-speed-autosize-manual-s-oversize-allowances.xml → base-hvac-autosize-air-to-air-heat-pump-1-speed-manual-s-oversize-allowances.xml} +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-air-to-air-heat-pump-1-speed-autosize.xml → base-hvac-autosize-air-to-air-heat-pump-1-speed.xml} +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-air-to-air-heat-pump-2-speed-autosize-manual-s-oversize-allowances.xml → base-hvac-autosize-air-to-air-heat-pump-2-speed-manual-s-oversize-allowances.xml} +559 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-air-to-air-heat-pump-2-speed-autosize.xml → base-hvac-autosize-air-to-air-heat-pump-2-speed.xml} +556 -556
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-air-to-air-heat-pump-var-speed-autosize.xml → base-hvac-autosize-air-to-air-heat-pump-var-speed-manual-s-oversize-allowances.xml} +559 -556
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-air-to-air-heat-pump-var-speed-autosize-manual-s-oversize-allowances.xml → base-hvac-autosize-air-to-air-heat-pump-var-speed.xml} +556 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-boiler-elec-only-autosize.xml → base-hvac-autosize-boiler-elec-only.xml} +517 -518
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-boiler-gas-central-ac-1-speed-autosize.xml → base-hvac-autosize-boiler-gas-central-ac-1-speed.xml} +568 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-boiler-gas-only-autosize.xml → base-hvac-autosize-boiler-gas-only.xml} +518 -519
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-central-ac-only-1-speed-autosize.xml → base-hvac-autosize-central-ac-only-1-speed.xml} +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-central-ac-only-2-speed-autosize.xml → base-hvac-autosize-central-ac-only-2-speed.xml} +546 -546
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-central-ac-only-var-speed-autosize.xml → base-hvac-autosize-central-ac-only-var-speed.xml} +546 -546
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-central-ac-plus-air-to-air-heat-pump-heating-autosize.xml → base-hvac-autosize-central-ac-plus-air-to-air-heat-pump-heating.xml} +1 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-autosize.xml → base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed.xml} +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-dual-fuel-mini-split-heat-pump-ducted-autosize.xml → base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml} +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-elec-resistance-only-autosize.xml → base-hvac-autosize-elec-resistance-only.xml} +508 -509
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-evap-cooler-furnace-gas-autosize.xml → base-hvac-autosize-evap-cooler-furnace-gas.xml} +552 -552
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-floor-furnace-propane-only-autosize.xml → base-hvac-autosize-floor-furnace-propane-only.xml} +511 -512
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-furnace-elec-only-autosize.xml → base-hvac-autosize-furnace-elec-only.xml} +546 -546
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-furnace-gas-central-ac-2-speed-autosize.xml → base-hvac-autosize-furnace-gas-central-ac-2-speed.xml} +559 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-furnace-gas-central-ac-var-speed-autosize.xml → base-hvac-autosize-furnace-gas-central-ac-var-speed.xml} +559 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-only.xml +547 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-furnace-gas-room-ac-autosize.xml → base-hvac-autosize-furnace-gas-room-ac.xml} +557 -557
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml +554 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml +559 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-ground-to-air-heat-pump-autosize-manual-s-oversize-allowances.xml → base-hvac-autosize-ground-to-air-heat-pump-manual-s-oversize-allowances.xml} +561 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-ground-to-air-heat-pump-autosize.xml → base-hvac-autosize-ground-to-air-heat-pump.xml} +558 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml +546 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-cooling-only-autosize.xml → base-hvac-autosize-mini-split-heat-pump-ducted-cooling-only.xml} +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-heating-only-autosize.xml → base-hvac-autosize-mini-split-heat-pump-ducted-heating-only.xml} +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-autosize-manual-s-oversize-allowances.xml → base-hvac-autosize-mini-split-heat-pump-ducted-manual-s-oversize-allowances.xml} +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted.xml +556 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-room-ac-only-autosize.xml → base-hvac-autosize-room-ac-only.xml} +507 -508
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-stove-oil-only-autosize.xml → base-hvac-autosize-stove-oil-only.xml} +511 -512
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-wall-furnace-elec-only-autosize.xml → base-hvac-autosize-wall-furnace-elec-only.xml} +511 -512
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-autosize.xml → base-hvac-autosize.xml} +559 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +1 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +1 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +2 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +10 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +512 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fixed-heater-gas-only.xml +563 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only.xml +512 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-coal-only.xml +547 -547
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +547 -550
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-cooling-only.xml +556 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-heating-only.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +561 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/slab-zero-exposed-perimeter.xml → base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.xml} +567 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/heat-pump-mixed-fixed-and-autosize-capacities2.xml → base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.xml} +565 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.xml +566 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.xml +566 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-misc-shelter-coefficient.xml → base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.xml} +570 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.xml +571 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.xml +571 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-furnace-gas-only-autosize.xml → base-hvac-install-quality-all-furnace-gas-only.xml} +551 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-ground-to-air-heat-pump.xml +565 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-mini-split-air-conditioner-only-ducted-autosize.xml → base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.xml} +551 -548
- data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-autosize.xml → base-hvac-install-quality-all-mini-split-heat-pump-ducted.xml} +564 -558
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.xml +568 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.xml +565 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.xml +569 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +0 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +0 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +916 -913
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple2.xml +837 -834
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-none.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-portable-heater-gas-only.xml +563 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat-detailed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +512 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +512 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +512 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-detailed.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +34 -23
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +34 -23
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-helena-mt.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-honolulu-hi.xml +516 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-phoenix-az.xml +516 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-portland-or.xml +576 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +10 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +2 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +1 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +5 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +9 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shielding-of-home.xml +563 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +5 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-multiple-buildings.xml +1654 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic-vacant.xml +563 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-user-specified.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/boiler-invalid-afue.xml +519 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cfis-with-hydronic-distribution.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-dryer-location.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-washer-location.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cooking-range-location.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dehumidifier-fraction-served.xml +534 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dehumidifier-setpoints.xml +534 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-frac-load-served.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-ef-tank.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-uef-tank-heat-pump.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dishwasher-location.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-leakage-cfm25.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-leakage-percent.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location-unconditioned-space.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duplicate-id.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-attic-missing-roof.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-exterior-foundation-wall.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-slab.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa.xml +4 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa2.xml +447 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-exterior-wall.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-roof-ceiling.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-slab.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-ceiling-roof.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-exterior-wall.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-floor-slab.xml +11 -58
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-sensible-fuel-load.xml +759 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-sensible-plug-load.xml +758 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-total-fuel-load.xml +760 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-total-plug-load.xml +758 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/furnace-invalid-afue.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/generator-number-of-bedrooms-served.xml +459 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/generator-output-greater-than-consumption.xml +578 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/heat-pump-mixed-fixed-and-autosize-capacities.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-cooling.xml +916 -913
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-heating.xml +916 -913
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-return-duct-leakage-missing.xml +2 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-cooling.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-heating.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-frac-load-served.xml +916 -913
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-inconsistent-fan-powers.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-invalid-distribution-system-type.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-assembly-effective-rvalue.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-boolean.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-float.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-integer.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-daylight-saving.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-distribution-cfa-served.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-epw-filepath.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-equipment.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-surfaces.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-foundation-wall-properties.xml +573 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-id.xml +590 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-id2.xml +590 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-infiltration-volume.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-input-parameters.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-neighbor-shading-azimuth.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-bedrooms-served.xml +464 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-conditioned-floors.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-units-served.xml +450 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-desuperheater.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-dhw-indirect.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-runperiod.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-schema-version.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-shared-vent-in-unit-flowrate.xml +472 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-timestep.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-window-height.xml +6 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/lighting-fractions.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-duct-location.xml +912 -909
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-elements.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-appliance.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-duct.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-surface.xml +12 -2
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-water-heater.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-buildings-without-building-id.xml +1654 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-buildings-wrong-building-id.xml +1654 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-ideal-air.xml → invalid_files/multiple-shared-cooling-systems.xml} +431 -498
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-shared-heating-systems.xml +434 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-roof.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-wall.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/num-bedrooms-exceeds-limit.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/orphaned-hvac-distribution.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerator-location.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-multiple-primary.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-no-primary.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-desuperheater.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-dhw-indirect.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-combi-tankless.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-desuperheater.xml +1 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-dhw-indirect.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-cfis.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-door.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-hvac-distribution.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-clothes-washer-water-heater.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-dishwasher-water-heater.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-skylight.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-solar-thermal-system.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-window.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location-other.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/template.osw +4 -1
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AL.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L302XC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L304XC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L322XC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L324XC.xml +0 -3
- data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +232 -360
- data/example_files/{measures/BuildResidentialModel/resources → resources}/measure-info.json +0 -0
- data/example_files/{measures/BuildResidentialModel/resources → resources}/meta_measure.rb +53 -44
- data/lib/uo_cli.rb +187 -44
- data/lib/uo_cli/version.rb +17 -7
- data/requirements.txt +2 -0
- data/uo_cli.gemspec +2 -2
- metadata +248 -64
- data/example_files/measures/ResidentialGeometryCreateMultifamily/measure.rb +0 -1005
- data/example_files/measures/ResidentialGeometryCreateMultifamily/measure.xml +0 -326
- data/example_files/measures/ResidentialGeometryCreateMultifamily/tests/create_residential_multifamily_geometry_test.rb +0 -477
- data/example_files/measures/ResidentialGeometryCreateSingleFamilyAttached/measure.rb +0 -1039
- data/example_files/measures/ResidentialGeometryCreateSingleFamilyAttached/measure.xml +0 -393
- data/example_files/measures/ResidentialGeometryCreateSingleFamilyAttached/tests/create_residential_single_family_attached_geometry_test.rb +0 -456
- data/example_files/measures/ResidentialGeometryCreateSingleFamilyDetached/measure.rb +0 -979
- data/example_files/measures/ResidentialGeometryCreateSingleFamilyDetached/measure.xml +0 -388
- data/example_files/measures/ResidentialGeometryCreateSingleFamilyDetached/tests/create_residential_single_family_detached_geometry_test.rb +0 -704
- data/example_files/resources/hpxml-measures/.circleci/config.yml +0 -20
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/location.rb +0 -24
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-hvac-programmable-thermostat.osw +0 -369
|
@@ -92,7 +92,7 @@ class HPXMLtoOpenStudioAirflowTest < MiniTest::Test
|
|
|
92
92
|
# Check infiltration/ventilation program
|
|
93
93
|
program_values = get_ems_values(model.getEnergyManagementSystemPrograms, "#{Constants.ObjectNameInfiltration} program")
|
|
94
94
|
assert_in_epsilon(0.0436, program_values['c'].sum, 0.01)
|
|
95
|
-
assert_in_epsilon(0.
|
|
95
|
+
assert_in_epsilon(0.0661, program_values['Cs'].sum, 0.01)
|
|
96
96
|
assert_in_epsilon(0.1323, program_values['Cw'].sum, 0.01)
|
|
97
97
|
end
|
|
98
98
|
|
|
@@ -599,6 +599,7 @@ class HPXMLtoOpenStudioAirflowTest < MiniTest::Test
|
|
|
599
599
|
model = OpenStudio::Model::Model.new
|
|
600
600
|
|
|
601
601
|
# get arguments
|
|
602
|
+
args_hash['output_dir'] = 'tests'
|
|
602
603
|
arguments = measure.arguments(model)
|
|
603
604
|
argument_map = OpenStudio::Measure.convertOSArgumentVectorToMap(arguments)
|
|
604
605
|
|
|
@@ -623,6 +624,8 @@ class HPXMLtoOpenStudioAirflowTest < MiniTest::Test
|
|
|
623
624
|
|
|
624
625
|
hpxml = HPXML.new(hpxml_path: args_hash['hpxml_path'])
|
|
625
626
|
|
|
627
|
+
File.delete(File.join(File.dirname(__FILE__), 'in.xml'))
|
|
628
|
+
|
|
626
629
|
return model, hpxml
|
|
627
630
|
end
|
|
628
631
|
end
|
|
@@ -28,32 +28,39 @@ class HPXMLtoOpenStudioConstructionsTest < MiniTest::Test
|
|
|
28
28
|
end
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
-
def
|
|
31
|
+
def test_windows_shading
|
|
32
32
|
args_hash = {}
|
|
33
|
-
args_hash['hpxml_path'] = File.absolute_path(File.join(sample_files_dir, 'base-enclosure-windows-
|
|
33
|
+
args_hash['hpxml_path'] = File.absolute_path(File.join(sample_files_dir, 'base-enclosure-windows-shading.xml'))
|
|
34
34
|
model, hpxml = _test_measure(args_hash)
|
|
35
35
|
|
|
36
36
|
summer_date = OpenStudio::Date.new(OpenStudio::MonthOfYear.new('June'), 1, model.yearDescription.get.assumedYear)
|
|
37
|
+
summer_length = 6 # 6 months for Denver
|
|
37
38
|
winter_date = OpenStudio::Date.new(OpenStudio::MonthOfYear.new('January'), 1, model.yearDescription.get.assumedYear)
|
|
39
|
+
winter_length = 12 - summer_length # months
|
|
38
40
|
|
|
39
|
-
# Check window shading properties
|
|
40
41
|
hpxml.windows.each do |window|
|
|
41
42
|
os_window = model.getSubSurfaces.select { |w| w.name.to_s == window.id }[0]
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if window.interior_shading_factor_winter == 1
|
|
52
|
-
assert_nil(os_winter_control) # No shading
|
|
43
|
+
sf_summer = window.interior_shading_factor_summer
|
|
44
|
+
sf_winter = window.interior_shading_factor_winter
|
|
45
|
+
sf_summer *= window.exterior_shading_factor_summer unless window.exterior_shading_factor_summer.nil?
|
|
46
|
+
sf_winter *= window.exterior_shading_factor_winter unless window.exterior_shading_factor_winter.nil?
|
|
47
|
+
|
|
48
|
+
# Check shading transmittance for sky beam and sky diffuse
|
|
49
|
+
os_shading_surface = model.getShadingSurfaces.select { |ss| ss.name.to_s.start_with? window.id }[0]
|
|
50
|
+
if (sf_summer == 1) && (sf_winter == 1)
|
|
51
|
+
assert_nil(os_shading_surface) # No shading
|
|
53
52
|
else
|
|
54
|
-
refute_nil(
|
|
55
|
-
|
|
53
|
+
refute_nil(os_shading_surface) # Shading
|
|
54
|
+
summer_transmittance = os_shading_surface.transmittanceSchedule.get.to_ScheduleRuleset.get.getDaySchedules(summer_date, summer_date).map { |ds| ds.values.sum }.sum
|
|
55
|
+
winter_transmittance = os_shading_surface.transmittanceSchedule.get.to_ScheduleRuleset.get.getDaySchedules(winter_date, winter_date).map { |ds| ds.values.sum }.sum
|
|
56
|
+
assert_equal(sf_summer, summer_transmittance)
|
|
57
|
+
assert_equal(sf_winter, winter_transmittance)
|
|
56
58
|
end
|
|
59
|
+
|
|
60
|
+
# Check view factor for ground diffuse
|
|
61
|
+
default_view_factor = 0.5 # Default for vertical wall
|
|
62
|
+
view_factor = default_view_factor * (sf_summer * summer_length + sf_winter * winter_length) / 12.0
|
|
63
|
+
assert_in_delta(view_factor, os_window.viewFactortoGround.get, 0.001)
|
|
57
64
|
end
|
|
58
65
|
end
|
|
59
66
|
|
|
@@ -72,6 +79,42 @@ class HPXMLtoOpenStudioConstructionsTest < MiniTest::Test
|
|
|
72
79
|
end
|
|
73
80
|
end
|
|
74
81
|
|
|
82
|
+
def test_skylights_shading
|
|
83
|
+
args_hash = {}
|
|
84
|
+
args_hash['hpxml_path'] = File.absolute_path(File.join(sample_files_dir, 'base-enclosure-skylights-shading.xml'))
|
|
85
|
+
model, hpxml = _test_measure(args_hash)
|
|
86
|
+
|
|
87
|
+
summer_date = OpenStudio::Date.new(OpenStudio::MonthOfYear.new('June'), 1, model.yearDescription.get.assumedYear)
|
|
88
|
+
summer_length = 6 # 6 months for Denver
|
|
89
|
+
winter_date = OpenStudio::Date.new(OpenStudio::MonthOfYear.new('January'), 1, model.yearDescription.get.assumedYear)
|
|
90
|
+
winter_length = 12 - summer_length # months
|
|
91
|
+
|
|
92
|
+
hpxml.skylights.each do |skylight|
|
|
93
|
+
os_window = model.getSubSurfaces.select { |w| w.name.to_s == skylight.id }[0]
|
|
94
|
+
sf_summer = skylight.interior_shading_factor_summer
|
|
95
|
+
sf_winter = skylight.interior_shading_factor_winter
|
|
96
|
+
sf_summer *= skylight.exterior_shading_factor_summer unless skylight.exterior_shading_factor_summer.nil?
|
|
97
|
+
sf_winter *= skylight.exterior_shading_factor_winter unless skylight.exterior_shading_factor_winter.nil?
|
|
98
|
+
|
|
99
|
+
# Check shading transmittance for sky beam and sky diffuse
|
|
100
|
+
os_shading_surface = model.getShadingSurfaces.select { |ss| ss.name.to_s.start_with? skylight.id }[0]
|
|
101
|
+
if (sf_summer == 1) && (sf_winter == 1)
|
|
102
|
+
assert_nil(os_shading_surface) # No shading
|
|
103
|
+
else
|
|
104
|
+
refute_nil(os_shading_surface) # Shading
|
|
105
|
+
summer_transmittance = os_shading_surface.transmittanceSchedule.get.to_ScheduleRuleset.get.getDaySchedules(summer_date, summer_date).map { |ds| ds.values.sum }.sum
|
|
106
|
+
winter_transmittance = os_shading_surface.transmittanceSchedule.get.to_ScheduleRuleset.get.getDaySchedules(winter_date, winter_date).map { |ds| ds.values.sum }.sum
|
|
107
|
+
assert_equal(sf_summer, summer_transmittance)
|
|
108
|
+
assert_equal(sf_winter, winter_transmittance)
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# Check view factor for ground diffuse
|
|
112
|
+
default_view_factor = 0.05 # Based on 6:12 pitch in HPXML
|
|
113
|
+
view_factor = default_view_factor * (sf_summer * summer_length + sf_winter * winter_length) / 12.0
|
|
114
|
+
assert_in_delta(view_factor, os_window.viewFactortoGround.get, 0.001)
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
75
118
|
def _test_measure(args_hash)
|
|
76
119
|
# create an instance of the measure
|
|
77
120
|
measure = HPXMLtoOpenStudio.new
|
|
@@ -80,6 +123,7 @@ class HPXMLtoOpenStudioConstructionsTest < MiniTest::Test
|
|
|
80
123
|
model = OpenStudio::Model::Model.new
|
|
81
124
|
|
|
82
125
|
# get arguments
|
|
126
|
+
args_hash['output_dir'] = 'tests'
|
|
83
127
|
arguments = measure.arguments(model)
|
|
84
128
|
argument_map = OpenStudio::Measure.convertOSArgumentVectorToMap(arguments)
|
|
85
129
|
|
|
@@ -104,6 +148,8 @@ class HPXMLtoOpenStudioConstructionsTest < MiniTest::Test
|
|
|
104
148
|
|
|
105
149
|
hpxml = HPXML.new(hpxml_path: args_hash['hpxml_path'])
|
|
106
150
|
|
|
151
|
+
File.delete(File.join(File.dirname(__FILE__), 'in.xml'))
|
|
152
|
+
|
|
107
153
|
return model, hpxml
|
|
108
154
|
end
|
|
109
155
|
end
|
|
@@ -48,7 +48,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
48
48
|
hpxml.header.allow_increased_fixed_capacities = true
|
|
49
49
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
50
50
|
hpxml_default = _test_measure()
|
|
51
|
-
_test_default_header_values(hpxml_default,
|
|
51
|
+
_test_default_header_values(hpxml_default, 30, 2, 2, 11, 11, 2008, false, 3, 3, 10, 10, false, true)
|
|
52
52
|
|
|
53
53
|
# Test defaults - DST not in weather file
|
|
54
54
|
hpxml.header.timestep = nil
|
|
@@ -66,7 +66,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
66
66
|
hpxml.header.allow_increased_fixed_capacities = nil
|
|
67
67
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
68
68
|
hpxml_default = _test_measure()
|
|
69
|
-
_test_default_header_values(hpxml_default,
|
|
69
|
+
_test_default_header_values(hpxml_default, 60, 1, 1, 12, 31, 2007, true, 3, 12, 11, 5, true, false)
|
|
70
70
|
|
|
71
71
|
# Test defaults - DST in weather file
|
|
72
72
|
hpxml = _create_hpxml('base-location-AMY-2012.xml')
|
|
@@ -85,24 +85,24 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
85
85
|
hpxml.header.allow_increased_fixed_capacities = nil
|
|
86
86
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
87
87
|
hpxml_default = _test_measure()
|
|
88
|
-
_test_default_header_values(hpxml_default,
|
|
88
|
+
_test_default_header_values(hpxml_default, 60, 1, 1, 12, 31, 2012, true, 3, 11, 11, 4, true, false)
|
|
89
89
|
end
|
|
90
90
|
|
|
91
91
|
def test_site
|
|
92
92
|
# Test inputs not overridden by defaults
|
|
93
93
|
hpxml = _create_hpxml('base.xml')
|
|
94
94
|
hpxml.site.site_type = HPXML::SiteTypeRural
|
|
95
|
-
hpxml.site.
|
|
95
|
+
hpxml.site.shielding_of_home = HPXML::ShieldingExposed
|
|
96
96
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
97
97
|
hpxml_default = _test_measure()
|
|
98
|
-
_test_default_site_values(hpxml_default,
|
|
98
|
+
_test_default_site_values(hpxml_default, HPXML::SiteTypeRural, HPXML::ShieldingExposed)
|
|
99
99
|
|
|
100
100
|
# Test defaults
|
|
101
101
|
hpxml.site.site_type = nil
|
|
102
|
-
hpxml.site.
|
|
102
|
+
hpxml.site.shielding_of_home = nil
|
|
103
103
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
104
104
|
hpxml_default = _test_measure()
|
|
105
|
-
_test_default_site_values(hpxml_default,
|
|
105
|
+
_test_default_site_values(hpxml_default, HPXML::SiteTypeSuburban, HPXML::ShieldingNormal)
|
|
106
106
|
end
|
|
107
107
|
|
|
108
108
|
def test_occupancy
|
|
@@ -111,13 +111,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
111
111
|
hpxml.building_occupancy.number_of_residents = 1
|
|
112
112
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
113
113
|
hpxml_default = _test_measure()
|
|
114
|
-
_test_default_occupancy_values(hpxml_default,
|
|
114
|
+
_test_default_occupancy_values(hpxml_default, 1)
|
|
115
115
|
|
|
116
116
|
# Test defaults
|
|
117
117
|
hpxml.building_occupancy.number_of_residents = nil
|
|
118
118
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
119
119
|
hpxml_default = _test_measure()
|
|
120
|
-
_test_default_occupancy_values(hpxml_default,
|
|
120
|
+
_test_default_occupancy_values(hpxml_default, 3)
|
|
121
121
|
end
|
|
122
122
|
|
|
123
123
|
def test_building_construction
|
|
@@ -128,7 +128,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
128
128
|
hpxml.building_construction.average_ceiling_height = 7
|
|
129
129
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
130
130
|
hpxml_default = _test_measure()
|
|
131
|
-
_test_default_building_construction_values(hpxml_default,
|
|
131
|
+
_test_default_building_construction_values(hpxml_default, 20000, 7, true, 4)
|
|
132
132
|
|
|
133
133
|
# Test defaults
|
|
134
134
|
hpxml.building_construction.conditioned_building_volume = nil
|
|
@@ -137,21 +137,21 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
137
137
|
hpxml.building_construction.number_of_bathrooms = nil
|
|
138
138
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
139
139
|
hpxml_default = _test_measure()
|
|
140
|
-
_test_default_building_construction_values(hpxml_default,
|
|
140
|
+
_test_default_building_construction_values(hpxml_default, 21600, 8, false, 2)
|
|
141
141
|
|
|
142
142
|
# Test defaults w/ average ceiling height
|
|
143
143
|
hpxml.building_construction.conditioned_building_volume = nil
|
|
144
144
|
hpxml.building_construction.average_ceiling_height = 10
|
|
145
145
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
146
146
|
hpxml_default = _test_measure()
|
|
147
|
-
_test_default_building_construction_values(hpxml_default,
|
|
147
|
+
_test_default_building_construction_values(hpxml_default, 27000, 10, false, 2)
|
|
148
148
|
|
|
149
149
|
# Test defaults w/ average ceiling height
|
|
150
|
-
hpxml.building_construction.conditioned_building_volume =
|
|
150
|
+
hpxml.building_construction.conditioned_building_volume = 20000
|
|
151
151
|
hpxml.building_construction.average_ceiling_height = nil
|
|
152
152
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
153
153
|
hpxml_default = _test_measure()
|
|
154
|
-
_test_default_building_construction_values(hpxml_default,
|
|
154
|
+
_test_default_building_construction_values(hpxml_default, 20000, 7.4, false, 2)
|
|
155
155
|
end
|
|
156
156
|
|
|
157
157
|
def test_infiltration
|
|
@@ -160,20 +160,20 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
160
160
|
hpxml.air_infiltration_measurements[0].infiltration_volume = 25000
|
|
161
161
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
162
162
|
hpxml_default = _test_measure()
|
|
163
|
-
_test_default_infiltration_values(hpxml_default,
|
|
163
|
+
_test_default_infiltration_values(hpxml_default, 25000)
|
|
164
164
|
|
|
165
165
|
# Test defaults w/ conditioned basement
|
|
166
166
|
hpxml.air_infiltration_measurements[0].infiltration_volume = nil
|
|
167
167
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
168
168
|
hpxml_default = _test_measure()
|
|
169
|
-
_test_default_infiltration_values(hpxml_default,
|
|
169
|
+
_test_default_infiltration_values(hpxml_default, 2700 * 8)
|
|
170
170
|
|
|
171
171
|
# Test defaults w/o conditioned basement
|
|
172
172
|
hpxml = _create_hpxml('base-foundation-slab.xml')
|
|
173
173
|
hpxml.air_infiltration_measurements[0].infiltration_volume = nil
|
|
174
174
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
175
175
|
hpxml_default = _test_measure()
|
|
176
|
-
_test_default_infiltration_values(hpxml_default,
|
|
176
|
+
_test_default_infiltration_values(hpxml_default, 1350 * 8)
|
|
177
177
|
end
|
|
178
178
|
|
|
179
179
|
def test_attics
|
|
@@ -182,13 +182,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
182
182
|
hpxml.attics[0].vented_attic_sla = 0.001
|
|
183
183
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
184
184
|
hpxml_default = _test_measure()
|
|
185
|
-
_test_default_attic_values(hpxml_default,
|
|
185
|
+
_test_default_attic_values(hpxml_default, 0.001)
|
|
186
186
|
|
|
187
187
|
# Test defaults
|
|
188
188
|
hpxml.attics[0].vented_attic_sla = nil
|
|
189
189
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
190
190
|
hpxml_default = _test_measure()
|
|
191
|
-
_test_default_attic_values(hpxml_default,
|
|
191
|
+
_test_default_attic_values(hpxml_default, 1.0 / 300.0)
|
|
192
192
|
end
|
|
193
193
|
|
|
194
194
|
def test_foundations
|
|
@@ -197,13 +197,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
197
197
|
hpxml.foundations[0].vented_crawlspace_sla = 0.001
|
|
198
198
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
199
199
|
hpxml_default = _test_measure()
|
|
200
|
-
_test_default_foundation_values(hpxml_default,
|
|
200
|
+
_test_default_foundation_values(hpxml_default, 0.001)
|
|
201
201
|
|
|
202
202
|
# Test defaults
|
|
203
203
|
hpxml.foundations[0].vented_crawlspace_sla = nil
|
|
204
204
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
205
205
|
hpxml_default = _test_measure()
|
|
206
|
-
_test_default_foundation_values(hpxml_default,
|
|
206
|
+
_test_default_foundation_values(hpxml_default, 1.0 / 150.0)
|
|
207
207
|
end
|
|
208
208
|
|
|
209
209
|
def test_roofs
|
|
@@ -215,7 +215,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
215
215
|
hpxml.roofs[0].emittance = 0.88
|
|
216
216
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
217
217
|
hpxml_default = _test_measure()
|
|
218
|
-
_test_default_roof_values(hpxml_default,
|
|
218
|
+
_test_default_roof_values(hpxml_default, HPXML::RoofTypeMetal, 0.77, HPXML::ColorDark, 0.88, true)
|
|
219
219
|
|
|
220
220
|
# Test defaults w/ RoofColor
|
|
221
221
|
hpxml.roofs[0].roof_type = nil
|
|
@@ -225,14 +225,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
225
225
|
hpxml.roofs[0].radiant_barrier = nil
|
|
226
226
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
227
227
|
hpxml_default = _test_measure()
|
|
228
|
-
_test_default_roof_values(hpxml_default,
|
|
228
|
+
_test_default_roof_values(hpxml_default, HPXML::RoofTypeAsphaltShingles, 0.75, HPXML::ColorLight, 0.90, false)
|
|
229
229
|
|
|
230
230
|
# Test defaults w/ SolarAbsorptance
|
|
231
231
|
hpxml.roofs[0].solar_absorptance = 0.99
|
|
232
232
|
hpxml.roofs[0].roof_color = nil
|
|
233
233
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
234
234
|
hpxml_default = _test_measure()
|
|
235
|
-
_test_default_roof_values(hpxml_default,
|
|
235
|
+
_test_default_roof_values(hpxml_default, HPXML::RoofTypeAsphaltShingles, 0.99, HPXML::ColorDark, 0.90, false)
|
|
236
236
|
end
|
|
237
237
|
|
|
238
238
|
def test_rim_joists
|
|
@@ -244,7 +244,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
244
244
|
hpxml.rim_joists[0].emittance = 0.88
|
|
245
245
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
246
246
|
hpxml_default = _test_measure()
|
|
247
|
-
_test_default_rim_joist_values(hpxml_default,
|
|
247
|
+
_test_default_rim_joist_values(hpxml_default, HPXML::SidingTypeBrick, 0.55, HPXML::ColorLight, 0.88)
|
|
248
248
|
|
|
249
249
|
# Test defaults w/ Color
|
|
250
250
|
hpxml.rim_joists[0].siding = nil
|
|
@@ -253,14 +253,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
253
253
|
hpxml.rim_joists[0].emittance = nil
|
|
254
254
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
255
255
|
hpxml_default = _test_measure()
|
|
256
|
-
_test_default_rim_joist_values(hpxml_default,
|
|
256
|
+
_test_default_rim_joist_values(hpxml_default, HPXML::SidingTypeWood, 0.95, HPXML::ColorDark, 0.90)
|
|
257
257
|
|
|
258
258
|
# Test defaults w/ SolarAbsorptance
|
|
259
259
|
hpxml.rim_joists[0].solar_absorptance = 0.99
|
|
260
260
|
hpxml.rim_joists[0].color = nil
|
|
261
261
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
262
262
|
hpxml_default = _test_measure()
|
|
263
|
-
_test_default_rim_joist_values(hpxml_default,
|
|
263
|
+
_test_default_rim_joist_values(hpxml_default, HPXML::SidingTypeWood, 0.99, HPXML::ColorDark, 0.90)
|
|
264
264
|
end
|
|
265
265
|
|
|
266
266
|
def test_walls
|
|
@@ -272,7 +272,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
272
272
|
hpxml.walls[0].emittance = 0.88
|
|
273
273
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
274
274
|
hpxml_default = _test_measure()
|
|
275
|
-
_test_default_wall_values(hpxml_default,
|
|
275
|
+
_test_default_wall_values(hpxml_default, HPXML::SidingTypeFiberCement, 0.66, HPXML::ColorDark, 0.88)
|
|
276
276
|
|
|
277
277
|
# Test defaults W/ Color
|
|
278
278
|
hpxml.walls[0].siding = nil
|
|
@@ -281,14 +281,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
281
281
|
hpxml.walls[0].emittance = nil
|
|
282
282
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
283
283
|
hpxml_default = _test_measure()
|
|
284
|
-
_test_default_wall_values(hpxml_default,
|
|
284
|
+
_test_default_wall_values(hpxml_default, HPXML::SidingTypeWood, 0.5, HPXML::ColorLight, 0.90)
|
|
285
285
|
|
|
286
286
|
# Test defaults W/ SolarAbsorptance
|
|
287
287
|
hpxml.walls[0].solar_absorptance = 0.99
|
|
288
288
|
hpxml.walls[0].color = nil
|
|
289
289
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
290
290
|
hpxml_default = _test_measure()
|
|
291
|
-
_test_default_wall_values(hpxml_default,
|
|
291
|
+
_test_default_wall_values(hpxml_default, HPXML::SidingTypeWood, 0.99, HPXML::ColorDark, 0.90)
|
|
292
292
|
end
|
|
293
293
|
|
|
294
294
|
def test_foundation_walls
|
|
@@ -297,13 +297,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
297
297
|
hpxml.foundation_walls[0].thickness = 7.0
|
|
298
298
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
299
299
|
hpxml_default = _test_measure()
|
|
300
|
-
_test_default_foundation_wall_values(hpxml_default,
|
|
300
|
+
_test_default_foundation_wall_values(hpxml_default, 7.0)
|
|
301
301
|
|
|
302
302
|
# Test defaults
|
|
303
303
|
hpxml.foundation_walls[0].thickness = nil
|
|
304
304
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
305
305
|
hpxml_default = _test_measure()
|
|
306
|
-
_test_default_foundation_wall_values(hpxml_default,
|
|
306
|
+
_test_default_foundation_wall_values(hpxml_default, 8.0)
|
|
307
307
|
end
|
|
308
308
|
|
|
309
309
|
def test_slabs
|
|
@@ -314,7 +314,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
314
314
|
hpxml.slabs[0].carpet_fraction = 0.5
|
|
315
315
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
316
316
|
hpxml_default = _test_measure()
|
|
317
|
-
_test_default_slab_values(hpxml_default,
|
|
317
|
+
_test_default_slab_values(hpxml_default, 7.0, 1.1, 0.5)
|
|
318
318
|
|
|
319
319
|
# Test defaults w/ conditioned basement
|
|
320
320
|
hpxml.slabs[0].thickness = nil
|
|
@@ -322,7 +322,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
322
322
|
hpxml.slabs[0].carpet_fraction = nil
|
|
323
323
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
324
324
|
hpxml_default = _test_measure()
|
|
325
|
-
_test_default_slab_values(hpxml_default,
|
|
325
|
+
_test_default_slab_values(hpxml_default, 4.0, 2.0, 0.8)
|
|
326
326
|
|
|
327
327
|
# Test defaults w/ crawlspace
|
|
328
328
|
hpxml = _create_hpxml('base-foundation-unvented-crawlspace.xml')
|
|
@@ -331,55 +331,63 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
331
331
|
hpxml.slabs[0].carpet_fraction = nil
|
|
332
332
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
333
333
|
hpxml_default = _test_measure()
|
|
334
|
-
_test_default_slab_values(hpxml_default,
|
|
334
|
+
_test_default_slab_values(hpxml_default, 0.0, 0.0, 0.0)
|
|
335
335
|
end
|
|
336
336
|
|
|
337
337
|
def test_windows
|
|
338
338
|
# Test inputs not overridden by defaults
|
|
339
|
-
hpxml = _create_hpxml('base-enclosure-windows-
|
|
339
|
+
hpxml = _create_hpxml('base-enclosure-windows-shading.xml')
|
|
340
340
|
hpxml.windows.each do |window|
|
|
341
341
|
window.fraction_operable = 0.5
|
|
342
|
+
window.exterior_shading_factor_summer = 0.44
|
|
343
|
+
window.exterior_shading_factor_winter = 0.55
|
|
342
344
|
window.interior_shading_factor_summer = 0.66
|
|
343
345
|
window.interior_shading_factor_winter = 0.77
|
|
344
346
|
end
|
|
345
347
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
346
348
|
hpxml_default = _test_measure()
|
|
347
349
|
n_windows = hpxml_default.windows.size
|
|
348
|
-
_test_default_window_values(hpxml_default,
|
|
350
|
+
_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)
|
|
349
351
|
|
|
350
352
|
# Test defaults
|
|
351
353
|
hpxml.windows.each do |window|
|
|
352
354
|
window.fraction_operable = nil
|
|
355
|
+
window.exterior_shading_factor_summer = nil
|
|
356
|
+
window.exterior_shading_factor_winter = nil
|
|
353
357
|
window.interior_shading_factor_summer = nil
|
|
354
358
|
window.interior_shading_factor_winter = nil
|
|
355
359
|
end
|
|
356
360
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
357
361
|
hpxml_default = _test_measure()
|
|
358
362
|
n_windows = hpxml_default.windows.size
|
|
359
|
-
_test_default_window_values(hpxml_default,
|
|
363
|
+
_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)
|
|
360
364
|
end
|
|
361
365
|
|
|
362
366
|
def test_skylights
|
|
363
367
|
# Test inputs not overridden by defaults
|
|
364
368
|
hpxml = _create_hpxml('base-enclosure-skylights.xml')
|
|
365
369
|
hpxml.skylights.each do |skylight|
|
|
370
|
+
skylight.exterior_shading_factor_summer = 0.44
|
|
371
|
+
skylight.exterior_shading_factor_winter = 0.55
|
|
366
372
|
skylight.interior_shading_factor_summer = 0.66
|
|
367
373
|
skylight.interior_shading_factor_winter = 0.77
|
|
368
374
|
end
|
|
369
375
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
370
376
|
hpxml_default = _test_measure()
|
|
371
377
|
n_skylights = hpxml_default.skylights.size
|
|
372
|
-
_test_default_skylight_values(hpxml_default,
|
|
378
|
+
_test_default_skylight_values(hpxml_default, [0.44] * n_skylights, [0.55] * n_skylights, [0.66] * n_skylights, [0.77] * n_skylights)
|
|
373
379
|
|
|
374
380
|
# Test defaults
|
|
375
381
|
hpxml.skylights.each do |skylight|
|
|
382
|
+
skylight.exterior_shading_factor_summer = nil
|
|
383
|
+
skylight.exterior_shading_factor_winter = nil
|
|
376
384
|
skylight.interior_shading_factor_summer = nil
|
|
377
385
|
skylight.interior_shading_factor_winter = nil
|
|
378
386
|
end
|
|
379
387
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
380
388
|
hpxml_default = _test_measure()
|
|
381
389
|
n_skylights = hpxml_default.skylights.size
|
|
382
|
-
_test_default_skylight_values(hpxml_default,
|
|
390
|
+
_test_default_skylight_values(hpxml_default, [1.0] * n_skylights, [1.0] * n_skylights, [1.0] * n_skylights, [1.0] * n_skylights)
|
|
383
391
|
end
|
|
384
392
|
|
|
385
393
|
def test_central_air_conditioners
|
|
@@ -388,32 +396,55 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
388
396
|
hpxml.cooling_systems[0].cooling_shr = 0.88
|
|
389
397
|
hpxml.cooling_systems[0].compressor_type = HPXML::HVACCompressorTypeVariableSpeed
|
|
390
398
|
hpxml.cooling_systems[0].fan_watts_per_cfm = 0.66
|
|
399
|
+
hpxml.cooling_systems[0].charge_defect_ratio = -0.11
|
|
400
|
+
hpxml.cooling_systems[0].airflow_defect_ratio = -0.22
|
|
401
|
+
hpxml.cooling_systems[0].cooling_capacity = 12345
|
|
391
402
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
392
403
|
hpxml_default = _test_measure()
|
|
393
|
-
_test_default_central_air_conditioner_values(hpxml_default,
|
|
404
|
+
_test_default_central_air_conditioner_values(hpxml_default, 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345)
|
|
394
405
|
|
|
395
406
|
# Test defaults
|
|
396
407
|
hpxml.cooling_systems[0].cooling_shr = nil
|
|
397
408
|
hpxml.cooling_systems[0].compressor_type = nil
|
|
398
409
|
hpxml.cooling_systems[0].fan_watts_per_cfm = nil
|
|
410
|
+
hpxml.cooling_systems[0].charge_defect_ratio = nil
|
|
411
|
+
hpxml.cooling_systems[0].airflow_defect_ratio = nil
|
|
412
|
+
hpxml.cooling_systems[0].cooling_capacity = nil
|
|
399
413
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
400
414
|
hpxml_default = _test_measure()
|
|
401
|
-
_test_default_central_air_conditioner_values(hpxml_default,
|
|
415
|
+
_test_default_central_air_conditioner_values(hpxml_default, 0.73, HPXML::HVACCompressorTypeSingleStage, 0.5, 0, 0, nil)
|
|
402
416
|
end
|
|
403
417
|
|
|
404
418
|
def test_room_air_conditioners
|
|
405
419
|
# Test inputs not overridden by defaults
|
|
406
420
|
hpxml = _create_hpxml('base-hvac-room-ac-only.xml')
|
|
407
421
|
hpxml.cooling_systems[0].cooling_shr = 0.88
|
|
422
|
+
hpxml.cooling_systems[0].cooling_capacity = 12345
|
|
408
423
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
409
424
|
hpxml_default = _test_measure()
|
|
410
|
-
_test_default_room_air_conditioner_values(hpxml_default,
|
|
425
|
+
_test_default_room_air_conditioner_values(hpxml_default, 0.88, 12345)
|
|
411
426
|
|
|
412
427
|
# Test defaults
|
|
413
428
|
hpxml.cooling_systems[0].cooling_shr = nil
|
|
429
|
+
hpxml.cooling_systems[0].cooling_capacity = nil
|
|
414
430
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
415
431
|
hpxml_default = _test_measure()
|
|
416
|
-
_test_default_room_air_conditioner_values(hpxml_default,
|
|
432
|
+
_test_default_room_air_conditioner_values(hpxml_default, 0.65, nil)
|
|
433
|
+
end
|
|
434
|
+
|
|
435
|
+
def test_evaporative_coolers
|
|
436
|
+
# Test inputs not overridden by defaults
|
|
437
|
+
hpxml = _create_hpxml('base-hvac-evap-cooler-only.xml')
|
|
438
|
+
hpxml.cooling_systems[0].cooling_capacity = 12345
|
|
439
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
440
|
+
hpxml_default = _test_measure()
|
|
441
|
+
_test_default_evap_cooler_values(hpxml_default, 12345)
|
|
442
|
+
|
|
443
|
+
# Test defaults
|
|
444
|
+
hpxml.cooling_systems[0].cooling_capacity = nil
|
|
445
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
446
|
+
hpxml_default = _test_measure()
|
|
447
|
+
_test_default_evap_cooler_values(hpxml_default, nil)
|
|
417
448
|
end
|
|
418
449
|
|
|
419
450
|
def test_mini_split_air_conditioners
|
|
@@ -421,76 +452,91 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
421
452
|
hpxml = _create_hpxml('base-hvac-mini-split-air-conditioner-only-ducted.xml')
|
|
422
453
|
hpxml.cooling_systems[0].cooling_shr = 0.78
|
|
423
454
|
hpxml.cooling_systems[0].fan_watts_per_cfm = 0.66
|
|
455
|
+
hpxml.cooling_systems[0].charge_defect_ratio = -0.11
|
|
456
|
+
hpxml.cooling_systems[0].airflow_defect_ratio = -0.22
|
|
457
|
+
hpxml.cooling_systems[0].cooling_capacity = 12345
|
|
424
458
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
425
459
|
hpxml_default = _test_measure()
|
|
426
|
-
_test_default_mini_split_air_conditioner_values(hpxml_default,
|
|
460
|
+
_test_default_mini_split_air_conditioner_values(hpxml_default, 0.78, 0.66, -0.11, -0.22, 12345)
|
|
427
461
|
|
|
428
462
|
# Test defaults
|
|
429
463
|
hpxml.cooling_systems[0].cooling_shr = nil
|
|
430
464
|
hpxml.cooling_systems[0].fan_watts_per_cfm = nil
|
|
465
|
+
hpxml.cooling_systems[0].charge_defect_ratio = nil
|
|
466
|
+
hpxml.cooling_systems[0].airflow_defect_ratio = nil
|
|
467
|
+
hpxml.cooling_systems[0].cooling_capacity = nil
|
|
431
468
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
432
469
|
hpxml_default = _test_measure()
|
|
433
|
-
_test_default_mini_split_air_conditioner_values(hpxml_default,
|
|
470
|
+
_test_default_mini_split_air_conditioner_values(hpxml_default, 0.73, 0.18, 0, 0, nil)
|
|
434
471
|
end
|
|
435
472
|
|
|
436
473
|
def test_furnaces
|
|
437
474
|
# Test inputs not overridden by defaults
|
|
438
475
|
hpxml = _create_hpxml('base.xml')
|
|
439
476
|
hpxml.heating_systems[0].fan_watts_per_cfm = 0.66
|
|
477
|
+
hpxml.heating_systems[0].airflow_defect_ratio = -0.22
|
|
478
|
+
hpxml.heating_systems[0].heating_capacity = 12345
|
|
440
479
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
441
480
|
hpxml_default = _test_measure()
|
|
442
|
-
_test_default_furnace_values(hpxml_default,
|
|
481
|
+
_test_default_furnace_values(hpxml_default, 0.66, -0.22, 12345)
|
|
443
482
|
|
|
444
483
|
# Test defaults
|
|
445
484
|
hpxml.heating_systems[0].fan_watts_per_cfm = nil
|
|
485
|
+
hpxml.heating_systems[0].airflow_defect_ratio = nil
|
|
486
|
+
hpxml.heating_systems[0].heating_capacity = nil
|
|
446
487
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
447
488
|
hpxml_default = _test_measure()
|
|
448
|
-
_test_default_furnace_values(hpxml_default,
|
|
489
|
+
_test_default_furnace_values(hpxml_default, 0.375, 0, nil)
|
|
449
490
|
end
|
|
450
491
|
|
|
451
492
|
def test_wall_furnaces
|
|
452
493
|
# Test inputs not overridden by defaults
|
|
453
494
|
hpxml = _create_hpxml('base-hvac-wall-furnace-elec-only.xml')
|
|
454
495
|
hpxml.heating_systems[0].fan_watts = 22
|
|
496
|
+
hpxml.heating_systems[0].heating_capacity = 12345
|
|
455
497
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
456
498
|
hpxml_default = _test_measure()
|
|
457
|
-
_test_default_wall_furnace_values(hpxml_default,
|
|
499
|
+
_test_default_wall_furnace_values(hpxml_default, 22, 12345)
|
|
458
500
|
|
|
459
501
|
# Test defaults
|
|
460
502
|
hpxml.heating_systems[0].fan_watts = nil
|
|
503
|
+
hpxml.heating_systems[0].heating_capacity = nil
|
|
461
504
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
462
505
|
hpxml_default = _test_measure()
|
|
463
|
-
_test_default_wall_furnace_values(hpxml_default,
|
|
506
|
+
_test_default_wall_furnace_values(hpxml_default, 0, nil)
|
|
464
507
|
end
|
|
465
508
|
|
|
466
509
|
def test_floor_furnaces
|
|
467
510
|
# Test inputs not overridden by defaults
|
|
468
511
|
hpxml = _create_hpxml('base-hvac-floor-furnace-propane-only.xml')
|
|
469
512
|
hpxml.heating_systems[0].fan_watts = 22
|
|
513
|
+
hpxml.heating_systems[0].heating_capacity = 12345
|
|
470
514
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
471
515
|
hpxml_default = _test_measure()
|
|
472
|
-
_test_default_floor_furnace_values(hpxml_default,
|
|
516
|
+
_test_default_floor_furnace_values(hpxml_default, 22, 12345)
|
|
473
517
|
|
|
474
518
|
# Test defaults
|
|
475
519
|
hpxml.heating_systems[0].fan_watts = nil
|
|
476
520
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
477
521
|
hpxml_default = _test_measure()
|
|
478
|
-
_test_default_floor_furnace_values(hpxml_default,
|
|
522
|
+
_test_default_floor_furnace_values(hpxml_default, 0, nil)
|
|
479
523
|
end
|
|
480
524
|
|
|
481
525
|
def test_boilers
|
|
482
526
|
# Test inputs not overridden by defaults (in-unit boiler)
|
|
483
527
|
hpxml = _create_hpxml('base-hvac-boiler-gas-only.xml')
|
|
484
528
|
hpxml.heating_systems[0].electric_auxiliary_energy = 99.9
|
|
529
|
+
hpxml.heating_systems[0].heating_capacity = 12345
|
|
485
530
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
486
531
|
hpxml_default = _test_measure()
|
|
487
|
-
_test_default_boiler_values(hpxml_default,
|
|
532
|
+
_test_default_boiler_values(hpxml_default, 99.9, 12345)
|
|
488
533
|
|
|
489
534
|
# Test defaults w/ in-unit boiler
|
|
490
535
|
hpxml.heating_systems[0].electric_auxiliary_energy = nil
|
|
536
|
+
hpxml.heating_systems[0].heating_capacity = nil
|
|
491
537
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
492
538
|
hpxml_default = _test_measure()
|
|
493
|
-
_test_default_boiler_values(hpxml_default,
|
|
539
|
+
_test_default_boiler_values(hpxml_default, 170.0, nil)
|
|
494
540
|
|
|
495
541
|
# Test inputs not overridden by defaults (shared boiler)
|
|
496
542
|
hpxml = _create_hpxml('base-bldgtype-multifamily-shared-boiler-only-baseboard.xml')
|
|
@@ -498,73 +544,81 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
498
544
|
hpxml.heating_systems[0].electric_auxiliary_energy = 99.9
|
|
499
545
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
500
546
|
hpxml_default = _test_measure()
|
|
501
|
-
_test_default_boiler_values(hpxml_default,
|
|
547
|
+
_test_default_boiler_values(hpxml_default, 99.9, nil)
|
|
502
548
|
|
|
503
549
|
# Test defaults w/ shared boiler
|
|
504
550
|
hpxml.heating_systems[0].electric_auxiliary_energy = nil
|
|
505
551
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
506
552
|
hpxml_default = _test_measure()
|
|
507
|
-
_test_default_boiler_values(hpxml_default,
|
|
553
|
+
_test_default_boiler_values(hpxml_default, 220.0, nil)
|
|
508
554
|
end
|
|
509
555
|
|
|
510
556
|
def test_stoves
|
|
511
557
|
# Test inputs not overridden by defaults
|
|
512
558
|
hpxml = _create_hpxml('base-hvac-stove-oil-only.xml')
|
|
513
559
|
hpxml.heating_systems[0].fan_watts = 22
|
|
560
|
+
hpxml.heating_systems[0].heating_capacity = 12345
|
|
514
561
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
515
562
|
hpxml_default = _test_measure()
|
|
516
|
-
_test_default_stove_values(hpxml_default,
|
|
563
|
+
_test_default_stove_values(hpxml_default, 22, 12345)
|
|
517
564
|
|
|
518
565
|
# Test defaults
|
|
519
566
|
hpxml.heating_systems[0].fan_watts = nil
|
|
567
|
+
hpxml.heating_systems[0].heating_capacity = nil
|
|
520
568
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
521
569
|
hpxml_default = _test_measure()
|
|
522
|
-
_test_default_stove_values(hpxml_default,
|
|
570
|
+
_test_default_stove_values(hpxml_default, 40, nil)
|
|
523
571
|
end
|
|
524
572
|
|
|
525
573
|
def test_portable_heaters
|
|
526
574
|
# Test inputs not overridden by defaults
|
|
527
575
|
hpxml = _create_hpxml('base-hvac-portable-heater-gas-only.xml')
|
|
528
576
|
hpxml.heating_systems[0].fan_watts = 22
|
|
577
|
+
hpxml.heating_systems[0].heating_capacity = 12345
|
|
529
578
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
530
579
|
hpxml_default = _test_measure()
|
|
531
|
-
_test_default_portable_heater_values(hpxml_default,
|
|
580
|
+
_test_default_portable_heater_values(hpxml_default, 22, 12345)
|
|
532
581
|
|
|
533
582
|
# Test defaults
|
|
534
583
|
hpxml.heating_systems[0].fan_watts = nil
|
|
584
|
+
hpxml.heating_systems[0].heating_capacity = nil
|
|
535
585
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
536
586
|
hpxml_default = _test_measure()
|
|
537
|
-
_test_default_portable_heater_values(hpxml_default,
|
|
587
|
+
_test_default_portable_heater_values(hpxml_default, 0, nil)
|
|
538
588
|
end
|
|
539
589
|
|
|
540
590
|
def test_fixed_heaters
|
|
541
591
|
# Test inputs not overridden by defaults
|
|
542
592
|
hpxml = _create_hpxml('base-hvac-fixed-heater-gas-only.xml')
|
|
543
593
|
hpxml.heating_systems[0].fan_watts = 22
|
|
594
|
+
hpxml.heating_systems[0].heating_capacity = 12345
|
|
544
595
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
545
596
|
hpxml_default = _test_measure()
|
|
546
|
-
_test_default_fixed_heater_values(hpxml_default,
|
|
597
|
+
_test_default_fixed_heater_values(hpxml_default, 22, 12345)
|
|
547
598
|
|
|
548
599
|
# Test defaults
|
|
549
600
|
hpxml.heating_systems[0].fan_watts = nil
|
|
601
|
+
hpxml.heating_systems[0].heating_capacity = nil
|
|
550
602
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
551
603
|
hpxml_default = _test_measure()
|
|
552
|
-
_test_default_fixed_heater_values(hpxml_default,
|
|
604
|
+
_test_default_fixed_heater_values(hpxml_default, 0, nil)
|
|
553
605
|
end
|
|
554
606
|
|
|
555
607
|
def test_fireplaces
|
|
556
608
|
# Test inputs not overridden by defaults
|
|
557
609
|
hpxml = _create_hpxml('base-hvac-fireplace-wood-only.xml')
|
|
558
610
|
hpxml.heating_systems[0].fan_watts = 22
|
|
611
|
+
hpxml.heating_systems[0].heating_capacity = 12345
|
|
559
612
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
560
613
|
hpxml_default = _test_measure()
|
|
561
|
-
_test_default_fireplace_values(hpxml_default,
|
|
614
|
+
_test_default_fireplace_values(hpxml_default, 22, 12345)
|
|
562
615
|
|
|
563
616
|
# Test defaults
|
|
564
617
|
hpxml.heating_systems[0].fan_watts = nil
|
|
618
|
+
hpxml.heating_systems[0].heating_capacity = nil
|
|
565
619
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
566
620
|
hpxml_default = _test_measure()
|
|
567
|
-
_test_default_fireplace_values(hpxml_default,
|
|
621
|
+
_test_default_fireplace_values(hpxml_default, 0, nil)
|
|
568
622
|
end
|
|
569
623
|
|
|
570
624
|
def test_air_source_heat_pumps
|
|
@@ -573,17 +627,29 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
573
627
|
hpxml.heat_pumps[0].cooling_shr = 0.88
|
|
574
628
|
hpxml.heat_pumps[0].compressor_type = HPXML::HVACCompressorTypeVariableSpeed
|
|
575
629
|
hpxml.heat_pumps[0].fan_watts_per_cfm = 0.66
|
|
630
|
+
hpxml.heat_pumps[0].charge_defect_ratio = -0.11
|
|
631
|
+
hpxml.heat_pumps[0].airflow_defect_ratio = -0.22
|
|
632
|
+
hpxml.heat_pumps[0].cooling_capacity = 12345
|
|
633
|
+
hpxml.heat_pumps[0].heating_capacity = 23456
|
|
634
|
+
hpxml.heat_pumps[0].heating_capacity_17F = 9876
|
|
635
|
+
hpxml.heat_pumps[0].backup_heating_capacity = 34567
|
|
576
636
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
577
637
|
hpxml_default = _test_measure()
|
|
578
|
-
_test_default_air_to_air_heat_pump_values(hpxml_default,
|
|
638
|
+
_test_default_air_to_air_heat_pump_values(hpxml_default, 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 23456, 9876, 34567)
|
|
579
639
|
|
|
580
640
|
# Test defaults
|
|
581
641
|
hpxml.heat_pumps[0].cooling_shr = nil
|
|
582
642
|
hpxml.heat_pumps[0].compressor_type = nil
|
|
583
643
|
hpxml.heat_pumps[0].fan_watts_per_cfm = nil
|
|
644
|
+
hpxml.heat_pumps[0].charge_defect_ratio = nil
|
|
645
|
+
hpxml.heat_pumps[0].airflow_defect_ratio = nil
|
|
646
|
+
hpxml.heat_pumps[0].cooling_capacity = nil
|
|
647
|
+
hpxml.heat_pumps[0].heating_capacity = nil
|
|
648
|
+
hpxml.heat_pumps[0].heating_capacity_17F = nil
|
|
649
|
+
hpxml.heat_pumps[0].backup_heating_capacity = nil
|
|
584
650
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
585
651
|
hpxml_default = _test_measure()
|
|
586
|
-
_test_default_air_to_air_heat_pump_values(hpxml_default,
|
|
652
|
+
_test_default_air_to_air_heat_pump_values(hpxml_default, 0.73, HPXML::HVACCompressorTypeSingleStage, 0.5, 0, 0, nil, nil, nil, nil)
|
|
587
653
|
end
|
|
588
654
|
|
|
589
655
|
def test_mini_split_heat_pumps
|
|
@@ -591,33 +657,82 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
591
657
|
hpxml = _create_hpxml('base-hvac-mini-split-heat-pump-ducted.xml')
|
|
592
658
|
hpxml.heat_pumps[0].cooling_shr = 0.78
|
|
593
659
|
hpxml.heat_pumps[0].fan_watts_per_cfm = 0.66
|
|
660
|
+
hpxml.heat_pumps[0].charge_defect_ratio = -0.11
|
|
661
|
+
hpxml.heat_pumps[0].airflow_defect_ratio = -0.22
|
|
662
|
+
hpxml.heat_pumps[0].cooling_capacity = 12345
|
|
663
|
+
hpxml.heat_pumps[0].heating_capacity = 23456
|
|
664
|
+
hpxml.heat_pumps[0].heating_capacity_17F = 9876
|
|
665
|
+
hpxml.heat_pumps[0].backup_heating_capacity = 34567
|
|
594
666
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
595
667
|
hpxml_default = _test_measure()
|
|
596
|
-
_test_default_mini_split_heat_pump_values(hpxml_default,
|
|
668
|
+
_test_default_mini_split_heat_pump_values(hpxml_default, 0.78, 0.66, -0.11, -0.22, 12345, 23456, 9876, 34567)
|
|
597
669
|
|
|
598
670
|
# Test defaults
|
|
599
671
|
hpxml.heat_pumps[0].cooling_shr = nil
|
|
600
672
|
hpxml.heat_pumps[0].fan_watts_per_cfm = nil
|
|
673
|
+
hpxml.heat_pumps[0].charge_defect_ratio = nil
|
|
674
|
+
hpxml.heat_pumps[0].airflow_defect_ratio = nil
|
|
675
|
+
hpxml.heat_pumps[0].cooling_capacity = nil
|
|
676
|
+
hpxml.heat_pumps[0].heating_capacity = nil
|
|
677
|
+
hpxml.heat_pumps[0].heating_capacity_17F = nil
|
|
678
|
+
hpxml.heat_pumps[0].backup_heating_capacity = nil
|
|
601
679
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
602
680
|
hpxml_default = _test_measure()
|
|
603
|
-
_test_default_mini_split_heat_pump_values(hpxml_default,
|
|
681
|
+
_test_default_mini_split_heat_pump_values(hpxml_default, 0.73, 0.18, 0, 0, nil, nil, nil, nil)
|
|
604
682
|
end
|
|
605
683
|
|
|
606
|
-
def
|
|
684
|
+
def test_ground_source_heat_pumps
|
|
607
685
|
# Test inputs not overridden by defaults
|
|
608
686
|
hpxml = _create_hpxml('base-hvac-ground-to-air-heat-pump.xml')
|
|
609
687
|
hpxml.heat_pumps[0].pump_watts_per_ton = 9.9
|
|
610
|
-
hpxml.heat_pumps[0].fan_watts_per_cfm = 0.
|
|
688
|
+
hpxml.heat_pumps[0].fan_watts_per_cfm = 0.66
|
|
689
|
+
hpxml.heat_pumps[0].airflow_defect_ratio = -0.22
|
|
690
|
+
hpxml.heat_pumps[0].cooling_capacity = 12345
|
|
691
|
+
hpxml.heat_pumps[0].heating_capacity = 23456
|
|
692
|
+
hpxml.heat_pumps[0].backup_heating_capacity = 34567
|
|
611
693
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
612
694
|
hpxml_default = _test_measure()
|
|
613
|
-
_test_default_ground_to_air_heat_pump_values(hpxml_default,
|
|
695
|
+
_test_default_ground_to_air_heat_pump_values(hpxml_default, 9.9, 0.66, -0.22, 12345, 23456, 34567)
|
|
614
696
|
|
|
615
697
|
# Test defaults
|
|
616
698
|
hpxml.heat_pumps[0].pump_watts_per_ton = nil
|
|
617
699
|
hpxml.heat_pumps[0].fan_watts_per_cfm = nil
|
|
700
|
+
hpxml.heat_pumps[0].airflow_defect_ratio = nil
|
|
701
|
+
hpxml.heat_pumps[0].cooling_capacity = nil
|
|
702
|
+
hpxml.heat_pumps[0].heating_capacity = nil
|
|
703
|
+
hpxml.heat_pumps[0].backup_heating_capacity = nil
|
|
704
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
705
|
+
hpxml_default = _test_measure()
|
|
706
|
+
_test_default_ground_to_air_heat_pump_values(hpxml_default, 30.0, 0.375, 0, nil, nil, nil)
|
|
707
|
+
end
|
|
708
|
+
|
|
709
|
+
def test_hvac_increased_hardsized_equipment
|
|
710
|
+
# Test hard-sized capacities are increased for air conditioner + furnace
|
|
711
|
+
hpxml = _create_hpxml('base-hvac-undersized-allow-increased-fixed-capacities.xml')
|
|
712
|
+
htg_cap = hpxml.heating_systems[0].heating_capacity
|
|
713
|
+
clg_cap = hpxml.cooling_systems[0].cooling_capacity
|
|
618
714
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
619
715
|
hpxml_default = _test_measure()
|
|
620
|
-
|
|
716
|
+
assert(hpxml_default.heating_systems[0].heating_capacity > htg_cap)
|
|
717
|
+
assert(hpxml_default.cooling_systems[0].cooling_capacity > clg_cap)
|
|
718
|
+
|
|
719
|
+
# Test hard-sized capacities are increased for heat pump
|
|
720
|
+
hpxml = _create_hpxml('base-hvac-air-to-air-heat-pump-1-speed.xml')
|
|
721
|
+
hpxml.header.allow_increased_fixed_capacities = true
|
|
722
|
+
hpxml.heat_pumps[0].heating_capacity /= 10.0
|
|
723
|
+
hpxml.heat_pumps[0].heating_capacity_17F /= 10.0
|
|
724
|
+
hpxml.heat_pumps[0].backup_heating_capacity /= 10.0
|
|
725
|
+
hpxml.heat_pumps[0].cooling_capacity /= 10.0
|
|
726
|
+
htg_cap = hpxml.heat_pumps[0].heating_capacity
|
|
727
|
+
htg_17f_cap = hpxml.heat_pumps[0].heating_capacity_17F
|
|
728
|
+
htg_bak_cap = hpxml.heat_pumps[0].backup_heating_capacity
|
|
729
|
+
clg_cap = hpxml.heat_pumps[0].cooling_capacity
|
|
730
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
731
|
+
hpxml_default = _test_measure()
|
|
732
|
+
assert(hpxml_default.heat_pumps[0].heating_capacity > htg_cap)
|
|
733
|
+
assert(hpxml_default.heat_pumps[0].heating_capacity_17F > htg_17f_cap)
|
|
734
|
+
assert(hpxml_default.heat_pumps[0].backup_heating_capacity > htg_bak_cap)
|
|
735
|
+
assert(hpxml_default.heat_pumps[0].cooling_capacity > clg_cap)
|
|
621
736
|
end
|
|
622
737
|
|
|
623
738
|
def test_hvac_controls
|
|
@@ -627,20 +742,19 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
627
742
|
hpxml.hvac_controls[0].cooling_setup_start_hour = 12
|
|
628
743
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
629
744
|
hpxml_default = _test_measure()
|
|
630
|
-
_test_default_hvac_control_values(hpxml_default,
|
|
745
|
+
_test_default_hvac_control_values(hpxml_default, 12, 12)
|
|
631
746
|
|
|
632
747
|
# Test defaults
|
|
633
748
|
hpxml.hvac_controls[0].heating_setback_start_hour = nil
|
|
634
749
|
hpxml.hvac_controls[0].cooling_setup_start_hour = nil
|
|
635
750
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
636
751
|
hpxml_default = _test_measure()
|
|
637
|
-
_test_default_hvac_control_values(hpxml_default,
|
|
752
|
+
_test_default_hvac_control_values(hpxml_default, 23, 9)
|
|
638
753
|
end
|
|
639
754
|
|
|
640
755
|
def test_hvac_distribution
|
|
641
756
|
# Test inputs not overridden by defaults
|
|
642
757
|
hpxml = _create_hpxml('base.xml')
|
|
643
|
-
hpxml.hvac_distributions[0].number_of_return_registers = hpxml.building_construction.number_of_conditioned_floors
|
|
644
758
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
645
759
|
hpxml_default = _test_measure()
|
|
646
760
|
expected_supply_locations = ['attic - unvented']
|
|
@@ -648,7 +762,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
648
762
|
expected_supply_areas = [150.0]
|
|
649
763
|
expected_return_areas = [50.0]
|
|
650
764
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
|
651
|
-
_test_default_duct_values(hpxml_default,
|
|
765
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas, expected_n_return_registers)
|
|
652
766
|
|
|
653
767
|
# Test defaults w/ conditioned basement
|
|
654
768
|
hpxml.hvac_distributions[0].number_of_return_registers = nil
|
|
@@ -665,7 +779,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
665
779
|
expected_supply_areas = [729.0]
|
|
666
780
|
expected_return_areas = [270.0]
|
|
667
781
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
|
668
|
-
_test_default_duct_values(hpxml_default,
|
|
782
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas, expected_n_return_registers)
|
|
669
783
|
|
|
670
784
|
# Test defaults w/ multiple foundations
|
|
671
785
|
hpxml = _create_hpxml('base-foundation-multiple.xml')
|
|
@@ -682,7 +796,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
682
796
|
expected_supply_areas = [364.5]
|
|
683
797
|
expected_return_areas = [67.5]
|
|
684
798
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
|
685
|
-
_test_default_duct_values(hpxml_default,
|
|
799
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas, expected_n_return_registers)
|
|
686
800
|
|
|
687
801
|
# Test defaults w/ foundation exposed to ambient
|
|
688
802
|
hpxml = _create_hpxml('base-foundation-ambient.xml')
|
|
@@ -699,7 +813,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
699
813
|
expected_supply_areas = [364.5]
|
|
700
814
|
expected_return_areas = [67.5]
|
|
701
815
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
|
702
|
-
_test_default_duct_values(hpxml_default,
|
|
816
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas, expected_n_return_registers)
|
|
703
817
|
|
|
704
818
|
# Test defaults w/ building/unit adjacent to other housing unit
|
|
705
819
|
hpxml = _create_hpxml('base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml')
|
|
@@ -716,7 +830,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
716
830
|
expected_supply_areas = [243.0]
|
|
717
831
|
expected_return_areas = [45.0]
|
|
718
832
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
|
719
|
-
_test_default_duct_values(hpxml_default,
|
|
833
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas, expected_n_return_registers)
|
|
720
834
|
|
|
721
835
|
# Test defaults w/ 2-story building
|
|
722
836
|
hpxml = _create_hpxml('base-enclosure-2stories.xml')
|
|
@@ -733,7 +847,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
733
847
|
expected_supply_areas = [820.13, 273.38]
|
|
734
848
|
expected_return_areas = [455.63, 151.88]
|
|
735
849
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
|
736
|
-
_test_default_duct_values(hpxml_default,
|
|
850
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas, expected_n_return_registers)
|
|
737
851
|
|
|
738
852
|
# Test defaults w/ 1-story building & multiple HVAC systems
|
|
739
853
|
hpxml = _create_hpxml('base-hvac-multiple.xml')
|
|
@@ -750,7 +864,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
750
864
|
expected_supply_areas = [91.125, 91.125] * hpxml_default.hvac_distributions.size
|
|
751
865
|
expected_return_areas = [33.75, 33.75] * hpxml_default.hvac_distributions.size
|
|
752
866
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
|
753
|
-
_test_default_duct_values(hpxml_default,
|
|
867
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas, expected_n_return_registers)
|
|
754
868
|
|
|
755
869
|
# Test defaults w/ 2-story building & multiple HVAC systems
|
|
756
870
|
hpxml = _create_hpxml('base-hvac-multiple.xml')
|
|
@@ -768,7 +882,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
768
882
|
expected_supply_areas = [68.34, 68.34, 22.78, 22.78] * hpxml_default.hvac_distributions.size
|
|
769
883
|
expected_return_areas = [25.31, 25.31, 8.44, 8.44] * hpxml_default.hvac_distributions.size
|
|
770
884
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
|
771
|
-
_test_default_duct_values(hpxml_default,
|
|
885
|
+
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas, expected_n_return_registers)
|
|
772
886
|
end
|
|
773
887
|
|
|
774
888
|
def test_mech_ventilation_fans
|
|
@@ -782,7 +896,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
782
896
|
vent_fan.hours_in_operation = 22.0
|
|
783
897
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
784
898
|
hpxml_default = _test_measure()
|
|
785
|
-
_test_default_mech_vent_values(hpxml_default,
|
|
899
|
+
_test_default_mech_vent_values(hpxml_default, true, 22.0)
|
|
786
900
|
|
|
787
901
|
# Test defaults
|
|
788
902
|
vent_fan.rated_flow_rate = nil
|
|
@@ -794,7 +908,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
794
908
|
vent_fan.hours_in_operation = nil
|
|
795
909
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
796
910
|
hpxml_default = _test_measure()
|
|
797
|
-
_test_default_mech_vent_values(hpxml_default,
|
|
911
|
+
_test_default_mech_vent_values(hpxml_default, false, 24.0)
|
|
798
912
|
|
|
799
913
|
# Test inputs not overridden by defaults w/ CFIS
|
|
800
914
|
hpxml = _create_hpxml('base-mechvent-cfis.xml')
|
|
@@ -803,14 +917,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
803
917
|
vent_fan.hours_in_operation = 12.0
|
|
804
918
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
805
919
|
hpxml_default = _test_measure()
|
|
806
|
-
_test_default_mech_vent_values(hpxml_default, false,
|
|
920
|
+
_test_default_mech_vent_values(hpxml_default, false, 12.0)
|
|
807
921
|
|
|
808
922
|
# Test defaults w/ CFIS
|
|
809
923
|
vent_fan.is_shared_system = nil
|
|
810
924
|
vent_fan.hours_in_operation = nil
|
|
811
925
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
812
926
|
hpxml_default = _test_measure()
|
|
813
|
-
_test_default_mech_vent_values(hpxml_default,
|
|
927
|
+
_test_default_mech_vent_values(hpxml_default, false, 8.0)
|
|
814
928
|
end
|
|
815
929
|
|
|
816
930
|
def test_local_ventilation_fans
|
|
@@ -830,8 +944,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
830
944
|
bath_fan.hours_in_operation = 3
|
|
831
945
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
832
946
|
hpxml_default = _test_measure()
|
|
833
|
-
_test_default_kitchen_fan_values(hpxml_default,
|
|
834
|
-
_test_default_bath_fan_values(hpxml_default,
|
|
947
|
+
_test_default_kitchen_fan_values(hpxml_default, 2, 300, 2, 20, 12)
|
|
948
|
+
_test_default_bath_fan_values(hpxml_default, 3, 80, 3, 33, 6)
|
|
835
949
|
|
|
836
950
|
# Test defaults
|
|
837
951
|
kitchen_fan.rated_flow_rate = nil
|
|
@@ -846,8 +960,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
846
960
|
bath_fan.hours_in_operation = nil
|
|
847
961
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
848
962
|
hpxml_default = _test_measure()
|
|
849
|
-
_test_default_kitchen_fan_values(hpxml_default,
|
|
850
|
-
_test_default_bath_fan_values(hpxml_default,
|
|
963
|
+
_test_default_kitchen_fan_values(hpxml_default, 1, 100, 1, 30, 18)
|
|
964
|
+
_test_default_bath_fan_values(hpxml_default, 2, 50, 1, 15, 7)
|
|
851
965
|
end
|
|
852
966
|
|
|
853
967
|
def test_storage_water_heaters
|
|
@@ -865,7 +979,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
865
979
|
end
|
|
866
980
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
867
981
|
hpxml_default = _test_measure()
|
|
868
|
-
_test_default_storage_water_heater_values(hpxml_default,
|
|
982
|
+
_test_default_storage_water_heater_values(hpxml_default,
|
|
869
983
|
[true, 15000.0, 40.0, 0.95, HPXML::LocationLivingSpace, 111])
|
|
870
984
|
|
|
871
985
|
# Test defaults w/ 3-bedroom house & electric storage water heater
|
|
@@ -879,7 +993,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
879
993
|
end
|
|
880
994
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
881
995
|
hpxml_default = _test_measure()
|
|
882
|
-
_test_default_storage_water_heater_values(hpxml_default,
|
|
996
|
+
_test_default_storage_water_heater_values(hpxml_default,
|
|
883
997
|
[false, 18766.7, 50.0, 0.98, HPXML::LocationBasementConditioned, 125])
|
|
884
998
|
|
|
885
999
|
# Test defaults w/ 5-bedroom house & electric storage water heater
|
|
@@ -894,7 +1008,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
894
1008
|
end
|
|
895
1009
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
896
1010
|
hpxml_default = _test_measure()
|
|
897
|
-
_test_default_storage_water_heater_values(hpxml_default,
|
|
1011
|
+
_test_default_storage_water_heater_values(hpxml_default,
|
|
898
1012
|
[false, 18766.7, 66.0, 0.98, HPXML::LocationBasementConditioned, 125])
|
|
899
1013
|
|
|
900
1014
|
# Test defaults w/ 3-bedroom house & 2 storage water heaters (1 electric and 1 natural gas)
|
|
@@ -911,7 +1025,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
911
1025
|
end
|
|
912
1026
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
913
1027
|
hpxml_default = _test_measure()
|
|
914
|
-
_test_default_storage_water_heater_values(hpxml_default,
|
|
1028
|
+
_test_default_storage_water_heater_values(hpxml_default,
|
|
915
1029
|
[false, 15354.6, 50.0, 0.98, HPXML::LocationBasementConditioned, 125],
|
|
916
1030
|
[false, 36000.0, 40.0, 0.756, HPXML::LocationBasementConditioned, 125])
|
|
917
1031
|
end
|
|
@@ -922,13 +1036,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
922
1036
|
hpxml.water_heating_systems[0].performance_adjustment = 0.88
|
|
923
1037
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
924
1038
|
hpxml_default = _test_measure()
|
|
925
|
-
_test_default_tankless_water_heater_values(hpxml_default,
|
|
1039
|
+
_test_default_tankless_water_heater_values(hpxml_default, [0.88])
|
|
926
1040
|
|
|
927
1041
|
# Test defaults w/ EF
|
|
928
1042
|
hpxml.water_heating_systems[0].performance_adjustment = nil
|
|
929
1043
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
930
1044
|
hpxml_default = _test_measure()
|
|
931
|
-
_test_default_tankless_water_heater_values(hpxml_default,
|
|
1045
|
+
_test_default_tankless_water_heater_values(hpxml_default, [0.92])
|
|
932
1046
|
|
|
933
1047
|
# Test defaults w/ UEF
|
|
934
1048
|
hpxml.water_heating_systems[0].energy_factor = nil
|
|
@@ -936,7 +1050,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
936
1050
|
hpxml.water_heating_systems[0].first_hour_rating = 5.7
|
|
937
1051
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
938
1052
|
hpxml_default = _test_measure()
|
|
939
|
-
_test_default_tankless_water_heater_values(hpxml_default,
|
|
1053
|
+
_test_default_tankless_water_heater_values(hpxml_default, [0.94])
|
|
940
1054
|
end
|
|
941
1055
|
|
|
942
1056
|
def test_hot_water_distribution
|
|
@@ -945,7 +1059,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
945
1059
|
hpxml.hot_water_distributions[0].pipe_r_value = 2.5
|
|
946
1060
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
947
1061
|
hpxml_default = _test_measure()
|
|
948
|
-
_test_default_standard_distribution_values(hpxml_default,
|
|
1062
|
+
_test_default_standard_distribution_values(hpxml_default, 50.0, 2.5)
|
|
949
1063
|
|
|
950
1064
|
# Test inputs not overridden by defaults -- recirculation
|
|
951
1065
|
hpxml = _create_hpxml('base-dhw-recirc-demand.xml')
|
|
@@ -953,14 +1067,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
953
1067
|
hpxml.hot_water_distributions[0].pipe_r_value = 2.5
|
|
954
1068
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
955
1069
|
hpxml_default = _test_measure()
|
|
956
|
-
_test_default_recirc_distribution_values(hpxml_default,
|
|
1070
|
+
_test_default_recirc_distribution_values(hpxml_default, 50.0, 50.0, 65.0, 2.5)
|
|
957
1071
|
|
|
958
1072
|
# Test inputs not overridden by defaults -- shared recirculation
|
|
959
1073
|
hpxml = _create_hpxml('base-bldgtype-multifamily-shared-water-heater-recirc.xml')
|
|
960
1074
|
hpxml.hot_water_distributions[0].shared_recirculation_pump_power = 333.0
|
|
961
1075
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
962
1076
|
hpxml_default = _test_measure()
|
|
963
|
-
_test_default_shared_recirc_distribution_values(hpxml_default,
|
|
1077
|
+
_test_default_shared_recirc_distribution_values(hpxml_default, 333.0)
|
|
964
1078
|
|
|
965
1079
|
# Test defaults w/ conditioned basement
|
|
966
1080
|
hpxml = _create_hpxml('base.xml')
|
|
@@ -968,7 +1082,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
968
1082
|
hpxml.hot_water_distributions[0].pipe_r_value = nil
|
|
969
1083
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
970
1084
|
hpxml_default = _test_measure()
|
|
971
|
-
_test_default_standard_distribution_values(hpxml_default,
|
|
1085
|
+
_test_default_standard_distribution_values(hpxml_default, 93.48, 0.0)
|
|
972
1086
|
|
|
973
1087
|
# Test defaults w/ unconditioned basement
|
|
974
1088
|
hpxml = _create_hpxml('base-foundation-unconditioned-basement.xml')
|
|
@@ -976,7 +1090,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
976
1090
|
hpxml.hot_water_distributions[0].pipe_r_value = nil
|
|
977
1091
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
978
1092
|
hpxml_default = _test_measure()
|
|
979
|
-
_test_default_standard_distribution_values(hpxml_default,
|
|
1093
|
+
_test_default_standard_distribution_values(hpxml_default, 88.48, 0.0)
|
|
980
1094
|
|
|
981
1095
|
# Test defaults w/ 2-story building
|
|
982
1096
|
hpxml = _create_hpxml('base-enclosure-2stories.xml')
|
|
@@ -984,7 +1098,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
984
1098
|
hpxml.hot_water_distributions[0].pipe_r_value = nil
|
|
985
1099
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
986
1100
|
hpxml_default = _test_measure()
|
|
987
|
-
_test_default_standard_distribution_values(hpxml_default,
|
|
1101
|
+
_test_default_standard_distribution_values(hpxml_default, 103.48, 0.0)
|
|
988
1102
|
|
|
989
1103
|
# Test defaults w/ recirculation & conditioned basement
|
|
990
1104
|
hpxml = _create_hpxml('base-dhw-recirc-demand.xml')
|
|
@@ -994,7 +1108,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
994
1108
|
hpxml.hot_water_distributions[0].pipe_r_value = nil
|
|
995
1109
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
996
1110
|
hpxml_default = _test_measure()
|
|
997
|
-
_test_default_recirc_distribution_values(hpxml_default,
|
|
1111
|
+
_test_default_recirc_distribution_values(hpxml_default, 166.96, 10.0, 50.0, 0.0)
|
|
998
1112
|
|
|
999
1113
|
# Test defaults w/ recirculation & unconditioned basement
|
|
1000
1114
|
hpxml = _create_hpxml('base-foundation-unconditioned-basement.xml')
|
|
@@ -1004,7 +1118,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1004
1118
|
recirculation_control_type: HPXML::DHWRecirControlTypeSensor)
|
|
1005
1119
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1006
1120
|
hpxml_default = _test_measure()
|
|
1007
|
-
_test_default_recirc_distribution_values(hpxml_default,
|
|
1121
|
+
_test_default_recirc_distribution_values(hpxml_default, 156.96, 10.0, 50.0, 0.0)
|
|
1008
1122
|
|
|
1009
1123
|
# Test defaults w/ recirculation & 2-story building
|
|
1010
1124
|
hpxml = _create_hpxml('base-enclosure-2stories.xml')
|
|
@@ -1014,14 +1128,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1014
1128
|
recirculation_control_type: HPXML::DHWRecirControlTypeSensor)
|
|
1015
1129
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1016
1130
|
hpxml_default = _test_measure()
|
|
1017
|
-
_test_default_recirc_distribution_values(hpxml_default,
|
|
1131
|
+
_test_default_recirc_distribution_values(hpxml_default, 186.96, 10.0, 50.0, 0.0)
|
|
1018
1132
|
|
|
1019
1133
|
# Test defaults w/ shared recirculation
|
|
1020
1134
|
hpxml = _create_hpxml('base-bldgtype-multifamily-shared-water-heater-recirc.xml')
|
|
1021
1135
|
hpxml.hot_water_distributions[0].shared_recirculation_pump_power = nil
|
|
1022
1136
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1023
1137
|
hpxml_default = _test_measure()
|
|
1024
|
-
_test_default_shared_recirc_distribution_values(hpxml_default,
|
|
1138
|
+
_test_default_shared_recirc_distribution_values(hpxml_default, 220.0)
|
|
1025
1139
|
end
|
|
1026
1140
|
|
|
1027
1141
|
def test_water_fixtures
|
|
@@ -1030,13 +1144,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1030
1144
|
hpxml.water_heating.water_fixtures_usage_multiplier = 2.0
|
|
1031
1145
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1032
1146
|
hpxml_default = _test_measure()
|
|
1033
|
-
_test_default_water_fixture_values(hpxml_default,
|
|
1147
|
+
_test_default_water_fixture_values(hpxml_default, 2.0)
|
|
1034
1148
|
|
|
1035
1149
|
# Test defaults
|
|
1036
1150
|
hpxml.water_heating.water_fixtures_usage_multiplier = nil
|
|
1037
1151
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1038
1152
|
hpxml_default = _test_measure()
|
|
1039
|
-
_test_default_water_fixture_values(hpxml_default,
|
|
1153
|
+
_test_default_water_fixture_values(hpxml_default, 1.0)
|
|
1040
1154
|
end
|
|
1041
1155
|
|
|
1042
1156
|
def test_solar_thermal_systems
|
|
@@ -1045,20 +1159,20 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1045
1159
|
hpxml.solar_thermal_systems[0].storage_volume = 55.0
|
|
1046
1160
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1047
1161
|
hpxml_default = _test_measure()
|
|
1048
|
-
_test_default_solar_thermal_values(hpxml_default,
|
|
1162
|
+
_test_default_solar_thermal_values(hpxml_default, 55.0)
|
|
1049
1163
|
|
|
1050
1164
|
# Test defaults w/ collector area of 40 sqft
|
|
1051
1165
|
hpxml.solar_thermal_systems[0].storage_volume = nil
|
|
1052
1166
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1053
1167
|
hpxml_default = _test_measure()
|
|
1054
|
-
_test_default_solar_thermal_values(hpxml_default,
|
|
1168
|
+
_test_default_solar_thermal_values(hpxml_default, 60.0)
|
|
1055
1169
|
|
|
1056
1170
|
# Test defaults w/ collector area of 100 sqft
|
|
1057
1171
|
hpxml.solar_thermal_systems[0].collector_area = 100.0
|
|
1058
1172
|
hpxml.solar_thermal_systems[0].storage_volume = nil
|
|
1059
1173
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1060
1174
|
hpxml_default = _test_measure()
|
|
1061
|
-
_test_default_solar_thermal_values(hpxml_default,
|
|
1175
|
+
_test_default_solar_thermal_values(hpxml_default, 150.0)
|
|
1062
1176
|
end
|
|
1063
1177
|
|
|
1064
1178
|
def test_pv_systems
|
|
@@ -1076,7 +1190,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1076
1190
|
end
|
|
1077
1191
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1078
1192
|
hpxml_default = _test_measure()
|
|
1079
|
-
_test_default_pv_system_values(hpxml_default,
|
|
1193
|
+
_test_default_pv_system_values(hpxml_default, 0.90, 0.20, true, HPXML::LocationGround, HPXML::PVTrackingType1Axis, HPXML::PVModuleTypePremium)
|
|
1080
1194
|
|
|
1081
1195
|
# Test defaults w/o year modules manufactured
|
|
1082
1196
|
hpxml.pv_systems.each do |pv|
|
|
@@ -1089,7 +1203,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1089
1203
|
end
|
|
1090
1204
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1091
1205
|
hpxml_default = _test_measure()
|
|
1092
|
-
_test_default_pv_system_values(hpxml_default,
|
|
1206
|
+
_test_default_pv_system_values(hpxml_default, 0.96, 0.14, false, HPXML::LocationRoof, HPXML::PVTrackingTypeFixed, HPXML::PVModuleTypeStandard)
|
|
1093
1207
|
|
|
1094
1208
|
# Test defaults w/ year modules manufactured
|
|
1095
1209
|
hpxml.pv_systems.each do |pv|
|
|
@@ -1097,7 +1211,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1097
1211
|
end
|
|
1098
1212
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1099
1213
|
hpxml_default = _test_measure()
|
|
1100
|
-
_test_default_pv_system_values(hpxml_default,
|
|
1214
|
+
_test_default_pv_system_values(hpxml_default, 0.96, 0.186, false, HPXML::LocationRoof, HPXML::PVTrackingTypeFixed, HPXML::PVModuleTypeStandard)
|
|
1101
1215
|
end
|
|
1102
1216
|
|
|
1103
1217
|
def test_generators
|
|
@@ -1110,7 +1224,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1110
1224
|
end
|
|
1111
1225
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1112
1226
|
hpxml_default = _test_measure()
|
|
1113
|
-
_test_default_generator_values(hpxml_default,
|
|
1227
|
+
_test_default_generator_values(hpxml_default, true)
|
|
1114
1228
|
|
|
1115
1229
|
# Test defaults
|
|
1116
1230
|
hpxml.generators.each do |generator|
|
|
@@ -1118,7 +1232,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1118
1232
|
end
|
|
1119
1233
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1120
1234
|
hpxml_default = _test_measure()
|
|
1121
|
-
_test_default_generator_values(hpxml_default,
|
|
1235
|
+
_test_default_generator_values(hpxml_default, false)
|
|
1122
1236
|
end
|
|
1123
1237
|
|
|
1124
1238
|
def test_clothes_washers
|
|
@@ -1134,7 +1248,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1134
1248
|
hpxml.clothes_washers[0].water_heating_system_idref = hpxml.water_heating_systems[0].id
|
|
1135
1249
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1136
1250
|
hpxml_default = _test_measure()
|
|
1137
|
-
_test_default_clothes_washer_values(hpxml_default,
|
|
1251
|
+
_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)
|
|
1138
1252
|
|
|
1139
1253
|
# Test defaults
|
|
1140
1254
|
hpxml.clothes_washers[0].is_shared_appliance = nil
|
|
@@ -1149,7 +1263,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1149
1263
|
hpxml.clothes_washers[0].usage_multiplier = nil
|
|
1150
1264
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1151
1265
|
hpxml_default = _test_measure()
|
|
1152
|
-
_test_default_clothes_washer_values(hpxml_default,
|
|
1266
|
+
_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)
|
|
1153
1267
|
|
|
1154
1268
|
# Test defaults before 301-2019 Addendum A
|
|
1155
1269
|
hpxml = _create_hpxml('base.xml')
|
|
@@ -1166,7 +1280,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1166
1280
|
hpxml.clothes_washers[0].usage_multiplier = nil
|
|
1167
1281
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1168
1282
|
hpxml_default = _test_measure()
|
|
1169
|
-
_test_default_clothes_washer_values(hpxml_default,
|
|
1283
|
+
_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)
|
|
1170
1284
|
end
|
|
1171
1285
|
|
|
1172
1286
|
def test_clothes_dryers
|
|
@@ -1178,41 +1292,39 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1178
1292
|
hpxml.water_heating_systems[0].fraction_dhw_load_served = 0
|
|
1179
1293
|
hpxml.clothes_dryers[0].location = HPXML::LocationBasementConditioned
|
|
1180
1294
|
hpxml.clothes_dryers[0].is_shared_appliance = true
|
|
1181
|
-
hpxml.clothes_dryers[0].control_type = HPXML::ClothesDryerControlTypeMoisture
|
|
1182
1295
|
hpxml.clothes_dryers[0].combined_energy_factor = 3.33
|
|
1183
1296
|
hpxml.clothes_dryers[0].usage_multiplier = 1.1
|
|
1184
1297
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1185
1298
|
hpxml_default = _test_measure()
|
|
1186
|
-
_test_default_clothes_dryer_values(hpxml_default,
|
|
1299
|
+
_test_default_clothes_dryer_values(hpxml_default, true, HPXML::LocationBasementConditioned, 3.33, 1.1)
|
|
1187
1300
|
|
|
1188
1301
|
# Test defaults w/ electric clothes dryer
|
|
1189
1302
|
hpxml.clothes_dryers[0].location = nil
|
|
1190
1303
|
hpxml.clothes_dryers[0].is_shared_appliance = nil
|
|
1191
|
-
hpxml.clothes_dryers[0].control_type = nil
|
|
1192
1304
|
hpxml.clothes_dryers[0].combined_energy_factor = nil
|
|
1193
1305
|
hpxml.clothes_dryers[0].usage_multiplier = nil
|
|
1194
1306
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1195
1307
|
hpxml_default = _test_measure()
|
|
1196
|
-
_test_default_clothes_dryer_values(hpxml_default,
|
|
1308
|
+
_test_default_clothes_dryer_values(hpxml_default, false, HPXML::LocationLivingSpace, 3.01, 1.0)
|
|
1197
1309
|
|
|
1198
1310
|
# Test defaults w/ gas clothes dryer
|
|
1199
1311
|
hpxml.clothes_dryers[0].fuel_type = HPXML::FuelTypeNaturalGas
|
|
1200
1312
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1201
1313
|
hpxml_default = _test_measure()
|
|
1202
|
-
_test_default_clothes_dryer_values(hpxml_default,
|
|
1314
|
+
_test_default_clothes_dryer_values(hpxml_default, false, HPXML::LocationLivingSpace, 3.01, 1.0)
|
|
1203
1315
|
|
|
1204
1316
|
# Test defaults w/ electric clothes dryer before 301-2019 Addendum A
|
|
1205
1317
|
hpxml.header.eri_calculation_version = '2019'
|
|
1206
1318
|
hpxml.clothes_dryers[0].fuel_type = HPXML::FuelTypeElectricity
|
|
1207
1319
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1208
1320
|
hpxml_default = _test_measure()
|
|
1209
|
-
_test_default_clothes_dryer_values(hpxml_default,
|
|
1321
|
+
_test_default_clothes_dryer_values(hpxml_default, false, HPXML::LocationLivingSpace, 2.62, 1.0)
|
|
1210
1322
|
|
|
1211
1323
|
# Test defaults w/ gas clothes dryer before 301-2019 Addendum A
|
|
1212
1324
|
hpxml.clothes_dryers[0].fuel_type = HPXML::FuelTypeNaturalGas
|
|
1213
1325
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1214
1326
|
hpxml_default = _test_measure()
|
|
1215
|
-
_test_default_clothes_dryer_values(hpxml_default,
|
|
1327
|
+
_test_default_clothes_dryer_values(hpxml_default, false, HPXML::LocationLivingSpace, 2.32, 1.0)
|
|
1216
1328
|
end
|
|
1217
1329
|
|
|
1218
1330
|
def test_clothes_dryer_exhaust
|
|
@@ -1224,21 +1336,21 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1224
1336
|
clothes_dryer.vented_flow_rate = 200
|
|
1225
1337
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1226
1338
|
hpxml_default = _test_measure()
|
|
1227
|
-
_test_default_clothes_dryer_exhaust_values(hpxml_default,
|
|
1339
|
+
_test_default_clothes_dryer_exhaust_values(hpxml_default, true, 200)
|
|
1228
1340
|
|
|
1229
1341
|
# Test inputs not overridden by defaults w/ unvented dryer
|
|
1230
1342
|
clothes_dryer.is_vented = false
|
|
1231
1343
|
clothes_dryer.vented_flow_rate = nil
|
|
1232
1344
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1233
1345
|
hpxml_default = _test_measure()
|
|
1234
|
-
_test_default_clothes_dryer_exhaust_values(hpxml_default, false,
|
|
1346
|
+
_test_default_clothes_dryer_exhaust_values(hpxml_default, false, nil)
|
|
1235
1347
|
|
|
1236
1348
|
# Test defaults
|
|
1237
1349
|
clothes_dryer.is_vented = nil
|
|
1238
1350
|
clothes_dryer.vented_flow_rate = nil
|
|
1239
1351
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1240
1352
|
hpxml_default = _test_measure()
|
|
1241
|
-
_test_default_clothes_dryer_exhaust_values(hpxml_default, true,
|
|
1353
|
+
_test_default_clothes_dryer_exhaust_values(hpxml_default, true, 100)
|
|
1242
1354
|
end
|
|
1243
1355
|
|
|
1244
1356
|
def test_dishwashers
|
|
@@ -1254,7 +1366,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1254
1366
|
hpxml.dishwashers[0].water_heating_system_idref = hpxml.water_heating_systems[0].id
|
|
1255
1367
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1256
1368
|
hpxml_default = _test_measure()
|
|
1257
|
-
_test_default_dishwasher_values(hpxml_default,
|
|
1369
|
+
_test_default_dishwasher_values(hpxml_default, true, HPXML::LocationBasementConditioned, 307.0, 0.12, 1.09, 22.32, 4.0, 12, 1.3)
|
|
1258
1370
|
|
|
1259
1371
|
# Test defaults
|
|
1260
1372
|
hpxml.dishwashers[0].is_shared_appliance = nil
|
|
@@ -1268,13 +1380,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1268
1380
|
hpxml.dishwashers[0].usage_multiplier = nil
|
|
1269
1381
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1270
1382
|
hpxml_default = _test_measure()
|
|
1271
|
-
_test_default_dishwasher_values(hpxml_default,
|
|
1383
|
+
_test_default_dishwasher_values(hpxml_default, false, HPXML::LocationLivingSpace, 467.0, 0.12, 1.09, 33.12, 4.0, 12, 1.0)
|
|
1272
1384
|
|
|
1273
1385
|
# Test defaults before 301-2019 Addendum A
|
|
1274
1386
|
hpxml.header.eri_calculation_version = '2019'
|
|
1275
1387
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1276
1388
|
hpxml_default = _test_measure()
|
|
1277
|
-
_test_default_dishwasher_values(hpxml_default,
|
|
1389
|
+
_test_default_dishwasher_values(hpxml_default, false, HPXML::LocationLivingSpace, 467.0, 999, 999, 999, 999, 12, 1.0)
|
|
1278
1390
|
end
|
|
1279
1391
|
|
|
1280
1392
|
def test_refrigerators
|
|
@@ -1287,7 +1399,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1287
1399
|
hpxml.refrigerators[0].monthly_multipliers = ConstantMonthSchedule
|
|
1288
1400
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1289
1401
|
hpxml_default = _test_measure()
|
|
1290
|
-
_test_default_refrigerator_values(hpxml_default,
|
|
1402
|
+
_test_default_refrigerator_values(hpxml_default, HPXML::LocationBasementConditioned, 650.0, 1.2, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
|
1291
1403
|
|
|
1292
1404
|
# Test defaults
|
|
1293
1405
|
hpxml.refrigerators[0].location = nil
|
|
@@ -1298,20 +1410,20 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1298
1410
|
hpxml.refrigerators[0].monthly_multipliers = nil
|
|
1299
1411
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1300
1412
|
hpxml_default = _test_measure()
|
|
1301
|
-
_test_default_refrigerator_values(hpxml_default,
|
|
1413
|
+
_test_default_refrigerator_values(hpxml_default, HPXML::LocationLivingSpace, 691.0, 1.0, '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041', '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041', '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837')
|
|
1302
1414
|
|
|
1303
1415
|
# Test defaults w/ refrigerator in 5-bedroom house
|
|
1304
1416
|
hpxml.building_construction.number_of_bedrooms = 5
|
|
1305
1417
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1306
1418
|
hpxml_default = _test_measure()
|
|
1307
|
-
_test_default_refrigerator_values(hpxml_default,
|
|
1419
|
+
_test_default_refrigerator_values(hpxml_default, HPXML::LocationLivingSpace, 727.0, 1.0, '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041', '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041', '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837')
|
|
1308
1420
|
|
|
1309
1421
|
# Test defaults before 301-2019 Addendum A
|
|
1310
1422
|
hpxml.header.eri_calculation_version = '2019'
|
|
1311
1423
|
hpxml.building_construction.number_of_bedrooms = 3
|
|
1312
1424
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1313
1425
|
hpxml_default = _test_measure()
|
|
1314
|
-
_test_default_refrigerator_values(hpxml_default,
|
|
1426
|
+
_test_default_refrigerator_values(hpxml_default, HPXML::LocationLivingSpace, 691.0, 1.0, '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041', '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041', '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837')
|
|
1315
1427
|
end
|
|
1316
1428
|
|
|
1317
1429
|
def test_extra_refrigerators
|
|
@@ -1327,7 +1439,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1327
1439
|
end
|
|
1328
1440
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1329
1441
|
hpxml_default = _test_measure()
|
|
1330
|
-
_test_default_extra_refrigerators_values(hpxml_default,
|
|
1442
|
+
_test_default_extra_refrigerators_values(hpxml_default, HPXML::LocationLivingSpace, 333.0, 1.5, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
|
1331
1443
|
|
|
1332
1444
|
# Test defaults
|
|
1333
1445
|
hpxml.refrigerators.each do |refrigerator|
|
|
@@ -1340,7 +1452,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1340
1452
|
end
|
|
1341
1453
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1342
1454
|
hpxml_default = _test_measure()
|
|
1343
|
-
_test_default_extra_refrigerators_values(hpxml_default,
|
|
1455
|
+
_test_default_extra_refrigerators_values(hpxml_default, HPXML::LocationBasementConditioned, 244.0, 1.0, '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041', '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041', '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837')
|
|
1344
1456
|
end
|
|
1345
1457
|
|
|
1346
1458
|
def test_freezers
|
|
@@ -1356,7 +1468,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1356
1468
|
end
|
|
1357
1469
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1358
1470
|
hpxml_default = _test_measure()
|
|
1359
|
-
_test_default_freezers_values(hpxml_default,
|
|
1471
|
+
_test_default_freezers_values(hpxml_default, HPXML::LocationLivingSpace, 333.0, 1.5, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
|
1360
1472
|
|
|
1361
1473
|
# Test defaults
|
|
1362
1474
|
hpxml.freezers.each do |freezer|
|
|
@@ -1369,7 +1481,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1369
1481
|
end
|
|
1370
1482
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1371
1483
|
hpxml_default = _test_measure()
|
|
1372
|
-
_test_default_freezers_values(hpxml_default,
|
|
1484
|
+
_test_default_freezers_values(hpxml_default, HPXML::LocationBasementConditioned, 320.0, 1.0, '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041', '0.040, 0.039, 0.038, 0.037, 0.036, 0.036, 0.038, 0.040, 0.041, 0.041, 0.040, 0.040, 0.042, 0.042, 0.042, 0.041, 0.044, 0.048, 0.050, 0.048, 0.047, 0.046, 0.044, 0.041', '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837')
|
|
1373
1485
|
end
|
|
1374
1486
|
|
|
1375
1487
|
def test_cooking_ranges
|
|
@@ -1383,7 +1495,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1383
1495
|
hpxml.cooking_ranges[0].monthly_multipliers = ConstantMonthSchedule
|
|
1384
1496
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1385
1497
|
hpxml_default = _test_measure()
|
|
1386
|
-
_test_default_cooking_range_values(hpxml_default,
|
|
1498
|
+
_test_default_cooking_range_values(hpxml_default, HPXML::LocationBasementConditioned, true, 1.1, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
|
1387
1499
|
|
|
1388
1500
|
# Test defaults
|
|
1389
1501
|
hpxml.cooking_ranges[0].location = nil
|
|
@@ -1394,13 +1506,13 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1394
1506
|
hpxml.cooking_ranges[0].monthly_multipliers = nil
|
|
1395
1507
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1396
1508
|
hpxml_default = _test_measure()
|
|
1397
|
-
_test_default_cooking_range_values(hpxml_default,
|
|
1509
|
+
_test_default_cooking_range_values(hpxml_default, HPXML::LocationLivingSpace, false, 1.0, '0.007, 0.007, 0.004, 0.004, 0.007, 0.011, 0.025, 0.042, 0.046, 0.048, 0.042, 0.050, 0.057, 0.046, 0.057, 0.044, 0.092, 0.150, 0.117, 0.060, 0.035, 0.025, 0.016, 0.011', '0.007, 0.007, 0.004, 0.004, 0.007, 0.011, 0.025, 0.042, 0.046, 0.048, 0.042, 0.050, 0.057, 0.046, 0.057, 0.044, 0.092, 0.150, 0.117, 0.060, 0.035, 0.025, 0.016, 0.011', '1.097, 1.097, 0.991, 0.987, 0.991, 0.890, 0.896, 0.896, 0.890, 1.085, 1.085, 1.097')
|
|
1398
1510
|
|
|
1399
1511
|
# Test defaults before 301-2019 Addendum A
|
|
1400
1512
|
hpxml.header.eri_calculation_version = '2019'
|
|
1401
1513
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1402
1514
|
hpxml_default = _test_measure()
|
|
1403
|
-
_test_default_cooking_range_values(hpxml_default,
|
|
1515
|
+
_test_default_cooking_range_values(hpxml_default, HPXML::LocationLivingSpace, false, 1.0, '0.007, 0.007, 0.004, 0.004, 0.007, 0.011, 0.025, 0.042, 0.046, 0.048, 0.042, 0.050, 0.057, 0.046, 0.057, 0.044, 0.092, 0.150, 0.117, 0.060, 0.035, 0.025, 0.016, 0.011', '0.007, 0.007, 0.004, 0.004, 0.007, 0.011, 0.025, 0.042, 0.046, 0.048, 0.042, 0.050, 0.057, 0.046, 0.057, 0.044, 0.092, 0.150, 0.117, 0.060, 0.035, 0.025, 0.016, 0.011', '1.097, 1.097, 0.991, 0.987, 0.991, 0.890, 0.896, 0.896, 0.890, 1.085, 1.085, 1.097')
|
|
1404
1516
|
end
|
|
1405
1517
|
|
|
1406
1518
|
def test_ovens
|
|
@@ -1409,19 +1521,19 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1409
1521
|
hpxml.ovens[0].is_convection = true
|
|
1410
1522
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1411
1523
|
hpxml_default = _test_measure()
|
|
1412
|
-
_test_default_oven_values(hpxml_default,
|
|
1524
|
+
_test_default_oven_values(hpxml_default, true)
|
|
1413
1525
|
|
|
1414
1526
|
# Test defaults
|
|
1415
1527
|
hpxml.ovens[0].is_convection = nil
|
|
1416
1528
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1417
1529
|
hpxml_default = _test_measure()
|
|
1418
|
-
_test_default_oven_values(hpxml_default,
|
|
1530
|
+
_test_default_oven_values(hpxml_default, false)
|
|
1419
1531
|
|
|
1420
1532
|
# Test defaults before 301-2019 Addendum A
|
|
1421
1533
|
hpxml.header.eri_calculation_version = '2019'
|
|
1422
1534
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1423
1535
|
hpxml_default = _test_measure()
|
|
1424
|
-
_test_default_oven_values(hpxml_default,
|
|
1536
|
+
_test_default_oven_values(hpxml_default, false)
|
|
1425
1537
|
end
|
|
1426
1538
|
|
|
1427
1539
|
def test_lighting
|
|
@@ -1449,7 +1561,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1449
1561
|
hpxml.lighting.holiday_weekend_fractions = ConstantDaySchedule
|
|
1450
1562
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1451
1563
|
hpxml_default = _test_measure()
|
|
1452
|
-
_test_default_lighting_values(hpxml_default,
|
|
1564
|
+
_test_default_lighting_values(hpxml_default, 2.0, 2.0, 2.0,
|
|
1453
1565
|
{ int_wk_sch: ConstantDaySchedule,
|
|
1454
1566
|
int_wknd_sch: ConstantDaySchedule,
|
|
1455
1567
|
int_month_mult: ConstantMonthSchedule,
|
|
@@ -1483,7 +1595,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1483
1595
|
hpxml.lighting.holiday_exists = nil
|
|
1484
1596
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1485
1597
|
hpxml_default = _test_measure()
|
|
1486
|
-
_test_default_lighting_values(hpxml_default,
|
|
1598
|
+
_test_default_lighting_values(hpxml_default, 1.0, 1.0, 1.0,
|
|
1487
1599
|
{ ext_wk_sch: '0.046, 0.046, 0.046, 0.046, 0.046, 0.037, 0.035, 0.034, 0.033, 0.028, 0.022, 0.015, 0.012, 0.011, 0.011, 0.012, 0.019, 0.037, 0.049, 0.065, 0.091, 0.105, 0.091, 0.063',
|
|
1488
1600
|
ext_wknd_sch: '0.046, 0.046, 0.045, 0.045, 0.046, 0.045, 0.044, 0.041, 0.036, 0.03, 0.024, 0.016, 0.012, 0.011, 0.011, 0.012, 0.019, 0.038, 0.048, 0.06, 0.083, 0.098, 0.085, 0.059',
|
|
1489
1601
|
ext_month_mult: '1.248, 1.257, 0.993, 0.989, 0.993, 0.827, 0.821, 0.821, 0.827, 0.99, 0.987, 1.248' })
|
|
@@ -1495,7 +1607,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1495
1607
|
hpxml.lighting.exterior_usage_multiplier = nil
|
|
1496
1608
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1497
1609
|
hpxml_default = _test_measure()
|
|
1498
|
-
_test_default_lighting_values(hpxml_default,
|
|
1610
|
+
_test_default_lighting_values(hpxml_default, 1.0, 1.0, 1.0,
|
|
1499
1611
|
{ ext_wk_sch: '0.046, 0.046, 0.046, 0.046, 0.046, 0.037, 0.035, 0.034, 0.033, 0.028, 0.022, 0.015, 0.012, 0.011, 0.011, 0.012, 0.019, 0.037, 0.049, 0.065, 0.091, 0.105, 0.091, 0.063',
|
|
1500
1612
|
ext_wknd_sch: '0.046, 0.046, 0.045, 0.045, 0.046, 0.045, 0.044, 0.041, 0.036, 0.03, 0.024, 0.016, 0.012, 0.011, 0.011, 0.012, 0.019, 0.038, 0.048, 0.06, 0.083, 0.098, 0.085, 0.059',
|
|
1501
1613
|
ext_month_mult: '1.248, 1.257, 0.993, 0.989, 0.993, 0.827, 0.821, 0.821, 0.827, 0.99, 0.987, 1.248',
|
|
@@ -1511,7 +1623,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1511
1623
|
hpxml.ceiling_fans[0].efficiency = 100
|
|
1512
1624
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1513
1625
|
hpxml_default = _test_measure()
|
|
1514
|
-
_test_default_ceiling_fan_values(hpxml_default,
|
|
1626
|
+
_test_default_ceiling_fan_values(hpxml_default, 2, 100)
|
|
1515
1627
|
|
|
1516
1628
|
# Test defaults
|
|
1517
1629
|
hpxml.ceiling_fans.each do |ceiling_fan|
|
|
@@ -1520,7 +1632,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1520
1632
|
end
|
|
1521
1633
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1522
1634
|
hpxml_default = _test_measure()
|
|
1523
|
-
_test_default_ceiling_fan_values(hpxml_default,
|
|
1635
|
+
_test_default_ceiling_fan_values(hpxml_default, 4, 70.4)
|
|
1524
1636
|
end
|
|
1525
1637
|
|
|
1526
1638
|
def test_pools
|
|
@@ -1540,8 +1652,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1540
1652
|
pool.pump_monthly_multipliers = ConstantMonthSchedule
|
|
1541
1653
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1542
1654
|
hpxml_default = _test_measure()
|
|
1543
|
-
_test_default_pool_heater_values(hpxml_default,
|
|
1544
|
-
_test_default_pool_pump_values(hpxml_default,
|
|
1655
|
+
_test_default_pool_heater_values(hpxml_default, HPXML::UnitsKwhPerYear, 1000, 1.4, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
|
1656
|
+
_test_default_pool_pump_values(hpxml_default, 3000, 1.3, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
|
1545
1657
|
|
|
1546
1658
|
# Test defaults
|
|
1547
1659
|
pool = hpxml.pools[0]
|
|
@@ -1558,8 +1670,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1558
1670
|
pool.pump_monthly_multipliers = nil
|
|
1559
1671
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1560
1672
|
hpxml_default = _test_measure()
|
|
1561
|
-
_test_default_pool_heater_values(hpxml_default,
|
|
1562
|
-
_test_default_pool_pump_values(hpxml_default,
|
|
1673
|
+
_test_default_pool_heater_values(hpxml_default, HPXML::UnitsThermPerYear, 236, 1.0, '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003', '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003', '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154')
|
|
1674
|
+
_test_default_pool_pump_values(hpxml_default, 2496, 1.0, '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003', '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003', '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154')
|
|
1563
1675
|
|
|
1564
1676
|
# Test defaults 2
|
|
1565
1677
|
hpxml = _create_hpxml('base-misc-loads-large-uncommon2.xml')
|
|
@@ -1577,8 +1689,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1577
1689
|
pool.pump_monthly_multipliers = nil
|
|
1578
1690
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1579
1691
|
hpxml_default = _test_measure()
|
|
1580
|
-
_test_default_pool_heater_values(hpxml_default,
|
|
1581
|
-
_test_default_pool_pump_values(hpxml_default,
|
|
1692
|
+
_test_default_pool_heater_values(hpxml_default, nil, nil, nil, nil, nil, nil)
|
|
1693
|
+
_test_default_pool_pump_values(hpxml_default, 2496, 1.0, '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003', '0.003, 0.003, 0.003, 0.004, 0.008, 0.015, 0.026, 0.044, 0.084, 0.121, 0.127, 0.121, 0.120, 0.090, 0.075, 0.061, 0.037, 0.023, 0.013, 0.008, 0.004, 0.003, 0.003, 0.003', '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154')
|
|
1582
1694
|
end
|
|
1583
1695
|
|
|
1584
1696
|
def test_hot_tubs
|
|
@@ -1598,8 +1710,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1598
1710
|
hot_tub.pump_monthly_multipliers = ConstantMonthSchedule
|
|
1599
1711
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1600
1712
|
hpxml_default = _test_measure()
|
|
1601
|
-
_test_default_hot_tub_heater_values(hpxml_default,
|
|
1602
|
-
_test_default_hot_tub_pump_values(hpxml_default,
|
|
1713
|
+
_test_default_hot_tub_heater_values(hpxml_default, HPXML::UnitsThermPerYear, 1000, 0.8, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
|
1714
|
+
_test_default_hot_tub_pump_values(hpxml_default, 3000, 0.7, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
|
1603
1715
|
|
|
1604
1716
|
# Test defaults
|
|
1605
1717
|
hot_tub = hpxml.hot_tubs[0]
|
|
@@ -1616,8 +1728,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1616
1728
|
hot_tub.pump_monthly_multipliers = nil
|
|
1617
1729
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1618
1730
|
hpxml_default = _test_measure()
|
|
1619
|
-
_test_default_hot_tub_heater_values(hpxml_default,
|
|
1620
|
-
_test_default_hot_tub_pump_values(hpxml_default,
|
|
1731
|
+
_test_default_hot_tub_heater_values(hpxml_default, HPXML::UnitsKwhPerYear, 1125, 1.0, '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024', '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024', '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837')
|
|
1732
|
+
_test_default_hot_tub_pump_values(hpxml_default, 1111, 1.0, '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024', '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024', '0.921, 0.928, 0.921, 0.915, 0.921, 1.160, 1.158, 1.158, 1.160, 0.921, 0.915, 0.921')
|
|
1621
1733
|
|
|
1622
1734
|
# Test defaults 2
|
|
1623
1735
|
hpxml = _create_hpxml('base-misc-loads-large-uncommon2.xml')
|
|
@@ -1635,8 +1747,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1635
1747
|
hot_tub.pump_monthly_multipliers = nil
|
|
1636
1748
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1637
1749
|
hpxml_default = _test_measure()
|
|
1638
|
-
_test_default_hot_tub_heater_values(hpxml_default,
|
|
1639
|
-
_test_default_hot_tub_pump_values(hpxml_default,
|
|
1750
|
+
_test_default_hot_tub_heater_values(hpxml_default, HPXML::UnitsKwhPerYear, 225, 1.0, '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024', '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024', '0.837, 0.835, 1.084, 1.084, 1.084, 1.096, 1.096, 1.096, 1.096, 0.931, 0.925, 0.837')
|
|
1751
|
+
_test_default_hot_tub_pump_values(hpxml_default, 1111, 1.0, '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024', '0.024, 0.029, 0.024, 0.029, 0.047, 0.067, 0.057, 0.024, 0.024, 0.019, 0.015, 0.014, 0.014, 0.014, 0.024, 0.058, 0.126, 0.122, 0.068, 0.061, 0.051, 0.043, 0.024, 0.024', '0.921, 0.928, 0.921, 0.915, 0.921, 1.160, 1.158, 1.158, 1.160, 0.921, 0.915, 0.921')
|
|
1640
1752
|
end
|
|
1641
1753
|
|
|
1642
1754
|
def test_plug_loads
|
|
@@ -1676,10 +1788,10 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1676
1788
|
wellpump_pl.monthly_multipliers = ConstantMonthSchedule
|
|
1677
1789
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1678
1790
|
hpxml_default = _test_measure()
|
|
1679
|
-
_test_default_plug_load_values(hpxml_default,
|
|
1680
|
-
_test_default_plug_load_values(hpxml_default,
|
|
1681
|
-
_test_default_plug_load_values(hpxml_default,
|
|
1682
|
-
_test_default_plug_load_values(hpxml_default,
|
|
1791
|
+
_test_default_plug_load_values(hpxml_default, HPXML::PlugLoadTypeTelevision, 1000, 0.6, 0.3, 1.1, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
|
1792
|
+
_test_default_plug_load_values(hpxml_default, HPXML::PlugLoadTypeOther, 2000, 0.5, 0.4, 1.2, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
|
1793
|
+
_test_default_plug_load_values(hpxml_default, HPXML::PlugLoadTypeElectricVehicleCharging, 4000, 0.4, 0.5, 1.3, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
|
1794
|
+
_test_default_plug_load_values(hpxml_default, HPXML::PlugLoadTypeWellPump, 3000, 0.3, 0.6, 1.4, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
|
1683
1795
|
|
|
1684
1796
|
# Test defaults
|
|
1685
1797
|
hpxml.plug_loads.each do |plug_load|
|
|
@@ -1693,10 +1805,10 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1693
1805
|
end
|
|
1694
1806
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1695
1807
|
hpxml_default = _test_measure()
|
|
1696
|
-
_test_default_plug_load_values(hpxml_default,
|
|
1697
|
-
_test_default_plug_load_values(hpxml_default,
|
|
1698
|
-
_test_default_plug_load_values(hpxml_default,
|
|
1699
|
-
_test_default_plug_load_values(hpxml_default,
|
|
1808
|
+
_test_default_plug_load_values(hpxml_default, HPXML::PlugLoadTypeTelevision, 620, 1.0, 0.0, 1.0, '0.037, 0.018, 0.009, 0.007, 0.011, 0.018, 0.029, 0.040, 0.049, 0.058, 0.065, 0.072, 0.076, 0.086, 0.091, 0.102, 0.127, 0.156, 0.210, 0.294, 0.363, 0.344, 0.208, 0.090', '0.044, 0.022, 0.012, 0.008, 0.011, 0.014, 0.024, 0.043, 0.071, 0.094, 0.112, 0.123, 0.132, 0.156, 0.178, 0.196, 0.206, 0.213, 0.251, 0.330, 0.388, 0.358, 0.226, 0.103', '1.137, 1.129, 0.961, 0.969, 0.961, 0.993, 0.996, 0.96, 0.993, 0.867, 0.86, 1.137')
|
|
1809
|
+
_test_default_plug_load_values(hpxml_default, HPXML::PlugLoadTypeOther, 2457, 0.855, 0.045, 1.0, '0.035, 0.033, 0.032, 0.031, 0.032, 0.033, 0.037, 0.042, 0.043, 0.043, 0.043, 0.044, 0.045, 0.045, 0.044, 0.046, 0.048, 0.052, 0.053, 0.05, 0.047, 0.045, 0.04, 0.036', '0.035, 0.033, 0.032, 0.031, 0.032, 0.033, 0.037, 0.042, 0.043, 0.043, 0.043, 0.044, 0.045, 0.045, 0.044, 0.046, 0.048, 0.052, 0.053, 0.05, 0.047, 0.045, 0.04, 0.036', '1.248, 1.257, 0.993, 0.989, 0.993, 0.827, 0.821, 0.821, 0.827, 0.99, 0.987, 1.248')
|
|
1810
|
+
_test_default_plug_load_values(hpxml_default, HPXML::PlugLoadTypeElectricVehicleCharging, 1667, 0.0, 0.0, 1.0, '0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042', '0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042', '1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1')
|
|
1811
|
+
_test_default_plug_load_values(hpxml_default, HPXML::PlugLoadTypeWellPump, 441, 0.0, 0.0, 1.0, '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065', '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065', '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154')
|
|
1700
1812
|
end
|
|
1701
1813
|
|
|
1702
1814
|
def test_fuel_loads
|
|
@@ -1728,9 +1840,9 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1728
1840
|
gf_fl.monthly_multipliers = ConstantMonthSchedule
|
|
1729
1841
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1730
1842
|
hpxml_default = _test_measure()
|
|
1731
|
-
_test_default_fuel_load_values(hpxml_default,
|
|
1732
|
-
_test_default_fuel_load_values(hpxml_default,
|
|
1733
|
-
_test_default_fuel_load_values(hpxml_default,
|
|
1843
|
+
_test_default_fuel_load_values(hpxml_default, HPXML::FuelLoadTypeGrill, 1000, 0.6, 0.3, 0.9, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
|
1844
|
+
_test_default_fuel_load_values(hpxml_default, HPXML::FuelLoadTypeLighting, 2000, 0.5, 0.4, 0.8, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
|
1845
|
+
_test_default_fuel_load_values(hpxml_default, HPXML::FuelLoadTypeFireplace, 3000, 0.4, 0.5, 0.7, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
|
1734
1846
|
|
|
1735
1847
|
# Test defaults
|
|
1736
1848
|
hpxml.fuel_loads.each do |fuel_load|
|
|
@@ -1744,9 +1856,9 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1744
1856
|
end
|
|
1745
1857
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
|
1746
1858
|
hpxml_default = _test_measure()
|
|
1747
|
-
_test_default_fuel_load_values(hpxml_default,
|
|
1748
|
-
_test_default_fuel_load_values(hpxml_default,
|
|
1749
|
-
_test_default_fuel_load_values(hpxml_default,
|
|
1859
|
+
_test_default_fuel_load_values(hpxml_default, HPXML::FuelLoadTypeGrill, 33, 0.0, 0.0, 1.0, '0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007', '0.004, 0.001, 0.001, 0.002, 0.007, 0.012, 0.029, 0.046, 0.044, 0.041, 0.044, 0.046, 0.042, 0.038, 0.049, 0.059, 0.110, 0.161, 0.115, 0.070, 0.044, 0.019, 0.013, 0.007', '1.097, 1.097, 0.991, 0.987, 0.991, 0.890, 0.896, 0.896, 0.890, 1.085, 1.085, 1.097')
|
|
1860
|
+
_test_default_fuel_load_values(hpxml_default, HPXML::FuelLoadTypeLighting, 20, 0.0, 0.0, 1.0, '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065', '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065', '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154')
|
|
1861
|
+
_test_default_fuel_load_values(hpxml_default, HPXML::FuelLoadTypeFireplace, 67, 0.5, 0.1, 1.0, '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065', '0.044, 0.023, 0.019, 0.015, 0.016, 0.018, 0.026, 0.033, 0.033, 0.032, 0.033, 0.033, 0.032, 0.032, 0.032, 0.033, 0.045, 0.057, 0.066, 0.076, 0.081, 0.086, 0.075, 0.065', '1.154, 1.161, 1.013, 1.010, 1.013, 0.888, 0.883, 0.883, 0.888, 0.978, 0.974, 1.154')
|
|
1750
1862
|
end
|
|
1751
1863
|
|
|
1752
1864
|
def _test_measure()
|
|
@@ -1784,879 +1896,710 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
1784
1896
|
return hpxml_default
|
|
1785
1897
|
end
|
|
1786
1898
|
|
|
1787
|
-
def _test_default_header_values(hpxml,
|
|
1899
|
+
def _test_default_header_values(hpxml, tstep, sim_begin_month, sim_begin_day, sim_end_month, sim_end_day, sim_calendar_year,
|
|
1788
1900
|
dst_enabled, dst_begin_month, dst_begin_day, dst_end_month, dst_end_day,
|
|
1789
1901
|
use_max_load_for_heat_pumps, allow_increased_fixed_capacities)
|
|
1790
1902
|
assert_equal(tstep, hpxml.header.timestep)
|
|
1791
|
-
assert_equal(isdefaulted, hpxml.header.timestep_isdefaulted)
|
|
1792
|
-
|
|
1793
1903
|
assert_equal(sim_begin_month, hpxml.header.sim_begin_month)
|
|
1794
|
-
assert_equal(isdefaulted, hpxml.header.sim_begin_month_isdefaulted)
|
|
1795
|
-
|
|
1796
1904
|
assert_equal(sim_begin_day, hpxml.header.sim_begin_day)
|
|
1797
|
-
assert_equal(isdefaulted, hpxml.header.sim_begin_day_isdefaulted)
|
|
1798
|
-
|
|
1799
1905
|
assert_equal(sim_end_month, hpxml.header.sim_end_month)
|
|
1800
|
-
assert_equal(isdefaulted, hpxml.header.sim_end_month_isdefaulted)
|
|
1801
|
-
|
|
1802
1906
|
assert_equal(sim_end_day, hpxml.header.sim_end_day)
|
|
1803
|
-
assert_equal(isdefaulted, hpxml.header.sim_end_day_isdefaulted)
|
|
1804
|
-
|
|
1805
1907
|
assert_equal(sim_calendar_year, hpxml.header.sim_calendar_year)
|
|
1806
|
-
assert_equal(isdefaulted, hpxml.header.sim_calendar_year_isdefaulted)
|
|
1807
|
-
|
|
1808
1908
|
assert_equal(dst_enabled, hpxml.header.dst_enabled)
|
|
1809
|
-
assert_equal(isdefaulted, hpxml.header.dst_enabled_isdefaulted)
|
|
1810
|
-
|
|
1811
1909
|
assert_equal(dst_begin_month, hpxml.header.dst_begin_month)
|
|
1812
|
-
assert_equal(isdefaulted, hpxml.header.dst_begin_month_isdefaulted)
|
|
1813
|
-
|
|
1814
1910
|
assert_equal(dst_begin_day, hpxml.header.dst_begin_day)
|
|
1815
|
-
assert_equal(isdefaulted, hpxml.header.dst_begin_day_isdefaulted)
|
|
1816
|
-
|
|
1817
1911
|
assert_equal(dst_end_month, hpxml.header.dst_end_month)
|
|
1818
|
-
assert_equal(isdefaulted, hpxml.header.dst_end_month_isdefaulted)
|
|
1819
|
-
|
|
1820
1912
|
assert_equal(dst_end_day, hpxml.header.dst_end_day)
|
|
1821
|
-
assert_equal(isdefaulted, hpxml.header.dst_end_day_isdefaulted)
|
|
1822
|
-
|
|
1823
1913
|
assert_equal(use_max_load_for_heat_pumps, hpxml.header.use_max_load_for_heat_pumps)
|
|
1824
|
-
assert_equal(isdefaulted, hpxml.header.use_max_load_for_heat_pumps_isdefaulted)
|
|
1825
|
-
|
|
1826
1914
|
assert_equal(allow_increased_fixed_capacities, hpxml.header.allow_increased_fixed_capacities)
|
|
1827
|
-
assert_equal(isdefaulted, hpxml.header.allow_increased_fixed_capacities_isdefaulted)
|
|
1828
1915
|
end
|
|
1829
1916
|
|
|
1830
|
-
def _test_default_site_values(hpxml,
|
|
1917
|
+
def _test_default_site_values(hpxml, site_type, shielding_of_home)
|
|
1831
1918
|
assert_equal(site_type, hpxml.site.site_type)
|
|
1832
|
-
assert_equal(
|
|
1833
|
-
|
|
1834
|
-
assert_equal(shelter_coefficient, hpxml.site.shelter_coefficient)
|
|
1835
|
-
assert_equal(isdefaulted, hpxml.site.shelter_coefficient_isdefaulted)
|
|
1919
|
+
assert_equal(shielding_of_home, hpxml.site.shielding_of_home)
|
|
1836
1920
|
end
|
|
1837
1921
|
|
|
1838
|
-
def _test_default_occupancy_values(hpxml,
|
|
1922
|
+
def _test_default_occupancy_values(hpxml, num_occupants)
|
|
1839
1923
|
assert_equal(num_occupants, hpxml.building_occupancy.number_of_residents)
|
|
1840
|
-
assert_equal(isdefaulted, hpxml.building_occupancy.number_of_residents_isdefaulted)
|
|
1841
1924
|
end
|
|
1842
1925
|
|
|
1843
|
-
def _test_default_building_construction_values(hpxml,
|
|
1926
|
+
def _test_default_building_construction_values(hpxml, building_volume, average_ceiling_height, has_flue_or_chimney, n_bathrooms)
|
|
1844
1927
|
assert_equal(building_volume, hpxml.building_construction.conditioned_building_volume)
|
|
1845
|
-
|
|
1846
|
-
if isdefaulted
|
|
1847
|
-
assert_equal(isdefaulted, hpxml.building_construction.conditioned_building_volume_isdefaulted || hpxml.building_construction.average_ceiling_height_isdefaulted)
|
|
1848
|
-
else
|
|
1849
|
-
assert_equal(isdefaulted, hpxml.building_construction.conditioned_building_volume_isdefaulted)
|
|
1850
|
-
assert_equal(isdefaulted, hpxml.building_construction.average_ceiling_height_isdefaulted)
|
|
1851
|
-
end
|
|
1852
|
-
|
|
1928
|
+
assert_in_epsilon(average_ceiling_height, hpxml.building_construction.average_ceiling_height, 0.01)
|
|
1853
1929
|
assert_equal(has_flue_or_chimney, hpxml.building_construction.has_flue_or_chimney)
|
|
1854
|
-
assert_equal(isdefaulted, hpxml.building_construction.has_flue_or_chimney_isdefaulted)
|
|
1855
|
-
|
|
1856
1930
|
assert_equal(n_bathrooms, hpxml.building_construction.number_of_bathrooms)
|
|
1857
|
-
assert_equal(isdefaulted, hpxml.building_construction.number_of_bathrooms_isdefaulted)
|
|
1858
1931
|
end
|
|
1859
1932
|
|
|
1860
|
-
def _test_default_infiltration_values(hpxml,
|
|
1933
|
+
def _test_default_infiltration_values(hpxml, volume)
|
|
1861
1934
|
air_infiltration_measurement = hpxml.air_infiltration_measurements[0]
|
|
1862
1935
|
|
|
1863
1936
|
assert_equal(volume, air_infiltration_measurement.infiltration_volume)
|
|
1864
|
-
assert_equal(isdefaulted, air_infiltration_measurement.infiltration_volume_isdefaulted)
|
|
1865
1937
|
end
|
|
1866
1938
|
|
|
1867
|
-
def _test_default_attic_values(hpxml,
|
|
1939
|
+
def _test_default_attic_values(hpxml, sla)
|
|
1868
1940
|
attic = hpxml.attics[0]
|
|
1869
1941
|
|
|
1870
|
-
|
|
1871
|
-
assert_equal(isdefaulted, attic.vented_attic_sla_isdefaulted)
|
|
1942
|
+
assert_in_epsilon(sla, attic.vented_attic_sla, 0.001)
|
|
1872
1943
|
end
|
|
1873
1944
|
|
|
1874
|
-
def _test_default_foundation_values(hpxml,
|
|
1945
|
+
def _test_default_foundation_values(hpxml, sla)
|
|
1875
1946
|
foundation = hpxml.foundations[0]
|
|
1876
1947
|
|
|
1877
|
-
|
|
1878
|
-
assert_equal(isdefaulted, foundation.vented_crawlspace_sla_isdefaulted)
|
|
1948
|
+
assert_in_epsilon(sla, foundation.vented_crawlspace_sla, 0.001)
|
|
1879
1949
|
end
|
|
1880
1950
|
|
|
1881
|
-
def _test_default_roof_values(hpxml,
|
|
1951
|
+
def _test_default_roof_values(hpxml, roof_type, solar_absorptance, roof_color, emittance, radiant_barrier)
|
|
1882
1952
|
roof = hpxml.roofs[0]
|
|
1883
1953
|
|
|
1884
1954
|
assert_equal(roof_type, roof.roof_type)
|
|
1885
|
-
assert_equal(isdefaulted, roof.roof_type_isdefaulted)
|
|
1886
|
-
|
|
1887
1955
|
assert_equal(solar_absorptance, roof.solar_absorptance)
|
|
1888
1956
|
assert_equal(roof_color, roof.roof_color)
|
|
1889
|
-
if isdefaulted
|
|
1890
|
-
assert_equal(isdefaulted, roof.solar_absorptance_isdefaulted || roof.roof_color_isdefaulted)
|
|
1891
|
-
else
|
|
1892
|
-
assert_equal(isdefaulted, roof.solar_absorptance_isdefaulted)
|
|
1893
|
-
assert_equal(isdefaulted, roof.roof_color_isdefaulted)
|
|
1894
|
-
end
|
|
1895
|
-
|
|
1896
1957
|
assert_equal(emittance, roof.emittance)
|
|
1897
|
-
assert_equal(isdefaulted, roof.emittance_isdefaulted)
|
|
1898
|
-
|
|
1899
1958
|
assert_equal(radiant_barrier, roof.radiant_barrier)
|
|
1900
|
-
assert_equal(isdefaulted, roof.radiant_barrier_isdefaulted)
|
|
1901
1959
|
end
|
|
1902
1960
|
|
|
1903
|
-
def _test_default_rim_joist_values(hpxml,
|
|
1961
|
+
def _test_default_rim_joist_values(hpxml, siding, solar_absorptance, color, emittance)
|
|
1904
1962
|
rim_joist = hpxml.rim_joists[0]
|
|
1905
1963
|
|
|
1906
1964
|
assert_equal(siding, rim_joist.siding)
|
|
1907
|
-
assert_equal(isdefaulted, rim_joist.siding_isdefaulted)
|
|
1908
|
-
|
|
1909
1965
|
assert_equal(solar_absorptance, rim_joist.solar_absorptance)
|
|
1910
1966
|
assert_equal(color, rim_joist.color)
|
|
1911
|
-
if isdefaulted
|
|
1912
|
-
assert_equal(isdefaulted, rim_joist.solar_absorptance_isdefaulted || rim_joist.color_isdefaulted)
|
|
1913
|
-
else
|
|
1914
|
-
assert_equal(isdefaulted, rim_joist.solar_absorptance_isdefaulted)
|
|
1915
|
-
assert_equal(isdefaulted, rim_joist.color_isdefaulted)
|
|
1916
|
-
end
|
|
1917
|
-
|
|
1918
1967
|
assert_equal(emittance, rim_joist.emittance)
|
|
1919
|
-
assert_equal(isdefaulted, rim_joist.emittance_isdefaulted)
|
|
1920
1968
|
end
|
|
1921
1969
|
|
|
1922
|
-
def _test_default_wall_values(hpxml,
|
|
1970
|
+
def _test_default_wall_values(hpxml, siding, solar_absorptance, color, emittance)
|
|
1923
1971
|
wall = hpxml.walls[0]
|
|
1924
1972
|
|
|
1925
1973
|
assert_equal(siding, wall.siding)
|
|
1926
|
-
assert_equal(isdefaulted, wall.siding_isdefaulted)
|
|
1927
|
-
|
|
1928
1974
|
assert_equal(solar_absorptance, wall.solar_absorptance)
|
|
1929
1975
|
assert_equal(color, wall.color)
|
|
1930
|
-
if isdefaulted
|
|
1931
|
-
assert_equal(isdefaulted, wall.solar_absorptance_isdefaulted || wall.color_isdefaulted)
|
|
1932
|
-
else
|
|
1933
|
-
assert_equal(isdefaulted, wall.solar_absorptance_isdefaulted)
|
|
1934
|
-
assert_equal(isdefaulted, wall.color_isdefaulted)
|
|
1935
|
-
end
|
|
1936
|
-
|
|
1937
1976
|
assert_equal(emittance, wall.emittance)
|
|
1938
|
-
assert_equal(isdefaulted, wall.emittance_isdefaulted)
|
|
1939
1977
|
end
|
|
1940
1978
|
|
|
1941
|
-
def _test_default_foundation_wall_values(hpxml,
|
|
1979
|
+
def _test_default_foundation_wall_values(hpxml, thickness)
|
|
1942
1980
|
foundation_wall = hpxml.foundation_walls[0]
|
|
1943
1981
|
|
|
1944
1982
|
assert_equal(thickness, foundation_wall.thickness)
|
|
1945
|
-
assert_equal(isdefaulted, foundation_wall.thickness_isdefaulted)
|
|
1946
1983
|
end
|
|
1947
1984
|
|
|
1948
|
-
def _test_default_slab_values(hpxml,
|
|
1985
|
+
def _test_default_slab_values(hpxml, thickness, carpet_r_value, carpet_fraction)
|
|
1949
1986
|
slab = hpxml.slabs[0]
|
|
1950
1987
|
|
|
1951
1988
|
assert_equal(thickness, slab.thickness)
|
|
1952
|
-
assert_equal(isdefaulted, slab.thickness_isdefaulted)
|
|
1953
|
-
|
|
1954
1989
|
assert_equal(carpet_r_value, slab.carpet_r_value)
|
|
1955
|
-
assert_equal(isdefaulted, slab.carpet_r_value_isdefaulted)
|
|
1956
|
-
|
|
1957
1990
|
assert_equal(carpet_fraction, slab.carpet_fraction)
|
|
1958
|
-
assert_equal(isdefaulted, slab.carpet_fraction_isdefaulted)
|
|
1959
1991
|
end
|
|
1960
1992
|
|
|
1961
|
-
def _test_default_window_values(hpxml,
|
|
1962
|
-
assert_equal(
|
|
1993
|
+
def _test_default_window_values(hpxml, ext_summer_sfs, ext_winter_sfs, int_summer_sfs, int_winter_sfs, fraction_operable)
|
|
1994
|
+
assert_equal(ext_summer_sfs.size, hpxml.windows.size)
|
|
1963
1995
|
hpxml.windows.each_with_index do |window, idx|
|
|
1964
|
-
assert_equal(
|
|
1965
|
-
assert_equal(
|
|
1966
|
-
|
|
1967
|
-
assert_equal(
|
|
1968
|
-
assert_equal(isdefaulted, window.interior_shading_factor_winter_isdefaulted)
|
|
1969
|
-
|
|
1996
|
+
assert_equal(ext_summer_sfs[idx], window.exterior_shading_factor_summer)
|
|
1997
|
+
assert_equal(ext_winter_sfs[idx], window.exterior_shading_factor_winter)
|
|
1998
|
+
assert_equal(int_summer_sfs[idx], window.interior_shading_factor_summer)
|
|
1999
|
+
assert_equal(int_winter_sfs[idx], window.interior_shading_factor_winter)
|
|
1970
2000
|
assert_equal(fraction_operable[idx], window.fraction_operable)
|
|
1971
|
-
assert_equal(isdefaulted, window.fraction_operable_isdefaulted)
|
|
1972
2001
|
end
|
|
1973
2002
|
end
|
|
1974
2003
|
|
|
1975
|
-
def _test_default_skylight_values(hpxml,
|
|
1976
|
-
assert_equal(
|
|
2004
|
+
def _test_default_skylight_values(hpxml, ext_summer_sfs, ext_winter_sfs, int_summer_sfs, int_winter_sfs)
|
|
2005
|
+
assert_equal(ext_summer_sfs.size, hpxml.skylights.size)
|
|
1977
2006
|
hpxml.skylights.each_with_index do |skylight, idx|
|
|
1978
|
-
assert_equal(
|
|
1979
|
-
assert_equal(
|
|
1980
|
-
|
|
1981
|
-
assert_equal(
|
|
1982
|
-
assert_equal(isdefaulted, skylight.interior_shading_factor_winter_isdefaulted)
|
|
2007
|
+
assert_equal(ext_summer_sfs[idx], skylight.exterior_shading_factor_summer)
|
|
2008
|
+
assert_equal(ext_winter_sfs[idx], skylight.exterior_shading_factor_winter)
|
|
2009
|
+
assert_equal(int_summer_sfs[idx], skylight.interior_shading_factor_summer)
|
|
2010
|
+
assert_equal(int_winter_sfs[idx], skylight.interior_shading_factor_winter)
|
|
1983
2011
|
end
|
|
1984
2012
|
end
|
|
1985
2013
|
|
|
1986
|
-
def _test_default_central_air_conditioner_values(hpxml,
|
|
2014
|
+
def _test_default_central_air_conditioner_values(hpxml, shr, compressor_type, fan_watts_per_cfm, charge_defect_ratio,
|
|
2015
|
+
airflow_defect_ratio, cooling_capacity)
|
|
1987
2016
|
cooling_system = hpxml.cooling_systems[0]
|
|
1988
2017
|
|
|
1989
2018
|
assert_equal(shr, cooling_system.cooling_shr)
|
|
1990
|
-
assert_equal(isdefaulted, cooling_system.cooling_shr_isdefaulted)
|
|
1991
|
-
|
|
1992
2019
|
assert_equal(compressor_type, cooling_system.compressor_type)
|
|
1993
|
-
assert_equal(isdefaulted, cooling_system.compressor_type_isdefaulted)
|
|
1994
|
-
|
|
1995
2020
|
assert_equal(fan_watts_per_cfm, cooling_system.fan_watts_per_cfm)
|
|
1996
|
-
assert_equal(
|
|
2021
|
+
assert_equal(charge_defect_ratio, cooling_system.charge_defect_ratio)
|
|
2022
|
+
assert_equal(airflow_defect_ratio, cooling_system.airflow_defect_ratio)
|
|
2023
|
+
if cooling_capacity.nil?
|
|
2024
|
+
assert(cooling_system.cooling_capacity > 0)
|
|
2025
|
+
else
|
|
2026
|
+
assert_equal(cooling_system.cooling_capacity, cooling_capacity)
|
|
2027
|
+
end
|
|
1997
2028
|
end
|
|
1998
2029
|
|
|
1999
|
-
def _test_default_room_air_conditioner_values(hpxml,
|
|
2030
|
+
def _test_default_room_air_conditioner_values(hpxml, shr, cooling_capacity)
|
|
2000
2031
|
cooling_system = hpxml.cooling_systems[0]
|
|
2001
2032
|
|
|
2002
2033
|
assert_equal(shr, cooling_system.cooling_shr)
|
|
2003
|
-
|
|
2034
|
+
if cooling_capacity.nil?
|
|
2035
|
+
assert(cooling_system.cooling_capacity > 0)
|
|
2036
|
+
else
|
|
2037
|
+
assert_equal(cooling_system.cooling_capacity, cooling_capacity)
|
|
2038
|
+
end
|
|
2004
2039
|
end
|
|
2005
2040
|
|
|
2006
|
-
def
|
|
2041
|
+
def _test_default_evap_cooler_values(hpxml, cooling_capacity)
|
|
2007
2042
|
cooling_system = hpxml.cooling_systems[0]
|
|
2008
2043
|
|
|
2009
|
-
|
|
2010
|
-
|
|
2044
|
+
if cooling_capacity.nil?
|
|
2045
|
+
assert(cooling_system.cooling_capacity > 0)
|
|
2046
|
+
else
|
|
2047
|
+
assert_equal(cooling_system.cooling_capacity, cooling_capacity)
|
|
2048
|
+
end
|
|
2049
|
+
end
|
|
2050
|
+
|
|
2051
|
+
def _test_default_mini_split_air_conditioner_values(hpxml, shr, fan_watts_per_cfm, charge_defect_ratio,
|
|
2052
|
+
airflow_defect_ratio, cooling_capacity)
|
|
2053
|
+
cooling_system = hpxml.cooling_systems[0]
|
|
2011
2054
|
|
|
2055
|
+
assert_equal(shr, cooling_system.cooling_shr)
|
|
2012
2056
|
assert_equal(fan_watts_per_cfm, cooling_system.fan_watts_per_cfm)
|
|
2013
|
-
assert_equal(
|
|
2057
|
+
assert_equal(charge_defect_ratio, cooling_system.charge_defect_ratio)
|
|
2058
|
+
assert_equal(airflow_defect_ratio, cooling_system.airflow_defect_ratio)
|
|
2059
|
+
if cooling_capacity.nil?
|
|
2060
|
+
assert(cooling_system.cooling_capacity > 0)
|
|
2061
|
+
else
|
|
2062
|
+
assert_equal(cooling_system.cooling_capacity, cooling_capacity)
|
|
2063
|
+
end
|
|
2014
2064
|
end
|
|
2015
2065
|
|
|
2016
|
-
def _test_default_furnace_values(hpxml,
|
|
2066
|
+
def _test_default_furnace_values(hpxml, fan_watts_per_cfm, airflow_defect_ratio,
|
|
2067
|
+
heating_capacity)
|
|
2017
2068
|
heating_system = hpxml.heating_systems[0]
|
|
2018
2069
|
|
|
2019
2070
|
assert_equal(fan_watts_per_cfm, heating_system.fan_watts_per_cfm)
|
|
2020
|
-
assert_equal(
|
|
2071
|
+
assert_equal(airflow_defect_ratio, heating_system.airflow_defect_ratio)
|
|
2072
|
+
if heating_capacity.nil?
|
|
2073
|
+
assert(heating_system.heating_capacity > 0)
|
|
2074
|
+
else
|
|
2075
|
+
assert_equal(heating_system.heating_capacity, heating_capacity)
|
|
2076
|
+
end
|
|
2021
2077
|
end
|
|
2022
2078
|
|
|
2023
|
-
def _test_default_wall_furnace_values(hpxml,
|
|
2079
|
+
def _test_default_wall_furnace_values(hpxml, fan_watts, heating_capacity)
|
|
2024
2080
|
heating_system = hpxml.heating_systems[0]
|
|
2025
2081
|
|
|
2026
2082
|
assert_equal(fan_watts, heating_system.fan_watts)
|
|
2027
|
-
|
|
2083
|
+
if heating_capacity.nil?
|
|
2084
|
+
assert(heating_system.heating_capacity > 0)
|
|
2085
|
+
else
|
|
2086
|
+
assert_equal(heating_system.heating_capacity, heating_capacity)
|
|
2087
|
+
end
|
|
2028
2088
|
end
|
|
2029
2089
|
|
|
2030
|
-
def _test_default_floor_furnace_values(hpxml,
|
|
2090
|
+
def _test_default_floor_furnace_values(hpxml, fan_watts, heating_capacity)
|
|
2031
2091
|
heating_system = hpxml.heating_systems[0]
|
|
2032
2092
|
|
|
2033
2093
|
assert_equal(fan_watts, heating_system.fan_watts)
|
|
2034
|
-
|
|
2094
|
+
if heating_capacity.nil?
|
|
2095
|
+
assert(heating_system.heating_capacity > 0)
|
|
2096
|
+
else
|
|
2097
|
+
assert_equal(heating_system.heating_capacity, heating_capacity)
|
|
2098
|
+
end
|
|
2035
2099
|
end
|
|
2036
2100
|
|
|
2037
|
-
def
|
|
2101
|
+
def _test_default_boiler_values(hpxml, eae, heating_capacity)
|
|
2038
2102
|
heating_system = hpxml.heating_systems[0]
|
|
2039
2103
|
|
|
2040
|
-
assert_equal(
|
|
2041
|
-
|
|
2104
|
+
assert_equal(eae, heating_system.electric_auxiliary_energy)
|
|
2105
|
+
if heating_capacity.nil?
|
|
2106
|
+
assert(heating_system.heating_capacity > 0)
|
|
2107
|
+
else
|
|
2108
|
+
assert_equal(heating_system.heating_capacity, heating_capacity)
|
|
2109
|
+
end
|
|
2042
2110
|
end
|
|
2043
2111
|
|
|
2044
|
-
def
|
|
2112
|
+
def _test_default_stove_values(hpxml, fan_watts, heating_capacity)
|
|
2045
2113
|
heating_system = hpxml.heating_systems[0]
|
|
2046
2114
|
|
|
2047
2115
|
assert_equal(fan_watts, heating_system.fan_watts)
|
|
2048
|
-
|
|
2116
|
+
if heating_capacity.nil?
|
|
2117
|
+
assert(heating_system.heating_capacity > 0)
|
|
2118
|
+
else
|
|
2119
|
+
assert_equal(heating_system.heating_capacity, heating_capacity)
|
|
2120
|
+
end
|
|
2049
2121
|
end
|
|
2050
2122
|
|
|
2051
|
-
def
|
|
2123
|
+
def _test_default_portable_heater_values(hpxml, fan_watts, heating_capacity)
|
|
2052
2124
|
heating_system = hpxml.heating_systems[0]
|
|
2053
2125
|
|
|
2054
2126
|
assert_equal(fan_watts, heating_system.fan_watts)
|
|
2055
|
-
|
|
2127
|
+
if heating_capacity.nil?
|
|
2128
|
+
assert(heating_system.heating_capacity > 0)
|
|
2129
|
+
else
|
|
2130
|
+
assert_equal(heating_system.heating_capacity, heating_capacity)
|
|
2131
|
+
end
|
|
2056
2132
|
end
|
|
2057
2133
|
|
|
2058
|
-
def
|
|
2134
|
+
def _test_default_fixed_heater_values(hpxml, fan_watts, heating_capacity)
|
|
2059
2135
|
heating_system = hpxml.heating_systems[0]
|
|
2060
2136
|
|
|
2061
2137
|
assert_equal(fan_watts, heating_system.fan_watts)
|
|
2062
|
-
|
|
2138
|
+
if heating_capacity.nil?
|
|
2139
|
+
assert(heating_system.heating_capacity > 0)
|
|
2140
|
+
else
|
|
2141
|
+
assert_equal(heating_system.heating_capacity, heating_capacity)
|
|
2142
|
+
end
|
|
2063
2143
|
end
|
|
2064
2144
|
|
|
2065
|
-
def
|
|
2145
|
+
def _test_default_fireplace_values(hpxml, fan_watts, heating_capacity)
|
|
2066
2146
|
heating_system = hpxml.heating_systems[0]
|
|
2067
2147
|
|
|
2068
|
-
assert_equal(
|
|
2069
|
-
|
|
2148
|
+
assert_equal(fan_watts, heating_system.fan_watts)
|
|
2149
|
+
if heating_capacity.nil?
|
|
2150
|
+
assert(heating_system.heating_capacity > 0)
|
|
2151
|
+
else
|
|
2152
|
+
assert_equal(heating_system.heating_capacity, heating_capacity)
|
|
2153
|
+
end
|
|
2070
2154
|
end
|
|
2071
2155
|
|
|
2072
|
-
def _test_default_air_to_air_heat_pump_values(hpxml,
|
|
2156
|
+
def _test_default_air_to_air_heat_pump_values(hpxml, shr, compressor_type, fan_watts_per_cfm, charge_defect_ratio,
|
|
2157
|
+
airflow_defect_ratio, cooling_capacity, heating_capacity,
|
|
2158
|
+
heating_capacity_17F, backup_heating_capacity)
|
|
2073
2159
|
heat_pump = hpxml.heat_pumps[0]
|
|
2074
2160
|
|
|
2075
2161
|
assert_equal(shr, heat_pump.cooling_shr)
|
|
2076
|
-
assert_equal(isdefaulted, heat_pump.cooling_shr_isdefaulted)
|
|
2077
|
-
|
|
2078
2162
|
assert_equal(compressor_type, heat_pump.compressor_type)
|
|
2079
|
-
assert_equal(isdefaulted, heat_pump.compressor_type_isdefaulted)
|
|
2080
|
-
|
|
2081
2163
|
assert_equal(fan_watts_per_cfm, heat_pump.fan_watts_per_cfm)
|
|
2082
|
-
assert_equal(
|
|
2164
|
+
assert_equal(charge_defect_ratio, heat_pump.charge_defect_ratio)
|
|
2165
|
+
assert_equal(airflow_defect_ratio, heat_pump.airflow_defect_ratio)
|
|
2166
|
+
if cooling_capacity.nil?
|
|
2167
|
+
assert(heat_pump.cooling_capacity > 0)
|
|
2168
|
+
else
|
|
2169
|
+
assert_equal(heat_pump.cooling_capacity, cooling_capacity)
|
|
2170
|
+
end
|
|
2171
|
+
if heating_capacity.nil?
|
|
2172
|
+
assert(heat_pump.heating_capacity > 0)
|
|
2173
|
+
else
|
|
2174
|
+
assert_equal(heat_pump.heating_capacity, heating_capacity)
|
|
2175
|
+
end
|
|
2176
|
+
if heating_capacity_17F.nil?
|
|
2177
|
+
# assert(heat_pump.heating_capacity_17F > 0) # FUTURE
|
|
2178
|
+
else
|
|
2179
|
+
assert_equal(heat_pump.heating_capacity_17F, heating_capacity_17F)
|
|
2180
|
+
end
|
|
2181
|
+
if backup_heating_capacity.nil?
|
|
2182
|
+
assert(heat_pump.backup_heating_capacity > 0)
|
|
2183
|
+
else
|
|
2184
|
+
assert_equal(heat_pump.backup_heating_capacity, backup_heating_capacity)
|
|
2185
|
+
end
|
|
2083
2186
|
end
|
|
2084
2187
|
|
|
2085
|
-
def _test_default_mini_split_heat_pump_values(hpxml,
|
|
2188
|
+
def _test_default_mini_split_heat_pump_values(hpxml, shr, fan_watts_per_cfm, charge_defect_ratio,
|
|
2189
|
+
airflow_defect_ratio, cooling_capacity, heating_capacity,
|
|
2190
|
+
heating_capacity_17F, backup_heating_capacity)
|
|
2086
2191
|
heat_pump = hpxml.heat_pumps[0]
|
|
2087
2192
|
|
|
2088
2193
|
assert_equal(shr, heat_pump.cooling_shr)
|
|
2089
|
-
assert_equal(isdefaulted, heat_pump.cooling_shr_isdefaulted)
|
|
2090
|
-
|
|
2091
2194
|
assert_equal(fan_watts_per_cfm, heat_pump.fan_watts_per_cfm)
|
|
2092
|
-
assert_equal(
|
|
2195
|
+
assert_equal(charge_defect_ratio, heat_pump.charge_defect_ratio)
|
|
2196
|
+
assert_equal(airflow_defect_ratio, heat_pump.airflow_defect_ratio)
|
|
2197
|
+
if cooling_capacity.nil?
|
|
2198
|
+
assert(heat_pump.cooling_capacity > 0)
|
|
2199
|
+
else
|
|
2200
|
+
assert_equal(heat_pump.cooling_capacity, cooling_capacity)
|
|
2201
|
+
end
|
|
2202
|
+
if heating_capacity.nil?
|
|
2203
|
+
assert(heat_pump.heating_capacity > 0)
|
|
2204
|
+
else
|
|
2205
|
+
assert_equal(heat_pump.heating_capacity, heating_capacity)
|
|
2206
|
+
end
|
|
2207
|
+
if heating_capacity_17F.nil?
|
|
2208
|
+
# assert(heat_pump.heating_capacity_17F > 0) # FUTURE
|
|
2209
|
+
else
|
|
2210
|
+
assert_equal(heat_pump.heating_capacity_17F, heating_capacity_17F)
|
|
2211
|
+
end
|
|
2212
|
+
if backup_heating_capacity.nil?
|
|
2213
|
+
assert(heat_pump.backup_heating_capacity > 0)
|
|
2214
|
+
else
|
|
2215
|
+
assert_equal(heat_pump.backup_heating_capacity, backup_heating_capacity)
|
|
2216
|
+
end
|
|
2093
2217
|
end
|
|
2094
2218
|
|
|
2095
|
-
def _test_default_ground_to_air_heat_pump_values(hpxml,
|
|
2219
|
+
def _test_default_ground_to_air_heat_pump_values(hpxml, pump_watts_per_ton, fan_watts_per_cfm,
|
|
2220
|
+
airflow_defect_ratio, cooling_capacity, heating_capacity,
|
|
2221
|
+
backup_heating_capacity)
|
|
2222
|
+
|
|
2096
2223
|
heat_pump = hpxml.heat_pumps[0]
|
|
2097
2224
|
|
|
2098
2225
|
assert_equal(pump_watts_per_ton, heat_pump.pump_watts_per_ton)
|
|
2099
|
-
assert_equal(isdefaulted, heat_pump.pump_watts_per_ton_isdefaulted)
|
|
2100
|
-
|
|
2101
2226
|
assert_equal(fan_watts_per_cfm, heat_pump.fan_watts_per_cfm)
|
|
2102
|
-
assert_equal(
|
|
2227
|
+
assert_equal(airflow_defect_ratio, heat_pump.airflow_defect_ratio)
|
|
2228
|
+
if cooling_capacity.nil?
|
|
2229
|
+
assert(heat_pump.cooling_capacity > 0)
|
|
2230
|
+
else
|
|
2231
|
+
assert_equal(heat_pump.cooling_capacity, cooling_capacity)
|
|
2232
|
+
end
|
|
2233
|
+
if heating_capacity.nil?
|
|
2234
|
+
assert(heat_pump.heating_capacity > 0)
|
|
2235
|
+
else
|
|
2236
|
+
assert_equal(heat_pump.heating_capacity, heating_capacity)
|
|
2237
|
+
end
|
|
2238
|
+
if backup_heating_capacity.nil?
|
|
2239
|
+
assert(heat_pump.backup_heating_capacity > 0)
|
|
2240
|
+
else
|
|
2241
|
+
assert_equal(heat_pump.backup_heating_capacity, backup_heating_capacity)
|
|
2242
|
+
end
|
|
2103
2243
|
end
|
|
2104
2244
|
|
|
2105
|
-
def _test_default_hvac_control_values(hpxml,
|
|
2245
|
+
def _test_default_hvac_control_values(hpxml, htg_setback_start_hr, clg_setup_start_hr)
|
|
2106
2246
|
hvac_control = hpxml.hvac_controls[0]
|
|
2107
2247
|
|
|
2108
2248
|
assert_equal(htg_setback_start_hr, hvac_control.heating_setback_start_hour)
|
|
2109
|
-
assert_equal(isdefaulted, hvac_control.heating_setback_start_hour_isdefaulted)
|
|
2110
|
-
|
|
2111
2249
|
assert_equal(clg_setup_start_hr, hvac_control.cooling_setup_start_hour)
|
|
2112
|
-
assert_equal(isdefaulted, hvac_control.cooling_setup_start_hour_isdefaulted)
|
|
2113
2250
|
end
|
|
2114
2251
|
|
|
2115
|
-
def _test_default_duct_values(hpxml,
|
|
2252
|
+
def _test_default_duct_values(hpxml, supply_locations, return_locations, supply_areas, return_areas, n_return_registers)
|
|
2116
2253
|
supply_duct_idx = 0
|
|
2117
2254
|
return_duct_idx = 0
|
|
2118
2255
|
hpxml.hvac_distributions.each do |hvac_distribution|
|
|
2119
|
-
next unless [HPXML::HVACDistributionTypeAir
|
|
2256
|
+
next unless [HPXML::HVACDistributionTypeAir].include? hvac_distribution.distribution_system_type
|
|
2120
2257
|
|
|
2121
2258
|
assert_equal(n_return_registers, hvac_distribution.number_of_return_registers)
|
|
2122
|
-
assert_equal(isdefaulted, hvac_distribution.number_of_return_registers_isdefaulted)
|
|
2123
|
-
|
|
2124
2259
|
hvac_distribution.ducts.each do |duct|
|
|
2125
2260
|
if duct.duct_type == HPXML::DuctTypeSupply
|
|
2126
2261
|
assert_equal(supply_locations[supply_duct_idx], duct.duct_location)
|
|
2127
|
-
assert_equal(isdefaulted, duct.duct_location_isdefaulted)
|
|
2128
|
-
|
|
2129
2262
|
assert_in_epsilon(supply_areas[supply_duct_idx], duct.duct_surface_area, 0.01)
|
|
2130
|
-
assert_equal(isdefaulted, duct.duct_surface_area_isdefaulted)
|
|
2131
|
-
|
|
2132
2263
|
supply_duct_idx += 1
|
|
2133
2264
|
elsif duct.duct_type == HPXML::DuctTypeReturn
|
|
2134
2265
|
assert_equal(return_locations[return_duct_idx], duct.duct_location)
|
|
2135
|
-
assert_equal(isdefaulted, duct.duct_location_isdefaulted)
|
|
2136
|
-
|
|
2137
2266
|
assert_in_epsilon(return_areas[return_duct_idx], duct.duct_surface_area, 0.01)
|
|
2138
|
-
assert_equal(isdefaulted, duct.duct_surface_area_isdefaulted)
|
|
2139
|
-
|
|
2140
2267
|
return_duct_idx += 1
|
|
2141
2268
|
end
|
|
2142
2269
|
end
|
|
2143
2270
|
end
|
|
2144
2271
|
end
|
|
2145
2272
|
|
|
2146
|
-
def _test_default_mech_vent_values(hpxml,
|
|
2273
|
+
def _test_default_mech_vent_values(hpxml, is_shared_system, hours_in_operation)
|
|
2147
2274
|
vent_fan = hpxml.ventilation_fans.select { |f| f.used_for_whole_building_ventilation }[0]
|
|
2148
2275
|
|
|
2149
2276
|
assert_equal(is_shared_system, vent_fan.is_shared_system)
|
|
2150
|
-
assert_equal(isdefaulted, vent_fan.is_shared_system_isdefaulted)
|
|
2151
|
-
|
|
2152
2277
|
assert_equal(hours_in_operation, vent_fan.hours_in_operation)
|
|
2153
|
-
assert_equal(isdefaulted, vent_fan.hours_in_operation_isdefaulted)
|
|
2154
2278
|
end
|
|
2155
2279
|
|
|
2156
|
-
def _test_default_kitchen_fan_values(hpxml,
|
|
2280
|
+
def _test_default_kitchen_fan_values(hpxml, quantity, rated_flow_rate, hours_in_operation, fan_power, start_hour)
|
|
2157
2281
|
kitchen_fan = hpxml.ventilation_fans.select { |f| f.used_for_local_ventilation && f.fan_location == HPXML::LocationKitchen }[0]
|
|
2158
2282
|
|
|
2159
2283
|
assert_equal(quantity, kitchen_fan.quantity)
|
|
2160
|
-
assert_equal(isdefaulted, kitchen_fan.quantity_isdefaulted)
|
|
2161
|
-
|
|
2162
2284
|
assert_equal(rated_flow_rate, kitchen_fan.rated_flow_rate)
|
|
2163
|
-
assert_equal(isdefaulted, kitchen_fan.rated_flow_rate_isdefaulted)
|
|
2164
|
-
|
|
2165
2285
|
assert_equal(hours_in_operation, kitchen_fan.hours_in_operation)
|
|
2166
|
-
assert_equal(isdefaulted, kitchen_fan.hours_in_operation_isdefaulted)
|
|
2167
|
-
|
|
2168
2286
|
assert_equal(fan_power, kitchen_fan.fan_power)
|
|
2169
|
-
assert_equal(isdefaulted, kitchen_fan.fan_power_isdefaulted)
|
|
2170
|
-
|
|
2171
2287
|
assert_equal(start_hour, kitchen_fan.start_hour)
|
|
2172
|
-
assert_equal(isdefaulted, kitchen_fan.start_hour_isdefaulted)
|
|
2173
2288
|
end
|
|
2174
2289
|
|
|
2175
|
-
def _test_default_bath_fan_values(hpxml,
|
|
2290
|
+
def _test_default_bath_fan_values(hpxml, quantity, rated_flow_rate, hours_in_operation, fan_power, start_hour)
|
|
2176
2291
|
bath_fan = hpxml.ventilation_fans.select { |f| f.used_for_local_ventilation && f.fan_location == HPXML::LocationBath }[0]
|
|
2177
2292
|
|
|
2178
2293
|
assert_equal(quantity, bath_fan.quantity)
|
|
2179
|
-
assert_equal(isdefaulted, bath_fan.quantity_isdefaulted)
|
|
2180
|
-
|
|
2181
2294
|
assert_equal(rated_flow_rate, bath_fan.rated_flow_rate)
|
|
2182
|
-
assert_equal(isdefaulted, bath_fan.rated_flow_rate_isdefaulted)
|
|
2183
|
-
|
|
2184
2295
|
assert_equal(hours_in_operation, bath_fan.hours_in_operation)
|
|
2185
|
-
assert_equal(isdefaulted, bath_fan.hours_in_operation_isdefaulted)
|
|
2186
|
-
|
|
2187
2296
|
assert_equal(fan_power, bath_fan.fan_power)
|
|
2188
|
-
assert_equal(isdefaulted, bath_fan.fan_power_isdefaulted)
|
|
2189
|
-
|
|
2190
2297
|
assert_equal(start_hour, bath_fan.start_hour)
|
|
2191
|
-
assert_equal(isdefaulted, bath_fan.start_hour_isdefaulted)
|
|
2192
2298
|
end
|
|
2193
2299
|
|
|
2194
|
-
def _test_default_storage_water_heater_values(hpxml,
|
|
2300
|
+
def _test_default_storage_water_heater_values(hpxml, *expected_wh_values)
|
|
2195
2301
|
storage_water_heaters = hpxml.water_heating_systems.select { |w| w.water_heater_type == HPXML::WaterHeaterTypeStorage }
|
|
2196
2302
|
assert_equal(expected_wh_values.size, storage_water_heaters.size)
|
|
2197
2303
|
storage_water_heaters.each_with_index do |wh_system, idx|
|
|
2198
2304
|
is_shared, heating_capacity, tank_volume, recovery_efficiency, location = expected_wh_values[idx]
|
|
2199
2305
|
|
|
2200
2306
|
assert_equal(is_shared, wh_system.is_shared_system)
|
|
2201
|
-
assert_equal(isdefaulted, wh_system.is_shared_system_isdefaulted)
|
|
2202
|
-
|
|
2203
2307
|
assert_in_epsilon(heating_capacity, wh_system.heating_capacity, 0.01)
|
|
2204
|
-
assert_equal(isdefaulted, wh_system.heating_capacity_isdefaulted)
|
|
2205
|
-
|
|
2206
2308
|
assert_equal(tank_volume, wh_system.tank_volume)
|
|
2207
|
-
assert_equal(isdefaulted, wh_system.tank_volume_isdefaulted)
|
|
2208
|
-
|
|
2209
2309
|
assert_in_epsilon(recovery_efficiency, wh_system.recovery_efficiency, 0.01)
|
|
2210
|
-
assert_equal(isdefaulted, wh_system.recovery_efficiency_isdefaulted)
|
|
2211
|
-
|
|
2212
2310
|
assert_equal(location, wh_system.location)
|
|
2213
|
-
assert_equal(isdefaulted, wh_system.location_isdefaulted)
|
|
2214
2311
|
end
|
|
2215
2312
|
end
|
|
2216
2313
|
|
|
2217
|
-
def _test_default_tankless_water_heater_values(hpxml,
|
|
2314
|
+
def _test_default_tankless_water_heater_values(hpxml, *expected_wh_values)
|
|
2218
2315
|
tankless_water_heaters = hpxml.water_heating_systems.select { |w| w.water_heater_type == HPXML::WaterHeaterTypeTankless }
|
|
2219
2316
|
assert_equal(expected_wh_values.size, tankless_water_heaters.size)
|
|
2220
2317
|
tankless_water_heaters.each_with_index do |wh_system, idx|
|
|
2221
2318
|
performance_adjustment, = expected_wh_values[idx]
|
|
2222
2319
|
|
|
2223
2320
|
assert_equal(performance_adjustment, wh_system.performance_adjustment)
|
|
2224
|
-
assert_equal(isdefaulted, wh_system.performance_adjustment_isdefaulted)
|
|
2225
2321
|
end
|
|
2226
2322
|
end
|
|
2227
2323
|
|
|
2228
|
-
def _test_default_standard_distribution_values(hpxml,
|
|
2324
|
+
def _test_default_standard_distribution_values(hpxml, piping_length, pipe_r_value)
|
|
2229
2325
|
hot_water_distribution = hpxml.hot_water_distributions[0]
|
|
2230
2326
|
|
|
2231
2327
|
assert_in_epsilon(piping_length, hot_water_distribution.standard_piping_length, 0.01)
|
|
2232
|
-
assert_equal(isdefaulted, hot_water_distribution.standard_piping_length_isdefaulted)
|
|
2233
|
-
|
|
2234
2328
|
assert_equal(pipe_r_value, hot_water_distribution.pipe_r_value)
|
|
2235
|
-
assert_equal(isdefaulted, hot_water_distribution.pipe_r_value_isdefaulted)
|
|
2236
2329
|
end
|
|
2237
2330
|
|
|
2238
|
-
def _test_default_recirc_distribution_values(hpxml,
|
|
2331
|
+
def _test_default_recirc_distribution_values(hpxml, piping_length, branch_piping_length, pump_power, pipe_r_value)
|
|
2239
2332
|
hot_water_distribution = hpxml.hot_water_distributions[0]
|
|
2240
2333
|
|
|
2241
2334
|
assert_in_epsilon(piping_length, hot_water_distribution.recirculation_piping_length, 0.01)
|
|
2242
|
-
assert_equal(isdefaulted, hot_water_distribution.recirculation_piping_length_isdefaulted)
|
|
2243
|
-
|
|
2244
2335
|
assert_in_epsilon(branch_piping_length, hot_water_distribution.recirculation_branch_piping_length, 0.01)
|
|
2245
|
-
assert_equal(isdefaulted, hot_water_distribution.recirculation_branch_piping_length_isdefaulted)
|
|
2246
|
-
|
|
2247
2336
|
assert_in_epsilon(pump_power, hot_water_distribution.recirculation_pump_power, 0.01)
|
|
2248
|
-
assert_equal(isdefaulted, hot_water_distribution.recirculation_pump_power_isdefaulted)
|
|
2249
|
-
|
|
2250
2337
|
assert_equal(pipe_r_value, hot_water_distribution.pipe_r_value)
|
|
2251
|
-
assert_equal(isdefaulted, hot_water_distribution.pipe_r_value_isdefaulted)
|
|
2252
2338
|
end
|
|
2253
2339
|
|
|
2254
|
-
def _test_default_shared_recirc_distribution_values(hpxml,
|
|
2340
|
+
def _test_default_shared_recirc_distribution_values(hpxml, pump_power)
|
|
2255
2341
|
hot_water_distribution = hpxml.hot_water_distributions[0]
|
|
2256
2342
|
|
|
2257
2343
|
assert_in_epsilon(pump_power, hot_water_distribution.shared_recirculation_pump_power, 0.01)
|
|
2258
|
-
assert_equal(isdefaulted, hot_water_distribution.shared_recirculation_pump_power_isdefaulted)
|
|
2259
2344
|
end
|
|
2260
2345
|
|
|
2261
|
-
def _test_default_water_fixture_values(hpxml,
|
|
2346
|
+
def _test_default_water_fixture_values(hpxml, usage_multiplier)
|
|
2262
2347
|
assert_equal(usage_multiplier, hpxml.water_heating.water_fixtures_usage_multiplier)
|
|
2263
|
-
assert_equal(isdefaulted, hpxml.water_heating.water_fixtures_usage_multiplier_isdefaulted)
|
|
2264
2348
|
end
|
|
2265
2349
|
|
|
2266
|
-
def _test_default_solar_thermal_values(hpxml,
|
|
2350
|
+
def _test_default_solar_thermal_values(hpxml, storage_volume)
|
|
2267
2351
|
solar_thermal_system = hpxml.solar_thermal_systems[0]
|
|
2268
2352
|
|
|
2269
2353
|
assert_equal(storage_volume, solar_thermal_system.storage_volume)
|
|
2270
|
-
assert_equal(isdefaulted, solar_thermal_system.storage_volume_isdefaulted)
|
|
2271
2354
|
end
|
|
2272
2355
|
|
|
2273
|
-
def _test_default_pv_system_values(hpxml,
|
|
2356
|
+
def _test_default_pv_system_values(hpxml, interver_efficiency, system_loss_frac, is_shared_system, location, tracking, module_type)
|
|
2274
2357
|
hpxml.pv_systems.each_with_index do |pv, idx|
|
|
2275
2358
|
assert_equal(is_shared_system, pv.is_shared_system)
|
|
2276
|
-
assert_equal(isdefaulted, pv.is_shared_system_isdefaulted)
|
|
2277
|
-
|
|
2278
2359
|
assert_equal(interver_efficiency, pv.inverter_efficiency)
|
|
2279
|
-
assert_equal(isdefaulted, pv.inverter_efficiency_isdefaulted)
|
|
2280
|
-
|
|
2281
2360
|
assert_in_epsilon(system_loss_frac, pv.system_losses_fraction, 0.01)
|
|
2282
|
-
assert_equal(isdefaulted, pv.system_losses_fraction_isdefaulted)
|
|
2283
|
-
|
|
2284
2361
|
assert_equal(location, pv.location)
|
|
2285
|
-
assert_equal(isdefaulted, pv.location_isdefaulted)
|
|
2286
|
-
|
|
2287
2362
|
assert_equal(tracking, pv.tracking)
|
|
2288
|
-
assert_equal(isdefaulted, pv.tracking_isdefaulted)
|
|
2289
|
-
|
|
2290
2363
|
assert_equal(module_type, pv.module_type)
|
|
2291
|
-
assert_equal(isdefaulted, pv.module_type_isdefaulted)
|
|
2292
2364
|
end
|
|
2293
2365
|
end
|
|
2294
2366
|
|
|
2295
|
-
def _test_default_generator_values(hpxml,
|
|
2367
|
+
def _test_default_generator_values(hpxml, is_shared_system)
|
|
2296
2368
|
hpxml.generators.each_with_index do |generator, idx|
|
|
2297
2369
|
assert_equal(is_shared_system, generator.is_shared_system)
|
|
2298
|
-
assert_equal(isdefaulted, generator.is_shared_system_isdefaulted)
|
|
2299
2370
|
end
|
|
2300
2371
|
end
|
|
2301
2372
|
|
|
2302
|
-
def _test_default_clothes_washer_values(hpxml,
|
|
2373
|
+
def _test_default_clothes_washer_values(hpxml, is_shared, location, imef, rated_annual_kwh, label_electric_rate, label_gas_rate, label_annual_gas_cost, capacity, label_usage, usage_multiplier)
|
|
2303
2374
|
clothes_washer = hpxml.clothes_washers[0]
|
|
2304
2375
|
|
|
2305
2376
|
assert_equal(is_shared, clothes_washer.is_shared_appliance)
|
|
2306
|
-
assert_equal(isdefaulted, clothes_washer.is_shared_appliance_isdefaulted)
|
|
2307
|
-
|
|
2308
2377
|
assert_equal(location, clothes_washer.location)
|
|
2309
|
-
assert_equal(isdefaulted, clothes_washer.location_isdefaulted)
|
|
2310
|
-
|
|
2311
2378
|
assert_equal(imef, clothes_washer.integrated_modified_energy_factor)
|
|
2312
|
-
assert_equal(isdefaulted, clothes_washer.integrated_modified_energy_factor_isdefaulted)
|
|
2313
|
-
|
|
2314
2379
|
assert_equal(rated_annual_kwh, clothes_washer.rated_annual_kwh)
|
|
2315
|
-
assert_equal(isdefaulted, clothes_washer.rated_annual_kwh_isdefaulted)
|
|
2316
|
-
|
|
2317
2380
|
assert_equal(label_electric_rate, clothes_washer.label_electric_rate)
|
|
2318
|
-
assert_equal(isdefaulted, clothes_washer.label_electric_rate_isdefaulted)
|
|
2319
|
-
|
|
2320
2381
|
assert_equal(label_gas_rate, clothes_washer.label_gas_rate)
|
|
2321
|
-
assert_equal(isdefaulted, clothes_washer.label_gas_rate_isdefaulted)
|
|
2322
|
-
|
|
2323
2382
|
assert_equal(label_annual_gas_cost, clothes_washer.label_annual_gas_cost)
|
|
2324
|
-
assert_equal(isdefaulted, clothes_washer.label_annual_gas_cost_isdefaulted)
|
|
2325
|
-
|
|
2326
2383
|
assert_equal(capacity, clothes_washer.capacity)
|
|
2327
|
-
assert_equal(isdefaulted, clothes_washer.capacity_isdefaulted)
|
|
2328
|
-
|
|
2329
2384
|
assert_equal(label_usage, clothes_washer.label_usage)
|
|
2330
|
-
assert_equal(isdefaulted, clothes_washer.label_usage_isdefaulted)
|
|
2331
|
-
|
|
2332
2385
|
assert_equal(usage_multiplier, clothes_washer.usage_multiplier)
|
|
2333
|
-
assert_equal(isdefaulted, clothes_washer.usage_multiplier_isdefaulted)
|
|
2334
2386
|
end
|
|
2335
2387
|
|
|
2336
|
-
def _test_default_clothes_dryer_values(hpxml,
|
|
2388
|
+
def _test_default_clothes_dryer_values(hpxml, is_shared, location, cef, usage_multiplier)
|
|
2337
2389
|
clothes_dryer = hpxml.clothes_dryers[0]
|
|
2338
2390
|
|
|
2339
2391
|
assert_equal(is_shared, clothes_dryer.is_shared_appliance)
|
|
2340
|
-
assert_equal(isdefaulted, clothes_dryer.is_shared_appliance_isdefaulted)
|
|
2341
|
-
|
|
2342
2392
|
assert_equal(location, clothes_dryer.location)
|
|
2343
|
-
assert_equal(isdefaulted, clothes_dryer.location_isdefaulted)
|
|
2344
|
-
|
|
2345
|
-
assert_equal(control_type, clothes_dryer.control_type)
|
|
2346
|
-
assert_equal(isdefaulted, clothes_dryer.control_type_isdefaulted)
|
|
2347
|
-
|
|
2348
2393
|
assert_equal(cef, clothes_dryer.combined_energy_factor)
|
|
2349
|
-
assert_equal(isdefaulted, clothes_dryer.combined_energy_factor_isdefaulted)
|
|
2350
|
-
|
|
2351
2394
|
assert_equal(usage_multiplier, clothes_dryer.usage_multiplier)
|
|
2352
|
-
assert_equal(isdefaulted, clothes_dryer.usage_multiplier_isdefaulted)
|
|
2353
2395
|
end
|
|
2354
2396
|
|
|
2355
|
-
def _test_default_clothes_dryer_exhaust_values(hpxml,
|
|
2397
|
+
def _test_default_clothes_dryer_exhaust_values(hpxml, is_vented, vented_flow_rate)
|
|
2356
2398
|
clothes_dryer = hpxml.clothes_dryers[0]
|
|
2357
2399
|
|
|
2358
2400
|
assert_equal(is_vented, clothes_dryer.is_vented)
|
|
2359
|
-
assert_equal(isdefaulted, clothes_dryer.is_vented_isdefaulted)
|
|
2360
|
-
|
|
2361
2401
|
if vented_flow_rate.nil?
|
|
2362
2402
|
assert_nil(clothes_dryer.vented_flow_rate)
|
|
2363
2403
|
else
|
|
2364
2404
|
assert_equal(vented_flow_rate, clothes_dryer.vented_flow_rate)
|
|
2365
|
-
assert_equal(isdefaulted, clothes_dryer.vented_flow_rate_isdefaulted)
|
|
2366
2405
|
end
|
|
2367
2406
|
end
|
|
2368
2407
|
|
|
2369
|
-
def _test_default_dishwasher_values(hpxml,
|
|
2408
|
+
def _test_default_dishwasher_values(hpxml, is_shared, location, rated_annual_kwh, label_electric_rate, label_gas_rate, label_annual_gas_cost, label_usage, place_setting_capacity, usage_multiplier)
|
|
2370
2409
|
dishwasher = hpxml.dishwashers[0]
|
|
2371
2410
|
|
|
2372
2411
|
assert_equal(is_shared, dishwasher.is_shared_appliance)
|
|
2373
|
-
assert_equal(isdefaulted, dishwasher.is_shared_appliance_isdefaulted)
|
|
2374
|
-
|
|
2375
2412
|
assert_equal(location, dishwasher.location)
|
|
2376
|
-
assert_equal(isdefaulted, dishwasher.location_isdefaulted)
|
|
2377
|
-
|
|
2378
2413
|
assert_equal(rated_annual_kwh, dishwasher.rated_annual_kwh)
|
|
2379
|
-
assert_equal(isdefaulted, dishwasher.rated_annual_kwh_isdefaulted)
|
|
2380
|
-
|
|
2381
2414
|
assert_equal(label_electric_rate, dishwasher.label_electric_rate)
|
|
2382
|
-
assert_equal(isdefaulted, dishwasher.label_electric_rate_isdefaulted)
|
|
2383
|
-
|
|
2384
2415
|
assert_equal(label_gas_rate, dishwasher.label_gas_rate)
|
|
2385
|
-
assert_equal(isdefaulted, dishwasher.label_gas_rate_isdefaulted)
|
|
2386
|
-
|
|
2387
2416
|
assert_equal(label_annual_gas_cost, dishwasher.label_annual_gas_cost)
|
|
2388
|
-
assert_equal(isdefaulted, dishwasher.label_annual_gas_cost_isdefaulted)
|
|
2389
|
-
|
|
2390
2417
|
assert_equal(label_usage, dishwasher.label_usage)
|
|
2391
|
-
assert_equal(isdefaulted, dishwasher.label_usage_isdefaulted)
|
|
2392
|
-
|
|
2393
2418
|
assert_equal(place_setting_capacity, dishwasher.place_setting_capacity)
|
|
2394
|
-
assert_equal(isdefaulted, dishwasher.place_setting_capacity_isdefaulted)
|
|
2395
|
-
|
|
2396
2419
|
assert_equal(usage_multiplier, dishwasher.usage_multiplier)
|
|
2397
|
-
assert_equal(isdefaulted, dishwasher.usage_multiplier_isdefaulted)
|
|
2398
2420
|
end
|
|
2399
2421
|
|
|
2400
|
-
def _test_default_refrigerator_values(hpxml,
|
|
2422
|
+
def _test_default_refrigerator_values(hpxml, location, rated_annual_kwh, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
|
2401
2423
|
hpxml.refrigerators.each do |refrigerator|
|
|
2402
2424
|
next unless refrigerator.primary_indicator
|
|
2403
2425
|
|
|
2404
2426
|
assert_equal(location, refrigerator.location)
|
|
2405
|
-
assert_equal(isdefaulted, refrigerator.location_isdefaulted)
|
|
2406
|
-
|
|
2407
2427
|
assert_equal(rated_annual_kwh, refrigerator.rated_annual_kwh)
|
|
2408
|
-
assert_equal(isdefaulted, refrigerator.rated_annual_kwh_isdefaulted)
|
|
2409
|
-
|
|
2410
2428
|
assert_equal(usage_multiplier, refrigerator.usage_multiplier)
|
|
2411
|
-
assert_equal(isdefaulted, refrigerator.usage_multiplier_isdefaulted)
|
|
2412
|
-
|
|
2413
2429
|
if weekday_sch.nil?
|
|
2414
2430
|
assert_nil(refrigerator.weekday_fractions)
|
|
2415
2431
|
else
|
|
2416
2432
|
assert_equal(weekday_sch, refrigerator.weekday_fractions)
|
|
2417
|
-
assert_equal(isdefaulted, refrigerator.weekday_fractions_isdefaulted)
|
|
2418
2433
|
end
|
|
2419
|
-
|
|
2420
2434
|
if weekend_sch.nil?
|
|
2421
2435
|
assert_nil(refrigerator.weekend_fractions)
|
|
2422
2436
|
else
|
|
2423
2437
|
assert_equal(weekend_sch, refrigerator.weekend_fractions)
|
|
2424
|
-
assert_equal(isdefaulted, refrigerator.weekend_fractions_isdefaulted)
|
|
2425
2438
|
end
|
|
2426
|
-
|
|
2427
2439
|
if monthly_mults.nil?
|
|
2428
2440
|
assert_nil(refrigerator.monthly_multipliers)
|
|
2429
2441
|
else
|
|
2430
2442
|
assert_equal(monthly_mults, refrigerator.monthly_multipliers)
|
|
2431
|
-
assert_equal(isdefaulted, refrigerator.monthly_multipliers_isdefaulted)
|
|
2432
2443
|
end
|
|
2433
2444
|
end
|
|
2434
2445
|
end
|
|
2435
2446
|
|
|
2436
|
-
def _test_default_extra_refrigerators_values(hpxml,
|
|
2447
|
+
def _test_default_extra_refrigerators_values(hpxml, location, rated_annual_kwh, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
|
2437
2448
|
hpxml.refrigerators.each do |refrigerator|
|
|
2438
2449
|
next if refrigerator.primary_indicator
|
|
2439
2450
|
|
|
2440
2451
|
assert_equal(location, refrigerator.location)
|
|
2441
|
-
assert_equal(isdefaulted, refrigerator.location_isdefaulted)
|
|
2442
|
-
|
|
2443
2452
|
assert_in_epsilon(rated_annual_kwh, refrigerator.rated_annual_kwh, 0.01)
|
|
2444
|
-
assert_equal(isdefaulted, refrigerator.rated_annual_kwh_isdefaulted)
|
|
2445
|
-
|
|
2446
2453
|
assert_equal(usage_multiplier, refrigerator.usage_multiplier)
|
|
2447
|
-
assert_equal(isdefaulted, refrigerator.usage_multiplier_isdefaulted)
|
|
2448
|
-
|
|
2449
2454
|
if weekday_sch.nil?
|
|
2450
2455
|
assert_nil(refrigerator.weekday_fractions)
|
|
2451
2456
|
else
|
|
2452
2457
|
assert_equal(weekday_sch, refrigerator.weekday_fractions)
|
|
2453
|
-
assert_equal(isdefaulted, refrigerator.weekday_fractions_isdefaulted)
|
|
2454
2458
|
end
|
|
2455
|
-
|
|
2456
2459
|
if weekend_sch.nil?
|
|
2457
2460
|
assert_nil(refrigerator.weekend_fractions)
|
|
2458
2461
|
else
|
|
2459
2462
|
assert_equal(weekend_sch, refrigerator.weekend_fractions)
|
|
2460
|
-
assert_equal(isdefaulted, refrigerator.weekend_fractions_isdefaulted)
|
|
2461
2463
|
end
|
|
2462
|
-
|
|
2463
2464
|
if monthly_mults.nil?
|
|
2464
2465
|
assert_nil(refrigerator.monthly_multipliers)
|
|
2465
2466
|
else
|
|
2466
2467
|
assert_equal(monthly_mults, refrigerator.monthly_multipliers)
|
|
2467
|
-
assert_equal(isdefaulted, refrigerator.monthly_multipliers_isdefaulted)
|
|
2468
2468
|
end
|
|
2469
2469
|
end
|
|
2470
2470
|
end
|
|
2471
2471
|
|
|
2472
|
-
def _test_default_freezers_values(hpxml,
|
|
2472
|
+
def _test_default_freezers_values(hpxml, location, rated_annual_kwh, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
|
2473
2473
|
hpxml.freezers.each do |freezer|
|
|
2474
2474
|
assert_equal(location, freezer.location)
|
|
2475
|
-
assert_equal(isdefaulted, freezer.location_isdefaulted)
|
|
2476
|
-
|
|
2477
2475
|
assert_in_epsilon(rated_annual_kwh, freezer.rated_annual_kwh, 0.01)
|
|
2478
|
-
assert_equal(isdefaulted, freezer.rated_annual_kwh_isdefaulted)
|
|
2479
|
-
|
|
2480
2476
|
assert_equal(usage_multiplier, freezer.usage_multiplier)
|
|
2481
|
-
assert_equal(isdefaulted, freezer.usage_multiplier_isdefaulted)
|
|
2482
|
-
|
|
2483
2477
|
if weekday_sch.nil?
|
|
2484
2478
|
assert_nil(freezer.weekday_fractions)
|
|
2485
2479
|
else
|
|
2486
2480
|
assert_equal(weekday_sch, freezer.weekday_fractions)
|
|
2487
|
-
assert_equal(isdefaulted, freezer.weekday_fractions_isdefaulted)
|
|
2488
2481
|
end
|
|
2489
|
-
|
|
2490
2482
|
if weekend_sch.nil?
|
|
2491
2483
|
assert_nil(freezer.weekend_fractions)
|
|
2492
2484
|
else
|
|
2493
2485
|
assert_equal(weekend_sch, freezer.weekend_fractions)
|
|
2494
|
-
assert_equal(isdefaulted, freezer.weekend_fractions_isdefaulted)
|
|
2495
2486
|
end
|
|
2496
|
-
|
|
2497
2487
|
if monthly_mults.nil?
|
|
2498
2488
|
assert_nil(freezer.monthly_multipliers)
|
|
2499
2489
|
else
|
|
2500
2490
|
assert_equal(monthly_mults, freezer.monthly_multipliers)
|
|
2501
|
-
assert_equal(isdefaulted, freezer.monthly_multipliers_isdefaulted)
|
|
2502
2491
|
end
|
|
2503
2492
|
end
|
|
2504
2493
|
end
|
|
2505
2494
|
|
|
2506
|
-
def _test_default_cooking_range_values(hpxml,
|
|
2495
|
+
def _test_default_cooking_range_values(hpxml, location, is_induction, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
|
2507
2496
|
cooking_range = hpxml.cooking_ranges[0]
|
|
2508
2497
|
|
|
2509
2498
|
assert_equal(location, cooking_range.location)
|
|
2510
|
-
assert_equal(isdefaulted, cooking_range.location_isdefaulted)
|
|
2511
|
-
|
|
2512
2499
|
assert_equal(is_induction, cooking_range.is_induction)
|
|
2513
|
-
assert_equal(isdefaulted, cooking_range.is_induction_isdefaulted)
|
|
2514
|
-
|
|
2515
2500
|
assert_equal(usage_multiplier, cooking_range.usage_multiplier)
|
|
2516
|
-
assert_equal(isdefaulted, cooking_range.usage_multiplier_isdefaulted)
|
|
2517
|
-
|
|
2518
2501
|
if weekday_sch.nil?
|
|
2519
2502
|
assert_nil(cooking_range.weekday_fractions)
|
|
2520
2503
|
else
|
|
2521
2504
|
assert_equal(weekday_sch, cooking_range.weekday_fractions)
|
|
2522
|
-
assert_equal(isdefaulted, cooking_range.weekday_fractions_isdefaulted)
|
|
2523
2505
|
end
|
|
2524
|
-
|
|
2525
2506
|
if weekend_sch.nil?
|
|
2526
2507
|
assert_nil(cooking_range.weekend_fractions)
|
|
2527
2508
|
else
|
|
2528
2509
|
assert_equal(weekend_sch, cooking_range.weekend_fractions)
|
|
2529
|
-
assert_equal(isdefaulted, cooking_range.weekend_fractions_isdefaulted)
|
|
2530
2510
|
end
|
|
2531
|
-
|
|
2532
2511
|
if monthly_mults.nil?
|
|
2533
2512
|
assert_nil(cooking_range.monthly_multipliers)
|
|
2534
2513
|
else
|
|
2535
2514
|
assert_equal(monthly_mults, cooking_range.monthly_multipliers)
|
|
2536
|
-
assert_equal(isdefaulted, cooking_range.monthly_multipliers_isdefaulted)
|
|
2537
2515
|
end
|
|
2538
2516
|
end
|
|
2539
2517
|
|
|
2540
|
-
def _test_default_oven_values(hpxml,
|
|
2518
|
+
def _test_default_oven_values(hpxml, is_convection)
|
|
2541
2519
|
oven = hpxml.ovens[0]
|
|
2542
2520
|
|
|
2543
2521
|
assert_equal(is_convection, oven.is_convection)
|
|
2544
|
-
assert_equal(isdefaulted, oven.is_convection_isdefaulted)
|
|
2545
2522
|
end
|
|
2546
2523
|
|
|
2547
|
-
def _test_default_lighting_values(hpxml,
|
|
2524
|
+
def _test_default_lighting_values(hpxml, interior_usage_multiplier, garage_usage_multiplier, exterior_usage_multiplier, schedules = {})
|
|
2548
2525
|
assert_equal(interior_usage_multiplier, hpxml.lighting.interior_usage_multiplier)
|
|
2549
|
-
assert_equal(isdefaulted, hpxml.lighting.interior_usage_multiplier_isdefaulted)
|
|
2550
|
-
|
|
2551
2526
|
assert_equal(garage_usage_multiplier, hpxml.lighting.garage_usage_multiplier)
|
|
2552
|
-
assert_equal(isdefaulted, hpxml.lighting.garage_usage_multiplier_isdefaulted)
|
|
2553
|
-
|
|
2554
2527
|
assert_equal(exterior_usage_multiplier, hpxml.lighting.exterior_usage_multiplier)
|
|
2555
|
-
assert_equal(isdefaulted, hpxml.lighting.exterior_usage_multiplier_isdefaulted)
|
|
2556
|
-
|
|
2557
2528
|
if not schedules[:grg_wk_sch].nil?
|
|
2558
2529
|
assert_equal(schedules[:grg_wk_sch], hpxml.lighting.garage_weekday_fractions)
|
|
2559
|
-
assert_equal(isdefaulted, hpxml.lighting.garage_weekday_fractions_isdefaulted)
|
|
2560
2530
|
else
|
|
2561
2531
|
assert_nil(hpxml.lighting.garage_weekday_fractions)
|
|
2562
2532
|
end
|
|
2563
|
-
|
|
2564
2533
|
if not schedules[:grg_wknd_sch].nil?
|
|
2565
2534
|
assert_equal(schedules[:grg_wknd_sch], hpxml.lighting.garage_weekend_fractions)
|
|
2566
|
-
assert_equal(isdefaulted, hpxml.lighting.garage_weekend_fractions_isdefaulted)
|
|
2567
2535
|
else
|
|
2568
2536
|
assert_nil(hpxml.lighting.garage_weekend_fractions)
|
|
2569
2537
|
end
|
|
2570
|
-
|
|
2571
2538
|
if not schedules[:grg_month_mult].nil?
|
|
2572
2539
|
assert_equal(schedules[:grg_month_mult], hpxml.lighting.garage_monthly_multipliers)
|
|
2573
|
-
assert_equal(isdefaulted, hpxml.lighting.garage_monthly_multipliers_isdefaulted)
|
|
2574
2540
|
else
|
|
2575
2541
|
assert_nil(hpxml.lighting.garage_monthly_multipliers)
|
|
2576
2542
|
end
|
|
2577
|
-
|
|
2578
2543
|
if not schedules[:ext_wk_sch].nil?
|
|
2579
2544
|
assert_equal(schedules[:ext_wk_sch], hpxml.lighting.exterior_weekday_fractions)
|
|
2580
|
-
assert_equal(isdefaulted, hpxml.lighting.exterior_weekday_fractions_isdefaulted)
|
|
2581
2545
|
else
|
|
2582
2546
|
assert_nil(hpxml.lighting.exterior_weekday_fractions)
|
|
2583
2547
|
end
|
|
2584
|
-
|
|
2585
2548
|
if not schedules[:ext_wknd_sch].nil?
|
|
2586
2549
|
assert_equal(schedules[:ext_wknd_sch], hpxml.lighting.exterior_weekend_fractions)
|
|
2587
|
-
assert_equal(isdefaulted, hpxml.lighting.exterior_weekend_fractions_isdefaulted)
|
|
2588
2550
|
else
|
|
2589
2551
|
assert_nil(hpxml.lighting.exterior_weekday_fractions)
|
|
2590
2552
|
end
|
|
2591
|
-
|
|
2592
2553
|
if not schedules[:ext_month_mult].nil?
|
|
2593
2554
|
assert_equal(schedules[:ext_month_mult], hpxml.lighting.exterior_monthly_multipliers)
|
|
2594
|
-
assert_equal(isdefaulted, hpxml.lighting.exterior_monthly_multipliers_isdefaulted)
|
|
2595
2555
|
else
|
|
2596
2556
|
assert_nil(hpxml.lighting.exterior_monthly_multipliers)
|
|
2597
2557
|
end
|
|
2598
|
-
|
|
2599
2558
|
if not schedules[:hol_kwh_per_day].nil?
|
|
2600
2559
|
assert_equal(schedules[:hol_kwh_per_day], hpxml.lighting.holiday_kwh_per_day)
|
|
2601
|
-
assert_equal(isdefaulted, hpxml.lighting.holiday_kwh_per_day_isdefaulted)
|
|
2602
2560
|
else
|
|
2603
2561
|
assert_nil(hpxml.lighting.holiday_kwh_per_day)
|
|
2604
2562
|
end
|
|
2605
|
-
|
|
2606
2563
|
if not schedules[:hol_begin_month].nil?
|
|
2607
2564
|
assert_equal(schedules[:hol_begin_month], hpxml.lighting.holiday_period_begin_month)
|
|
2608
|
-
assert_equal(isdefaulted, hpxml.lighting.holiday_period_begin_month_isdefaulted)
|
|
2609
2565
|
else
|
|
2610
2566
|
assert_nil(hpxml.lighting.holiday_period_begin_month)
|
|
2611
2567
|
end
|
|
2612
|
-
|
|
2613
2568
|
if not schedules[:hol_begin_day].nil?
|
|
2614
2569
|
assert_equal(schedules[:hol_begin_day], hpxml.lighting.holiday_period_begin_day)
|
|
2615
|
-
assert_equal(isdefaulted, hpxml.lighting.holiday_period_begin_day_isdefaulted)
|
|
2616
2570
|
else
|
|
2617
2571
|
assert_nil(hpxml.lighting.holiday_period_begin_day)
|
|
2618
2572
|
end
|
|
2619
|
-
|
|
2620
2573
|
if not schedules[:hol_end_month].nil?
|
|
2621
2574
|
assert_equal(schedules[:hol_end_month], hpxml.lighting.holiday_period_end_month)
|
|
2622
|
-
assert_equal(isdefaulted, hpxml.lighting.holiday_period_end_month_isdefaulted)
|
|
2623
2575
|
else
|
|
2624
2576
|
assert_nil(hpxml.lighting.holiday_period_end_month)
|
|
2625
2577
|
end
|
|
2626
|
-
|
|
2627
2578
|
if not schedules[:hol_end_day].nil?
|
|
2628
2579
|
assert_equal(schedules[:hol_end_day], hpxml.lighting.holiday_period_end_day)
|
|
2629
|
-
assert_equal(isdefaulted, hpxml.lighting.holiday_period_end_day_isdefaulted)
|
|
2630
2580
|
else
|
|
2631
2581
|
assert_nil(hpxml.lighting.holiday_period_end_day)
|
|
2632
2582
|
end
|
|
2633
|
-
|
|
2634
2583
|
if not schedules[:hol_wk_sch].nil?
|
|
2635
2584
|
assert_equal(schedules[:hol_wk_sch], hpxml.lighting.holiday_weekday_fractions)
|
|
2636
|
-
assert_equal(isdefaulted, hpxml.lighting.holiday_weekday_fractions_isdefaulted)
|
|
2637
2585
|
else
|
|
2638
2586
|
assert_nil(hpxml.lighting.holiday_weekday_fractions)
|
|
2639
2587
|
end
|
|
2640
|
-
|
|
2641
2588
|
if not schedules[:hol_wknd_sch].nil?
|
|
2642
2589
|
assert_equal(schedules[:hol_wknd_sch], hpxml.lighting.holiday_weekend_fractions)
|
|
2643
|
-
assert_equal(isdefaulted, hpxml.lighting.holiday_weekend_fractions_isdefaulted)
|
|
2644
2590
|
else
|
|
2645
2591
|
assert_nil(hpxml.lighting.holiday_weekend_fractions)
|
|
2646
2592
|
end
|
|
2647
2593
|
end
|
|
2648
2594
|
|
|
2649
|
-
def _test_default_ceiling_fan_values(hpxml,
|
|
2595
|
+
def _test_default_ceiling_fan_values(hpxml, quantity, efficiency)
|
|
2650
2596
|
ceiling_fan = hpxml.ceiling_fans[0]
|
|
2651
2597
|
|
|
2652
2598
|
assert_equal(quantity, ceiling_fan.quantity)
|
|
2653
|
-
assert_equal(isdefaulted, ceiling_fan.quantity_isdefaulted)
|
|
2654
|
-
|
|
2655
2599
|
assert_in_epsilon(efficiency, ceiling_fan.efficiency, 0.01)
|
|
2656
|
-
assert_equal(isdefaulted, ceiling_fan.efficiency_isdefaulted)
|
|
2657
2600
|
end
|
|
2658
2601
|
|
|
2659
|
-
def _test_default_pool_heater_values(hpxml,
|
|
2602
|
+
def _test_default_pool_heater_values(hpxml, load_units, load_value, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
|
2660
2603
|
pool = hpxml.pools[0]
|
|
2661
2604
|
|
|
2662
2605
|
if load_units.nil?
|
|
@@ -2664,63 +2607,44 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
2664
2607
|
else
|
|
2665
2608
|
assert_equal(load_units, pool.heater_load_units)
|
|
2666
2609
|
end
|
|
2667
|
-
|
|
2668
2610
|
if load_value.nil?
|
|
2669
2611
|
assert_nil(pool.heater_load_value)
|
|
2670
2612
|
else
|
|
2671
2613
|
assert_in_epsilon(load_value, pool.heater_load_value, 0.01)
|
|
2672
|
-
assert_equal(isdefaulted, pool.heater_load_value_isdefaulted)
|
|
2673
2614
|
end
|
|
2674
|
-
|
|
2675
2615
|
if usage_multiplier.nil?
|
|
2676
2616
|
assert_nil(pool.heater_usage_multiplier)
|
|
2677
2617
|
else
|
|
2678
2618
|
assert_equal(usage_multiplier, pool.heater_usage_multiplier)
|
|
2679
|
-
assert_equal(isdefaulted, pool.heater_usage_multiplier_isdefaulted)
|
|
2680
2619
|
end
|
|
2681
|
-
|
|
2682
2620
|
if weekday_sch.nil?
|
|
2683
2621
|
assert_nil(pool.heater_weekday_fractions)
|
|
2684
2622
|
else
|
|
2685
2623
|
assert_equal(weekday_sch, pool.heater_weekday_fractions)
|
|
2686
|
-
assert_equal(isdefaulted, pool.heater_weekday_fractions_isdefaulted)
|
|
2687
2624
|
end
|
|
2688
|
-
|
|
2689
2625
|
if weekend_sch.nil?
|
|
2690
2626
|
assert_nil(pool.heater_weekend_fractions)
|
|
2691
2627
|
else
|
|
2692
2628
|
assert_equal(weekend_sch, pool.heater_weekend_fractions)
|
|
2693
|
-
assert_equal(isdefaulted, pool.heater_weekend_fractions_isdefaulted)
|
|
2694
2629
|
end
|
|
2695
|
-
|
|
2696
2630
|
if monthly_mults.nil?
|
|
2697
2631
|
assert_nil(pool.heater_monthly_multipliers)
|
|
2698
2632
|
else
|
|
2699
2633
|
assert_equal(monthly_mults, pool.heater_monthly_multipliers)
|
|
2700
|
-
assert_equal(isdefaulted, pool.heater_monthly_multipliers_isdefaulted)
|
|
2701
2634
|
end
|
|
2702
2635
|
end
|
|
2703
2636
|
|
|
2704
|
-
def _test_default_pool_pump_values(hpxml,
|
|
2637
|
+
def _test_default_pool_pump_values(hpxml, kWh_per_year, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
|
2705
2638
|
pool = hpxml.pools[0]
|
|
2706
2639
|
|
|
2707
2640
|
assert_in_epsilon(kWh_per_year, pool.pump_kwh_per_year, 0.01)
|
|
2708
|
-
assert_equal(isdefaulted, pool.pump_kwh_per_year_isdefaulted)
|
|
2709
|
-
|
|
2710
2641
|
assert_equal(usage_multiplier, pool.pump_usage_multiplier)
|
|
2711
|
-
assert_equal(isdefaulted, pool.pump_usage_multiplier_isdefaulted)
|
|
2712
|
-
|
|
2713
2642
|
assert_equal(weekday_sch, pool.pump_weekday_fractions)
|
|
2714
|
-
assert_equal(isdefaulted, pool.pump_weekday_fractions_isdefaulted)
|
|
2715
|
-
|
|
2716
2643
|
assert_equal(weekend_sch, pool.pump_weekend_fractions)
|
|
2717
|
-
assert_equal(isdefaulted, pool.pump_weekend_fractions_isdefaulted)
|
|
2718
|
-
|
|
2719
2644
|
assert_equal(monthly_mults, pool.pump_monthly_multipliers)
|
|
2720
|
-
assert_equal(isdefaulted, pool.pump_monthly_multipliers_isdefaulted)
|
|
2721
2645
|
end
|
|
2722
2646
|
|
|
2723
|
-
def _test_default_hot_tub_heater_values(hpxml,
|
|
2647
|
+
def _test_default_hot_tub_heater_values(hpxml, load_units, load_value, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
|
2724
2648
|
hot_tub = hpxml.hot_tubs[0]
|
|
2725
2649
|
|
|
2726
2650
|
if load_units.nil?
|
|
@@ -2728,110 +2652,65 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
|
2728
2652
|
else
|
|
2729
2653
|
assert_equal(load_units, hot_tub.heater_load_units)
|
|
2730
2654
|
end
|
|
2731
|
-
|
|
2732
2655
|
if load_value.nil?
|
|
2733
2656
|
assert_nil(hot_tub.heater_load_value)
|
|
2734
2657
|
else
|
|
2735
2658
|
assert_in_epsilon(load_value, hot_tub.heater_load_value, 0.01)
|
|
2736
|
-
assert_equal(isdefaulted, hot_tub.heater_load_value_isdefaulted)
|
|
2737
2659
|
end
|
|
2738
|
-
|
|
2739
2660
|
if usage_multiplier.nil?
|
|
2740
2661
|
assert_nil(hot_tub.heater_usage_multiplier)
|
|
2741
2662
|
else
|
|
2742
2663
|
assert_equal(usage_multiplier, hot_tub.heater_usage_multiplier)
|
|
2743
|
-
assert_equal(isdefaulted, hot_tub.heater_usage_multiplier_isdefaulted)
|
|
2744
2664
|
end
|
|
2745
|
-
|
|
2746
2665
|
if weekday_sch.nil?
|
|
2747
2666
|
assert_nil(hot_tub.heater_weekday_fractions)
|
|
2748
2667
|
else
|
|
2749
2668
|
assert_equal(weekday_sch, hot_tub.heater_weekday_fractions)
|
|
2750
|
-
assert_equal(isdefaulted, hot_tub.heater_weekday_fractions_isdefaulted)
|
|
2751
2669
|
end
|
|
2752
|
-
|
|
2753
2670
|
if weekend_sch.nil?
|
|
2754
2671
|
assert_nil(hot_tub.heater_weekend_fractions)
|
|
2755
2672
|
else
|
|
2756
2673
|
assert_equal(weekend_sch, hot_tub.heater_weekend_fractions)
|
|
2757
|
-
assert_equal(isdefaulted, hot_tub.heater_weekend_fractions_isdefaulted)
|
|
2758
2674
|
end
|
|
2759
|
-
|
|
2760
2675
|
if monthly_mults.nil?
|
|
2761
2676
|
assert_nil(hot_tub.heater_monthly_multipliers)
|
|
2762
2677
|
else
|
|
2763
2678
|
assert_equal(monthly_mults, hot_tub.heater_monthly_multipliers)
|
|
2764
|
-
assert_equal(isdefaulted, hot_tub.heater_monthly_multipliers_isdefaulted)
|
|
2765
2679
|
end
|
|
2766
2680
|
end
|
|
2767
2681
|
|
|
2768
|
-
def _test_default_hot_tub_pump_values(hpxml,
|
|
2682
|
+
def _test_default_hot_tub_pump_values(hpxml, kWh_per_year, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
|
2769
2683
|
hot_tub = hpxml.hot_tubs[0]
|
|
2770
2684
|
|
|
2771
2685
|
assert_in_epsilon(kWh_per_year, hot_tub.pump_kwh_per_year, 0.01)
|
|
2772
|
-
assert_equal(isdefaulted, hot_tub.pump_kwh_per_year_isdefaulted)
|
|
2773
|
-
|
|
2774
2686
|
assert_equal(usage_multiplier, hot_tub.pump_usage_multiplier)
|
|
2775
|
-
assert_equal(isdefaulted, hot_tub.pump_usage_multiplier_isdefaulted)
|
|
2776
|
-
|
|
2777
2687
|
assert_equal(weekday_sch, hot_tub.pump_weekday_fractions)
|
|
2778
|
-
assert_equal(isdefaulted, hot_tub.pump_weekday_fractions_isdefaulted)
|
|
2779
|
-
|
|
2780
2688
|
assert_equal(weekend_sch, hot_tub.pump_weekend_fractions)
|
|
2781
|
-
assert_equal(isdefaulted, hot_tub.pump_weekend_fractions_isdefaulted)
|
|
2782
|
-
|
|
2783
2689
|
assert_equal(monthly_mults, hot_tub.pump_monthly_multipliers)
|
|
2784
|
-
assert_equal(isdefaulted, hot_tub.pump_monthly_multipliers_isdefaulted)
|
|
2785
2690
|
end
|
|
2786
2691
|
|
|
2787
|
-
def _test_default_plug_load_values(hpxml,
|
|
2692
|
+
def _test_default_plug_load_values(hpxml, load_type, kWh_per_year, frac_sensible, frac_latent, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
|
2788
2693
|
pl = hpxml.plug_loads.select { |pl| pl.plug_load_type == load_type }[0]
|
|
2789
2694
|
|
|
2790
2695
|
assert_in_epsilon(kWh_per_year, pl.kWh_per_year, 0.01)
|
|
2791
|
-
assert_equal(isdefaulted, pl.kWh_per_year_isdefaulted)
|
|
2792
|
-
|
|
2793
2696
|
assert_equal(usage_multiplier, pl.usage_multiplier)
|
|
2794
|
-
assert_equal(isdefaulted, pl.usage_multiplier_isdefaulted)
|
|
2795
|
-
|
|
2796
2697
|
assert_in_epsilon(frac_sensible, pl.frac_sensible, 0.01)
|
|
2797
|
-
assert_equal(isdefaulted, pl.frac_sensible_isdefaulted)
|
|
2798
|
-
|
|
2799
2698
|
assert_in_epsilon(frac_latent, pl.frac_latent, 0.01)
|
|
2800
|
-
assert_equal(isdefaulted, pl.frac_latent_isdefaulted)
|
|
2801
|
-
|
|
2802
2699
|
assert_equal(weekday_sch, pl.weekday_fractions)
|
|
2803
|
-
assert_equal(isdefaulted, pl.weekday_fractions_isdefaulted)
|
|
2804
|
-
|
|
2805
2700
|
assert_equal(weekend_sch, pl.weekend_fractions)
|
|
2806
|
-
assert_equal(isdefaulted, pl.weekend_fractions_isdefaulted)
|
|
2807
|
-
|
|
2808
2701
|
assert_equal(monthly_mults, pl.monthly_multipliers)
|
|
2809
|
-
assert_equal(isdefaulted, pl.monthly_multipliers_isdefaulted)
|
|
2810
2702
|
end
|
|
2811
2703
|
|
|
2812
|
-
def _test_default_fuel_load_values(hpxml,
|
|
2704
|
+
def _test_default_fuel_load_values(hpxml, load_type, therm_per_year, frac_sensible, frac_latent, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
|
2813
2705
|
fl = hpxml.fuel_loads.select { |fl| fl.fuel_load_type == load_type }[0]
|
|
2814
2706
|
|
|
2815
2707
|
assert_in_epsilon(therm_per_year, fl.therm_per_year, 0.01)
|
|
2816
|
-
assert_equal(isdefaulted, fl.therm_per_year_isdefaulted)
|
|
2817
|
-
|
|
2818
2708
|
assert_equal(usage_multiplier, fl.usage_multiplier)
|
|
2819
|
-
assert_equal(isdefaulted, fl.usage_multiplier_isdefaulted)
|
|
2820
|
-
|
|
2821
2709
|
assert_in_epsilon(frac_sensible, fl.frac_sensible, 0.01)
|
|
2822
|
-
assert_equal(isdefaulted, fl.frac_sensible_isdefaulted)
|
|
2823
|
-
|
|
2824
2710
|
assert_in_epsilon(frac_latent, fl.frac_latent, 0.01)
|
|
2825
|
-
assert_equal(isdefaulted, fl.frac_latent_isdefaulted)
|
|
2826
|
-
|
|
2827
2711
|
assert_equal(weekday_sch, fl.weekday_fractions)
|
|
2828
|
-
assert_equal(isdefaulted, fl.weekday_fractions_isdefaulted)
|
|
2829
|
-
|
|
2830
2712
|
assert_equal(weekend_sch, fl.weekend_fractions)
|
|
2831
|
-
assert_equal(isdefaulted, fl.weekend_fractions_isdefaulted)
|
|
2832
|
-
|
|
2833
2713
|
assert_equal(monthly_mults, fl.monthly_multipliers)
|
|
2834
|
-
assert_equal(isdefaulted, fl.monthly_multipliers_isdefaulted)
|
|
2835
2714
|
end
|
|
2836
2715
|
|
|
2837
2716
|
def _create_hpxml(hpxml_name)
|