urbanopt-cli 0.9.2 → 0.10.0
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/.github/workflows/{nightly_build.yml → nightly_ci_build.yml} +6 -5
- data/CHANGELOG.md +16 -2
- data/CMakeLists.txt +7 -7
- data/Gemfile +8 -7
- data/LICENSE.md +18 -15
- data/README.md +2 -1
- data/Rakefile +2 -37
- data/example_files/Gemfile +10 -8
- data/example_files/mappers/Baseline.rb +170 -191
- data/example_files/mappers/ChilledWaterStorage.rb +8 -30
- data/example_files/mappers/ClassProject.rb +2 -27
- data/example_files/mappers/CreateBar.rb +2 -28
- data/example_files/mappers/EvCharging.rb +2 -27
- data/example_files/mappers/FlexibleHotWater.rb +2 -27
- data/example_files/mappers/Floorspace.rb +2 -27
- data/example_files/mappers/HighEfficiency.rb +2 -27
- data/example_files/mappers/HighEfficiencyCreateBar.rb +2 -27
- data/example_files/mappers/HighEfficiencyFloorspace.rb +2 -27
- data/example_files/mappers/PeakHoursMelsShedding.rb +4 -27
- data/example_files/mappers/PeakHoursThermostatAdjust.rb +4 -27
- data/example_files/mappers/ThermalStorage.rb +2 -28
- data/example_files/measures/BuildResidentialModel/measure.rb +30 -60
- data/example_files/measures/BuildResidentialModel/measure.xml +253 -84
- data/example_files/measures/BuildResidentialModel/resources/util.rb +45 -45
- data/example_files/python_deps/dependencies.json +3 -3
- data/example_files/resources/hpxml-measures/.github/pull_request_template.md +1 -1
- data/example_files/resources/hpxml-measures/.github/workflows/config.yml +28 -19
- data/example_files/resources/hpxml-measures/.gitignore +0 -997
- data/example_files/resources/hpxml-measures/.readthedocs.yml +9 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +476 -230
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +244 -75
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +42 -15
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +24 -9
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/measure.rb +11 -33
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/measure.xml +23 -50
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/README.md +2 -2
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/constants.rb +119 -0
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/schedules.rb +67 -290
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/schedules_config.md +6 -5
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/tests/build_residential_schedule_file_test.rb +78 -349
- data/example_files/resources/hpxml-measures/Changelog.md +80 -10
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +212 -144
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +164 -170
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +238 -167
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/battery.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +12 -4
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +36 -6
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data/unavailable_periods.csv +33 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/energyplus.rb +1 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +9 -7
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hotwater_appliances.rb +79 -61
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +387 -124
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +427 -196
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXML.xsd +11515 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/README.md +1 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml +224 -85
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +334 -319
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +572 -838
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/lighting.rb +162 -68
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/location.rb +4 -20
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/meta_measure.rb +12 -10
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +34 -37
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/output.rb +8 -101
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/psychrometrics.rb +31 -40
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/pv.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-non-stochastic.csv +8761 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic-10-mins.csv +52561 -52561
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic.csv +8761 -8761
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +384 -155
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/unit_conversions.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/util.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +68 -90
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/weather.rb +34 -223
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlvalidator.rb +16 -4
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +94 -40
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +765 -302
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_enclosure.rb +119 -69
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +8 -8
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +51 -11
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb +196 -9
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +36 -13
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_miscloads.rb +3 -3
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_schedules.rb +571 -61
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +190 -81
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +11 -11
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_weather.rb +188 -50
- data/example_files/resources/hpxml-measures/README.md +3 -3
- data/example_files/resources/hpxml-measures/ReportSimulationOutput/measure.rb +659 -815
- data/example_files/resources/hpxml-measures/ReportSimulationOutput/measure.xml +301 -1112
- data/example_files/resources/hpxml-measures/ReportSimulationOutput/tests/output_report_test.rb +605 -350
- data/example_files/resources/hpxml-measures/ReportUtilityBills/measure.rb +18 -14
- data/example_files/resources/hpxml-measures/ReportUtilityBills/measure.xml +15 -15
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/utility_bills_test.rb +13 -3
- data/example_files/resources/hpxml-measures/docs/source/usage_instructions.rst +3 -3
- data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +894 -596
- data/example_files/resources/hpxml-measures/docs/source/workflow_outputs.rst +127 -76
- data/example_files/resources/hpxml-measures/tasks.rb +185 -2802
- data/example_files/resources/hpxml-measures/workflow/hpxml_inputs.json +3401 -0
- data/example_files/resources/hpxml-measures/workflow/real_homes/house001.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house002.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house003.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house004.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house005.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house006.xml +1 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house007.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house008.xml +1 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house009.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house010.xml +1 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house011.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house012.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house013.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house014.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house015.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house016.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house017.xml +17 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house018.xml +2 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house019.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house020.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house021.xml +4 -5
- data/example_files/resources/hpxml-measures/workflow/real_homes/house022.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house023.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house024.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house025.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house026.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house027.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house028.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house029.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house030.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house031.xml +4 -5
- data/example_files/resources/hpxml-measures/workflow/real_homes/house032.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house033.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house034.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house035.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house036.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house037.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house038.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house039.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house040.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house041.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house042.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house043.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house044.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house045.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house046.xml +1 -0
- data/example_files/resources/hpxml-measures/workflow/real_homes/house047.xml +1 -0
- data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +12 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-portable.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-whole-home.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-multiple.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil-location-miami-fl.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane-location-portland-or.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +9 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +9 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-battery-scheduled.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-battery.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-bldgtype-single-family-attached-2stories.xml → base-bldgtype-attached-2stories.xml} +610 -639
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-bldgtype-single-family-attached-atticroof-cathedral.xml → base-bldgtype-attached-atticroof-cathedral.xml} +558 -587
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-attached-infil-compartmentalization-test.xml +611 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-bldgtype-single-family-attached.xml → base-bldgtype-attached.xml} +610 -639
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-heated-space.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-infil-compartmentalization-test.xml +462 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-bldgtype-multifamily-calctype-operational.xml → base-bldgtype-multifamily-residents-1.xml} +453 -480
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-baseboard.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-baseboard.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +11 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room-multiple-water-heaters.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-multiple.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +15 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-elec-uef.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef-fhr.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-detailed-schedules.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml +11 -43
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-uef.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-model-type-stratified-detailed-occupancy-stochastic.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-model-type-stratified.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +19 -25
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-ceilingtypes.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-floortypes.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +18 -24
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ela.xml +549 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +13 -43
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-cfm.xml +552 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-orientations.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +17 -47
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-physical-properties.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-shading.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-storms.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-thermal-mass.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-natural-ventilation-availability.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-physical-properties.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-shading-seasons.xml +559 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-shading.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-storms.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-basement-garage.xml +19 -25
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-wall-insulation.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-crawlspace.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-autosized-backup.xml +557 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml → base-hvac-air-to-air-heat-pump-1-speed-heating-capacity-17f.xml} +552 -583
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-air-to-air-heat-pump-1-speed-backup-lockout-temperature.xml → base-hvac-air-to-air-heat-pump-1-speed-lockout-temperatures.xml} +562 -586
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-seer2-hspf2.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-hvac-seasons.xml +587 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-switchover-temperature.xml +17 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-furnace.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-heating-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-acca.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-hers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-maxload-miami-fl.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-maxload.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-acca.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-hers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-maxload.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-boiler.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-furnace.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-acca.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-hers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-maxload.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-central-ac-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-plus-air-to-air-heat-pump-heating.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-acca.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-hers.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-maxload.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted-backup-hardsized.xml +553 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-elec-resistance-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-evap-cooler-furnace-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-floor-furnace-propane-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-room-ac.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-acca.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-hers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-maxload.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-cooling-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-heating-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-acca.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-hers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-maxload.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ductless-backup-baseboard.xml +519 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ductless-backup-stove.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ptac-with-heating.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ptac.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-acca.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-hers.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-maxload.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-heating.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-acca.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-hers.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-maxload.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-sizing-controls.xml +566 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-stove-oil-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-wall-furnace-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only-pilot.xml +513 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed-seer2.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-crankcase-heater-40w.xml +556 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-lockout-temperatures.xml +560 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +17 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +17 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +17 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +17 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-area-fractions.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-area-multipliers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-buried.xml +555 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-effective-rvalue.xml +553 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-cfm50.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fixed-heater-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only-pilot-light.xml +506 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-coal-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only-pilot.xml +542 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-cooling-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-heating-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-1-speed.xml +14 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-2-speed.xml +14 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-var-speed.xml +14 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-ground-to-air-heat-pump.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-mini-split-air-conditioner-only-ducted.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-mini-split-heat-pump-ducted.xml +14 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-backup-baseboard.xml +525 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-backup-furnace.xml +564 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-backup-stove.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-heating-capacity-17f.xml +506 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-portable-heater-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac-with-heating-electricity.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac-with-heating-natural-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-pthp-heating-capacity-17f.xml +513 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-pthp.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-ceer.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-with-heating.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-with-reverse-cycle.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-seasons.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints-daily-schedules.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints-daily-setbacks.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-holiday.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-kwh-per-year.xml +529 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-mixed.xml +537 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none-ceiling-fans.xml +516 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +1 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-capetown-zaf.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-helena-mt.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-honolulu-hi.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-phoenix-az.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-portland-or.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +12 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-airflow-fraction-zero.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-supplemental-fan-exhaust.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-supplemental-fan-supply.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +14 -44
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-additional-properties.xml +10 -38
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv-detailed-only.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv-mixed.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +14 -37
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-emissions.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators-battery-scheduled.xml +12 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators-battery.xml +12 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +12 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-ground-conductivity.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +10 -38
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +10 -38
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading-bldgtype-multifamily.xml +509 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shielding-of-home.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +10 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-multiple-buildings.xml +30 -138
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-ah.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-garage.xml +24 -26
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-round-trip-efficiency.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-scheduled.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators-battery-scheduled.xml +18 -44
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators-battery.xml +18 -44
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators.xml +18 -44
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-residents-0-runperiod-1-month.xml +560 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-residents-0.xml +556 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-calctype-operational-misc-loads-large-uncommon.xml → base-residents-1-misc-loads-large-uncommon.xml} +616 -644
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-calctype-operational-misc-loads-large-uncommon2.xml → base-residents-1-misc-loads-large-uncommon2.xml} +616 -644
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-calctype-operational.xml → base-residents-1.xml} +547 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-calctype-operational-misc-defaults.xml → base-residents-5.xml} +515 -539
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-all-10-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-10-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-power-outage.xml +565 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-schedules-detailed-occupancy-smooth.xml → base-schedules-detailed-occupancy-stochastic-vacancy-year-round.xml} +563 -583
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-vacancy.xml +21 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints-daily-schedules.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints-daily-setbacks.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-power-outage-natvent-available.xml +565 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-power-outage-natvent-unavailable.xml +565 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-power-outage.xml +620 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-vacancy-year-round.xml +619 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-vacancy.xml +619 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple.xml +10 -38
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-temperature-capacitance-multiplier.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins-occupancy-stochastic-10-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins-occupancy-stochastic-60-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-30-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +10 -37
- data/example_files/resources/hpxml-measures/workflow/template-build-and-run-hpxml-with-stochastic-occupancy.osw +16 -4
- data/example_files/resources/hpxml-measures/workflow/template-run-hpxml-with-stochastic-occupancy-subset.osw +16 -3
- data/example_files/resources/hpxml-measures/workflow/template-run-hpxml-with-stochastic-occupancy.osw +16 -3
- data/example_files/resources/hpxml-measures/workflow/template-run-hpxml.osw +16 -2
- data/example_files/resources/hpxml-measures/workflow/tests/ACCA_Examples/Long_Residence.xml +386 -0
- data/example_files/resources/hpxml-measures/workflow/tests/ACCA_Examples/Vatilo_Residence.xml +381 -0
- data/example_files/resources/hpxml-measures/workflow/tests/ACCA_Examples/Victor_Residence.xml +370 -0
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AC.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AC.xml +2 -12
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AL.xml +2 -12
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L302XC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L304XC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L322XC.xml +6 -9
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L324XC.xml +6 -9
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results.csv +475 -444
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_bills.csv +475 -444
- data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +177 -112
- data/example_files/resources/meta_measure.rb +2 -27
- data/example_files/xml_building/17/README.md +3 -3
- data/lib/uo_cli/version.rb +3 -38
- data/lib/uo_cli.rb +3 -38
- data/uo_cli.gemspec +6 -7
- metadata +70 -51
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/schedules_config.json +0 -388
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXMLBaseElements.xsd +0 -6136
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXMLDataTypes.xsd +0 -4846
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-smooth.csv +0 -8761
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic-vacancy.csv +0 -8761
- data/example_files/resources/hpxml-measures/weather/USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_CO_Colorado.Springs-Peterson.Field.724660_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_CO_Denver.Intl.AP.725650_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_DE_Wilmington-New.Castle.County.AP.724089_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_FL_Miami.Intl.AP.722020_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_HI_Honolulu.Intl.AP.911820_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_MD_Baltimore-Washington.Intl.AP.724060_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_MN_Duluth.Intl.AP.727450_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_MT_Helena.Rgnl.AP.727720_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_NC_Charlotte-Douglas.Intl.AP.723140_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_NJ_Cape.May.County.AP.745966_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_NV_Las.Vegas-McCarran.Intl.AP.723860_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_OR_Portland.Intl.AP.726980_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_TX_Dallas-Fort.Worth.Intl.AP.722590_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/US_CO_Boulder_AMY_2012-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/ZAF_Cape.Town.688160_IWEC-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +0 -2508
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces2.xml +0 -2508
@@ -47,13 +47,25 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
47
47
|
hpxml.header.allow_increased_fixed_capacities = true
|
48
48
|
hpxml.header.state_code = 'CA'
|
49
49
|
hpxml.header.time_zone_utc_offset = -8
|
50
|
-
hpxml.header.occupancy_calculation_type = HPXML::OccupancyCalculationTypeOperational
|
51
50
|
hpxml.header.temperature_capacitance_multiplier = 1.5
|
52
51
|
hpxml.header.natvent_days_per_week = 7
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
52
|
+
hpxml.header.unavailable_periods.add(column_name: 'Power Outage', begin_month: 1, begin_day: 1, begin_hour: 3, end_month: 12, end_day: 31, end_hour: 4, natvent_availability: HPXML::ScheduleUnavailable)
|
53
|
+
hpxml.header.shading_summer_begin_month = 2
|
54
|
+
hpxml.header.shading_summer_begin_day = 3
|
55
|
+
hpxml.header.shading_summer_end_month = 4
|
56
|
+
hpxml.header.shading_summer_end_day = 5
|
57
|
+
hpxml.header.manualj_heating_design_temp = 0.0
|
58
|
+
hpxml.header.manualj_cooling_design_temp = 100.0
|
59
|
+
hpxml.header.manualj_heating_setpoint = 68.0
|
60
|
+
hpxml.header.manualj_cooling_setpoint = 78.0
|
61
|
+
hpxml.header.manualj_humidity_setpoint = 0.44
|
62
|
+
hpxml.header.manualj_internal_loads_sensible = 1600.0
|
63
|
+
hpxml.header.manualj_internal_loads_latent = 60.0
|
64
|
+
hpxml.header.manualj_num_occupants = 8
|
65
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
66
|
+
hpxml_default = _test_measure()
|
67
|
+
_test_default_header_values(hpxml_default, 30, 2, 2, 11, 11, 2009, false, 3, 3, 10, 10, HPXML::HeatPumpSizingMaxLoad, true, 'CA',
|
68
|
+
-8, 1.5, 7, 3, 4, HPXML::ScheduleUnavailable, 2, 3, 4, 5, 0.0, 100.0, 68.0, 78.0, 0.44, 1600.0, 60.0, 8)
|
57
69
|
|
58
70
|
# Test defaults - DST not in weather file
|
59
71
|
hpxml.header.timestep = nil
|
@@ -71,13 +83,27 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
71
83
|
hpxml.header.allow_increased_fixed_capacities = nil
|
72
84
|
hpxml.header.state_code = nil
|
73
85
|
hpxml.header.time_zone_utc_offset = nil
|
74
|
-
hpxml.header.occupancy_calculation_type = nil
|
75
86
|
hpxml.header.temperature_capacitance_multiplier = nil
|
76
87
|
hpxml.header.natvent_days_per_week = nil
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
88
|
+
hpxml.header.unavailable_periods[-1].begin_hour = nil
|
89
|
+
hpxml.header.unavailable_periods[-1].end_hour = nil
|
90
|
+
hpxml.header.unavailable_periods[-1].natvent_availability = nil
|
91
|
+
hpxml.header.shading_summer_begin_month = nil
|
92
|
+
hpxml.header.shading_summer_begin_day = nil
|
93
|
+
hpxml.header.shading_summer_end_month = nil
|
94
|
+
hpxml.header.shading_summer_end_day = nil
|
95
|
+
hpxml.header.manualj_heating_design_temp = nil
|
96
|
+
hpxml.header.manualj_cooling_design_temp = nil
|
97
|
+
hpxml.header.manualj_heating_setpoint = nil
|
98
|
+
hpxml.header.manualj_cooling_setpoint = nil
|
99
|
+
hpxml.header.manualj_humidity_setpoint = nil
|
100
|
+
hpxml.header.manualj_internal_loads_sensible = nil
|
101
|
+
hpxml.header.manualj_internal_loads_latent = nil
|
102
|
+
hpxml.header.manualj_num_occupants = nil
|
103
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
104
|
+
hpxml_default = _test_measure()
|
105
|
+
_test_default_header_values(hpxml_default, 60, 1, 1, 12, 31, 2007, true, 3, 12, 11, 5, HPXML::HeatPumpSizingHERS, false, 'CO',
|
106
|
+
-7, 1.0, 3, 0, 24, HPXML::ScheduleRegular, 5, 1, 10, 31, 6.8, 91.8, 70.0, 75.0, 0.5, 2400.0, 0.0, 4)
|
81
107
|
|
82
108
|
# Test defaults - DST in weather file
|
83
109
|
hpxml = _create_hpxml('base-location-AMY-2012.xml')
|
@@ -96,21 +122,24 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
96
122
|
hpxml.header.allow_increased_fixed_capacities = nil
|
97
123
|
hpxml.header.state_code = nil
|
98
124
|
hpxml.header.time_zone_utc_offset = nil
|
99
|
-
hpxml.header.occupancy_calculation_type = nil
|
100
125
|
hpxml.header.temperature_capacitance_multiplier = nil
|
126
|
+
hpxml.header.shading_summer_begin_month = nil
|
127
|
+
hpxml.header.shading_summer_begin_day = nil
|
128
|
+
hpxml.header.shading_summer_end_month = nil
|
129
|
+
hpxml.header.shading_summer_end_day = nil
|
101
130
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
102
131
|
hpxml_default = _test_measure()
|
103
|
-
_test_default_header_values(hpxml_default, 60, 1, 1, 12, 31, 2012, true, 3, 11, 11, 4, nil,
|
104
|
-
|
132
|
+
_test_default_header_values(hpxml_default, 60, 1, 1, 12, 31, 2012, true, 3, 11, 11, 4, nil, false, 'CO',
|
133
|
+
-7, 1.0, 3, nil, nil, nil, 5, 1, 9, 30, 10.2, 91.4, 70.0, 75.0, 0.5, 2400.0, 0.0, 4)
|
105
134
|
|
106
135
|
# Test defaults - calendar year override by AMY year
|
107
136
|
hpxml.header.sim_calendar_year = 2020
|
108
137
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
109
138
|
hpxml_default = _test_measure()
|
110
|
-
_test_default_header_values(hpxml_default, 60, 1, 1, 12, 31, 2012, true, 3, 11, 11, 4, nil,
|
111
|
-
|
139
|
+
_test_default_header_values(hpxml_default, 60, 1, 1, 12, 31, 2012, true, 3, 11, 11, 4, nil, false, 'CO',
|
140
|
+
-7, 1.0, 3, nil, nil, nil, 5, 1, 9, 30, 10.2, 91.4, 70.0, 75.0, 0.5, 2400.0, 0.0, 4)
|
112
141
|
|
113
|
-
# Test defaults - invalid state code
|
142
|
+
# Test defaults - southern hemisphere, invalid state code
|
114
143
|
hpxml = _create_hpxml('base-location-capetown-zaf.xml')
|
115
144
|
hpxml.header.timestep = nil
|
116
145
|
hpxml.header.sim_begin_month = nil
|
@@ -127,12 +156,15 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
127
156
|
hpxml.header.allow_increased_fixed_capacities = nil
|
128
157
|
hpxml.header.state_code = nil
|
129
158
|
hpxml.header.time_zone_utc_offset = nil
|
130
|
-
hpxml.header.occupancy_calculation_type = nil
|
131
159
|
hpxml.header.temperature_capacitance_multiplier = nil
|
160
|
+
hpxml.header.shading_summer_begin_month = nil
|
161
|
+
hpxml.header.shading_summer_begin_day = nil
|
162
|
+
hpxml.header.shading_summer_end_month = nil
|
163
|
+
hpxml.header.shading_summer_end_day = nil
|
132
164
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
133
165
|
hpxml_default = _test_measure()
|
134
|
-
_test_default_header_values(hpxml_default, 60, 1, 1, 12, 31, 2007, true, 3, 12, 11, 5, nil,
|
135
|
-
|
166
|
+
_test_default_header_values(hpxml_default, 60, 1, 1, 12, 31, 2007, true, 3, 12, 11, 5, nil, false, nil,
|
167
|
+
2, 1.0, 3, nil, nil, nil, 12, 1, 4, 30, 41.0, 84.4, 70.0, 75.0, 0.5, 2400.0, 0.0, 4)
|
136
168
|
end
|
137
169
|
|
138
170
|
def test_emissions_factors
|
@@ -329,77 +361,74 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
329
361
|
def test_occupancy
|
330
362
|
# Test inputs not overridden by defaults
|
331
363
|
hpxml = _create_hpxml('base.xml')
|
332
|
-
hpxml.building_occupancy.number_of_residents = 1
|
333
364
|
hpxml.building_occupancy.weekday_fractions = ConstantDaySchedule
|
334
365
|
hpxml.building_occupancy.weekend_fractions = ConstantDaySchedule
|
335
366
|
hpxml.building_occupancy.monthly_multipliers = ConstantMonthSchedule
|
336
367
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
337
368
|
hpxml_default = _test_measure()
|
338
|
-
_test_default_occupancy_values(hpxml_default,
|
369
|
+
_test_default_occupancy_values(hpxml_default, ConstantDaySchedule, ConstantDaySchedule, ConstantMonthSchedule)
|
339
370
|
|
340
371
|
# Test defaults
|
341
|
-
hpxml.building_occupancy.number_of_residents = nil
|
342
372
|
hpxml.building_occupancy.weekday_fractions = nil
|
343
373
|
hpxml.building_occupancy.weekend_fractions = nil
|
344
374
|
hpxml.building_occupancy.monthly_multipliers = nil
|
345
375
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
346
376
|
hpxml_default = _test_measure()
|
347
|
-
_test_default_occupancy_values(hpxml_default,
|
377
|
+
_test_default_occupancy_values(hpxml_default, Schedule.OccupantsWeekdayFractions, Schedule.OccupantsWeekendFractions, Schedule.OccupantsMonthlyMultipliers)
|
348
378
|
end
|
349
379
|
|
350
380
|
def test_building_construction
|
351
381
|
# Test inputs not overridden by defaults
|
352
|
-
hpxml = _create_hpxml('base
|
382
|
+
hpxml = _create_hpxml('base.xml')
|
353
383
|
hpxml.building_construction.number_of_bathrooms = 4
|
354
384
|
hpxml.building_construction.conditioned_building_volume = 20000
|
355
385
|
hpxml.building_construction.average_ceiling_height = 7
|
356
386
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
357
387
|
hpxml_default = _test_measure()
|
358
|
-
_test_default_building_construction_values(hpxml_default, 20000, 7,
|
388
|
+
_test_default_building_construction_values(hpxml_default, 20000, 7, 4)
|
359
389
|
|
360
390
|
# Test defaults
|
361
391
|
hpxml.building_construction.conditioned_building_volume = nil
|
362
392
|
hpxml.building_construction.average_ceiling_height = nil
|
363
|
-
hpxml.building_construction.has_flue_or_chimney = nil
|
364
393
|
hpxml.building_construction.number_of_bathrooms = nil
|
365
394
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
366
395
|
hpxml_default = _test_measure()
|
367
|
-
_test_default_building_construction_values(hpxml_default, 21600, 8,
|
396
|
+
_test_default_building_construction_values(hpxml_default, 21600, 8, 2)
|
368
397
|
|
369
398
|
# Test defaults w/ average ceiling height
|
370
399
|
hpxml.building_construction.conditioned_building_volume = nil
|
371
400
|
hpxml.building_construction.average_ceiling_height = 10
|
372
401
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
373
402
|
hpxml_default = _test_measure()
|
374
|
-
_test_default_building_construction_values(hpxml_default, 27000, 10,
|
403
|
+
_test_default_building_construction_values(hpxml_default, 27000, 10, 2)
|
375
404
|
|
376
405
|
# Test defaults w/ conditioned building volume
|
377
406
|
hpxml.building_construction.conditioned_building_volume = 20000
|
378
407
|
hpxml.building_construction.average_ceiling_height = nil
|
379
408
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
380
409
|
hpxml_default = _test_measure()
|
381
|
-
_test_default_building_construction_values(hpxml_default, 20000, 7.4,
|
410
|
+
_test_default_building_construction_values(hpxml_default, 20000, 7.4, 2)
|
382
411
|
|
383
412
|
# Test defaults w/ infiltration volume
|
384
413
|
hpxml.building_construction.conditioned_building_volume = nil
|
385
414
|
hpxml.air_infiltration_measurements[0].infiltration_volume = 25650
|
386
415
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
387
416
|
hpxml_default = _test_measure()
|
388
|
-
_test_default_building_construction_values(hpxml_default, 21600, 8,
|
417
|
+
_test_default_building_construction_values(hpxml_default, 21600, 8, 2)
|
389
418
|
|
390
419
|
# Test defaults w/ infiltration volume
|
391
420
|
hpxml.building_construction.conditioned_building_volume = nil
|
392
421
|
hpxml.air_infiltration_measurements[0].infiltration_volume = 18000
|
393
422
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
394
423
|
hpxml_default = _test_measure()
|
395
|
-
_test_default_building_construction_values(hpxml_default, 18000, 6.67,
|
424
|
+
_test_default_building_construction_values(hpxml_default, 18000, 6.67, 2)
|
396
425
|
|
397
426
|
# Test defaults w/ conditioned crawlspace
|
398
427
|
hpxml = _create_hpxml('base-foundation-conditioned-crawlspace.xml')
|
399
428
|
hpxml.building_construction.conditioned_building_volume = nil
|
400
429
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
401
430
|
hpxml_default = _test_measure()
|
402
|
-
_test_default_building_construction_values(hpxml_default, 16200, 8,
|
431
|
+
_test_default_building_construction_values(hpxml_default, 16200, 8, 2)
|
403
432
|
end
|
404
433
|
|
405
434
|
def test_climate_and_risk_zones
|
@@ -428,29 +457,80 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
428
457
|
# Test inputs not overridden by defaults
|
429
458
|
hpxml = _create_hpxml('base.xml')
|
430
459
|
hpxml.air_infiltration_measurements[0].infiltration_volume = 25000
|
460
|
+
hpxml.air_infiltration.has_flue_or_chimney_in_conditioned_space = true
|
431
461
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
432
462
|
hpxml_default = _test_measure()
|
433
|
-
_test_default_infiltration_values(hpxml_default
|
463
|
+
_test_default_infiltration_values(hpxml_default, 25000, true)
|
434
464
|
|
435
465
|
# Test defaults w/ conditioned basement
|
436
466
|
hpxml.air_infiltration_measurements[0].infiltration_volume = nil
|
467
|
+
hpxml.air_infiltration.has_flue_or_chimney_in_conditioned_space = nil
|
437
468
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
438
469
|
hpxml_default = _test_measure()
|
439
|
-
_test_default_infiltration_values(hpxml_default
|
470
|
+
_test_default_infiltration_values(hpxml_default, 2700 * 8, false)
|
471
|
+
|
472
|
+
# Test defaults w/ conditioned basement and atmospheric water heater w/ flue
|
473
|
+
hpxml.water_heating_systems[0].fuel_type = HPXML::FuelTypeNaturalGas
|
474
|
+
hpxml.water_heating_systems[0].energy_factor = 0.6
|
475
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
476
|
+
hpxml_default = _test_measure()
|
477
|
+
_test_default_infiltration_values(hpxml_default, 2700 * 8, true)
|
440
478
|
|
441
479
|
# Test defaults w/o conditioned basement
|
442
480
|
hpxml = _create_hpxml('base-foundation-slab.xml')
|
443
481
|
hpxml.air_infiltration_measurements[0].infiltration_volume = nil
|
444
482
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
445
483
|
hpxml_default = _test_measure()
|
446
|
-
_test_default_infiltration_values(hpxml_default
|
484
|
+
_test_default_infiltration_values(hpxml_default, 1350 * 8, false)
|
447
485
|
|
448
486
|
# Test defaults w/ conditioned crawlspace
|
449
487
|
hpxml = _create_hpxml('base-foundation-conditioned-crawlspace.xml')
|
450
488
|
hpxml.air_infiltration_measurements[0].infiltration_volume = nil
|
451
489
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
452
490
|
hpxml_default = _test_measure()
|
453
|
-
_test_default_infiltration_values(hpxml_default
|
491
|
+
_test_default_infiltration_values(hpxml_default, 1350 * 12, false)
|
492
|
+
end
|
493
|
+
|
494
|
+
def test_infiltration_compartmentaliztion_test_adjustment
|
495
|
+
# Test single-family detached
|
496
|
+
hpxml = _create_hpxml('base.xml')
|
497
|
+
hpxml.air_infiltration_measurements[0].infiltration_type = HPXML::InfiltrationTypeUnitTotal
|
498
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
499
|
+
hpxml_default = _test_measure()
|
500
|
+
_test_default_infiltration_compartmentalization_test_values(hpxml_default.air_infiltration_measurements[0], nil)
|
501
|
+
|
502
|
+
# Test single-family attached not overridden by defaults
|
503
|
+
hpxml = _create_hpxml('base-bldgtype-attached.xml')
|
504
|
+
hpxml.air_infiltration_measurements[0].infiltration_type = HPXML::InfiltrationTypeUnitTotal
|
505
|
+
hpxml.air_infiltration_measurements[0].a_ext = 0.5
|
506
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
507
|
+
hpxml_default = _test_measure()
|
508
|
+
_test_default_infiltration_compartmentalization_test_values(hpxml_default.air_infiltration_measurements[0], 0.5)
|
509
|
+
|
510
|
+
# Test single-family attached defaults
|
511
|
+
hpxml.air_infiltration_measurements[0].a_ext = nil
|
512
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
513
|
+
hpxml_default = _test_measure()
|
514
|
+
_test_default_infiltration_compartmentalization_test_values(hpxml_default.air_infiltration_measurements[0], 0.840)
|
515
|
+
|
516
|
+
hpxml.attics[0].within_infiltration_volume = true
|
517
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
518
|
+
hpxml_default = _test_measure()
|
519
|
+
_test_default_infiltration_compartmentalization_test_values(hpxml_default.air_infiltration_measurements[0], 0.817)
|
520
|
+
|
521
|
+
# Test multifamily not overridden by defaults
|
522
|
+
hpxml = _create_hpxml('base-bldgtype-multifamily.xml')
|
523
|
+
hpxml.air_infiltration_measurements[0].infiltration_type = HPXML::InfiltrationTypeUnitTotal
|
524
|
+
hpxml.air_infiltration_measurements[0].a_ext = 0.5
|
525
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
526
|
+
hpxml_default = _test_measure()
|
527
|
+
_test_default_infiltration_compartmentalization_test_values(hpxml_default.air_infiltration_measurements[0], 0.5)
|
528
|
+
|
529
|
+
# Test multifamily defaults
|
530
|
+
hpxml.air_infiltration_measurements[0].a_ext = nil
|
531
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
532
|
+
hpxml_default = _test_measure()
|
533
|
+
_test_default_infiltration_compartmentalization_test_values(hpxml_default.air_infiltration_measurements[0], 0.247)
|
454
534
|
end
|
455
535
|
|
456
536
|
def test_attics
|
@@ -1044,16 +1124,17 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1044
1124
|
hpxml.cooling_systems[0].airflow_defect_ratio = -0.22
|
1045
1125
|
hpxml.cooling_systems[0].cooling_capacity = 12345
|
1046
1126
|
hpxml.cooling_systems[0].cooling_efficiency_seer = 12.0
|
1127
|
+
hpxml.cooling_systems[0].crankcase_heater_watts = 40.0
|
1047
1128
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1048
1129
|
hpxml_default = _test_measure()
|
1049
|
-
_test_default_central_air_conditioner_values(hpxml_default.cooling_systems[0], 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 12.0)
|
1130
|
+
_test_default_central_air_conditioner_values(hpxml_default.cooling_systems[0], 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 12.0, 40.0)
|
1050
1131
|
|
1051
1132
|
# Test defaults - SEER2
|
1052
1133
|
hpxml.cooling_systems[0].cooling_efficiency_seer = nil
|
1053
1134
|
hpxml.cooling_systems[0].cooling_efficiency_seer2 = 11.4
|
1054
1135
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1055
1136
|
hpxml_default = _test_measure()
|
1056
|
-
_test_default_central_air_conditioner_values(hpxml_default.cooling_systems[0], 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 12.0)
|
1137
|
+
_test_default_central_air_conditioner_values(hpxml_default.cooling_systems[0], 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 12.0, 40.0)
|
1057
1138
|
|
1058
1139
|
# Test defaults
|
1059
1140
|
hpxml.cooling_systems[0].cooling_shr = nil
|
@@ -1062,9 +1143,10 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1062
1143
|
hpxml.cooling_systems[0].charge_defect_ratio = nil
|
1063
1144
|
hpxml.cooling_systems[0].airflow_defect_ratio = nil
|
1064
1145
|
hpxml.cooling_systems[0].cooling_capacity = nil
|
1146
|
+
hpxml.cooling_systems[0].crankcase_heater_watts = nil
|
1065
1147
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1066
1148
|
hpxml_default = _test_measure()
|
1067
|
-
_test_default_central_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, HPXML::HVACCompressorTypeSingleStage, 0.5, 0, 0, nil, 12.0)
|
1149
|
+
_test_default_central_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, HPXML::HVACCompressorTypeSingleStage, 0.5, 0, 0, nil, 12.0, 50.0)
|
1068
1150
|
end
|
1069
1151
|
|
1070
1152
|
def test_room_air_conditioners
|
@@ -1072,16 +1154,18 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1072
1154
|
hpxml = _create_hpxml('base-hvac-room-ac-only.xml')
|
1073
1155
|
hpxml.cooling_systems[0].cooling_shr = 0.88
|
1074
1156
|
hpxml.cooling_systems[0].cooling_capacity = 12345
|
1157
|
+
hpxml.cooling_systems[0].crankcase_heater_watts = 40.0
|
1075
1158
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1076
1159
|
hpxml_default = _test_measure()
|
1077
|
-
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.88, 12345)
|
1160
|
+
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.88, 12345, 40.0)
|
1078
1161
|
|
1079
1162
|
# Test defaults
|
1080
1163
|
hpxml.cooling_systems[0].cooling_shr = nil
|
1081
1164
|
hpxml.cooling_systems[0].cooling_capacity = nil
|
1165
|
+
hpxml.cooling_systems[0].crankcase_heater_watts = nil
|
1082
1166
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1083
1167
|
hpxml_default = _test_measure()
|
1084
|
-
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.65, nil)
|
1168
|
+
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.65, nil, 0.0)
|
1085
1169
|
end
|
1086
1170
|
|
1087
1171
|
def test_evaporative_coolers
|
@@ -1107,9 +1191,10 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1107
1191
|
hpxml.cooling_systems[0].charge_defect_ratio = -0.11
|
1108
1192
|
hpxml.cooling_systems[0].airflow_defect_ratio = -0.22
|
1109
1193
|
hpxml.cooling_systems[0].cooling_capacity = 12345
|
1194
|
+
hpxml.cooling_systems[0].crankcase_heater_watts = 40.0
|
1110
1195
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1111
1196
|
hpxml_default = _test_measure()
|
1112
|
-
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.78, 0.66, -0.11, -0.22, 12345, 19.0)
|
1197
|
+
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.78, 0.66, -0.11, -0.22, 12345, 19.0, 40.0)
|
1113
1198
|
|
1114
1199
|
# Test defaults
|
1115
1200
|
hpxml.cooling_systems[0].cooling_shr = nil
|
@@ -1117,22 +1202,23 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1117
1202
|
hpxml.cooling_systems[0].charge_defect_ratio = nil
|
1118
1203
|
hpxml.cooling_systems[0].airflow_defect_ratio = nil
|
1119
1204
|
hpxml.cooling_systems[0].cooling_capacity = nil
|
1205
|
+
hpxml.cooling_systems[0].crankcase_heater_watts = nil
|
1120
1206
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1121
1207
|
hpxml_default = _test_measure()
|
1122
|
-
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, 0.18, 0, 0, nil, 19.0)
|
1208
|
+
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, 0.18, 0, 0, nil, 19.0, 50.0)
|
1123
1209
|
|
1124
1210
|
# Test defaults w/ ductless
|
1125
1211
|
hpxml.cooling_systems[0].distribution_system.delete
|
1126
1212
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1127
1213
|
hpxml_default = _test_measure()
|
1128
|
-
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, 0.07, 0, 0, nil, 19.0)
|
1214
|
+
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, 0.07, 0, 0, nil, 19.0, 50.0)
|
1129
1215
|
|
1130
1216
|
# Test defaults w/ ductless - SEER2
|
1131
1217
|
hpxml.cooling_systems[0].cooling_efficiency_seer = nil
|
1132
1218
|
hpxml.cooling_systems[0].cooling_efficiency_seer2 = 13.3
|
1133
1219
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1134
1220
|
hpxml_default = _test_measure()
|
1135
|
-
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, 0.07, 0, 0, nil, 13.3)
|
1221
|
+
_test_default_mini_split_air_conditioner_values(hpxml_default.cooling_systems[0], 0.73, 0.07, 0, 0, nil, 13.3, 50.0)
|
1136
1222
|
end
|
1137
1223
|
|
1138
1224
|
def test_ptac
|
@@ -1140,16 +1226,18 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1140
1226
|
hpxml = _create_hpxml('base-hvac-ptac-with-heating-electricity.xml')
|
1141
1227
|
hpxml.cooling_systems[0].cooling_shr = 0.75
|
1142
1228
|
hpxml.cooling_systems[0].cooling_capacity = 12345
|
1229
|
+
hpxml.cooling_systems[0].crankcase_heater_watts = 40.0
|
1143
1230
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1144
1231
|
hpxml_default = _test_measure()
|
1145
|
-
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.75, 12345)
|
1232
|
+
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.75, 12345, 40.0)
|
1146
1233
|
|
1147
1234
|
# Test defaults
|
1148
1235
|
hpxml.cooling_systems[0].cooling_shr = nil
|
1149
1236
|
hpxml.cooling_systems[0].cooling_capacity = nil
|
1237
|
+
hpxml.cooling_systems[0].crankcase_heater_watts = nil
|
1150
1238
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1151
1239
|
hpxml_default = _test_measure()
|
1152
|
-
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.65, nil)
|
1240
|
+
_test_default_room_air_conditioner_ptac_values(hpxml_default.cooling_systems[0], 0.65, nil, 0.0)
|
1153
1241
|
end
|
1154
1242
|
|
1155
1243
|
def test_furnaces
|
@@ -1158,17 +1246,26 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1158
1246
|
hpxml.heating_systems[0].fan_watts_per_cfm = 0.66
|
1159
1247
|
hpxml.heating_systems[0].airflow_defect_ratio = -0.22
|
1160
1248
|
hpxml.heating_systems[0].heating_capacity = 12345
|
1249
|
+
hpxml.heating_systems[0].pilot_light = true
|
1250
|
+
hpxml.heating_systems[0].pilot_light_btuh = 999
|
1161
1251
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1162
1252
|
hpxml_default = _test_measure()
|
1163
|
-
_test_default_furnace_values(hpxml_default.heating_systems[0], 0.66, -0.22, 12345)
|
1253
|
+
_test_default_furnace_values(hpxml_default.heating_systems[0], 0.66, -0.22, 12345, true, 999)
|
1164
1254
|
|
1165
1255
|
# Test defaults
|
1166
1256
|
hpxml.heating_systems[0].fan_watts_per_cfm = nil
|
1167
1257
|
hpxml.heating_systems[0].airflow_defect_ratio = nil
|
1168
1258
|
hpxml.heating_systems[0].heating_capacity = nil
|
1259
|
+
hpxml.heating_systems[0].pilot_light_btuh = nil
|
1260
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1261
|
+
hpxml_default = _test_measure()
|
1262
|
+
_test_default_furnace_values(hpxml_default.heating_systems[0], 0.375, 0, nil, true, 500)
|
1263
|
+
|
1264
|
+
# Test defaults w/o pilot
|
1265
|
+
hpxml.heating_systems[0].pilot_light = nil
|
1169
1266
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1170
1267
|
hpxml_default = _test_measure()
|
1171
|
-
_test_default_furnace_values(hpxml_default.heating_systems[0], 0.375, 0, nil)
|
1268
|
+
_test_default_furnace_values(hpxml_default.heating_systems[0], 0.375, 0, nil, false, nil)
|
1172
1269
|
|
1173
1270
|
# Test defaults w/ gravity distribution system
|
1174
1271
|
hpxml = _create_hpxml('base-hvac-furnace-gas-only.xml')
|
@@ -1178,7 +1275,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1178
1275
|
hpxml.heating_systems[0].heating_capacity = nil
|
1179
1276
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1180
1277
|
hpxml_default = _test_measure()
|
1181
|
-
_test_default_furnace_values(hpxml_default.heating_systems[0], 0.0, 0, nil)
|
1278
|
+
_test_default_furnace_values(hpxml_default.heating_systems[0], 0.0, 0, nil, false, nil)
|
1182
1279
|
end
|
1183
1280
|
|
1184
1281
|
def test_wall_furnaces
|
@@ -1196,6 +1293,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1196
1293
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1197
1294
|
hpxml_default = _test_measure()
|
1198
1295
|
_test_default_wall_furnace_values(hpxml_default.heating_systems[0], 0, nil)
|
1296
|
+
|
1297
|
+
# Test defaults w/o pilot
|
1298
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1299
|
+
hpxml_default = _test_measure()
|
1300
|
+
_test_default_wall_furnace_values(hpxml_default.heating_systems[0], 0, nil)
|
1199
1301
|
end
|
1200
1302
|
|
1201
1303
|
def test_floor_furnaces
|
@@ -1203,15 +1305,24 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1203
1305
|
hpxml = _create_hpxml('base-hvac-floor-furnace-propane-only.xml')
|
1204
1306
|
hpxml.heating_systems[0].fan_watts = 22
|
1205
1307
|
hpxml.heating_systems[0].heating_capacity = 12345
|
1308
|
+
hpxml.heating_systems[0].pilot_light = true
|
1309
|
+
hpxml.heating_systems[0].pilot_light_btuh = 999
|
1206
1310
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1207
1311
|
hpxml_default = _test_measure()
|
1208
|
-
_test_default_floor_furnace_values(hpxml_default.heating_systems[0], 22, 12345)
|
1312
|
+
_test_default_floor_furnace_values(hpxml_default.heating_systems[0], 22, 12345, true, 999)
|
1209
1313
|
|
1210
1314
|
# Test defaults
|
1211
1315
|
hpxml.heating_systems[0].fan_watts = nil
|
1316
|
+
hpxml.heating_systems[0].pilot_light_btuh = nil
|
1212
1317
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1213
1318
|
hpxml_default = _test_measure()
|
1214
|
-
_test_default_floor_furnace_values(hpxml_default.heating_systems[0], 0, nil)
|
1319
|
+
_test_default_floor_furnace_values(hpxml_default.heating_systems[0], 0, nil, true, 500)
|
1320
|
+
|
1321
|
+
# Test defaults w/o pilot
|
1322
|
+
hpxml.heating_systems[0].pilot_light = nil
|
1323
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1324
|
+
hpxml_default = _test_measure()
|
1325
|
+
_test_default_floor_furnace_values(hpxml_default.heating_systems[0], 0, nil, false, nil)
|
1215
1326
|
end
|
1216
1327
|
|
1217
1328
|
def test_boilers
|
@@ -1219,16 +1330,19 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1219
1330
|
hpxml = _create_hpxml('base-hvac-boiler-gas-only.xml')
|
1220
1331
|
hpxml.heating_systems[0].electric_auxiliary_energy = 99.9
|
1221
1332
|
hpxml.heating_systems[0].heating_capacity = 12345
|
1333
|
+
hpxml.heating_systems[0].pilot_light = true
|
1334
|
+
hpxml.heating_systems[0].pilot_light_btuh = 999
|
1222
1335
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1223
1336
|
hpxml_default = _test_measure()
|
1224
|
-
_test_default_boiler_values(hpxml_default.heating_systems[0], 99.9, 12345)
|
1337
|
+
_test_default_boiler_values(hpxml_default.heating_systems[0], 99.9, 12345, true, 999)
|
1225
1338
|
|
1226
1339
|
# Test defaults w/ in-unit boiler
|
1227
1340
|
hpxml.heating_systems[0].electric_auxiliary_energy = nil
|
1228
1341
|
hpxml.heating_systems[0].heating_capacity = nil
|
1342
|
+
hpxml.heating_systems[0].pilot_light_btuh = nil
|
1229
1343
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1230
1344
|
hpxml_default = _test_measure()
|
1231
|
-
_test_default_boiler_values(hpxml_default.heating_systems[0], 170.0, nil)
|
1345
|
+
_test_default_boiler_values(hpxml_default.heating_systems[0], 170.0, nil, true, 500)
|
1232
1346
|
|
1233
1347
|
# Test inputs not overridden by defaults (shared boiler)
|
1234
1348
|
hpxml = _create_hpxml('base-bldgtype-multifamily-shared-boiler-only-baseboard.xml')
|
@@ -1236,13 +1350,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1236
1350
|
hpxml.heating_systems[0].electric_auxiliary_energy = 99.9
|
1237
1351
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1238
1352
|
hpxml_default = _test_measure()
|
1239
|
-
_test_default_boiler_values(hpxml_default.heating_systems[0], 99.9, nil)
|
1240
|
-
|
1241
|
-
# Test defaults w/ shared boiler
|
1242
|
-
hpxml.heating_systems[0].electric_auxiliary_energy = nil
|
1243
|
-
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1244
|
-
hpxml_default = _test_measure()
|
1245
|
-
_test_default_boiler_values(hpxml_default.heating_systems[0], 220.0, nil)
|
1353
|
+
_test_default_boiler_values(hpxml_default.heating_systems[0], 99.9, nil, false, nil)
|
1246
1354
|
end
|
1247
1355
|
|
1248
1356
|
def test_stoves
|
@@ -1250,16 +1358,25 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1250
1358
|
hpxml = _create_hpxml('base-hvac-stove-oil-only.xml')
|
1251
1359
|
hpxml.heating_systems[0].fan_watts = 22
|
1252
1360
|
hpxml.heating_systems[0].heating_capacity = 12345
|
1361
|
+
hpxml.heating_systems[0].pilot_light = true
|
1362
|
+
hpxml.heating_systems[0].pilot_light_btuh = 999
|
1253
1363
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1254
1364
|
hpxml_default = _test_measure()
|
1255
|
-
_test_default_stove_values(hpxml_default.heating_systems[0], 22, 12345)
|
1365
|
+
_test_default_stove_values(hpxml_default.heating_systems[0], 22, 12345, true, 999)
|
1256
1366
|
|
1257
1367
|
# Test defaults
|
1258
1368
|
hpxml.heating_systems[0].fan_watts = nil
|
1259
1369
|
hpxml.heating_systems[0].heating_capacity = nil
|
1370
|
+
hpxml.heating_systems[0].pilot_light_btuh = nil
|
1371
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1372
|
+
hpxml_default = _test_measure()
|
1373
|
+
_test_default_stove_values(hpxml_default.heating_systems[0], 40, nil, true, 500)
|
1374
|
+
|
1375
|
+
# Test defaults w/o pilot
|
1376
|
+
hpxml.heating_systems[0].pilot_light = nil
|
1260
1377
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1261
1378
|
hpxml_default = _test_measure()
|
1262
|
-
_test_default_stove_values(hpxml_default.heating_systems[0], 40, nil)
|
1379
|
+
_test_default_stove_values(hpxml_default.heating_systems[0], 40, nil, false, nil)
|
1263
1380
|
end
|
1264
1381
|
|
1265
1382
|
def test_portable_heaters
|
@@ -1301,16 +1418,25 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1301
1418
|
hpxml = _create_hpxml('base-hvac-fireplace-wood-only.xml')
|
1302
1419
|
hpxml.heating_systems[0].fan_watts = 22
|
1303
1420
|
hpxml.heating_systems[0].heating_capacity = 12345
|
1421
|
+
hpxml.heating_systems[0].pilot_light = true
|
1422
|
+
hpxml.heating_systems[0].pilot_light_btuh = 999
|
1304
1423
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1305
1424
|
hpxml_default = _test_measure()
|
1306
|
-
_test_default_fireplace_values(hpxml_default.heating_systems[0], 22, 12345)
|
1425
|
+
_test_default_fireplace_values(hpxml_default.heating_systems[0], 22, 12345, true, 999)
|
1307
1426
|
|
1308
1427
|
# Test defaults
|
1309
1428
|
hpxml.heating_systems[0].fan_watts = nil
|
1310
1429
|
hpxml.heating_systems[0].heating_capacity = nil
|
1430
|
+
hpxml.heating_systems[0].pilot_light_btuh = nil
|
1431
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1432
|
+
hpxml_default = _test_measure()
|
1433
|
+
_test_default_fireplace_values(hpxml_default.heating_systems[0], 0, nil, true, 500)
|
1434
|
+
|
1435
|
+
# Test defaults w/o pilot
|
1436
|
+
hpxml.heating_systems[0].pilot_light = nil
|
1311
1437
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1312
1438
|
hpxml_default = _test_measure()
|
1313
|
-
_test_default_fireplace_values(hpxml_default.heating_systems[0], 0, nil)
|
1439
|
+
_test_default_fireplace_values(hpxml_default.heating_systems[0], 0, nil, false, nil)
|
1314
1440
|
end
|
1315
1441
|
|
1316
1442
|
def test_air_source_heat_pumps
|
@@ -1323,14 +1449,23 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1323
1449
|
hpxml.heat_pumps[0].airflow_defect_ratio = -0.22
|
1324
1450
|
hpxml.heat_pumps[0].cooling_capacity = 12345
|
1325
1451
|
hpxml.heat_pumps[0].heating_capacity = 23456
|
1326
|
-
hpxml.heat_pumps[0].heating_capacity_17F = 9876
|
1327
1452
|
hpxml.heat_pumps[0].backup_heating_capacity = 34567
|
1328
1453
|
hpxml.heat_pumps[0].cooling_efficiency_seer = 14.0
|
1329
1454
|
hpxml.heat_pumps[0].heating_efficiency_hspf = 8.0
|
1330
|
-
hpxml.heat_pumps[0].
|
1455
|
+
hpxml.heat_pumps[0].heating_capacity_retention_fraction = 0.1
|
1456
|
+
hpxml.heat_pumps[0].heating_capacity_retention_temp = 2.0
|
1457
|
+
hpxml.heat_pumps[0].crankcase_heater_watts = 40.0
|
1331
1458
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1332
1459
|
hpxml_default = _test_measure()
|
1333
|
-
_test_default_air_to_air_heat_pump_values(hpxml_default.heat_pumps[0], 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 23456,
|
1460
|
+
_test_default_air_to_air_heat_pump_values(hpxml_default.heat_pumps[0], 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 23456, nil, 34567, 14.0, 8.0, 0.1, 2.0, 40.0)
|
1461
|
+
|
1462
|
+
# Test w/ heating capacity 17F
|
1463
|
+
hpxml.heat_pumps[0].heating_capacity_17F = 9876
|
1464
|
+
hpxml.heat_pumps[0].heating_capacity_retention_fraction = nil
|
1465
|
+
hpxml.heat_pumps[0].heating_capacity_retention_temp = nil
|
1466
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1467
|
+
hpxml_default = _test_measure()
|
1468
|
+
_test_default_air_to_air_heat_pump_values(hpxml_default.heat_pumps[0], 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 23456, 9876, 34567, 14.0, 8.0, nil, nil, 40.0)
|
1334
1469
|
|
1335
1470
|
# Test defaults - SEER2/HSPF2
|
1336
1471
|
hpxml.heat_pumps[0].cooling_efficiency_seer = nil
|
@@ -1339,7 +1474,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1339
1474
|
hpxml.heat_pumps[0].heating_efficiency_hspf2 = 6.8
|
1340
1475
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1341
1476
|
hpxml_default = _test_measure()
|
1342
|
-
_test_default_air_to_air_heat_pump_values(hpxml_default.heat_pumps[0], 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 23456, 9876, 34567, 14.0, 8.0,
|
1477
|
+
_test_default_air_to_air_heat_pump_values(hpxml_default.heat_pumps[0], 0.88, HPXML::HVACCompressorTypeVariableSpeed, 0.66, -0.11, -0.22, 12345, 23456, 9876, 34567, 14.0, 8.0, nil, nil, 40.0)
|
1343
1478
|
|
1344
1479
|
# Test defaults
|
1345
1480
|
hpxml.heat_pumps[0].cooling_shr = nil
|
@@ -1351,10 +1486,10 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1351
1486
|
hpxml.heat_pumps[0].heating_capacity = nil
|
1352
1487
|
hpxml.heat_pumps[0].heating_capacity_17F = nil
|
1353
1488
|
hpxml.heat_pumps[0].backup_heating_capacity = nil
|
1354
|
-
hpxml.heat_pumps[0].
|
1489
|
+
hpxml.heat_pumps[0].crankcase_heater_watts = nil
|
1355
1490
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1356
1491
|
hpxml_default = _test_measure()
|
1357
|
-
_test_default_air_to_air_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, HPXML::HVACCompressorTypeSingleStage, 0.5, 0, 0, nil, nil, nil, nil, 14.0, 8.0,
|
1492
|
+
_test_default_air_to_air_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, HPXML::HVACCompressorTypeSingleStage, 0.5, 0, 0, nil, nil, nil, nil, 14.0, 8.0, 0.425, 5.0, 50.0)
|
1358
1493
|
end
|
1359
1494
|
|
1360
1495
|
def test_pthp
|
@@ -1363,20 +1498,31 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1363
1498
|
hpxml.heat_pumps[0].cooling_shr = 0.88
|
1364
1499
|
hpxml.heat_pumps[0].cooling_capacity = 12345
|
1365
1500
|
hpxml.heat_pumps[0].heating_capacity = 23456
|
1366
|
-
hpxml.heat_pumps[0].
|
1501
|
+
hpxml.heat_pumps[0].heating_capacity_retention_fraction = 0.1
|
1502
|
+
hpxml.heat_pumps[0].heating_capacity_retention_temp = 2.0
|
1503
|
+
hpxml.heat_pumps[0].crankcase_heater_watts = 40.0
|
1367
1504
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1368
1505
|
hpxml_default = _test_measure()
|
1369
|
-
_test_default_pthp_values(hpxml_default.heat_pumps[0], 0.88, 12345, 23456,
|
1506
|
+
_test_default_pthp_values(hpxml_default.heat_pumps[0], 0.88, 12345, 23456, nil, 0.1, 2.0, 40.0)
|
1507
|
+
|
1508
|
+
# Test w/ heating capacity 17F
|
1509
|
+
hpxml.heat_pumps[0].heating_capacity_17F = 9876
|
1510
|
+
hpxml.heat_pumps[0].heating_capacity_retention_fraction = nil
|
1511
|
+
hpxml.heat_pumps[0].heating_capacity_retention_temp = nil
|
1512
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1513
|
+
hpxml_default = _test_measure()
|
1514
|
+
_test_default_pthp_values(hpxml_default.heat_pumps[0], 0.88, 12345, 23456, 9876, nil, nil, 40.0)
|
1370
1515
|
|
1371
1516
|
# Test defaults
|
1372
1517
|
hpxml.heat_pumps[0].cooling_shr = nil
|
1373
1518
|
hpxml.heat_pumps[0].cooling_capacity = nil
|
1374
1519
|
hpxml.heat_pumps[0].heating_capacity = nil
|
1375
1520
|
hpxml.heat_pumps[0].backup_heating_capacity = nil
|
1376
|
-
hpxml.heat_pumps[0].
|
1521
|
+
hpxml.heat_pumps[0].heating_capacity_17F = nil
|
1522
|
+
hpxml.heat_pumps[0].crankcase_heater_watts = nil
|
1377
1523
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1378
1524
|
hpxml_default = _test_measure()
|
1379
|
-
_test_default_pthp_values(hpxml_default.heat_pumps[0], 0.65, nil, nil,
|
1525
|
+
_test_default_pthp_values(hpxml_default.heat_pumps[0], 0.65, nil, nil, nil, 0.425, 5.0, 0.0)
|
1380
1526
|
end
|
1381
1527
|
|
1382
1528
|
def test_mini_split_heat_pumps
|
@@ -1388,12 +1534,21 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1388
1534
|
hpxml.heat_pumps[0].airflow_defect_ratio = -0.22
|
1389
1535
|
hpxml.heat_pumps[0].cooling_capacity = 12345
|
1390
1536
|
hpxml.heat_pumps[0].heating_capacity = 23456
|
1391
|
-
hpxml.heat_pumps[0].heating_capacity_17F = 9876
|
1392
1537
|
hpxml.heat_pumps[0].backup_heating_capacity = 34567
|
1393
|
-
hpxml.heat_pumps[0].
|
1538
|
+
hpxml.heat_pumps[0].heating_capacity_retention_fraction = 0.1
|
1539
|
+
hpxml.heat_pumps[0].heating_capacity_retention_temp = 2.0
|
1540
|
+
hpxml.heat_pumps[0].crankcase_heater_watts = 40.0
|
1394
1541
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1395
1542
|
hpxml_default = _test_measure()
|
1396
|
-
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.78, 0.66, -0.11, -0.22, 12345, 23456,
|
1543
|
+
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.78, 0.66, -0.11, -0.22, 12345, 23456, nil, 34567, 19.0, 10.0, 0.1, 2.0, 40.0)
|
1544
|
+
|
1545
|
+
# Test w/ heating capacity 17F
|
1546
|
+
hpxml.heat_pumps[0].heating_capacity_17F = 9876
|
1547
|
+
hpxml.heat_pumps[0].heating_capacity_retention_fraction = nil
|
1548
|
+
hpxml.heat_pumps[0].heating_capacity_retention_temp = nil
|
1549
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1550
|
+
hpxml_default = _test_measure()
|
1551
|
+
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.78, 0.66, -0.11, -0.22, 12345, 23456, 9876, 34567, 19.0, 10.0, nil, nil, 40.0)
|
1397
1552
|
|
1398
1553
|
# Test defaults
|
1399
1554
|
hpxml.heat_pumps[0].cooling_shr = nil
|
@@ -1404,16 +1559,16 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1404
1559
|
hpxml.heat_pumps[0].heating_capacity = nil
|
1405
1560
|
hpxml.heat_pumps[0].heating_capacity_17F = nil
|
1406
1561
|
hpxml.heat_pumps[0].backup_heating_capacity = nil
|
1407
|
-
hpxml.heat_pumps[0].
|
1562
|
+
hpxml.heat_pumps[0].crankcase_heater_watts = nil
|
1408
1563
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1409
1564
|
hpxml_default = _test_measure()
|
1410
|
-
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, 0.18, 0, 0, nil, nil, nil, nil, 19.0, 10.0,
|
1565
|
+
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, 0.18, 0, 0, nil, nil, nil, nil, 19.0, 10.0, 0.5, 5.0, 50.0)
|
1411
1566
|
|
1412
|
-
# Test defaults w/ ductless
|
1567
|
+
# Test defaults w/ ductless and no backup
|
1413
1568
|
hpxml.heat_pumps[0].distribution_system.delete
|
1414
1569
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1415
1570
|
hpxml_default = _test_measure()
|
1416
|
-
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, 0.07, 0, 0, nil, nil, nil, nil, 19.0, 10.0,
|
1571
|
+
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, 0.07, 0, 0, nil, nil, nil, nil, 19.0, 10.0, 0.5, 5.0, 50.0)
|
1417
1572
|
|
1418
1573
|
# Test defaults w/ ductless - SEER2/HSPF2
|
1419
1574
|
hpxml.heat_pumps[0].cooling_efficiency_seer = nil
|
@@ -1422,7 +1577,78 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1422
1577
|
hpxml.heat_pumps[0].heating_efficiency_hspf2 = 6.8
|
1423
1578
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1424
1579
|
hpxml_default = _test_measure()
|
1425
|
-
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, 0.07, 0, 0, nil, nil, nil, nil, 13.3, 7.56,
|
1580
|
+
_test_default_mini_split_heat_pump_values(hpxml_default.heat_pumps[0], 0.73, 0.07, 0, 0, nil, nil, nil, nil, 13.3, 7.56, 0.5, 5.0, 50.0)
|
1581
|
+
end
|
1582
|
+
|
1583
|
+
def test_heat_pump_temperatures
|
1584
|
+
# Test inputs not overridden by defaults - ASHP w/ electric backup
|
1585
|
+
hpxml = _create_hpxml('base-hvac-air-to-air-heat-pump-1-speed.xml')
|
1586
|
+
hpxml.heat_pumps[0].compressor_lockout_temp = -2.0
|
1587
|
+
hpxml.heat_pumps[0].backup_heating_lockout_temp = 44.0
|
1588
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1589
|
+
hpxml_default = _test_measure()
|
1590
|
+
_test_default_heat_pump_temperature_values(hpxml_default.heat_pumps[0], -2.0, 44.0, nil)
|
1591
|
+
|
1592
|
+
# Test defaults
|
1593
|
+
hpxml.heat_pumps[0].compressor_lockout_temp = nil
|
1594
|
+
hpxml.heat_pumps[0].backup_heating_lockout_temp = nil
|
1595
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1596
|
+
hpxml_default = _test_measure()
|
1597
|
+
_test_default_heat_pump_temperature_values(hpxml_default.heat_pumps[0], 0.0, 40.0, nil)
|
1598
|
+
|
1599
|
+
# Test inputs not overridden by defaults - MSHP w/o backup
|
1600
|
+
hpxml = _create_hpxml('base-hvac-mini-split-heat-pump-ductless.xml')
|
1601
|
+
hpxml.heat_pumps[0].compressor_lockout_temp = 33.0
|
1602
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1603
|
+
hpxml_default = _test_measure()
|
1604
|
+
_test_default_heat_pump_temperature_values(hpxml_default.heat_pumps[0], 33.0, nil, nil)
|
1605
|
+
|
1606
|
+
# Test defaults
|
1607
|
+
hpxml.heat_pumps[0].compressor_lockout_temp = nil
|
1608
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1609
|
+
hpxml_default = _test_measure()
|
1610
|
+
_test_default_heat_pump_temperature_values(hpxml_default.heat_pumps[0], -20.0, nil, nil)
|
1611
|
+
|
1612
|
+
# Test inputs not overridden by defaults - MSHP w/ electric backup
|
1613
|
+
hpxml = _create_hpxml('base-hvac-mini-split-heat-pump-ductless-backup-baseboard.xml')
|
1614
|
+
hpxml.heat_pumps[0].compressor_lockout_temp = -2.0
|
1615
|
+
hpxml.heat_pumps[0].backup_heating_lockout_temp = 44.0
|
1616
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1617
|
+
hpxml_default = _test_measure()
|
1618
|
+
_test_default_heat_pump_temperature_values(hpxml_default.heat_pumps[0], -2.0, 44.0, nil)
|
1619
|
+
|
1620
|
+
# Test defaults
|
1621
|
+
hpxml.heat_pumps[0].compressor_lockout_temp = nil
|
1622
|
+
hpxml.heat_pumps[0].backup_heating_lockout_temp = nil
|
1623
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1624
|
+
hpxml_default = _test_measure()
|
1625
|
+
_test_default_heat_pump_temperature_values(hpxml_default.heat_pumps[0], -20.0, 40.0, nil)
|
1626
|
+
|
1627
|
+
# Test inputs not overridden by defaults - HP w/ fuel backup
|
1628
|
+
['base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml',
|
1629
|
+
'base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml',
|
1630
|
+
'base-hvac-mini-split-heat-pump-ductless-backup-stove.xml'].each do |hpxml_name|
|
1631
|
+
hpxml = _create_hpxml(hpxml_name)
|
1632
|
+
hpxml.heat_pumps[0].backup_heating_switchover_temp = 33.0
|
1633
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1634
|
+
hpxml_default = _test_measure()
|
1635
|
+
_test_default_heat_pump_temperature_values(hpxml_default.heat_pumps[0], nil, nil, 33.0)
|
1636
|
+
|
1637
|
+
# Test inputs not overridden by defaults - HP w/ integrated/separate fuel backup, lockout temps
|
1638
|
+
hpxml.heat_pumps[0].backup_heating_switchover_temp = nil
|
1639
|
+
hpxml.heat_pumps[0].compressor_lockout_temp = 22.0
|
1640
|
+
hpxml.heat_pumps[0].backup_heating_lockout_temp = 44.0
|
1641
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1642
|
+
hpxml_default = _test_measure()
|
1643
|
+
_test_default_heat_pump_temperature_values(hpxml_default.heat_pumps[0], 22.0, 44.0, nil)
|
1644
|
+
|
1645
|
+
# Test defaults
|
1646
|
+
hpxml.heat_pumps[0].compressor_lockout_temp = nil
|
1647
|
+
hpxml.heat_pumps[0].backup_heating_lockout_temp = nil
|
1648
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1649
|
+
hpxml_default = _test_measure()
|
1650
|
+
_test_default_heat_pump_temperature_values(hpxml_default.heat_pumps[0], 25.0, 50.0, nil)
|
1651
|
+
end
|
1426
1652
|
end
|
1427
1653
|
|
1428
1654
|
def test_ground_source_heat_pumps
|
@@ -1450,33 +1676,67 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1450
1676
|
_test_default_ground_to_air_heat_pump_values(hpxml_default.heat_pumps[0], 30.0, 0.375, 0, nil, nil, nil)
|
1451
1677
|
end
|
1452
1678
|
|
1453
|
-
def
|
1454
|
-
# Test
|
1455
|
-
hpxml = _create_hpxml('base-
|
1456
|
-
|
1457
|
-
|
1679
|
+
def test_hvac_location
|
1680
|
+
# Test inputs not overridden by defaults
|
1681
|
+
hpxml = _create_hpxml('base-foundation-unconditioned-basement.xml')
|
1682
|
+
hpxml.heating_systems[0].location = HPXML::LocationAtticUnvented
|
1683
|
+
hpxml.cooling_systems[0].delete
|
1458
1684
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1459
1685
|
hpxml_default = _test_measure()
|
1460
|
-
|
1461
|
-
assert(hpxml_default.cooling_systems[0].cooling_capacity > clg_cap)
|
1686
|
+
_test_default_hvac_location_values(hpxml_default.heating_systems[0], HPXML::LocationAtticUnvented)
|
1462
1687
|
|
1463
|
-
# Test
|
1464
|
-
hpxml =
|
1465
|
-
hpxml.
|
1466
|
-
|
1467
|
-
|
1468
|
-
|
1469
|
-
|
1470
|
-
|
1471
|
-
|
1472
|
-
|
1473
|
-
|
1688
|
+
# Test defaults
|
1689
|
+
hpxml.heating_systems[0].location = nil
|
1690
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1691
|
+
hpxml_default = _test_measure()
|
1692
|
+
_test_default_hvac_location_values(hpxml_default.heating_systems[0], HPXML::LocationBasementUnconditioned)
|
1693
|
+
|
1694
|
+
# Test defaults -- multiple duct locations
|
1695
|
+
hpxml.heating_systems[0].distribution_system.ducts.add(id: "Ducts#{hpxml.heating_systems[0].distribution_system.ducts.size + 1}",
|
1696
|
+
duct_type: HPXML::DuctTypeSupply,
|
1697
|
+
duct_insulation_r_value: 0,
|
1698
|
+
duct_location: HPXML::LocationAtticUnvented,
|
1699
|
+
duct_surface_area: 151)
|
1700
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1701
|
+
hpxml_default = _test_measure()
|
1702
|
+
_test_default_hvac_location_values(hpxml_default.heating_systems[0], HPXML::LocationAtticUnvented)
|
1703
|
+
|
1704
|
+
# Test defaults -- ducts outside
|
1705
|
+
hpxml.heating_systems[0].distribution_system.ducts.each do |d|
|
1706
|
+
d.duct_location = HPXML::LocationOutside
|
1707
|
+
end
|
1708
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1709
|
+
hpxml_default = _test_measure()
|
1710
|
+
_test_default_hvac_location_values(hpxml_default.heating_systems[0], HPXML::LocationOtherExterior)
|
1711
|
+
|
1712
|
+
# Test defaults -- hydronic
|
1713
|
+
hpxml.heating_systems[0].heating_system_type = HPXML::HVACTypeBoiler
|
1714
|
+
hpxml.heating_systems[0].distribution_system.distribution_system_type = HPXML::HVACDistributionTypeHydronic
|
1715
|
+
hpxml.heating_systems[0].distribution_system.hydronic_type = HPXML::HydronicTypeBaseboard
|
1716
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1717
|
+
hpxml_default = _test_measure()
|
1718
|
+
_test_default_hvac_location_values(hpxml_default.heating_systems[0], HPXML::LocationBasementUnconditioned)
|
1719
|
+
|
1720
|
+
# Test defaults -- DSE = 1
|
1721
|
+
hpxml.heating_systems[0].distribution_system.distribution_system_type = HPXML::HVACDistributionTypeDSE
|
1722
|
+
hpxml.heating_systems[0].distribution_system.annual_heating_dse = 1.0
|
1723
|
+
hpxml.heating_systems[0].distribution_system.annual_cooling_dse = 0.5
|
1724
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1725
|
+
hpxml_default = _test_measure()
|
1726
|
+
_test_default_hvac_location_values(hpxml_default.heating_systems[0], HPXML::LocationLivingSpace)
|
1727
|
+
|
1728
|
+
# Test defaults -- DSE < 1
|
1729
|
+
hpxml.heating_systems[0].distribution_system.annual_heating_dse = 0.8
|
1730
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1731
|
+
hpxml_default = _test_measure()
|
1732
|
+
_test_default_hvac_location_values(hpxml_default.heating_systems[0], HPXML::LocationUnconditionedSpace)
|
1733
|
+
|
1734
|
+
# Test defaults -- ductless
|
1735
|
+
hpxml.heating_systems[0].heating_system_type = HPXML::HVACTypeWallFurnace
|
1736
|
+
hpxml.heating_systems[0].distribution_system.delete
|
1474
1737
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1475
1738
|
hpxml_default = _test_measure()
|
1476
|
-
|
1477
|
-
assert(hpxml_default.heat_pumps[0].heating_capacity_17F > htg_17f_cap)
|
1478
|
-
assert(hpxml_default.heat_pumps[0].backup_heating_capacity > htg_bak_cap)
|
1479
|
-
assert(hpxml_default.heat_pumps[0].cooling_capacity > clg_cap)
|
1739
|
+
_test_default_hvac_location_values(hpxml_default.heating_systems[0], HPXML::LocationLivingSpace)
|
1480
1740
|
end
|
1481
1741
|
|
1482
1742
|
def test_hvac_controls
|
@@ -1536,6 +1796,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1536
1796
|
hpxml.hvac_distributions[0].number_of_return_registers = 2
|
1537
1797
|
hpxml.hvac_distributions[0].ducts[0].duct_surface_area_multiplier = 0.5
|
1538
1798
|
hpxml.hvac_distributions[0].ducts[1].duct_surface_area_multiplier = 1.5
|
1799
|
+
hpxml.hvac_distributions[0].ducts[0].duct_buried_insulation_level = HPXML::DuctBuriedInsulationPartial
|
1800
|
+
hpxml.hvac_distributions[0].ducts[1].duct_buried_insulation_level = HPXML::DuctBuriedInsulationDeep
|
1801
|
+
hpxml.hvac_distributions[0].ducts[0].duct_insulation_r_value = nil
|
1802
|
+
hpxml.hvac_distributions[0].ducts[1].duct_insulation_r_value = nil
|
1803
|
+
hpxml.hvac_distributions[0].ducts[0].duct_effective_r_value = 1.23
|
1804
|
+
hpxml.hvac_distributions[0].ducts[1].duct_effective_r_value = 3.21
|
1539
1805
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1540
1806
|
hpxml_default = _test_measure()
|
1541
1807
|
expected_supply_locations = ['attic - unvented']
|
@@ -1546,9 +1812,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1546
1812
|
expected_return_fracs = [1.0]
|
1547
1813
|
expected_supply_area_mults = [0.5]
|
1548
1814
|
expected_return_area_mults = [1.5]
|
1815
|
+
expected_supply_effective_rvalues = [1.23]
|
1816
|
+
expected_return_effective_rvalues = [3.21]
|
1817
|
+
expected_supply_buried_levels = [HPXML::DuctBuriedInsulationPartial]
|
1818
|
+
expected_return_buried_levels = [HPXML::DuctBuriedInsulationDeep]
|
1549
1819
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1550
1820
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1551
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults
|
1821
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults,
|
1822
|
+
expected_supply_buried_levels, expected_return_buried_levels, expected_supply_effective_rvalues, expected_return_effective_rvalues)
|
1552
1823
|
|
1553
1824
|
# Test defaults w/ conditioned basement
|
1554
1825
|
hpxml.hvac_distributions[0].number_of_return_registers = nil
|
@@ -1556,7 +1827,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1556
1827
|
duct.duct_location = nil
|
1557
1828
|
duct.duct_surface_area = nil
|
1558
1829
|
duct.duct_surface_area_multiplier = nil
|
1830
|
+
duct.duct_buried_insulation_level = nil
|
1831
|
+
duct.duct_effective_r_value = nil
|
1559
1832
|
end
|
1833
|
+
hpxml.hvac_distributions[0].ducts[0].duct_insulation_r_value = 4
|
1834
|
+
hpxml.hvac_distributions[0].ducts[1].duct_insulation_r_value = 0
|
1560
1835
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1561
1836
|
hpxml_default = _test_measure()
|
1562
1837
|
expected_supply_locations = ['basement - conditioned']
|
@@ -1567,9 +1842,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1567
1842
|
expected_return_fracs = [1.0]
|
1568
1843
|
expected_supply_area_mults = [1.0]
|
1569
1844
|
expected_return_area_mults = [1.0]
|
1845
|
+
expected_supply_buried_levels = [HPXML::DuctBuriedInsulationNone]
|
1846
|
+
expected_return_buried_levels = [HPXML::DuctBuriedInsulationNone]
|
1847
|
+
expected_supply_effective_rvalues = [4.5]
|
1848
|
+
expected_return_effective_rvalues = [1.7]
|
1570
1849
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1571
1850
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1572
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults
|
1851
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults,
|
1852
|
+
expected_supply_buried_levels, expected_return_buried_levels, expected_supply_effective_rvalues, expected_return_effective_rvalues)
|
1573
1853
|
|
1574
1854
|
# Test defaults w/ multiple foundations
|
1575
1855
|
hpxml = _create_hpxml('base-foundation-multiple.xml')
|
@@ -1579,6 +1859,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1579
1859
|
duct.duct_location = nil
|
1580
1860
|
duct.duct_surface_area = nil
|
1581
1861
|
duct.duct_surface_area_multiplier = nil
|
1862
|
+
duct.duct_buried_insulation_level = nil
|
1582
1863
|
end
|
1583
1864
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1584
1865
|
hpxml_default = _test_measure()
|
@@ -1590,9 +1871,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1590
1871
|
expected_return_fracs = [1.0]
|
1591
1872
|
expected_supply_area_mults = [1.0]
|
1592
1873
|
expected_return_area_mults = [1.0]
|
1874
|
+
expected_supply_effective_rvalues = [4.5]
|
1875
|
+
expected_return_effective_rvalues = [1.7]
|
1876
|
+
expected_supply_buried_levels = [HPXML::DuctBuriedInsulationNone]
|
1877
|
+
expected_return_buried_levels = [HPXML::DuctBuriedInsulationNone]
|
1593
1878
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1594
1879
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1595
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults
|
1880
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults,
|
1881
|
+
expected_supply_buried_levels, expected_return_buried_levels, expected_supply_effective_rvalues, expected_return_effective_rvalues)
|
1596
1882
|
|
1597
1883
|
# Test defaults w/ foundation exposed to ambient
|
1598
1884
|
hpxml = _create_hpxml('base-foundation-ambient.xml')
|
@@ -1602,6 +1888,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1602
1888
|
duct.duct_location = nil
|
1603
1889
|
duct.duct_surface_area = nil
|
1604
1890
|
duct.duct_surface_area_multiplier = nil
|
1891
|
+
duct.duct_buried_insulation_level = nil
|
1605
1892
|
end
|
1606
1893
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1607
1894
|
hpxml_default = _test_measure()
|
@@ -1613,9 +1900,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1613
1900
|
expected_return_fracs = [1.0]
|
1614
1901
|
expected_supply_area_mults = [1.0]
|
1615
1902
|
expected_return_area_mults = [1.0]
|
1903
|
+
expected_supply_effective_rvalues = [4.5]
|
1904
|
+
expected_return_effective_rvalues = [1.7]
|
1905
|
+
expected_supply_buried_levels = [HPXML::DuctBuriedInsulationNone]
|
1906
|
+
expected_return_buried_levels = [HPXML::DuctBuriedInsulationNone]
|
1616
1907
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1617
1908
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1618
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults
|
1909
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults,
|
1910
|
+
expected_supply_buried_levels, expected_return_buried_levels, expected_supply_effective_rvalues, expected_return_effective_rvalues)
|
1619
1911
|
|
1620
1912
|
# Test defaults w/ building/unit adjacent to other housing unit
|
1621
1913
|
hpxml = _create_hpxml('base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml')
|
@@ -1625,6 +1917,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1625
1917
|
duct.duct_location = nil
|
1626
1918
|
duct.duct_surface_area = nil
|
1627
1919
|
duct.duct_surface_area_multiplier = nil
|
1920
|
+
duct.duct_buried_insulation_level = nil
|
1628
1921
|
end
|
1629
1922
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1630
1923
|
hpxml_default = _test_measure()
|
@@ -1636,9 +1929,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1636
1929
|
expected_return_fracs = [1.0]
|
1637
1930
|
expected_supply_area_mults = [1.0]
|
1638
1931
|
expected_return_area_mults = [1.0]
|
1932
|
+
expected_supply_effective_rvalues = [1.7]
|
1933
|
+
expected_return_effective_rvalues = [1.7]
|
1934
|
+
expected_supply_buried_levels = [HPXML::DuctBuriedInsulationNone]
|
1935
|
+
expected_return_buried_levels = [HPXML::DuctBuriedInsulationNone]
|
1639
1936
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1640
1937
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1641
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults
|
1938
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults,
|
1939
|
+
expected_supply_buried_levels, expected_return_buried_levels, expected_supply_effective_rvalues, expected_return_effective_rvalues)
|
1642
1940
|
|
1643
1941
|
# Test defaults w/ 2-story building
|
1644
1942
|
hpxml = _create_hpxml('base-enclosure-2stories.xml')
|
@@ -1648,6 +1946,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1648
1946
|
duct.duct_location = nil
|
1649
1947
|
duct.duct_surface_area = nil
|
1650
1948
|
duct.duct_surface_area_multiplier = nil
|
1949
|
+
duct.duct_buried_insulation_level = nil
|
1651
1950
|
end
|
1652
1951
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1653
1952
|
hpxml_default = _test_measure()
|
@@ -1659,9 +1958,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1659
1958
|
expected_return_fracs = [0.375, 0.375, 0.125, 0.125]
|
1660
1959
|
expected_supply_area_mults = [1.0, 1.0, 1.0, 1.0]
|
1661
1960
|
expected_return_area_mults = [1.0, 1.0, 1.0, 1.0]
|
1961
|
+
expected_supply_buried_levels = [HPXML::DuctBuriedInsulationNone] * 4
|
1962
|
+
expected_return_buried_levels = [HPXML::DuctBuriedInsulationNone] * 4
|
1963
|
+
expected_supply_effective_rvalues = [4.5] * 4
|
1964
|
+
expected_return_effective_rvalues = [1.7] * 4
|
1662
1965
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1663
1966
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1664
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults
|
1967
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults,
|
1968
|
+
expected_supply_buried_levels, expected_return_buried_levels, expected_supply_effective_rvalues, expected_return_effective_rvalues)
|
1665
1969
|
|
1666
1970
|
# Test defaults w/ 1-story building & multiple HVAC systems
|
1667
1971
|
hpxml = _create_hpxml('base-hvac-multiple.xml')
|
@@ -1674,6 +1978,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1674
1978
|
duct.duct_location = nil
|
1675
1979
|
duct.duct_surface_area = nil
|
1676
1980
|
duct.duct_surface_area_multiplier = nil
|
1981
|
+
duct.duct_buried_insulation_level = nil
|
1677
1982
|
end
|
1678
1983
|
end
|
1679
1984
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
@@ -1686,9 +1991,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1686
1991
|
expected_return_fracs = [0.5, 0.5] * hpxml_default.hvac_distributions.size
|
1687
1992
|
expected_supply_area_mults = [1.0, 1.0] * hpxml_default.hvac_distributions.size
|
1688
1993
|
expected_return_area_mults = [1.0, 1.0] * hpxml_default.hvac_distributions.size
|
1994
|
+
expected_supply_buried_levels = [HPXML::DuctBuriedInsulationNone] * 2 * hpxml_default.hvac_distributions.size
|
1995
|
+
expected_return_buried_levels = [HPXML::DuctBuriedInsulationNone] * 2 * hpxml_default.hvac_distributions.size
|
1996
|
+
expected_supply_effective_rvalues = [6.74] * 2 * hpxml_default.hvac_distributions.size
|
1997
|
+
expected_return_effective_rvalues = [4.86] * 2 * hpxml_default.hvac_distributions.size
|
1689
1998
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1690
1999
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1691
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults
|
2000
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults,
|
2001
|
+
expected_supply_buried_levels, expected_return_buried_levels, expected_supply_effective_rvalues, expected_return_effective_rvalues)
|
1692
2002
|
|
1693
2003
|
# Test defaults w/ 2-story building & multiple HVAC systems
|
1694
2004
|
hpxml = _create_hpxml('base-hvac-multiple.xml')
|
@@ -1702,6 +2012,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1702
2012
|
duct.duct_location = nil
|
1703
2013
|
duct.duct_surface_area = nil
|
1704
2014
|
duct.duct_surface_area_multiplier = nil
|
2015
|
+
duct.duct_buried_insulation_level = nil
|
1705
2016
|
end
|
1706
2017
|
end
|
1707
2018
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
@@ -1714,9 +2025,14 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1714
2025
|
expected_return_fracs = [0.375, 0.375, 0.125, 0.125] * hpxml_default.hvac_distributions.size
|
1715
2026
|
expected_supply_area_mults = [1.0, 1.0, 1.0, 1.0] * hpxml_default.hvac_distributions.size
|
1716
2027
|
expected_return_area_mults = [1.0, 1.0, 1.0, 1.0] * hpxml_default.hvac_distributions.size
|
2028
|
+
expected_supply_buried_levels = [HPXML::DuctBuriedInsulationNone] * 4 * hpxml_default.hvac_distributions.size
|
2029
|
+
expected_return_buried_levels = [HPXML::DuctBuriedInsulationNone] * 4 * hpxml_default.hvac_distributions.size
|
2030
|
+
expected_supply_effective_rvalues = [6.74] * 4 * hpxml_default.hvac_distributions.size
|
2031
|
+
expected_return_effective_rvalues = [4.86] * 4 * hpxml_default.hvac_distributions.size
|
1717
2032
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1718
2033
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1719
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults
|
2034
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults,
|
2035
|
+
expected_supply_buried_levels, expected_return_buried_levels, expected_supply_effective_rvalues, expected_return_effective_rvalues)
|
1720
2036
|
|
1721
2037
|
# Test defaults w/ 2-story building & multiple HVAC systems & duct area fractions
|
1722
2038
|
hpxml = _create_hpxml('base-hvac-multiple.xml')
|
@@ -1735,6 +2051,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1735
2051
|
hvac_distribution.ducts.each do |duct|
|
1736
2052
|
duct.duct_surface_area = nil
|
1737
2053
|
duct.duct_surface_area_multiplier = nil
|
2054
|
+
duct.duct_buried_insulation_level = nil
|
1738
2055
|
end
|
1739
2056
|
end
|
1740
2057
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
@@ -1747,25 +2064,29 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1747
2064
|
expected_return_fracs = [0.5, 0.5] * hpxml_default.hvac_distributions.size
|
1748
2065
|
expected_supply_area_mults = [1.0, 1.0] * hpxml_default.hvac_distributions.size
|
1749
2066
|
expected_return_area_mults = [1.0, 1.0] * hpxml_default.hvac_distributions.size
|
2067
|
+
expected_supply_buried_levels = [HPXML::DuctBuriedInsulationNone] * 2 * hpxml_default.hvac_distributions.size
|
2068
|
+
expected_return_buried_levels = [HPXML::DuctBuriedInsulationNone] * 2 * hpxml_default.hvac_distributions.size
|
2069
|
+
expected_supply_effective_rvalues = [6.74] * 2 * hpxml_default.hvac_distributions.size
|
2070
|
+
expected_return_effective_rvalues = [4.86] * 2 * hpxml_default.hvac_distributions.size
|
1750
2071
|
expected_n_return_registers = hpxml_default.building_construction.number_of_conditioned_floors
|
1751
2072
|
_test_default_duct_values(hpxml_default, expected_supply_locations, expected_return_locations, expected_supply_areas, expected_return_areas,
|
1752
|
-
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults
|
2073
|
+
expected_supply_fracs, expected_return_fracs, expected_n_return_registers, expected_supply_area_mults, expected_return_area_mults,
|
2074
|
+
expected_supply_buried_levels, expected_return_buried_levels, expected_supply_effective_rvalues, expected_return_effective_rvalues)
|
1753
2075
|
end
|
1754
2076
|
|
1755
2077
|
def test_mech_ventilation_fans
|
1756
2078
|
# Test inputs not overridden by defaults w/ shared exhaust system
|
1757
|
-
hpxml = _create_hpxml('base-
|
1758
|
-
hpxml.
|
1759
|
-
|
1760
|
-
|
1761
|
-
|
1762
|
-
|
1763
|
-
|
1764
|
-
|
1765
|
-
|
1766
|
-
|
1767
|
-
vent_fan
|
1768
|
-
vent_fan.delivered_ventilation = 89
|
2079
|
+
hpxml = _create_hpxml('base-bldgtype-attached.xml')
|
2080
|
+
hpxml.ventilation_fans.add(id: 'MechanicalVentilation',
|
2081
|
+
fan_type: HPXML::MechVentTypeExhaust,
|
2082
|
+
used_for_whole_building_ventilation: true,
|
2083
|
+
is_shared_system: true,
|
2084
|
+
fraction_recirculation: 0.0,
|
2085
|
+
in_unit_flow_rate: 10.0,
|
2086
|
+
hours_in_operation: 22.0,
|
2087
|
+
fan_power: 12.5,
|
2088
|
+
delivered_ventilation: 89)
|
2089
|
+
vent_fan = hpxml.ventilation_fans[0]
|
1769
2090
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1770
2091
|
hpxml_default = _test_measure()
|
1771
2092
|
_test_default_mech_vent_values(hpxml_default, true, 22.0, 12.5, 89)
|
@@ -1800,7 +2121,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1800
2121
|
# Test defaults
|
1801
2122
|
vent_fan.rated_flow_rate = nil
|
1802
2123
|
vent_fan.start_hour = nil
|
1803
|
-
vent_fan.
|
2124
|
+
vent_fan.count = nil
|
1804
2125
|
vent_fan.is_shared_system = nil
|
1805
2126
|
vent_fan.fraction_recirculation = nil
|
1806
2127
|
vent_fan.in_unit_flow_rate = nil
|
@@ -1812,19 +2133,27 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1812
2133
|
vent_fan.delivered_ventilation = nil
|
1813
2134
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1814
2135
|
hpxml_default = _test_measure()
|
1815
|
-
_test_default_mech_vent_values(hpxml_default, false, 24.0,
|
2136
|
+
_test_default_mech_vent_values(hpxml_default, false, 24.0, 27.1, 77.3)
|
1816
2137
|
|
1817
|
-
# Test defaults w/ SFA building
|
1818
|
-
hpxml = _create_hpxml('base-bldgtype-
|
2138
|
+
# Test defaults w/ SFA building, compartmentalization test
|
2139
|
+
hpxml = _create_hpxml('base-bldgtype-attached.xml')
|
2140
|
+
hpxml.air_infiltration_measurements[0].infiltration_type = HPXML::InfiltrationTypeUnitTotal
|
1819
2141
|
hpxml.ventilation_fans.add(id: 'MechanicalVentilation',
|
1820
2142
|
fan_type: HPXML::MechVentTypeExhaust,
|
1821
2143
|
used_for_whole_building_ventilation: true)
|
1822
2144
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1823
2145
|
hpxml_default = _test_measure()
|
1824
|
-
_test_default_mech_vent_values(hpxml_default, false, 24.0, 27.
|
2146
|
+
_test_default_mech_vent_values(hpxml_default, false, 24.0, 27.4, 78.4)
|
2147
|
+
|
2148
|
+
# Test defaults w/ SFA building, guarded test
|
2149
|
+
hpxml.air_infiltration_measurements[0].infiltration_type = HPXML::InfiltrationTypeUnitExterior
|
2150
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2151
|
+
hpxml_default = _test_measure()
|
2152
|
+
_test_default_mech_vent_values(hpxml_default, false, 24.0, 27.2, 77.3)
|
1825
2153
|
|
1826
|
-
# Test defaults w/ MF building
|
2154
|
+
# Test defaults w/ MF building, compartmentalization test
|
1827
2155
|
hpxml = _create_hpxml('base-bldgtype-multifamily.xml')
|
2156
|
+
hpxml.air_infiltration_measurements[0].infiltration_type = HPXML::InfiltrationTypeUnitTotal
|
1828
2157
|
hpxml.ventilation_fans.add(id: 'MechanicalVentilation',
|
1829
2158
|
fan_type: HPXML::MechVentTypeExhaust,
|
1830
2159
|
used_for_whole_building_ventilation: true)
|
@@ -1832,6 +2161,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1832
2161
|
hpxml_default = _test_measure()
|
1833
2162
|
_test_default_mech_vent_values(hpxml_default, false, 24.0, 19.8, 56.5)
|
1834
2163
|
|
2164
|
+
# Test defaults w/ MF building, guarded test
|
2165
|
+
hpxml.air_infiltration_measurements[0].infiltration_type = HPXML::InfiltrationTypeUnitExterior
|
2166
|
+
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2167
|
+
hpxml_default = _test_measure()
|
2168
|
+
_test_default_mech_vent_values(hpxml_default, false, 24.0, 19.2, 54.9)
|
2169
|
+
|
1835
2170
|
# Test defaults w/ nACH infiltration
|
1836
2171
|
hpxml = _create_hpxml('base-enclosure-infil-natural-ach.xml')
|
1837
2172
|
hpxml.ventilation_fans.add(id: 'MechanicalVentilation',
|
@@ -1870,7 +2205,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1870
2205
|
|
1871
2206
|
# Test inputs not overridden by defaults w/ CFIS
|
1872
2207
|
hpxml = _create_hpxml('base-mechvent-cfis.xml')
|
1873
|
-
vent_fan = hpxml.ventilation_fans.
|
2208
|
+
vent_fan = hpxml.ventilation_fans.find { |f| f.used_for_whole_building_ventilation }
|
1874
2209
|
vent_fan.is_shared_system = false
|
1875
2210
|
vent_fan.hours_in_operation = 12.0
|
1876
2211
|
vent_fan.fan_power = 12.5
|
@@ -1907,11 +2242,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1907
2242
|
vent_fan.cfis_addtl_runtime_operating_mode = nil
|
1908
2243
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1909
2244
|
hpxml_default = _test_measure()
|
1910
|
-
_test_default_mech_vent_values(hpxml_default, false, 8.0,
|
2245
|
+
_test_default_mech_vent_values(hpxml_default, false, 8.0, 149.4, 298.7, 1.0, HPXML::CFISModeAirHandler)
|
1911
2246
|
|
1912
2247
|
# Test inputs not overridden by defaults w/ ERV
|
1913
2248
|
hpxml = _create_hpxml('base-mechvent-erv.xml')
|
1914
|
-
vent_fan = hpxml.ventilation_fans.
|
2249
|
+
vent_fan = hpxml.ventilation_fans.find { |f| f.used_for_whole_building_ventilation }
|
1915
2250
|
vent_fan.is_shared_system = false
|
1916
2251
|
vent_fan.hours_in_operation = 20.0
|
1917
2252
|
vent_fan.fan_power = 45.0
|
@@ -1931,17 +2266,17 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1931
2266
|
def test_local_ventilation_fans
|
1932
2267
|
# Test inputs not overridden by defaults
|
1933
2268
|
hpxml = _create_hpxml('base-mechvent-bath-kitchen-fans.xml')
|
1934
|
-
kitchen_fan = hpxml.ventilation_fans.
|
2269
|
+
kitchen_fan = hpxml.ventilation_fans.find { |f| f.used_for_local_ventilation && f.fan_location == HPXML::LocationKitchen }
|
1935
2270
|
kitchen_fan.rated_flow_rate = 300
|
1936
2271
|
kitchen_fan.fan_power = 20
|
1937
2272
|
kitchen_fan.start_hour = 12
|
1938
|
-
kitchen_fan.
|
2273
|
+
kitchen_fan.count = 2
|
1939
2274
|
kitchen_fan.hours_in_operation = 2
|
1940
|
-
bath_fan = hpxml.ventilation_fans.
|
2275
|
+
bath_fan = hpxml.ventilation_fans.find { |f| f.used_for_local_ventilation && f.fan_location == HPXML::LocationBath }
|
1941
2276
|
bath_fan.rated_flow_rate = 80
|
1942
2277
|
bath_fan.fan_power = 33
|
1943
2278
|
bath_fan.start_hour = 6
|
1944
|
-
bath_fan.
|
2279
|
+
bath_fan.count = 3
|
1945
2280
|
bath_fan.hours_in_operation = 3
|
1946
2281
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1947
2282
|
hpxml_default = _test_measure()
|
@@ -1952,12 +2287,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1952
2287
|
kitchen_fan.rated_flow_rate = nil
|
1953
2288
|
kitchen_fan.fan_power = nil
|
1954
2289
|
kitchen_fan.start_hour = nil
|
1955
|
-
kitchen_fan.
|
2290
|
+
kitchen_fan.count = nil
|
1956
2291
|
kitchen_fan.hours_in_operation = nil
|
1957
2292
|
bath_fan.rated_flow_rate = nil
|
1958
2293
|
bath_fan.fan_power = nil
|
1959
2294
|
bath_fan.start_hour = nil
|
1960
|
-
bath_fan.
|
2295
|
+
bath_fan.count = nil
|
1961
2296
|
bath_fan.hours_in_operation = nil
|
1962
2297
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
1963
2298
|
hpxml_default = _test_measure()
|
@@ -1968,7 +2303,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1968
2303
|
def test_whole_house_fan
|
1969
2304
|
# Test inputs not overridden by defaults
|
1970
2305
|
hpxml = _create_hpxml('base-mechvent-whole-house-fan.xml')
|
1971
|
-
whf = hpxml.ventilation_fans.
|
2306
|
+
whf = hpxml.ventilation_fans.find { |f| f.used_for_seasonal_cooling_load_reduction }
|
1972
2307
|
whf.rated_flow_rate = 3000
|
1973
2308
|
whf.fan_power = 321
|
1974
2309
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
@@ -1985,8 +2320,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
1985
2320
|
|
1986
2321
|
def test_storage_water_heaters
|
1987
2322
|
# Test inputs not overridden by defaults
|
1988
|
-
hpxml = _create_hpxml('base.xml')
|
1989
|
-
hpxml.building_construction.residential_facility_type = HPXML::ResidentialTypeSFA
|
2323
|
+
hpxml = _create_hpxml('base-bldgtype-attached.xml')
|
1990
2324
|
hpxml.water_heating_systems.each do |wh|
|
1991
2325
|
wh.is_shared_system = true
|
1992
2326
|
wh.number_of_units_served = 2
|
@@ -2126,7 +2460,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2126
2460
|
hpxml.water_heating_systems[0].operating_mode = nil
|
2127
2461
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2128
2462
|
hpxml_default = _test_measure()
|
2129
|
-
_test_default_heat_pump_water_heater_values(hpxml_default, [HPXML::
|
2463
|
+
_test_default_heat_pump_water_heater_values(hpxml_default, [HPXML::WaterHeaterOperatingModeHybridAuto])
|
2130
2464
|
end
|
2131
2465
|
|
2132
2466
|
def test_indirect_water_heaters
|
@@ -2279,44 +2613,44 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2279
2613
|
|
2280
2614
|
def test_pv_systems
|
2281
2615
|
# Test inputs not overridden by defaults
|
2282
|
-
hpxml = _create_hpxml('base-
|
2283
|
-
hpxml.
|
2284
|
-
|
2285
|
-
|
2286
|
-
|
2287
|
-
|
2288
|
-
|
2289
|
-
|
2290
|
-
|
2291
|
-
|
2292
|
-
|
2293
|
-
|
2616
|
+
hpxml = _create_hpxml('base-bldgtype-attached.xml')
|
2617
|
+
hpxml.pv_systems.add(id: 'PVSystem',
|
2618
|
+
is_shared_system: true,
|
2619
|
+
number_of_bedrooms_served: 20,
|
2620
|
+
system_losses_fraction: 0.20,
|
2621
|
+
location: HPXML::LocationGround,
|
2622
|
+
tracking: HPXML::PVTrackingType1Axis,
|
2623
|
+
module_type: HPXML::PVModuleTypePremium,
|
2624
|
+
array_azimuth: 123,
|
2625
|
+
array_tilt: 0,
|
2626
|
+
max_power_output: 1000,
|
2627
|
+
inverter_idref: 'Inverter')
|
2628
|
+
hpxml.inverters.add(id: 'Inverter',
|
2629
|
+
inverter_efficiency: 0.90)
|
2630
|
+
pv = hpxml.pv_systems[0]
|
2631
|
+
inv = hpxml.inverters[0]
|
2294
2632
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2295
2633
|
hpxml_default = _test_measure()
|
2296
2634
|
_test_default_pv_system_values(hpxml_default, 0.90, 0.20, true, HPXML::LocationGround, HPXML::PVTrackingType1Axis, HPXML::PVModuleTypePremium, 123)
|
2297
2635
|
|
2298
2636
|
# Test defaults w/o year modules manufactured
|
2299
|
-
|
2300
|
-
|
2301
|
-
|
2302
|
-
|
2303
|
-
|
2304
|
-
|
2305
|
-
|
2306
|
-
|
2307
|
-
pv.array_azimuth = nil
|
2308
|
-
end
|
2637
|
+
pv.is_shared_system = nil
|
2638
|
+
pv.system_losses_fraction = nil
|
2639
|
+
pv.location = nil
|
2640
|
+
pv.tracking = nil
|
2641
|
+
pv.module_type = nil
|
2642
|
+
pv.array_orientation = HPXML::OrientationSoutheast
|
2643
|
+
pv.array_azimuth = nil
|
2644
|
+
inv.inverter_efficiency = nil
|
2309
2645
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2310
2646
|
hpxml_default = _test_measure()
|
2311
2647
|
_test_default_pv_system_values(hpxml_default, 0.96, 0.14, false, HPXML::LocationRoof, HPXML::PVTrackingTypeFixed, HPXML::PVModuleTypeStandard, 135)
|
2312
2648
|
|
2313
2649
|
# Test defaults w/ year modules manufactured
|
2314
|
-
|
2315
|
-
pv.year_modules_manufactured = 2010
|
2316
|
-
end
|
2650
|
+
pv.year_modules_manufactured = 2010
|
2317
2651
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2318
2652
|
hpxml_default = _test_measure()
|
2319
|
-
_test_default_pv_system_values(hpxml_default, 0.96, 0.
|
2653
|
+
_test_default_pv_system_values(hpxml_default, 0.96, 0.194, false, HPXML::LocationRoof, HPXML::PVTrackingTypeFixed, HPXML::PVModuleTypeStandard, 135)
|
2320
2654
|
end
|
2321
2655
|
|
2322
2656
|
def test_batteries
|
@@ -2332,7 +2666,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2332
2666
|
hpxml.batteries[0].round_trip_efficiency = 0.9
|
2333
2667
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2334
2668
|
hpxml_default = _test_measure()
|
2335
|
-
_test_default_battery_values(hpxml_default, 45.0, nil, 34.0, nil, 1234.0, HPXML::LocationBasementConditioned, nil, 0.9)
|
2669
|
+
_test_default_battery_values(hpxml_default.batteries[0], 45.0, nil, 34.0, nil, 1234.0, HPXML::LocationBasementConditioned, nil, 0.9)
|
2336
2670
|
|
2337
2671
|
# Test w/ Ah instead of kWh
|
2338
2672
|
hpxml.batteries[0].nominal_capacity_kwh = nil
|
@@ -2341,7 +2675,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2341
2675
|
hpxml.batteries[0].usable_capacity_ah = 876.0
|
2342
2676
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2343
2677
|
hpxml_default = _test_measure()
|
2344
|
-
_test_default_battery_values(hpxml_default, nil, 987.0, nil, 876.0, 1234.0, HPXML::LocationBasementConditioned, nil, 0.9)
|
2678
|
+
_test_default_battery_values(hpxml_default.batteries[0], nil, 987.0, nil, 876.0, 1234.0, HPXML::LocationBasementConditioned, nil, 0.9)
|
2345
2679
|
|
2346
2680
|
# Test defaults
|
2347
2681
|
hpxml.batteries[0].nominal_capacity_kwh = nil
|
@@ -2354,7 +2688,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2354
2688
|
hpxml.batteries[0].round_trip_efficiency = nil
|
2355
2689
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2356
2690
|
hpxml_default = _test_measure()
|
2357
|
-
_test_default_battery_values(hpxml_default, 10.0, nil, 9.0, nil, 5000.0, HPXML::LocationOutside, nil, 0.925)
|
2691
|
+
_test_default_battery_values(hpxml_default.batteries[0], 10.0, nil, 9.0, nil, 5000.0, HPXML::LocationOutside, nil, 0.925)
|
2358
2692
|
|
2359
2693
|
# Test defaults w/ nominal kWh
|
2360
2694
|
hpxml.batteries[0].nominal_capacity_kwh = 14.0
|
@@ -2364,7 +2698,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2364
2698
|
hpxml.batteries[0].rated_power_output = nil
|
2365
2699
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2366
2700
|
hpxml_default = _test_measure()
|
2367
|
-
_test_default_battery_values(hpxml_default, 14.0, nil, 12.6, nil, 7000.0, HPXML::LocationOutside, nil, 0.925)
|
2701
|
+
_test_default_battery_values(hpxml_default.batteries[0], 14.0, nil, 12.6, nil, 7000.0, HPXML::LocationOutside, nil, 0.925)
|
2368
2702
|
|
2369
2703
|
# Test defaults w/ usable kWh
|
2370
2704
|
hpxml.batteries[0].nominal_capacity_kwh = nil
|
@@ -2374,7 +2708,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2374
2708
|
hpxml.batteries[0].rated_power_output = nil
|
2375
2709
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2376
2710
|
hpxml_default = _test_measure()
|
2377
|
-
_test_default_battery_values(hpxml_default, 13.33, nil, 12.0, nil, 6665.0, HPXML::LocationOutside, nil, 0.925)
|
2711
|
+
_test_default_battery_values(hpxml_default.batteries[0], 13.33, nil, 12.0, nil, 6665.0, HPXML::LocationOutside, nil, 0.925)
|
2378
2712
|
|
2379
2713
|
# Test defaults w/ nominal Ah
|
2380
2714
|
hpxml.batteries[0].nominal_capacity_kwh = nil
|
@@ -2384,7 +2718,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2384
2718
|
hpxml.batteries[0].rated_power_output = nil
|
2385
2719
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2386
2720
|
hpxml_default = _test_measure()
|
2387
|
-
_test_default_battery_values(hpxml_default, nil, 280.0, nil, 252.0, 7000.0, HPXML::LocationOutside, nil, 0.925)
|
2721
|
+
_test_default_battery_values(hpxml_default.batteries[0], nil, 280.0, nil, 252.0, 7000.0, HPXML::LocationOutside, nil, 0.925)
|
2388
2722
|
|
2389
2723
|
# Test defaults w/ usable Ah
|
2390
2724
|
hpxml.batteries[0].nominal_capacity_kwh = nil
|
@@ -2394,7 +2728,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2394
2728
|
hpxml.batteries[0].rated_power_output = nil
|
2395
2729
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2396
2730
|
hpxml_default = _test_measure()
|
2397
|
-
_test_default_battery_values(hpxml_default, nil, 266.67, nil, 240.0, 6667.0, HPXML::LocationOutside, nil, 0.925)
|
2731
|
+
_test_default_battery_values(hpxml_default.batteries[0], nil, 266.67, nil, 240.0, 6667.0, HPXML::LocationOutside, nil, 0.925)
|
2398
2732
|
|
2399
2733
|
# Test defaults w/ rated power output
|
2400
2734
|
hpxml.batteries[0].nominal_capacity_kwh = nil
|
@@ -2404,7 +2738,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2404
2738
|
hpxml.batteries[0].rated_power_output = 10000.0
|
2405
2739
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2406
2740
|
hpxml_default = _test_measure()
|
2407
|
-
_test_default_battery_values(hpxml_default, 20.0, nil, 18.0, nil, 10000.0, HPXML::LocationOutside, nil, 0.925)
|
2741
|
+
_test_default_battery_values(hpxml_default.batteries[0], 20.0, nil, 18.0, nil, 10000.0, HPXML::LocationOutside, nil, 0.925)
|
2408
2742
|
|
2409
2743
|
# Test defaults w/ garage
|
2410
2744
|
hpxml = _create_hpxml('base-pv-battery-garage.xml')
|
@@ -2418,25 +2752,25 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2418
2752
|
hpxml.batteries[0].round_trip_efficiency = nil
|
2419
2753
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2420
2754
|
hpxml_default = _test_measure()
|
2421
|
-
_test_default_battery_values(hpxml_default, 10.0, nil, 9.0, nil, 5000.0, HPXML::LocationGarage, nil, 0.925)
|
2755
|
+
_test_default_battery_values(hpxml_default.batteries[0], 10.0, nil, 9.0, nil, 5000.0, HPXML::LocationGarage, nil, 0.925)
|
2422
2756
|
end
|
2423
2757
|
|
2424
2758
|
def test_generators
|
2425
2759
|
# Test inputs not overridden by defaults
|
2426
|
-
hpxml = _create_hpxml('base-
|
2427
|
-
hpxml.
|
2428
|
-
|
2429
|
-
|
2430
|
-
|
2431
|
-
|
2760
|
+
hpxml = _create_hpxml('base-bldgtype-attached.xml')
|
2761
|
+
hpxml.generators.add(id: 'Generator',
|
2762
|
+
is_shared_system: true,
|
2763
|
+
number_of_bedrooms_served: 20,
|
2764
|
+
fuel_type: HPXML::FuelTypeNaturalGas,
|
2765
|
+
annual_consumption_kbtu: 8500,
|
2766
|
+
annual_output_kwh: 500)
|
2767
|
+
generator = hpxml.generators[0]
|
2432
2768
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2433
2769
|
hpxml_default = _test_measure()
|
2434
2770
|
_test_default_generator_values(hpxml_default, true)
|
2435
2771
|
|
2436
2772
|
# Test defaults
|
2437
|
-
|
2438
|
-
generator.is_shared_system = nil
|
2439
|
-
end
|
2773
|
+
generator.is_shared_system = nil
|
2440
2774
|
XMLHelper.write_file(hpxml.to_oga, @tmp_hpxml_path)
|
2441
2775
|
hpxml_default = _test_measure()
|
2442
2776
|
_test_default_generator_values(hpxml_default, false)
|
@@ -2444,8 +2778,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2444
2778
|
|
2445
2779
|
def test_clothes_washers
|
2446
2780
|
# Test inputs not overridden by defaults
|
2447
|
-
hpxml = _create_hpxml('base.xml')
|
2448
|
-
hpxml.building_construction.residential_facility_type = HPXML::ResidentialTypeSFA
|
2781
|
+
hpxml = _create_hpxml('base-bldgtype-attached.xml')
|
2449
2782
|
hpxml.water_heating_systems[0].is_shared_system = true
|
2450
2783
|
hpxml.water_heating_systems[0].number_of_units_served = 6
|
2451
2784
|
hpxml.clothes_washers[0].location = HPXML::LocationBasementConditioned
|
@@ -2500,8 +2833,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2500
2833
|
|
2501
2834
|
def test_clothes_dryers
|
2502
2835
|
# Test inputs not overridden by defaults
|
2503
|
-
hpxml = _create_hpxml('base.xml')
|
2504
|
-
hpxml.building_construction.residential_facility_type = HPXML::ResidentialTypeSFA
|
2836
|
+
hpxml = _create_hpxml('base-bldgtype-attached.xml')
|
2505
2837
|
hpxml.water_heating_systems[0].is_shared_system = true
|
2506
2838
|
hpxml.water_heating_systems[0].number_of_units_served = 6
|
2507
2839
|
hpxml.clothes_dryers[0].location = HPXML::LocationBasementConditioned
|
@@ -2575,8 +2907,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2575
2907
|
|
2576
2908
|
def test_dishwashers
|
2577
2909
|
# Test inputs not overridden by defaults
|
2578
|
-
hpxml = _create_hpxml('base.xml')
|
2579
|
-
hpxml.building_construction.residential_facility_type = HPXML::ResidentialTypeSFA
|
2910
|
+
hpxml = _create_hpxml('base-bldgtype-attached.xml')
|
2580
2911
|
hpxml.water_heating_systems[0].is_shared_system = true
|
2581
2912
|
hpxml.water_heating_systems[0].number_of_units_served = 6
|
2582
2913
|
hpxml.dishwashers[0].location = HPXML::LocationBasementConditioned
|
@@ -2866,7 +3197,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2866
3197
|
def test_ceiling_fans
|
2867
3198
|
# Test inputs not overridden by defaults
|
2868
3199
|
hpxml = _create_hpxml('base-lighting-ceiling-fans.xml')
|
2869
|
-
hpxml.ceiling_fans[0].
|
3200
|
+
hpxml.ceiling_fans[0].count = 2
|
2870
3201
|
hpxml.ceiling_fans[0].efficiency = 100
|
2871
3202
|
hpxml.ceiling_fans[0].weekday_fractions = ConstantDaySchedule
|
2872
3203
|
hpxml.ceiling_fans[0].weekend_fractions = ConstantDaySchedule
|
@@ -2877,7 +3208,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
2877
3208
|
|
2878
3209
|
# Test defaults
|
2879
3210
|
hpxml.ceiling_fans.each do |ceiling_fan|
|
2880
|
-
ceiling_fan.
|
3211
|
+
ceiling_fan.count = nil
|
2881
3212
|
ceiling_fan.efficiency = nil
|
2882
3213
|
ceiling_fan.weekday_fractions = nil
|
2883
3214
|
ceiling_fan.weekend_fractions = nil
|
@@ -3007,32 +3338,32 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3007
3338
|
def test_plug_loads
|
3008
3339
|
# Test inputs not overridden by defaults
|
3009
3340
|
hpxml = _create_hpxml('base-misc-loads-large-uncommon.xml')
|
3010
|
-
tv_pl = hpxml.plug_loads.
|
3011
|
-
tv_pl.
|
3341
|
+
tv_pl = hpxml.plug_loads.find { |pl| pl.plug_load_type == HPXML::PlugLoadTypeTelevision }
|
3342
|
+
tv_pl.kwh_per_year = 1000
|
3012
3343
|
tv_pl.usage_multiplier = 1.1
|
3013
3344
|
tv_pl.frac_sensible = 0.6
|
3014
3345
|
tv_pl.frac_latent = 0.3
|
3015
3346
|
tv_pl.weekday_fractions = ConstantDaySchedule
|
3016
3347
|
tv_pl.weekend_fractions = ConstantDaySchedule
|
3017
3348
|
tv_pl.monthly_multipliers = ConstantMonthSchedule
|
3018
|
-
other_pl = hpxml.plug_loads.
|
3019
|
-
other_pl.
|
3349
|
+
other_pl = hpxml.plug_loads.find { |pl| pl.plug_load_type == HPXML::PlugLoadTypeOther }
|
3350
|
+
other_pl.kwh_per_year = 2000
|
3020
3351
|
other_pl.usage_multiplier = 1.2
|
3021
3352
|
other_pl.frac_sensible = 0.5
|
3022
3353
|
other_pl.frac_latent = 0.4
|
3023
3354
|
other_pl.weekday_fractions = ConstantDaySchedule
|
3024
3355
|
other_pl.weekend_fractions = ConstantDaySchedule
|
3025
3356
|
other_pl.monthly_multipliers = ConstantMonthSchedule
|
3026
|
-
veh_pl = hpxml.plug_loads.
|
3027
|
-
veh_pl.
|
3357
|
+
veh_pl = hpxml.plug_loads.find { |pl| pl.plug_load_type == HPXML::PlugLoadTypeElectricVehicleCharging }
|
3358
|
+
veh_pl.kwh_per_year = 4000
|
3028
3359
|
veh_pl.usage_multiplier = 1.3
|
3029
3360
|
veh_pl.frac_sensible = 0.4
|
3030
3361
|
veh_pl.frac_latent = 0.5
|
3031
3362
|
veh_pl.weekday_fractions = ConstantDaySchedule
|
3032
3363
|
veh_pl.weekend_fractions = ConstantDaySchedule
|
3033
3364
|
veh_pl.monthly_multipliers = ConstantMonthSchedule
|
3034
|
-
wellpump_pl = hpxml.plug_loads.
|
3035
|
-
wellpump_pl.
|
3365
|
+
wellpump_pl = hpxml.plug_loads.find { |pl| pl.plug_load_type == HPXML::PlugLoadTypeWellPump }
|
3366
|
+
wellpump_pl.kwh_per_year = 3000
|
3036
3367
|
wellpump_pl.usage_multiplier = 1.4
|
3037
3368
|
wellpump_pl.frac_sensible = 0.3
|
3038
3369
|
wellpump_pl.frac_latent = 0.6
|
@@ -3048,7 +3379,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3048
3379
|
|
3049
3380
|
# Test defaults
|
3050
3381
|
hpxml.plug_loads.each do |plug_load|
|
3051
|
-
plug_load.
|
3382
|
+
plug_load.kwh_per_year = nil
|
3052
3383
|
plug_load.usage_multiplier = nil
|
3053
3384
|
plug_load.frac_sensible = nil
|
3054
3385
|
plug_load.frac_latent = nil
|
@@ -3067,7 +3398,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3067
3398
|
def test_fuel_loads
|
3068
3399
|
# Test inputs not overridden by defaults
|
3069
3400
|
hpxml = _create_hpxml('base-misc-loads-large-uncommon.xml')
|
3070
|
-
gg_fl = hpxml.fuel_loads.
|
3401
|
+
gg_fl = hpxml.fuel_loads.find { |fl| fl.fuel_load_type == HPXML::FuelLoadTypeGrill }
|
3071
3402
|
gg_fl.therm_per_year = 1000
|
3072
3403
|
gg_fl.usage_multiplier = 0.9
|
3073
3404
|
gg_fl.frac_sensible = 0.6
|
@@ -3075,7 +3406,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3075
3406
|
gg_fl.weekday_fractions = ConstantDaySchedule
|
3076
3407
|
gg_fl.weekend_fractions = ConstantDaySchedule
|
3077
3408
|
gg_fl.monthly_multipliers = ConstantMonthSchedule
|
3078
|
-
gl_fl = hpxml.fuel_loads.
|
3409
|
+
gl_fl = hpxml.fuel_loads.find { |fl| fl.fuel_load_type == HPXML::FuelLoadTypeLighting }
|
3079
3410
|
gl_fl.therm_per_year = 2000
|
3080
3411
|
gl_fl.usage_multiplier = 0.8
|
3081
3412
|
gl_fl.frac_sensible = 0.5
|
@@ -3083,7 +3414,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3083
3414
|
gl_fl.weekday_fractions = ConstantDaySchedule
|
3084
3415
|
gl_fl.weekend_fractions = ConstantDaySchedule
|
3085
3416
|
gl_fl.monthly_multipliers = ConstantMonthSchedule
|
3086
|
-
gf_fl = hpxml.fuel_loads.
|
3417
|
+
gf_fl = hpxml.fuel_loads.find { |fl| fl.fuel_load_type == HPXML::FuelLoadTypeFireplace }
|
3087
3418
|
gf_fl.therm_per_year = 3000
|
3088
3419
|
gf_fl.usage_multiplier = 0.7
|
3089
3420
|
gf_fl.frac_sensible = 0.4
|
@@ -3151,8 +3482,11 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3151
3482
|
|
3152
3483
|
def _test_default_header_values(hpxml, tstep, sim_begin_month, sim_begin_day, sim_end_month, sim_end_day, sim_calendar_year,
|
3153
3484
|
dst_enabled, dst_begin_month, dst_begin_day, dst_end_month, dst_end_day, heat_pump_sizing_methodology,
|
3154
|
-
allow_increased_fixed_capacities, state_code, time_zone_utc_offset,
|
3155
|
-
|
3485
|
+
allow_increased_fixed_capacities, state_code, time_zone_utc_offset, temperature_capacitance_multiplier,
|
3486
|
+
natvent_days_per_week, unavailable_period_begin_hour, unavailable_period_end_hour, unavailable_period_natvent_availability,
|
3487
|
+
shading_summer_begin_month, shading_summer_begin_day, shading_summer_end_month, shading_summer_end_day,
|
3488
|
+
manualj_heating_design_temp, manualj_cooling_design_temp, manualj_heating_setpoint, manualj_cooling_setpoint,
|
3489
|
+
manualj_humidity_setpoint, manualj_internal_loads_sensible, manualj_internal_loads_latent, manualj_num_occupants)
|
3156
3490
|
assert_equal(tstep, hpxml.header.timestep)
|
3157
3491
|
assert_equal(sim_begin_month, hpxml.header.sim_begin_month)
|
3158
3492
|
assert_equal(sim_begin_day, hpxml.header.sim_begin_day)
|
@@ -3176,9 +3510,27 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3176
3510
|
assert_equal(state_code, hpxml.header.state_code)
|
3177
3511
|
end
|
3178
3512
|
assert_equal(time_zone_utc_offset, hpxml.header.time_zone_utc_offset)
|
3179
|
-
assert_equal(occupancy_calculation_type, hpxml.header.occupancy_calculation_type)
|
3180
3513
|
assert_equal(temperature_capacitance_multiplier, hpxml.header.temperature_capacitance_multiplier)
|
3181
3514
|
assert_equal(natvent_days_per_week, hpxml.header.natvent_days_per_week)
|
3515
|
+
if unavailable_period_begin_hour.nil? && unavailable_period_end_hour.nil? && unavailable_period_natvent_availability.nil?
|
3516
|
+
assert_equal(0, hpxml.header.unavailable_periods.size)
|
3517
|
+
else
|
3518
|
+
assert_equal(unavailable_period_begin_hour, hpxml.header.unavailable_periods[-1].begin_hour)
|
3519
|
+
assert_equal(unavailable_period_end_hour, hpxml.header.unavailable_periods[-1].end_hour)
|
3520
|
+
assert_equal(unavailable_period_natvent_availability, hpxml.header.unavailable_periods[-1].natvent_availability)
|
3521
|
+
end
|
3522
|
+
assert_equal(shading_summer_begin_month, hpxml.header.shading_summer_begin_month)
|
3523
|
+
assert_equal(shading_summer_begin_day, hpxml.header.shading_summer_begin_day)
|
3524
|
+
assert_equal(shading_summer_end_month, hpxml.header.shading_summer_end_month)
|
3525
|
+
assert_equal(shading_summer_end_day, hpxml.header.shading_summer_end_day)
|
3526
|
+
assert_in_epsilon(manualj_heating_design_temp, hpxml.header.manualj_heating_design_temp, 0.01)
|
3527
|
+
assert_in_epsilon(manualj_cooling_design_temp, hpxml.header.manualj_cooling_design_temp, 0.01)
|
3528
|
+
assert_equal(manualj_heating_setpoint, hpxml.header.manualj_heating_setpoint)
|
3529
|
+
assert_equal(manualj_cooling_setpoint, hpxml.header.manualj_cooling_setpoint)
|
3530
|
+
assert_equal(manualj_humidity_setpoint, hpxml.header.manualj_humidity_setpoint)
|
3531
|
+
assert_equal(manualj_internal_loads_sensible, hpxml.header.manualj_internal_loads_sensible)
|
3532
|
+
assert_equal(manualj_internal_loads_latent, hpxml.header.manualj_internal_loads_latent)
|
3533
|
+
assert_equal(manualj_num_occupants, hpxml.header.manualj_num_occupants)
|
3182
3534
|
end
|
3183
3535
|
|
3184
3536
|
def _test_default_emissions_values(scenario, elec_schedule_number_of_header_rows, elec_schedule_column_number,
|
@@ -3351,8 +3703,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3351
3703
|
end
|
3352
3704
|
end
|
3353
3705
|
|
3354
|
-
def _test_default_occupancy_values(hpxml,
|
3355
|
-
assert_equal(num_occupants, hpxml.building_occupancy.number_of_residents)
|
3706
|
+
def _test_default_occupancy_values(hpxml, weekday_sch, weekend_sch, monthly_mults)
|
3356
3707
|
if weekday_sch.nil?
|
3357
3708
|
assert_nil(hpxml.building_occupancy.weekday_fractions)
|
3358
3709
|
else
|
@@ -3383,15 +3734,23 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3383
3734
|
end
|
3384
3735
|
end
|
3385
3736
|
|
3386
|
-
def _test_default_building_construction_values(hpxml, building_volume, average_ceiling_height,
|
3737
|
+
def _test_default_building_construction_values(hpxml, building_volume, average_ceiling_height, n_bathrooms)
|
3387
3738
|
assert_equal(building_volume, hpxml.building_construction.conditioned_building_volume)
|
3388
3739
|
assert_in_epsilon(average_ceiling_height, hpxml.building_construction.average_ceiling_height, 0.01)
|
3389
|
-
assert_equal(has_flue_or_chimney, hpxml.building_construction.has_flue_or_chimney)
|
3390
3740
|
assert_equal(n_bathrooms, hpxml.building_construction.number_of_bathrooms)
|
3391
3741
|
end
|
3392
3742
|
|
3393
|
-
def _test_default_infiltration_values(
|
3394
|
-
assert_equal(volume,
|
3743
|
+
def _test_default_infiltration_values(hpxml, volume, has_flue_or_chimney_in_conditioned_space)
|
3744
|
+
assert_equal(volume, hpxml.air_infiltration_measurements[0].infiltration_volume)
|
3745
|
+
assert_equal(has_flue_or_chimney_in_conditioned_space, hpxml.air_infiltration.has_flue_or_chimney_in_conditioned_space)
|
3746
|
+
end
|
3747
|
+
|
3748
|
+
def _test_default_infiltration_compartmentalization_test_values(air_infiltration_measurement, a_ext)
|
3749
|
+
if a_ext.nil?
|
3750
|
+
assert_nil(air_infiltration_measurement.a_ext)
|
3751
|
+
else
|
3752
|
+
assert_in_delta(a_ext, air_infiltration_measurement.a_ext, 0.001)
|
3753
|
+
end
|
3395
3754
|
end
|
3396
3755
|
|
3397
3756
|
def _test_default_attic_values(attic, sla)
|
@@ -3523,30 +3882,32 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3523
3882
|
end
|
3524
3883
|
|
3525
3884
|
def _test_default_central_air_conditioner_values(cooling_system, shr, compressor_type, fan_watts_per_cfm, charge_defect_ratio,
|
3526
|
-
airflow_defect_ratio, cooling_capacity, cooling_efficiency_seer)
|
3885
|
+
airflow_defect_ratio, cooling_capacity, cooling_efficiency_seer, crankcase_heater_watts)
|
3527
3886
|
assert_equal(shr, cooling_system.cooling_shr)
|
3528
3887
|
assert_equal(compressor_type, cooling_system.compressor_type)
|
3529
3888
|
assert_equal(fan_watts_per_cfm, cooling_system.fan_watts_per_cfm)
|
3530
3889
|
assert_equal(charge_defect_ratio, cooling_system.charge_defect_ratio)
|
3531
3890
|
assert_equal(airflow_defect_ratio, cooling_system.airflow_defect_ratio)
|
3891
|
+
assert_equal(crankcase_heater_watts, cooling_system.crankcase_heater_watts)
|
3532
3892
|
if cooling_capacity.nil?
|
3533
3893
|
assert(cooling_system.cooling_capacity > 0)
|
3534
3894
|
else
|
3535
|
-
assert_equal(
|
3895
|
+
assert_equal(cooling_capacity, cooling_system.cooling_capacity)
|
3536
3896
|
end
|
3537
3897
|
if cooling_efficiency_seer.nil?
|
3538
3898
|
assert_nil(cooling_system.cooling_efficiency_seer)
|
3539
3899
|
else
|
3540
|
-
assert_equal(
|
3900
|
+
assert_equal(cooling_efficiency_seer, cooling_system.cooling_efficiency_seer)
|
3541
3901
|
end
|
3542
3902
|
end
|
3543
3903
|
|
3544
|
-
def _test_default_room_air_conditioner_ptac_values(cooling_system, shr, cooling_capacity)
|
3904
|
+
def _test_default_room_air_conditioner_ptac_values(cooling_system, shr, cooling_capacity, crankcase_heater_watts)
|
3545
3905
|
assert_equal(shr, cooling_system.cooling_shr)
|
3906
|
+
assert_equal(crankcase_heater_watts, cooling_system.crankcase_heater_watts)
|
3546
3907
|
if cooling_capacity.nil?
|
3547
3908
|
assert(cooling_system.cooling_capacity > 0)
|
3548
3909
|
else
|
3549
|
-
assert_equal(
|
3910
|
+
assert_equal(cooling_capacity, cooling_system.cooling_capacity)
|
3550
3911
|
end
|
3551
3912
|
end
|
3552
3913
|
|
@@ -3559,30 +3920,39 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3559
3920
|
end
|
3560
3921
|
|
3561
3922
|
def _test_default_mini_split_air_conditioner_values(cooling_system, shr, fan_watts_per_cfm, charge_defect_ratio,
|
3562
|
-
airflow_defect_ratio, cooling_capacity, cooling_efficiency_seer)
|
3923
|
+
airflow_defect_ratio, cooling_capacity, cooling_efficiency_seer, crankcase_heater_watts)
|
3563
3924
|
assert_equal(shr, cooling_system.cooling_shr)
|
3564
3925
|
assert_equal(fan_watts_per_cfm, cooling_system.fan_watts_per_cfm)
|
3565
3926
|
assert_equal(charge_defect_ratio, cooling_system.charge_defect_ratio)
|
3566
3927
|
assert_equal(airflow_defect_ratio, cooling_system.airflow_defect_ratio)
|
3928
|
+
assert_equal(crankcase_heater_watts, cooling_system.crankcase_heater_watts)
|
3567
3929
|
if cooling_capacity.nil?
|
3568
3930
|
assert(cooling_system.cooling_capacity > 0)
|
3569
3931
|
else
|
3570
|
-
assert_equal(
|
3932
|
+
assert_equal(cooling_capacity, cooling_system.cooling_capacity)
|
3571
3933
|
end
|
3572
3934
|
if cooling_efficiency_seer.nil?
|
3573
3935
|
assert_nil(cooling_system.cooling_efficiency_seer)
|
3574
3936
|
else
|
3575
|
-
assert_equal(
|
3937
|
+
assert_equal(cooling_efficiency_seer, cooling_system.cooling_efficiency_seer)
|
3576
3938
|
end
|
3939
|
+
assert_equal(HPXML::HVACCompressorTypeVariableSpeed, cooling_system.compressor_type)
|
3577
3940
|
end
|
3578
3941
|
|
3579
|
-
def _test_default_furnace_values(heating_system, fan_watts_per_cfm, airflow_defect_ratio, heating_capacity
|
3942
|
+
def _test_default_furnace_values(heating_system, fan_watts_per_cfm, airflow_defect_ratio, heating_capacity,
|
3943
|
+
pilot_light, pilot_light_btuh)
|
3580
3944
|
assert_equal(fan_watts_per_cfm, heating_system.fan_watts_per_cfm)
|
3581
3945
|
assert_equal(airflow_defect_ratio, heating_system.airflow_defect_ratio)
|
3582
3946
|
if heating_capacity.nil?
|
3583
3947
|
assert(heating_system.heating_capacity > 0)
|
3584
3948
|
else
|
3585
|
-
assert_equal(
|
3949
|
+
assert_equal(heating_capacity, heating_system.heating_capacity)
|
3950
|
+
end
|
3951
|
+
assert_equal(pilot_light, heating_system.pilot_light)
|
3952
|
+
if pilot_light_btuh.nil?
|
3953
|
+
assert_nil(heating_system.pilot_light_btuh)
|
3954
|
+
else
|
3955
|
+
assert_equal(pilot_light_btuh, heating_system.pilot_light_btuh)
|
3586
3956
|
end
|
3587
3957
|
end
|
3588
3958
|
|
@@ -3591,34 +3961,52 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3591
3961
|
if heating_capacity.nil?
|
3592
3962
|
assert(heating_system.heating_capacity > 0)
|
3593
3963
|
else
|
3594
|
-
assert_equal(
|
3964
|
+
assert_equal(heating_capacity, heating_system.heating_capacity)
|
3595
3965
|
end
|
3596
3966
|
end
|
3597
3967
|
|
3598
|
-
def _test_default_floor_furnace_values(heating_system, fan_watts, heating_capacity)
|
3968
|
+
def _test_default_floor_furnace_values(heating_system, fan_watts, heating_capacity, pilot_light, pilot_light_btuh)
|
3599
3969
|
assert_equal(fan_watts, heating_system.fan_watts)
|
3600
3970
|
if heating_capacity.nil?
|
3601
3971
|
assert(heating_system.heating_capacity > 0)
|
3602
3972
|
else
|
3603
|
-
assert_equal(
|
3973
|
+
assert_equal(heating_capacity, heating_system.heating_capacity)
|
3974
|
+
end
|
3975
|
+
assert_equal(pilot_light, heating_system.pilot_light)
|
3976
|
+
if pilot_light_btuh.nil?
|
3977
|
+
assert_nil(heating_system.pilot_light_btuh)
|
3978
|
+
else
|
3979
|
+
assert_equal(pilot_light_btuh, heating_system.pilot_light_btuh)
|
3604
3980
|
end
|
3605
3981
|
end
|
3606
3982
|
|
3607
|
-
def _test_default_boiler_values(heating_system, eae, heating_capacity)
|
3983
|
+
def _test_default_boiler_values(heating_system, eae, heating_capacity, pilot_light, pilot_light_btuh)
|
3608
3984
|
assert_equal(eae, heating_system.electric_auxiliary_energy)
|
3609
3985
|
if heating_capacity.nil?
|
3610
3986
|
assert(heating_system.heating_capacity > 0)
|
3611
3987
|
else
|
3612
|
-
assert_equal(
|
3988
|
+
assert_equal(heating_capacity, heating_system.heating_capacity)
|
3989
|
+
end
|
3990
|
+
assert_equal(pilot_light, heating_system.pilot_light)
|
3991
|
+
if pilot_light_btuh.nil?
|
3992
|
+
assert_nil(heating_system.pilot_light_btuh)
|
3993
|
+
else
|
3994
|
+
assert_equal(pilot_light_btuh, heating_system.pilot_light_btuh)
|
3613
3995
|
end
|
3614
3996
|
end
|
3615
3997
|
|
3616
|
-
def _test_default_stove_values(heating_system, fan_watts, heating_capacity)
|
3998
|
+
def _test_default_stove_values(heating_system, fan_watts, heating_capacity, pilot_light, pilot_light_btuh)
|
3617
3999
|
assert_equal(fan_watts, heating_system.fan_watts)
|
3618
4000
|
if heating_capacity.nil?
|
3619
4001
|
assert(heating_system.heating_capacity > 0)
|
3620
4002
|
else
|
3621
|
-
assert_equal(
|
4003
|
+
assert_equal(heating_capacity, heating_system.heating_capacity)
|
4004
|
+
end
|
4005
|
+
assert_equal(pilot_light, heating_system.pilot_light)
|
4006
|
+
if pilot_light_btuh.nil?
|
4007
|
+
assert_nil(heating_system.pilot_light_btuh)
|
4008
|
+
else
|
4009
|
+
assert_equal(pilot_light_btuh, heating_system.pilot_light_btuh)
|
3622
4010
|
end
|
3623
4011
|
end
|
3624
4012
|
|
@@ -3627,7 +4015,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3627
4015
|
if heating_capacity.nil?
|
3628
4016
|
assert(heating_system.heating_capacity > 0)
|
3629
4017
|
else
|
3630
|
-
assert_equal(
|
4018
|
+
assert_equal(heating_capacity, heating_system.heating_capacity)
|
3631
4019
|
end
|
3632
4020
|
end
|
3633
4021
|
|
@@ -3636,16 +4024,22 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3636
4024
|
if heating_capacity.nil?
|
3637
4025
|
assert(heating_system.heating_capacity > 0)
|
3638
4026
|
else
|
3639
|
-
assert_equal(
|
4027
|
+
assert_equal(heating_capacity, heating_system.heating_capacity)
|
3640
4028
|
end
|
3641
4029
|
end
|
3642
4030
|
|
3643
|
-
def _test_default_fireplace_values(heating_system, fan_watts, heating_capacity)
|
4031
|
+
def _test_default_fireplace_values(heating_system, fan_watts, heating_capacity, pilot_light, pilot_light_btuh)
|
3644
4032
|
assert_equal(fan_watts, heating_system.fan_watts)
|
3645
4033
|
if heating_capacity.nil?
|
3646
4034
|
assert(heating_system.heating_capacity > 0)
|
3647
4035
|
else
|
3648
|
-
assert_equal(
|
4036
|
+
assert_equal(heating_capacity, heating_system.heating_capacity)
|
4037
|
+
end
|
4038
|
+
assert_equal(pilot_light, heating_system.pilot_light)
|
4039
|
+
if pilot_light_btuh.nil?
|
4040
|
+
assert_nil(heating_system.pilot_light_btuh)
|
4041
|
+
else
|
4042
|
+
assert_equal(pilot_light_btuh, heating_system.pilot_light_btuh)
|
3649
4043
|
end
|
3650
4044
|
end
|
3651
4045
|
|
@@ -3653,101 +4047,159 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3653
4047
|
airflow_defect_ratio, cooling_capacity, heating_capacity,
|
3654
4048
|
heating_capacity_17F, backup_heating_capacity,
|
3655
4049
|
cooling_efficiency_seer, heating_efficiency_hspf,
|
3656
|
-
|
4050
|
+
heating_capacity_retention_fraction, heating_capacity_retention_temp,
|
4051
|
+
crankcase_heater_watts)
|
3657
4052
|
assert_equal(shr, heat_pump.cooling_shr)
|
3658
4053
|
assert_equal(compressor_type, heat_pump.compressor_type)
|
3659
4054
|
assert_equal(fan_watts_per_cfm, heat_pump.fan_watts_per_cfm)
|
3660
4055
|
assert_equal(charge_defect_ratio, heat_pump.charge_defect_ratio)
|
3661
4056
|
assert_equal(airflow_defect_ratio, heat_pump.airflow_defect_ratio)
|
4057
|
+
assert_equal(crankcase_heater_watts, heat_pump.crankcase_heater_watts)
|
3662
4058
|
if cooling_capacity.nil?
|
3663
4059
|
assert(heat_pump.cooling_capacity > 0)
|
3664
4060
|
else
|
3665
|
-
assert_equal(
|
4061
|
+
assert_equal(cooling_capacity, heat_pump.cooling_capacity)
|
3666
4062
|
end
|
3667
4063
|
if heating_capacity.nil?
|
3668
4064
|
assert(heat_pump.heating_capacity > 0)
|
3669
4065
|
else
|
3670
|
-
assert_equal(
|
4066
|
+
assert_equal(heating_capacity, heat_pump.heating_capacity)
|
3671
4067
|
end
|
3672
4068
|
if heating_capacity_17F.nil?
|
3673
|
-
|
4069
|
+
assert_nil(heat_pump.heating_capacity_17F)
|
3674
4070
|
else
|
3675
|
-
assert_equal(
|
4071
|
+
assert_equal(heating_capacity_17F, heat_pump.heating_capacity_17F)
|
3676
4072
|
end
|
3677
4073
|
if backup_heating_capacity.nil?
|
3678
4074
|
assert(heat_pump.backup_heating_capacity > 0)
|
3679
4075
|
else
|
3680
|
-
assert_equal(
|
4076
|
+
assert_equal(backup_heating_capacity, heat_pump.backup_heating_capacity)
|
3681
4077
|
end
|
3682
4078
|
if cooling_efficiency_seer.nil?
|
3683
4079
|
assert_nil(heat_pump.cooling_efficiency_seer)
|
3684
4080
|
else
|
3685
|
-
assert_equal(
|
4081
|
+
assert_equal(cooling_efficiency_seer, heat_pump.cooling_efficiency_seer)
|
3686
4082
|
end
|
3687
4083
|
if heating_efficiency_hspf.nil?
|
3688
4084
|
assert_nil(heat_pump.heating_efficiency_hspf)
|
3689
4085
|
else
|
3690
|
-
assert_equal(
|
4086
|
+
assert_equal(heating_efficiency_hspf, heat_pump.heating_efficiency_hspf)
|
4087
|
+
end
|
4088
|
+
if heating_capacity_retention_fraction.nil?
|
4089
|
+
assert_nil(heat_pump.heating_capacity_retention_fraction)
|
4090
|
+
else
|
4091
|
+
assert_in_delta(heating_capacity_retention_fraction, heat_pump.heating_capacity_retention_fraction, 0.01)
|
4092
|
+
end
|
4093
|
+
if heating_capacity_retention_temp.nil?
|
4094
|
+
assert_nil(heat_pump.heating_capacity_retention_temp)
|
4095
|
+
else
|
4096
|
+
assert_equal(heating_capacity_retention_temp, heat_pump.heating_capacity_retention_temp)
|
3691
4097
|
end
|
3692
|
-
assert_equal(heat_pump.backup_heating_lockout_temp, backup_heating_lockout_temp)
|
3693
4098
|
end
|
3694
4099
|
|
3695
|
-
def _test_default_pthp_values(heat_pump, shr, cooling_capacity, heating_capacity,
|
3696
|
-
|
4100
|
+
def _test_default_pthp_values(heat_pump, shr, cooling_capacity, heating_capacity, heating_capacity_17F,
|
4101
|
+
heating_capacity_retention_fraction, heating_capacity_retention_temp,
|
4102
|
+
crankcase_heater_watts)
|
3697
4103
|
assert_equal(shr, heat_pump.cooling_shr)
|
4104
|
+
assert_equal(crankcase_heater_watts, heat_pump.crankcase_heater_watts)
|
3698
4105
|
if cooling_capacity.nil?
|
3699
4106
|
assert(heat_pump.cooling_capacity > 0)
|
3700
4107
|
else
|
3701
|
-
assert_equal(
|
4108
|
+
assert_equal(cooling_capacity, heat_pump.cooling_capacity)
|
3702
4109
|
end
|
3703
4110
|
if heating_capacity.nil?
|
3704
4111
|
assert(heat_pump.heating_capacity > 0)
|
3705
4112
|
else
|
3706
|
-
assert_equal(
|
4113
|
+
assert_equal(heating_capacity, heat_pump.heating_capacity)
|
4114
|
+
end
|
4115
|
+
if heating_capacity_17F.nil?
|
4116
|
+
assert_nil(heat_pump.heating_capacity_17F)
|
4117
|
+
else
|
4118
|
+
assert_equal(heating_capacity_17F, heat_pump.heating_capacity_17F)
|
4119
|
+
end
|
4120
|
+
if heating_capacity_retention_fraction.nil?
|
4121
|
+
assert_nil(heat_pump.heating_capacity_retention_fraction)
|
4122
|
+
else
|
4123
|
+
assert_in_delta(heating_capacity_retention_fraction, heat_pump.heating_capacity_retention_fraction, 0.01)
|
4124
|
+
end
|
4125
|
+
if heating_capacity_retention_temp.nil?
|
4126
|
+
assert_nil(heat_pump.heating_capacity_retention_temp)
|
4127
|
+
else
|
4128
|
+
assert_equal(heating_capacity_retention_temp, heat_pump.heating_capacity_retention_temp)
|
3707
4129
|
end
|
3708
|
-
assert_equal(heat_pump.backup_heating_lockout_temp, backup_heating_lockout_temp)
|
3709
4130
|
end
|
3710
4131
|
|
3711
4132
|
def _test_default_mini_split_heat_pump_values(heat_pump, shr, fan_watts_per_cfm, charge_defect_ratio,
|
3712
4133
|
airflow_defect_ratio, cooling_capacity, heating_capacity,
|
3713
4134
|
heating_capacity_17F, backup_heating_capacity,
|
3714
4135
|
cooling_efficiency_seer, heating_efficiency_hspf,
|
3715
|
-
|
4136
|
+
heating_capacity_retention_fraction, heating_capacity_retention_temp,
|
4137
|
+
crankcase_heater_watts)
|
3716
4138
|
assert_equal(shr, heat_pump.cooling_shr)
|
3717
4139
|
assert_equal(fan_watts_per_cfm, heat_pump.fan_watts_per_cfm)
|
3718
4140
|
assert_equal(charge_defect_ratio, heat_pump.charge_defect_ratio)
|
3719
4141
|
assert_equal(airflow_defect_ratio, heat_pump.airflow_defect_ratio)
|
4142
|
+
assert_equal(crankcase_heater_watts, heat_pump.crankcase_heater_watts)
|
3720
4143
|
if cooling_capacity.nil?
|
3721
4144
|
assert(heat_pump.cooling_capacity > 0)
|
3722
4145
|
else
|
3723
|
-
assert_equal(
|
4146
|
+
assert_equal(cooling_capacity, heat_pump.cooling_capacity)
|
3724
4147
|
end
|
3725
4148
|
if heating_capacity.nil?
|
3726
4149
|
assert(heat_pump.heating_capacity > 0)
|
3727
4150
|
else
|
3728
|
-
assert_equal(
|
4151
|
+
assert_equal(heating_capacity, heat_pump.heating_capacity)
|
3729
4152
|
end
|
3730
4153
|
if heating_capacity_17F.nil?
|
3731
|
-
|
4154
|
+
assert_nil(heat_pump.heating_capacity_17F)
|
3732
4155
|
else
|
3733
|
-
assert_equal(
|
4156
|
+
assert_equal(heating_capacity_17F, heat_pump.heating_capacity_17F)
|
3734
4157
|
end
|
3735
4158
|
if backup_heating_capacity.nil?
|
3736
4159
|
assert(heat_pump.backup_heating_capacity > 0)
|
3737
4160
|
else
|
3738
|
-
assert_equal(
|
4161
|
+
assert_equal(backup_heating_capacity, heat_pump.backup_heating_capacity)
|
3739
4162
|
end
|
3740
4163
|
if cooling_efficiency_seer.nil?
|
3741
4164
|
assert_nil(heat_pump.cooling_efficiency_seer)
|
3742
4165
|
else
|
3743
|
-
assert_equal(
|
4166
|
+
assert_equal(cooling_efficiency_seer, heat_pump.cooling_efficiency_seer)
|
3744
4167
|
end
|
3745
4168
|
if heating_efficiency_hspf.nil?
|
3746
4169
|
assert_nil(heat_pump.heating_efficiency_hspf)
|
3747
4170
|
else
|
3748
|
-
assert_equal(
|
4171
|
+
assert_equal(heating_efficiency_hspf, heat_pump.heating_efficiency_hspf)
|
4172
|
+
end
|
4173
|
+
assert_equal(HPXML::HVACCompressorTypeVariableSpeed, heat_pump.compressor_type)
|
4174
|
+
if heating_capacity_retention_fraction.nil?
|
4175
|
+
assert_nil(heat_pump.heating_capacity_retention_fraction)
|
4176
|
+
else
|
4177
|
+
assert_in_delta(heating_capacity_retention_fraction, heat_pump.heating_capacity_retention_fraction, 0.01)
|
4178
|
+
end
|
4179
|
+
if heating_capacity_retention_temp.nil?
|
4180
|
+
assert_nil(heat_pump.heating_capacity_retention_temp)
|
4181
|
+
else
|
4182
|
+
assert_equal(heating_capacity_retention_temp, heat_pump.heating_capacity_retention_temp)
|
4183
|
+
end
|
4184
|
+
end
|
4185
|
+
|
4186
|
+
def _test_default_heat_pump_temperature_values(heat_pump, compressor_lockout_temp, backup_heating_lockout_temp,
|
4187
|
+
backup_heating_switchover_temp)
|
4188
|
+
if compressor_lockout_temp.nil?
|
4189
|
+
assert_nil(heat_pump.compressor_lockout_temp)
|
4190
|
+
else
|
4191
|
+
assert_equal(compressor_lockout_temp, heat_pump.compressor_lockout_temp)
|
4192
|
+
end
|
4193
|
+
if backup_heating_lockout_temp.nil?
|
4194
|
+
assert_nil(heat_pump.backup_heating_lockout_temp)
|
4195
|
+
else
|
4196
|
+
assert_equal(backup_heating_lockout_temp, heat_pump.backup_heating_lockout_temp)
|
4197
|
+
end
|
4198
|
+
if backup_heating_switchover_temp.nil?
|
4199
|
+
assert_nil(heat_pump.backup_heating_switchover_temp)
|
4200
|
+
else
|
4201
|
+
assert_equal(backup_heating_switchover_temp, heat_pump.backup_heating_switchover_temp)
|
3749
4202
|
end
|
3750
|
-
assert_equal(heat_pump.backup_heating_lockout_temp, backup_heating_lockout_temp)
|
3751
4203
|
end
|
3752
4204
|
|
3753
4205
|
def _test_default_ground_to_air_heat_pump_values(heat_pump, pump_watts_per_ton, fan_watts_per_cfm,
|
@@ -3759,20 +4211,24 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3759
4211
|
if cooling_capacity.nil?
|
3760
4212
|
assert(heat_pump.cooling_capacity > 0)
|
3761
4213
|
else
|
3762
|
-
assert_equal(
|
4214
|
+
assert_equal(cooling_capacity, heat_pump.cooling_capacity)
|
3763
4215
|
end
|
3764
4216
|
if heating_capacity.nil?
|
3765
4217
|
assert(heat_pump.heating_capacity > 0)
|
3766
4218
|
else
|
3767
|
-
assert_equal(
|
4219
|
+
assert_equal(heating_capacity, heat_pump.heating_capacity)
|
3768
4220
|
end
|
3769
4221
|
if backup_heating_capacity.nil?
|
3770
4222
|
assert(heat_pump.backup_heating_capacity > 0)
|
3771
4223
|
else
|
3772
|
-
assert_equal(
|
4224
|
+
assert_equal(backup_heating_capacity, heat_pump.backup_heating_capacity)
|
3773
4225
|
end
|
3774
4226
|
end
|
3775
4227
|
|
4228
|
+
def _test_default_hvac_location_values(hvac_system, location)
|
4229
|
+
assert_equal(location, hvac_system.location)
|
4230
|
+
end
|
4231
|
+
|
3776
4232
|
def _test_default_hvac_control_setpoint_values(hvac_control, heating_setpoint_temp, cooling_setpoint_temp)
|
3777
4233
|
assert_equal(heating_setpoint_temp, hvac_control.heating_setpoint_temp)
|
3778
4234
|
assert_equal(cooling_setpoint_temp, hvac_control.cooling_setpoint_temp)
|
@@ -3795,7 +4251,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3795
4251
|
end
|
3796
4252
|
|
3797
4253
|
def _test_default_duct_values(hpxml, supply_locations, return_locations, supply_areas, return_areas,
|
3798
|
-
supply_fracs, return_fracs, n_return_registers, supply_area_mults, return_area_mults
|
4254
|
+
supply_fracs, return_fracs, n_return_registers, supply_area_mults, return_area_mults,
|
4255
|
+
supply_buried_levels, return_buried_levels, supply_effective_rvalues, return_effective_rvalues)
|
3799
4256
|
supply_duct_idx = 0
|
3800
4257
|
return_duct_idx = 0
|
3801
4258
|
hpxml.hvac_distributions.each do |hvac_distribution|
|
@@ -3808,12 +4265,16 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3808
4265
|
assert_in_epsilon(supply_areas[supply_duct_idx], duct.duct_surface_area, 0.01)
|
3809
4266
|
assert_in_epsilon(supply_fracs[supply_duct_idx], duct.duct_fraction_area, 0.01)
|
3810
4267
|
assert_in_epsilon(supply_area_mults[supply_duct_idx], duct.duct_surface_area_multiplier, 0.01)
|
4268
|
+
assert_equal(supply_buried_levels[supply_duct_idx], duct.duct_buried_insulation_level)
|
4269
|
+
assert_in_epsilon(supply_effective_rvalues[supply_duct_idx], duct.duct_effective_r_value, 0.01)
|
3811
4270
|
supply_duct_idx += 1
|
3812
4271
|
elsif duct.duct_type == HPXML::DuctTypeReturn
|
3813
4272
|
assert_equal(return_locations[return_duct_idx], duct.duct_location)
|
3814
4273
|
assert_in_epsilon(return_areas[return_duct_idx], duct.duct_surface_area, 0.01)
|
3815
4274
|
assert_in_epsilon(return_fracs[return_duct_idx], duct.duct_fraction_area, 0.01)
|
3816
4275
|
assert_in_epsilon(return_area_mults[return_duct_idx], duct.duct_surface_area_multiplier, 0.01)
|
4276
|
+
assert_equal(return_buried_levels[return_duct_idx], duct.duct_buried_insulation_level)
|
4277
|
+
assert_in_epsilon(return_effective_rvalues[return_duct_idx], duct.duct_effective_r_value, 0.01)
|
3817
4278
|
return_duct_idx += 1
|
3818
4279
|
end
|
3819
4280
|
end
|
@@ -3822,12 +4283,12 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3822
4283
|
|
3823
4284
|
def _test_default_mech_vent_values(hpxml, is_shared_system, hours_in_operation, fan_power, flow_rate,
|
3824
4285
|
cfis_vent_mode_airflow_fraction = nil, cfis_addtl_runtime_operating_mode = nil)
|
3825
|
-
vent_fan = hpxml.ventilation_fans.
|
4286
|
+
vent_fan = hpxml.ventilation_fans.find { |f| f.used_for_whole_building_ventilation && !f.is_cfis_supplemental_fan? }
|
3826
4287
|
|
3827
4288
|
assert_equal(is_shared_system, vent_fan.is_shared_system)
|
3828
4289
|
assert_equal(hours_in_operation, vent_fan.hours_in_operation)
|
3829
|
-
|
3830
|
-
|
4290
|
+
assert_in_delta(fan_power, vent_fan.fan_power, 0.1)
|
4291
|
+
assert_in_delta(flow_rate, vent_fan.rated_flow_rate.to_f + vent_fan.calculated_flow_rate.to_f + vent_fan.tested_flow_rate.to_f + vent_fan.delivered_ventilation.to_f, 0.1)
|
3831
4292
|
if cfis_vent_mode_airflow_fraction.nil?
|
3832
4293
|
assert_nil(vent_fan.cfis_vent_mode_airflow_fraction)
|
3833
4294
|
else
|
@@ -3841,7 +4302,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3841
4302
|
end
|
3842
4303
|
|
3843
4304
|
def _test_default_mech_vent_suppl_values(hpxml, is_shared_system, hours_in_operation, fan_power, flow_rate)
|
3844
|
-
vent_fan = hpxml.ventilation_fans.
|
4305
|
+
vent_fan = hpxml.ventilation_fans.find { |f| f.used_for_whole_building_ventilation && f.is_cfis_supplemental_fan? }
|
3845
4306
|
|
3846
4307
|
assert_equal(is_shared_system, vent_fan.is_shared_system)
|
3847
4308
|
if hours_in_operation.nil?
|
@@ -3853,20 +4314,20 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3853
4314
|
assert_in_epsilon(flow_rate, vent_fan.rated_flow_rate.to_f + vent_fan.calculated_flow_rate.to_f + vent_fan.tested_flow_rate.to_f + vent_fan.delivered_ventilation.to_f, 0.01)
|
3854
4315
|
end
|
3855
4316
|
|
3856
|
-
def _test_default_kitchen_fan_values(hpxml,
|
3857
|
-
kitchen_fan = hpxml.ventilation_fans.
|
4317
|
+
def _test_default_kitchen_fan_values(hpxml, count, flow_rate, hours_in_operation, fan_power, start_hour)
|
4318
|
+
kitchen_fan = hpxml.ventilation_fans.find { |f| f.used_for_local_ventilation && f.fan_location == HPXML::LocationKitchen }
|
3858
4319
|
|
3859
|
-
assert_equal(
|
4320
|
+
assert_equal(count, kitchen_fan.count)
|
3860
4321
|
assert_equal(flow_rate, kitchen_fan.rated_flow_rate.to_f + kitchen_fan.calculated_flow_rate.to_f + kitchen_fan.tested_flow_rate.to_f + kitchen_fan.delivered_ventilation.to_f)
|
3861
4322
|
assert_equal(hours_in_operation, kitchen_fan.hours_in_operation)
|
3862
4323
|
assert_equal(fan_power, kitchen_fan.fan_power)
|
3863
4324
|
assert_equal(start_hour, kitchen_fan.start_hour)
|
3864
4325
|
end
|
3865
4326
|
|
3866
|
-
def _test_default_bath_fan_values(hpxml,
|
3867
|
-
bath_fan = hpxml.ventilation_fans.
|
4327
|
+
def _test_default_bath_fan_values(hpxml, count, flow_rate, hours_in_operation, fan_power, start_hour)
|
4328
|
+
bath_fan = hpxml.ventilation_fans.find { |f| f.used_for_local_ventilation && f.fan_location == HPXML::LocationBath }
|
3868
4329
|
|
3869
|
-
assert_equal(
|
4330
|
+
assert_equal(count, bath_fan.count)
|
3870
4331
|
assert_equal(flow_rate, bath_fan.rated_flow_rate.to_f + bath_fan.calculated_flow_rate.to_f + bath_fan.tested_flow_rate.to_f + bath_fan.delivered_ventilation.to_f)
|
3871
4332
|
assert_equal(hours_in_operation, bath_fan.hours_in_operation)
|
3872
4333
|
assert_equal(fan_power, bath_fan.fan_power)
|
@@ -3874,7 +4335,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3874
4335
|
end
|
3875
4336
|
|
3876
4337
|
def _test_default_whole_house_fan_values(hpxml, flow_rate, fan_power)
|
3877
|
-
whf = hpxml.ventilation_fans.
|
4338
|
+
whf = hpxml.ventilation_fans.find { |f| f.used_for_seasonal_cooling_load_reduction }
|
3878
4339
|
|
3879
4340
|
assert_equal(flow_rate, whf.rated_flow_rate.to_f + whf.calculated_flow_rate.to_f + whf.tested_flow_rate.to_f + whf.delivered_ventilation.to_f)
|
3880
4341
|
assert_equal(fan_power, whf.fan_power)
|
@@ -3975,45 +4436,47 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
3975
4436
|
def _test_default_pv_system_values(hpxml, interver_efficiency, system_loss_frac, is_shared_system, location, tracking, module_type, azimuth)
|
3976
4437
|
hpxml.pv_systems.each do |pv|
|
3977
4438
|
assert_equal(is_shared_system, pv.is_shared_system)
|
3978
|
-
assert_equal(interver_efficiency, pv.inverter_efficiency)
|
3979
4439
|
assert_in_epsilon(system_loss_frac, pv.system_losses_fraction, 0.01)
|
3980
4440
|
assert_equal(location, pv.location)
|
3981
4441
|
assert_equal(tracking, pv.tracking)
|
3982
4442
|
assert_equal(module_type, pv.module_type)
|
3983
4443
|
assert_equal(azimuth, pv.array_azimuth)
|
3984
4444
|
end
|
4445
|
+
hpxml.inverters.each do |inv|
|
4446
|
+
assert_equal(interver_efficiency, inv.inverter_efficiency)
|
4447
|
+
end
|
3985
4448
|
end
|
3986
4449
|
|
3987
|
-
def _test_default_battery_values(
|
4450
|
+
def _test_default_battery_values(battery, nominal_capacity_kwh, nominal_capacity_ah, usable_capacity_kwh, usable_capacity_ah,
|
3988
4451
|
rated_power_output, location, lifetime_model, round_trip_efficiency)
|
3989
4452
|
if nominal_capacity_kwh.nil?
|
3990
|
-
assert_nil(
|
4453
|
+
assert_nil(battery.nominal_capacity_kwh)
|
3991
4454
|
else
|
3992
|
-
assert_equal(nominal_capacity_kwh,
|
4455
|
+
assert_equal(nominal_capacity_kwh, battery.nominal_capacity_kwh)
|
3993
4456
|
end
|
3994
4457
|
if nominal_capacity_ah.nil?
|
3995
|
-
assert_nil(
|
4458
|
+
assert_nil(battery.nominal_capacity_ah)
|
3996
4459
|
else
|
3997
|
-
assert_equal(nominal_capacity_ah,
|
4460
|
+
assert_equal(nominal_capacity_ah, battery.nominal_capacity_ah)
|
3998
4461
|
end
|
3999
4462
|
if usable_capacity_kwh.nil?
|
4000
|
-
assert_nil(
|
4463
|
+
assert_nil(battery.usable_capacity_kwh)
|
4001
4464
|
else
|
4002
|
-
assert_equal(usable_capacity_kwh,
|
4465
|
+
assert_equal(usable_capacity_kwh, battery.usable_capacity_kwh)
|
4003
4466
|
end
|
4004
4467
|
if usable_capacity_ah.nil?
|
4005
|
-
assert_nil(
|
4468
|
+
assert_nil(battery.usable_capacity_ah)
|
4006
4469
|
else
|
4007
|
-
assert_equal(usable_capacity_ah,
|
4470
|
+
assert_equal(usable_capacity_ah, battery.usable_capacity_ah)
|
4008
4471
|
end
|
4009
|
-
assert_equal(rated_power_output,
|
4010
|
-
assert_equal(location,
|
4472
|
+
assert_equal(rated_power_output, battery.rated_power_output)
|
4473
|
+
assert_equal(location, battery.location)
|
4011
4474
|
if lifetime_model.nil?
|
4012
|
-
assert_nil(
|
4475
|
+
assert_nil(battery.lifetime_model)
|
4013
4476
|
else
|
4014
|
-
assert_equal(lifetime_model,
|
4477
|
+
assert_equal(lifetime_model, battery.lifetime_model)
|
4015
4478
|
end
|
4016
|
-
assert_equal(round_trip_efficiency,
|
4479
|
+
assert_equal(round_trip_efficiency, battery.round_trip_efficiency)
|
4017
4480
|
end
|
4018
4481
|
|
4019
4482
|
def _test_default_generator_values(hpxml, is_shared_system)
|
@@ -4280,8 +4743,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
4280
4743
|
end
|
4281
4744
|
end
|
4282
4745
|
|
4283
|
-
def _test_default_ceiling_fan_values(ceiling_fan,
|
4284
|
-
assert_equal(
|
4746
|
+
def _test_default_ceiling_fan_values(ceiling_fan, count, efficiency, weekday_sch, weekend_sch, monthly_mults)
|
4747
|
+
assert_equal(count, ceiling_fan.count)
|
4285
4748
|
assert_in_epsilon(efficiency, ceiling_fan.efficiency, 0.01)
|
4286
4749
|
if weekday_sch.nil?
|
4287
4750
|
assert_nil(ceiling_fan.weekday_fractions)
|
@@ -4333,8 +4796,8 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
4333
4796
|
end
|
4334
4797
|
end
|
4335
4798
|
|
4336
|
-
def _test_default_pool_pump_values(pool,
|
4337
|
-
assert_in_epsilon(
|
4799
|
+
def _test_default_pool_pump_values(pool, kwh_per_year, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
4800
|
+
assert_in_epsilon(kwh_per_year, pool.pump_kwh_per_year, 0.01)
|
4338
4801
|
assert_equal(usage_multiplier, pool.pump_usage_multiplier)
|
4339
4802
|
assert_equal(weekday_sch, pool.pump_weekday_fractions)
|
4340
4803
|
assert_equal(weekend_sch, pool.pump_weekend_fractions)
|
@@ -4374,18 +4837,18 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
4374
4837
|
end
|
4375
4838
|
end
|
4376
4839
|
|
4377
|
-
def _test_default_hot_tub_pump_values(hot_tub,
|
4378
|
-
assert_in_epsilon(
|
4840
|
+
def _test_default_hot_tub_pump_values(hot_tub, kwh_per_year, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
4841
|
+
assert_in_epsilon(kwh_per_year, hot_tub.pump_kwh_per_year, 0.01)
|
4379
4842
|
assert_equal(usage_multiplier, hot_tub.pump_usage_multiplier)
|
4380
4843
|
assert_equal(weekday_sch, hot_tub.pump_weekday_fractions)
|
4381
4844
|
assert_equal(weekend_sch, hot_tub.pump_weekend_fractions)
|
4382
4845
|
assert_equal(monthly_mults, hot_tub.pump_monthly_multipliers)
|
4383
4846
|
end
|
4384
4847
|
|
4385
|
-
def _test_default_plug_load_values(hpxml, load_type,
|
4386
|
-
pl = hpxml.plug_loads.
|
4848
|
+
def _test_default_plug_load_values(hpxml, load_type, kwh_per_year, frac_sensible, frac_latent, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
4849
|
+
pl = hpxml.plug_loads.find { |pl| pl.plug_load_type == load_type }
|
4387
4850
|
|
4388
|
-
assert_in_epsilon(
|
4851
|
+
assert_in_epsilon(kwh_per_year, pl.kwh_per_year, 0.01)
|
4389
4852
|
assert_equal(usage_multiplier, pl.usage_multiplier)
|
4390
4853
|
assert_in_epsilon(frac_sensible, pl.frac_sensible, 0.01)
|
4391
4854
|
assert_in_epsilon(frac_latent, pl.frac_latent, 0.01)
|
@@ -4395,7 +4858,7 @@ class HPXMLtoOpenStudioDefaultsTest < MiniTest::Test
|
|
4395
4858
|
end
|
4396
4859
|
|
4397
4860
|
def _test_default_fuel_load_values(hpxml, load_type, therm_per_year, frac_sensible, frac_latent, usage_multiplier, weekday_sch, weekend_sch, monthly_mults)
|
4398
|
-
fl = hpxml.fuel_loads.
|
4861
|
+
fl = hpxml.fuel_loads.find { |fl| fl.fuel_load_type == load_type }
|
4399
4862
|
|
4400
4863
|
assert_in_epsilon(therm_per_year, fl.therm_per_year, 0.01)
|
4401
4864
|
assert_equal(usage_multiplier, fl.usage_multiplier)
|