urbanopt-cli 0.5.1 → 0.5.2

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