urbanopt-cli 0.4.1 → 0.6.1

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 (944) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/CHANGELOG.md +59 -0
  4. data/CMakeLists.txt +17 -17
  5. data/FindOpenStudioSDK.cmake +12 -7
  6. data/Gemfile +8 -10
  7. data/LICENSE.md +11 -1
  8. data/README.md +1 -0
  9. data/Rakefile +16 -6
  10. data/example_files/Gemfile +25 -9
  11. data/example_files/example_project.json +35 -20
  12. data/example_files/example_project_combined.json +100 -5
  13. data/example_files/example_project_with_electric_network.json +2116 -0
  14. data/example_files/mappers/Baseline.rb +111 -51
  15. data/example_files/mappers/CreateBar.rb +19 -7
  16. data/example_files/mappers/EvCharging.rb +141 -0
  17. data/example_files/mappers/Floorspace.rb +29 -17
  18. data/example_files/mappers/HighEfficiency.rb +20 -8
  19. data/example_files/mappers/HighEfficiencyCreateBar.rb +19 -8
  20. data/example_files/mappers/HighEfficiencyFloorspace.rb +19 -8
  21. data/example_files/mappers/ThermalStorage.rb +16 -6
  22. data/example_files/mappers/base_workflow.osw +26 -1
  23. data/example_files/mappers/floorspace_workflow.osw +9 -0
  24. data/example_files/measures/BuildResidentialModel/measure.rb +249 -134
  25. data/example_files/reopt/base_assumptions.json +2 -2
  26. data/example_files/reopt/multiPV_assumptions.json +4 -3
  27. data/example_files/residential/clothes_dryer.tsv +7 -7
  28. data/example_files/residential/clothes_washer.tsv +2 -2
  29. data/example_files/residential/cooling_system.tsv +42 -22
  30. data/example_files/residential/dishwasher.tsv +1 -1
  31. data/example_files/residential/exhaust.tsv +3 -0
  32. data/example_files/residential/heat_pump.tsv +62 -40
  33. data/example_files/residential/water_heater.tsv +1 -1
  34. data/example_files/resources/hpxml-measures/.github/pull_request_template.md +14 -0
  35. data/example_files/resources/hpxml-measures/.github/workflows/config.yml +116 -0
  36. data/example_files/resources/hpxml-measures/.gitignore +1 -8
  37. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +1088 -1329
  38. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +1819 -1383
  39. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/constants.rb +0 -8
  40. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +450 -362
  41. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules.rb +165 -112
  42. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.json +388 -0
  43. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.md +43 -0
  44. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekday_state_and_monthly_schedule_shift.csv +613 -0
  45. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_weekend_state_and_monthly_schedule_shift.csv +613 -0
  46. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-coal.osw +56 -82
  47. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-appliances-dehumidifier-ief.osw → base-appliances-dehumidifier-ief-portable.osw} +57 -83
  48. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-appliances-dehumidifier-50percent.osw → base-appliances-dehumidifier-ief-whole-home.osw} +59 -85
  49. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier.osw +56 -82
  50. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-gas.osw +56 -82
  51. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-modified.osw +56 -82
  52. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-none.osw +61 -87
  53. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-oil.osw +56 -82
  54. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-propane.osw +56 -82
  55. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-wood.osw +56 -82
  56. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-flat.osw +56 -82
  57. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-radiant-barrier.osw +56 -82
  58. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-unvented-insulated-roof.osw +56 -82
  59. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-vented.osw +56 -82
  60. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-boiler-only-baseboard.osw +341 -0
  61. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-boiler-only-fan-coil.osw +341 -0
  62. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-mechvent-shared-preconditioning.osw → base-bldgtype-multifamily-shared-mechvent-preconditioning.osw} +70 -95
  63. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-mechvent-shared.osw → base-bldgtype-multifamily-shared-mechvent.osw} +70 -95
  64. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-pv.osw +341 -0
  65. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-water-heater.osw +341 -0
  66. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily.osw +341 -0
  67. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-single-family-attached.osw → base-bldgtype-single-family-attached.osw} +59 -85
  68. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless-outside.osw +56 -82
  69. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless.osw +56 -82
  70. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-dwhr.osw +56 -82
  71. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-outside.osw +56 -82
  72. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-standbyloss.osw +56 -82
  73. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-with-solar-fraction.osw +56 -82
  74. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect.osw +56 -82
  75. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-electric.osw +56 -82
  76. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-gas.osw +56 -82
  77. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-hpwh.osw +56 -82
  78. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-indirect.osw +56 -82
  79. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-low-flow-fixtures.osw +56 -82
  80. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-none.osw +57 -83
  81. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-demand.osw +56 -82
  82. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-manual.osw +56 -82
  83. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-nocontrol.osw +56 -82
  84. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-temperature.osw +56 -82
  85. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-timer.osw +56 -82
  86. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-evacuated-tube.osw +56 -82
  87. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-flat-plate.osw +56 -82
  88. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-ics.osw +56 -82
  89. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-fraction.osw +56 -82
  90. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-indirect-flat-plate.osw +56 -82
  91. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-thermosyphon-flat-plate.osw +56 -82
  92. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-coal.osw +56 -82
  93. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-elec-uef.osw +338 -0
  94. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-outside.osw +56 -82
  95. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-uef.osw +338 -0
  96. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas.osw +56 -82
  97. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-outside.osw +56 -82
  98. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-uef.osw +338 -0
  99. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar-fraction.osw +56 -82
  100. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar.osw +56 -82
  101. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump.osw +56 -82
  102. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-oil.osw +56 -82
  103. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-wood.osw +56 -82
  104. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-outside.osw +56 -83
  105. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-uef.osw +337 -0
  106. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric.osw +56 -82
  107. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-uef.osw +337 -0
  108. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar-fraction.osw +56 -82
  109. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar.osw +56 -82
  110. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas.osw +56 -82
  111. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-propane.osw +56 -82
  112. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories-garage.osw +56 -82
  113. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories.osw +56 -82
  114. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-1.osw +56 -82
  115. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-2.osw +56 -82
  116. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-4.osw +56 -82
  117. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-5.osw +56 -82
  118. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-garage.osw +56 -82
  119. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-ach-house-pressure.osw +56 -82
  120. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm-house-pressure.osw +56 -82
  121. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm50.osw +56 -82
  122. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-flue.osw +56 -82
  123. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-natural-ach.osw +57 -83
  124. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-overhangs.osw +57 -83
  125. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-windows-none.osw +56 -82
  126. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-ambient.osw +56 -82
  127. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-conditioned-basement-slab-insulation.osw +56 -82
  128. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-slab.osw +56 -82
  129. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-assembly-r.osw +55 -81
  130. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-wall-insulation.osw +55 -81
  131. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement.osw +55 -81
  132. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unvented-crawlspace.osw +55 -81
  133. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-vented-crawlspace.osw +55 -81
  134. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.osw +337 -0
  135. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed-heating-only.osw +337 -0
  136. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed.osw +56 -82
  137. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-2-speed.osw +56 -82
  138. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-var-speed.osw +56 -82
  139. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-coal-only.osw +56 -82
  140. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-elec-only.osw +56 -82
  141. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-central-ac-1-speed.osw +56 -82
  142. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-only.osw +56 -82
  143. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-oil-only.osw +56 -82
  144. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-propane-only.osw +56 -82
  145. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-wood-only.osw +56 -82
  146. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-1-speed.osw +56 -82
  147. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-2-speed.osw +56 -82
  148. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-var-speed.osw +56 -82
  149. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.osw +56 -82
  150. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.osw +55 -81
  151. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.osw +55 -81
  152. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.osw +55 -81
  153. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.osw +55 -81
  154. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-mini-split-heat-pump-ducted.osw +56 -82
  155. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ducts-leakage-percent.osw +56 -82
  156. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-elec-resistance-only.osw +56 -82
  157. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-furnace-gas.osw +56 -82
  158. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only-ducted.osw +57 -83
  159. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only.osw +56 -82
  160. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fireplace-wood-only.osw +56 -82
  161. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fixed-heater-gas-only.osw +57 -83
  162. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-floor-furnace-propane-only.osw +56 -82
  163. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-coal-only.osw +337 -0
  164. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-central-ac-1-speed.osw +56 -82
  165. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-only.osw +56 -82
  166. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-2-speed.osw +56 -82
  167. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-var-speed.osw +56 -82
  168. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-only.osw +56 -82
  169. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-room-ac.osw +56 -82
  170. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-oil-only.osw +56 -82
  171. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-propane-only.osw +56 -82
  172. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-wood-only.osw +56 -82
  173. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump-cooling-only.osw +336 -0
  174. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump-heating-only.osw +336 -0
  175. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump.osw +56 -84
  176. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.osw +339 -0
  177. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-1-speed.osw +339 -0
  178. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.osw +339 -0
  179. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.osw +339 -0
  180. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.osw +340 -0
  181. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.osw +340 -0
  182. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.osw +340 -0
  183. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-furnace-gas-only.osw +338 -0
  184. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-ground-to-air-heat-pump.osw +338 -0
  185. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-mini-split-air-conditioner-only-ducted.osw +338 -0
  186. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-all-mini-split-heat-pump-ducted.osw +339 -0
  187. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.osw +338 -0
  188. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.osw +340 -0
  189. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ducted.osw +56 -82
  190. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ductless.osw +56 -82
  191. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-cooling-only.osw +56 -82
  192. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-heating-only.osw +56 -82
  193. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted.osw +57 -83
  194. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ductless.osw +57 -83
  195. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-none.osw +56 -82
  196. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-portable-heater-gas-only.osw +57 -83
  197. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-programmable-thermostat-detailed.osw +337 -0
  198. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only-33percent.osw +56 -82
  199. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only.osw +56 -82
  200. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-setpoints.osw +56 -82
  201. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-oil-only.osw +56 -82
  202. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-wood-pellets-only.osw +56 -82
  203. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-undersized.osw +56 -82
  204. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-wall-furnace-elec-only.osw +56 -82
  205. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-ceiling-fans.osw +57 -83
  206. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-detailed.osw +56 -82
  207. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-AMY-2012.osw +56 -82
  208. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-baltimore-md.osw +64 -90
  209. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-dallas-tx.osw +56 -82
  210. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-duluth-mn.osw +69 -95
  211. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-helena-mt.osw +337 -0
  212. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-honolulu-hi.osw +337 -0
  213. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-miami-fl.osw +56 -82
  214. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-phoenix-az.osw +337 -0
  215. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-portland-or.osw +337 -0
  216. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-balanced.osw +56 -82
  217. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-bath-kitchen-fans.osw +64 -92
  218. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis-evap-cooler-only-ducted.osw +57 -83
  219. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis.osw +56 -82
  220. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv-atre-asre.osw +56 -82
  221. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv.osw +56 -82
  222. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust-rated-flow-rate.osw +337 -0
  223. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust.osw +56 -82
  224. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv-asre.osw +56 -82
  225. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv.osw +56 -82
  226. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-supply.osw +56 -82
  227. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-whole-house-fan.osw +56 -82
  228. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-defaults.osw +57 -83
  229. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon.osw +60 -86
  230. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon2.osw +60 -86
  231. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-neighbor-shading.osw +56 -82
  232. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-shielding-of-home.osw +337 -0
  233. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-usage-multiplier.osw +52 -78
  234. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-pv.osw +52 -78
  235. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-vacancy-6-months.osw → base-schedules-stochastic-vacant.osw} +59 -85
  236. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-stochastic.osw +56 -82
  237. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-user-specified.osw +56 -82
  238. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-calendar-year-custom.osw +56 -82
  239. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-custom.osw +56 -82
  240. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-disabled.osw +56 -82
  241. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-runperiod-1-month.osw +56 -82
  242. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-timestep-10-mins.osw +56 -82
  243. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base.osw +56 -82
  244. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +71 -57
  245. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-auto.osw +56 -82
  246. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-double-exterior.osw +341 -0
  247. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-double-loaded-interior.osw +341 -0
  248. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-eaves.osw +341 -0
  249. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-single-exterior-front.osw +341 -0
  250. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-double-loaded-interior.osw +341 -0
  251. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-bottom-double-loaded-interior.osw +341 -0
  252. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-bottom.osw +341 -0
  253. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-middle-double-loaded-interior.osw +341 -0
  254. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-middle.osw +341 -0
  255. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-top-double-loaded-interior.osw +341 -0
  256. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-left-top.osw +341 -0
  257. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-bottom-double-loaded-interior.osw +341 -0
  258. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-bottom.osw +341 -0
  259. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-middle-double-loaded-interior.osw +341 -0
  260. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-middle.osw +341 -0
  261. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-top-double-loaded-interior.osw +341 -0
  262. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-middle-top.osw +341 -0
  263. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-bottom-double-loaded-interior.osw +341 -0
  264. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-bottom.osw +341 -0
  265. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-middle-double-loaded-interior.osw +341 -0
  266. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-middle.osw +341 -0
  267. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-top-double-loaded-interior.osw +341 -0
  268. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab-right-top.osw +341 -0
  269. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-slab.osw +341 -0
  270. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-double-loaded-interior.osw +341 -0
  271. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-bottom-double-loaded-interior.osw +341 -0
  272. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-bottom.osw +341 -0
  273. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-middle-double-loaded-interior.osw +341 -0
  274. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-middle.osw +341 -0
  275. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-top-double-loaded-interior.osw +341 -0
  276. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-left-top.osw +341 -0
  277. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom-double-loaded-interior.osw +341 -0
  278. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-bottom.osw +341 -0
  279. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-middle-double-loaded-interior.osw +341 -0
  280. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-middle.osw +341 -0
  281. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-top-double-loaded-interior.osw +341 -0
  282. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-middle-top.osw +341 -0
  283. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-bottom-double-loaded-interior.osw +341 -0
  284. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-bottom.osw +341 -0
  285. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-middle-double-loaded-interior.osw +341 -0
  286. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-middle.osw +341 -0
  287. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-top-double-loaded-interior.osw +341 -0
  288. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace-right-top.osw +341 -0
  289. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-unvented-crawlspace.osw +341 -0
  290. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-double-loaded-interior.osw +341 -0
  291. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-bottom-double-loaded-interior.osw +341 -0
  292. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-bottom.osw +341 -0
  293. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-middle-double-loaded-interior.osw +341 -0
  294. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-middle.osw +341 -0
  295. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-top-double-loaded-interior.osw +341 -0
  296. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-left-top.osw +341 -0
  297. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-bottom-double-loaded-interior.osw +341 -0
  298. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-bottom.osw +341 -0
  299. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-middle-double-loaded-interior.osw +341 -0
  300. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-middle.osw +341 -0
  301. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-top-double-loaded-interior.osw +341 -0
  302. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-middle-top.osw +341 -0
  303. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-bottom-double-loaded-interior.osw +341 -0
  304. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-bottom.osw +341 -0
  305. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-middle-double-loaded-interior.osw +341 -0
  306. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-middle.osw +341 -0
  307. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-top-double-loaded-interior.osw +341 -0
  308. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace-right-top.osw +341 -0
  309. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-multifamily-vented-crawlspace.osw +341 -0
  310. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-gable.osw +339 -0
  311. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-conditioned-eaves-hip.osw +339 -0
  312. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-atticroof-flat.osw +339 -0
  313. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-pv-shared.osw → extra-bldgtype-single-family-attached-double-exterior.osw} +62 -89
  314. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-double-loaded-interior.osw +339 -0
  315. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-dhw-shared-water-heater.osw → extra-bldgtype-single-family-attached-single-exterior-front.osw} +60 -86
  316. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab-middle.osw +339 -0
  317. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab-right.osw +339 -0
  318. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-slab.osw +339 -0
  319. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement-middle.osw +339 -0
  320. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unconditioned-basement-right.osw +339 -0
  321. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-multifamily.osw → extra-bldgtype-single-family-attached-unconditioned-basement.osw} +64 -91
  322. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace-middle.osw +339 -0
  323. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace-right.osw +339 -0
  324. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-unvented-crawlspace.osw +339 -0
  325. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace-middle.osw +339 -0
  326. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace-right.osw +339 -0
  327. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-bldgtype-single-family-attached-vented-crawlspace.osw +339 -0
  328. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-dhw-solar-latitude.osw +56 -82
  329. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-atticroof-conditioned-eaves-gable.osw +337 -0
  330. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-atticroof-conditioned-eaves-hip.osw +337 -0
  331. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-atticroof-conditioned.osw +337 -0
  332. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-partially-protruded.osw +56 -82
  333. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-windows-shading.osw +339 -0
  334. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-gas-hot-tub-heater-with-zero-kwh.osw +337 -0
  335. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-gas-pool-heater-with-zero-kwh.osw +337 -0
  336. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-pv-roofpitch.osw +56 -82
  337. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-schedules-random-seed.osw +338 -0
  338. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-boiler-to-heat-pump.osw +336 -0
  339. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-boiler-to-heating-system.osw +337 -0
  340. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-fireplace-to-heat-pump.osw +337 -0
  341. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-second-heating-system-fireplace.osw → extra-second-heating-system-fireplace-to-heating-system.osw} +58 -84
  342. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-portable-heater-to-heat-pump.osw +337 -0
  343. 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} +56 -82
  344. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-refrigerator.osw +56 -82
  345. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-clothes-washer-kwh.osw +337 -0
  346. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-dishwasher-kwh.osw +337 -0
  347. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-extra-refrigerator-kwh.osw +337 -0
  348. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-freezer-kwh.osw +337 -0
  349. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-zero-refrigerator-kwh.osw +337 -0
  350. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-floor-insulation.osw +59 -85
  351. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-one-floor-above-grade.osw +337 -0
  352. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-basement-with-ceiling-insulation.osw +56 -82
  353. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/cooling-system-and-heat-pump.osw +56 -82
  354. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/dhw-indirect-without-boiler.osw +56 -82
  355. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/ducts-location-and-areas-not-same-type.osw +56 -82
  356. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/foundation-wall-insulation-greater-than-height.osw +337 -0
  357. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/heating-system-and-heat-pump.osw +56 -82
  358. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-crawlspace-zero-foundation-height.osw +64 -89
  359. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-slab-non-zero-foundation-height.osw +64 -89
  360. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-no-building-orientation.osw +63 -88
  361. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-hvac-programmable-thermostat.osw → invalid_files/multipliers-without-fuel-loads.osw} +54 -80
  362. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-other-plug-loads.osw +337 -0
  363. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-tv-plug-loads.osw +337 -0
  364. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-dhw-uef.osw → invalid_files/multipliers-without-vehicle-plug-loads.osw} +58 -84
  365. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multipliers-without-well-pump-plug-loads.osw +337 -0
  366. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-electric-heat-pump-water-heater.osw +56 -82
  367. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-ceiling-fan-quantity.osw +56 -82
  368. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-geometry-num-bathrooms.osw +56 -82
  369. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-but-no-primary-heating.osw +337 -0
  370. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-majority-heat.osw +56 -82
  371. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-total-heat-load.osw +337 -0
  372. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-ambient.osw +58 -84
  373. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-no-building-orientation.osw +58 -84
  374. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-finished-basement-zero-foundation-height.osw +56 -82
  375. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-slab-non-zero-foundation-height.osw +56 -82
  376. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-with-shared-system.osw +337 -0
  377. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/slab-non-zero-foundation-height-above-grade.osw +56 -82
  378. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unconditioned-basement-with-wall-and-ceiling-insulation.osw +56 -82
  379. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-attic-with-floor-and-roof-insulation.osw +56 -82
  380. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-crawlspace-with-wall-and-ceiling-insulation.osw +59 -85
  381. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-attic-with-floor-and-roof-insulation.osw +58 -84
  382. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-crawlspace-with-wall-and-ceiling-insulation.osw +56 -82
  383. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/zero-number-of-bedrooms.osw +337 -0
  384. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/schedules/vacant.csv +8761 -0
  385. data/example_files/resources/hpxml-measures/Changelog.md +249 -0
  386. data/example_files/resources/hpxml-measures/Gemfile +2 -5
  387. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +404 -1357
  388. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +247 -171
  389. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/BaseElements.xsd +11 -101
  390. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/EPvalidator.xml +824 -301
  391. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLDataTypes.xsd +18 -35
  392. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLvalidator.xml +526 -0
  393. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +135 -207
  394. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +14 -186
  395. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +549 -93
  396. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/energyplus.rb +12 -15
  397. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/generator.rb +78 -0
  398. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +413 -15
  399. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hotwater_appliances.rb +48 -37
  400. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +1627 -1227
  401. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +1192 -434
  402. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +1555 -1616
  403. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +1436 -1479
  404. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/lighting.rb +3 -2
  405. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/location.rb +22 -10
  406. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/meta_measure.rb +85 -19
  407. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/minitest_helper.rb +4 -26
  408. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +22 -46
  409. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/pv.rb +22 -21
  410. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +51 -14
  411. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/simcontrols.rb +24 -7
  412. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/unit_conversions.rb +2 -0
  413. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/validator.rb +80 -19
  414. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +9 -2
  415. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +106 -75
  416. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +109 -34
  417. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +22 -36
  418. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +1565 -768
  419. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_enclosure.rb +151 -0
  420. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +101 -0
  421. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +9 -18
  422. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +316 -28
  423. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb +53 -0
  424. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +4 -2
  425. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_location.rb +13 -11
  426. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_miscloads.rb +4 -2
  427. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +5 -3
  428. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_simcontrols.rb +13 -11
  429. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +102 -62
  430. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +189 -35
  431. data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/util.rb +26 -0
  432. data/example_files/resources/hpxml-measures/README.md +5 -5
  433. data/example_files/resources/hpxml-measures/Rakefile +2 -10
  434. data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.rb +416 -299
  435. data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.xml +364 -481
  436. data/example_files/resources/hpxml-measures/SimulationOutputReport/resources/constants.rb +1 -2
  437. data/example_files/resources/hpxml-measures/SimulationOutputReport/tests/output_report_test.rb +327 -320
  438. data/example_files/resources/hpxml-measures/docs/source/build_residential_hpxml.rst +3 -3
  439. data/example_files/resources/hpxml-measures/docs/source/conf.py +11 -5
  440. data/example_files/resources/hpxml-measures/docs/source/getting_started.rst +6 -6
  441. data/example_files/resources/hpxml-measures/docs/source/index.rst +2 -2
  442. data/example_files/resources/hpxml-measures/docs/source/intro.rst +7 -109
  443. data/example_files/resources/hpxml-measures/docs/source/nstatic/stylesheet.css +13 -1
  444. data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +2482 -0
  445. data/example_files/resources/hpxml-measures/docs/source/workflow_outputs.rst +282 -0
  446. data/example_files/resources/hpxml-measures/tasks.rb +2494 -1248
  447. data/example_files/resources/hpxml-measures/weather/USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3-cache.csv +35 -0
  448. data/example_files/resources/hpxml-measures/weather/USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3.epw +8768 -0
  449. data/example_files/resources/hpxml-measures/weather/USA_CO_Denver.Intl.AP.725650_TMY3-cache.csv +10 -10
  450. data/example_files/resources/hpxml-measures/weather/USA_HI_Honolulu.Intl.AP.911820_TMY3-cache.csv +35 -0
  451. data/example_files/resources/hpxml-measures/weather/USA_HI_Honolulu.Intl.AP.911820_TMY3.epw +8768 -0
  452. data/example_files/resources/hpxml-measures/weather/USA_MT_Helena.Rgnl.AP.727720_TMY3-cache.csv +35 -0
  453. data/example_files/resources/hpxml-measures/weather/USA_MT_Helena.Rgnl.AP.727720_TMY3.epw +8768 -0
  454. data/example_files/resources/hpxml-measures/weather/USA_OR_Portland.Intl.AP.726980_TMY3-cache.csv +35 -0
  455. data/example_files/resources/hpxml-measures/weather/USA_OR_Portland.Intl.AP.726980_TMY3.epw +8768 -0
  456. data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +96 -21
  457. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +558 -559
  458. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-appliances-dehumidifier-ief.xml → base-appliances-dehumidifier-ief-portable.xml} +8 -7
  459. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-appliances-dehumidifier-50percent.xml → base-appliances-dehumidifier-ief-whole-home.xml} +10 -9
  460. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-multiple.xml +535 -0
  461. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +525 -524
  462. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +558 -559
  463. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +564 -565
  464. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +513 -513
  465. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +558 -559
  466. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +558 -559
  467. data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +558 -559
  468. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +565 -566
  469. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +633 -634
  470. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +531 -532
  471. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +517 -518
  472. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +562 -563
  473. data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +565 -566
  474. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-enclosure-other-multifamily-buffer-space.xml → base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml} +34 -62
  475. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +554 -0
  476. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-enclosure-other-non-freezing-space.xml → base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml} +34 -62
  477. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-enclosure-other-heated-space.xml → base-bldgtype-multifamily-adjacent-to-other-heated-space.xml} +34 -62
  478. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-enclosure-other-housing-unit.xml → base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml} +34 -62
  479. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml +425 -0
  480. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.xml +457 -0
  481. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml +427 -0
  482. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +479 -0
  483. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +474 -0
  484. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-baseboard.xml +408 -0
  485. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.xml +439 -0
  486. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml +406 -0
  487. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +409 -0
  488. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +457 -0
  489. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-baseboard.xml +407 -0
  490. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.xml +438 -0
  491. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml +408 -0
  492. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +456 -0
  493. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +451 -0
  494. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +460 -0
  495. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +451 -0
  496. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +466 -0
  497. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-mechvent-shared-multiple.xml → base-bldgtype-multifamily-shared-mechvent-multiple.xml} +43 -415
  498. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +489 -0
  499. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +473 -0
  500. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +465 -0
  501. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +458 -0
  502. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +451 -0
  503. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +448 -0
  504. data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached.xml +619 -0
  505. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +516 -519
  506. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +516 -519
  507. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +550 -551
  508. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +7 -9
  509. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +563 -564
  510. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +548 -549
  511. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +550 -551
  512. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +550 -551
  513. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +567 -568
  514. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +517 -520
  515. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +517 -520
  516. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +518 -521
  517. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +525 -528
  518. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +517 -520
  519. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +567 -568
  520. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +568 -569
  521. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +566 -567
  522. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +522 -525
  523. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +562 -563
  524. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +575 -578
  525. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +497 -497
  526. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +565 -566
  527. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +565 -566
  528. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +565 -566
  529. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +565 -566
  530. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +565 -566
  531. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +577 -578
  532. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +577 -578
  533. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +577 -578
  534. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +570 -571
  535. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +577 -578
  536. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +577 -578
  537. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +563 -564
  538. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-elec-uef.xml +564 -0
  539. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +563 -564
  540. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +565 -0
  541. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +563 -564
  542. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +561 -562
  543. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-uef.xml +564 -0
  544. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +569 -570
  545. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +576 -577
  546. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +561 -562
  547. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +563 -564
  548. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +563 -564
  549. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +561 -562
  550. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +561 -0
  551. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +560 -561
  552. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +561 -0
  553. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +568 -569
  554. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +575 -576
  555. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +560 -561
  556. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +560 -561
  557. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +661 -664
  558. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +575 -576
  559. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +562 -563
  560. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +562 -563
  561. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +562 -563
  562. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +562 -563
  563. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +636 -639
  564. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +562 -563
  565. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +562 -563
  566. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +562 -563
  567. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +565 -566
  568. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +561 -562
  569. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +582 -578
  570. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +590 -591
  571. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-shading.xml +601 -0
  572. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +590 -591
  573. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +517 -0
  574. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +2474 -2493
  575. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces2.xml +2475 -0
  576. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +754 -755
  577. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +504 -505
  578. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-enclosure-windows-interior-shading.xml → base-enclosure-windows-shading.xml} +23 -9
  579. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +498 -497
  580. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-basement-garage.xml +644 -0
  581. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +724 -729
  582. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +562 -563
  583. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-wall-interior-insulation.xml +562 -563
  584. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +685 -688
  585. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +516 -517
  586. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +609 -610
  587. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +558 -559
  588. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +573 -574
  589. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +573 -574
  590. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +573 -574
  591. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +576 -577
  592. data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +627 -628
  593. 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-air-to-air-heat-pump-1-speed-cooling-only.xml} +8 -12
  594. 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-air-to-air-heat-pump-1-speed-heating-only.xml} +9 -9
  595. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +561 -562
  596. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +561 -562
  597. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +561 -562
  598. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml +553 -0
  599. 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-heating-only.xml} +5 -6
  600. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-manual-s-oversize-allowances.xml +561 -0
  601. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed.xml +558 -0
  602. 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} +4 -5
  603. 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} +4 -5
  604. 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-manual-s-oversize-allowances.xml} +4 -5
  605. 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.xml} +4 -5
  606. 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} +2 -5
  607. 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} +4 -6
  608. 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} +2 -5
  609. 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} +547 -548
  610. 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} +4 -5
  611. 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} +4 -5
  612. 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} +570 -571
  613. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed.xml +559 -0
  614. 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} +557 -558
  615. 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} +2 -5
  616. 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} +4 -5
  617. 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} +5 -6
  618. 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} +4 -5
  619. 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} +4 -5
  620. 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} +4 -5
  621. data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-furnace-gas-only-autosize.xml → base-hvac-autosize-furnace-gas-only.xml} +4 -6
  622. 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} +4 -5
  623. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml +555 -0
  624. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml +560 -0
  625. 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} +4 -6
  626. 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} +4 -6
  627. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml +547 -0
  628. 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} +551 -552
  629. 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} +556 -557
  630. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-manual-s-oversize-allowances.xml +560 -0
  631. data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-autosize.xml → base-hvac-autosize-mini-split-heat-pump-ducted.xml} +556 -557
  632. 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} +2 -5
  633. 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} +5 -6
  634. 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} +5 -6
  635. data/example_files/resources/hpxml-measures/workflow/sample_files/{hvac_autosizing/base-autosize.xml → base-hvac-autosize.xml} +4 -5
  636. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +518 -521
  637. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +518 -521
  638. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +571 -573
  639. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +519 -522
  640. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +518 -521
  641. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +518 -521
  642. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +518 -521
  643. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +548 -549
  644. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +548 -549
  645. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +548 -549
  646. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +575 -576
  647. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +532 -535
  648. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml +562 -563
  649. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +562 -563
  650. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +562 -563
  651. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +562 -563
  652. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +561 -562
  653. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +562 -563
  654. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +509 -512
  655. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +555 -555
  656. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +536 -528
  657. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +503 -505
  658. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +6 -7
  659. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fixed-heater-gas-only.xml +6 -57
  660. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only.xml +6 -7
  661. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-coal-only.xml +549 -0
  662. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +562 -563
  663. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +548 -549
  664. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +562 -563
  665. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +562 -563
  666. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +5 -7
  667. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +560 -561
  668. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +548 -549
  669. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +548 -549
  670. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +548 -549
  671. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +576 -579
  672. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-cooling-only.xml +557 -0
  673. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-heating-only.xml +563 -0
  674. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +7 -9
  675. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-flowrate.xml → base-hvac-install-quality-airflow-defect-furnace-gas-central-ac-1-speed.xml} +8 -9
  676. 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} +13 -8
  677. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-2-speed.xml +567 -0
  678. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-air-to-air-heat-pump-var-speed.xml +567 -0
  679. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-1-speed.xml +572 -0
  680. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-2-speed.xml +572 -0
  681. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-central-ac-var-speed.xml +572 -0
  682. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-furnace-gas-only.xml +553 -0
  683. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-all-ground-to-air-heat-pump.xml +566 -0
  684. 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} +10 -5
  685. 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-install-quality-all-mini-split-heat-pump-ducted.xml} +13 -8
  686. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-blower-efficiency-furnace-gas-central-ac-1-speed.xml +569 -0
  687. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-misc-shelter-coefficient.xml → base-hvac-install-quality-charge-defect-furnace-gas-central-ac-1-speed.xml} +9 -10
  688. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-none-furnace-gas-central-ac-1-speed.xml +570 -0
  689. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +547 -548
  690. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +508 -511
  691. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +554 -555
  692. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +560 -561
  693. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +560 -561
  694. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +515 -518
  695. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +21 -13
  696. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-none.xml +486 -489
  697. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-portable-heater-gas-only.xml +6 -57
  698. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat-detailed.xml +567 -0
  699. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat.xml +570 -571
  700. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +508 -511
  701. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +508 -511
  702. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +562 -563
  703. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +6 -7
  704. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +6 -7
  705. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +565 -566
  706. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +562 -563
  707. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +6 -7
  708. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +573 -574
  709. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-detailed.xml +585 -586
  710. data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +488 -489
  711. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +562 -563
  712. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +573 -563
  713. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +516 -517
  714. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +573 -563
  715. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-helena-mt.xml +563 -0
  716. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-honolulu-hi.xml +517 -0
  717. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +516 -517
  718. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-phoenix-az.xml +517 -0
  719. data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-portland-or.xml +577 -0
  720. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +574 -575
  721. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +590 -591
  722. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +545 -548
  723. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +549 -541
  724. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +575 -576
  725. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +576 -577
  726. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +576 -577
  727. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +574 -575
  728. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +574 -575
  729. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +575 -576
  730. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +575 -576
  731. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +796 -795
  732. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +574 -575
  733. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +572 -573
  734. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +478 -495
  735. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +579 -0
  736. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +758 -833
  737. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +749 -820
  738. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +550 -559
  739. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +575 -576
  740. data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/invalid-calendar-year.xml → base-misc-shielding-of-home.xml} +7 -8
  741. data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +728 -725
  742. data/example_files/resources/hpxml-measures/workflow/sample_files/base-multiple-buildings.xml +1657 -0
  743. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +6 -7
  744. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic-vacant.xml +564 -0
  745. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic.xml +6 -7
  746. data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-user-specified.xml +6 -7
  747. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +563 -564
  748. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +569 -570
  749. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +565 -566
  750. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +566 -567
  751. data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +562 -563
  752. data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +562 -563
  753. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/boiler-invalid-afue.xml +519 -0
  754. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cfis-with-hydronic-distribution.xml +532 -535
  755. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-dryer-location.xml +562 -563
  756. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-washer-location.xml +562 -563
  757. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cooking-range-location.xml +562 -563
  758. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dehumidifier-fraction-served.xml +535 -0
  759. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dehumidifier-setpoints.xml +535 -0
  760. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-frac-load-served.xml +575 -578
  761. data/example_files/resources/hpxml-measures/workflow/sample_files/{base-dhw-uef.xml → invalid_files/dhw-invalid-ef-tank.xml} +7 -8
  762. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-uef-tank-heat-pump.xml +564 -0
  763. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dishwasher-location.xml +562 -563
  764. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-leakage-cfm25.xml +563 -0
  765. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-leakage-percent.xml +563 -0
  766. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location-unconditioned-space.xml +562 -563
  767. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location.xml +562 -563
  768. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duplicate-id.xml +562 -563
  769. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-attic-missing-roof.xml +546 -547
  770. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-exterior-foundation-wall.xml +543 -544
  771. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-slab.xml +546 -545
  772. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa.xml +563 -0
  773. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa2.xml +448 -0
  774. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-exterior-wall.xml +613 -616
  775. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-roof-ceiling.xml +626 -629
  776. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-slab.xml +610 -611
  777. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-ceiling-roof.xml +550 -551
  778. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-exterior-wall.xml +472 -473
  779. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-floor-slab.xml +488 -534
  780. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-sensible-fuel-load.xml +760 -0
  781. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-sensible-plug-load.xml +759 -0
  782. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-total-fuel-load.xml +761 -0
  783. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/frac-total-plug-load.xml +759 -0
  784. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/furnace-invalid-afue.xml +563 -0
  785. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/generator-number-of-bedrooms-served.xml +460 -0
  786. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/generator-output-greater-than-consumption.xml +579 -0
  787. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/heat-pump-mixed-fixed-and-autosize-capacities.xml +559 -560
  788. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-cooling.xml +21 -13
  789. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-heating.xml +21 -13
  790. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-return-duct-leakage-missing.xml +528 -534
  791. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-cooling.xml +546 -549
  792. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-heating.xml +546 -549
  793. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-frac-load-served.xml +21 -13
  794. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-inconsistent-fan-powers.xml +569 -0
  795. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-invalid-distribution-system-type.xml +570 -571
  796. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-shared-negative-seer-eq.xml +407 -0
  797. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-assembly-effective-rvalue.xml +563 -0
  798. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-boolean.xml +563 -0
  799. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-float.xml +563 -0
  800. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-integer.xml +563 -0
  801. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-daylight-saving.xml +569 -567
  802. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-distribution-cfa-served.xml +562 -563
  803. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-epw-filepath.xml +562 -563
  804. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-equipment.xml +466 -0
  805. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-surfaces.xml +644 -0
  806. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/{appliances-location-unconditioned-space.xml → invalid-foundation-wall-properties.xml} +39 -29
  807. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-id.xml +591 -0
  808. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-id2.xml +591 -0
  809. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-infiltration-volume.xml +563 -0
  810. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-input-parameters.xml +565 -0
  811. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-neighbor-shading-azimuth.xml +575 -576
  812. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-bedrooms-served.xml +465 -0
  813. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/{slab-zero-exposed-perimeter.xml → invalid-number-of-conditioned-floors.xml} +7 -8
  814. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-number-of-units-served.xml +451 -0
  815. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-desuperheater.xml +550 -551
  816. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-dhw-indirect.xml +517 -520
  817. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-runperiod.xml +564 -565
  818. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-schema-version.xml +563 -0
  819. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-shared-vent-in-unit-flowrate.xml +473 -0
  820. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-timestep.xml +562 -563
  821. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-window-height.xml +582 -578
  822. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/lighting-fractions.xml +562 -563
  823. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-duct-location.xml +21 -13
  824. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-elements.xml +560 -561
  825. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-appliance.xml +562 -563
  826. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-duct.xml +562 -563
  827. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-surface.xml +575 -566
  828. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-water-heater.xml +562 -563
  829. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-buildings-without-building-id.xml +1657 -0
  830. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-buildings-wrong-building-id.xml +1657 -0
  831. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-shared-cooling-systems.xml +432 -0
  832. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multiple-shared-heating-systems.xml +434 -0
  833. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-roof.xml +590 -591
  834. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-wall.xml +562 -563
  835. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/num-bedrooms-exceeds-limit.xml +563 -0
  836. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/orphaned-hvac-distribution.xml +546 -547
  837. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerator-location.xml +562 -563
  838. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-multiple-primary.xml +568 -569
  839. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-no-primary.xml +568 -569
  840. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-desuperheater.xml +563 -564
  841. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-dhw-indirect.xml +526 -529
  842. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-fraction-one.xml +571 -0
  843. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-combi-tankless.xml +531 -534
  844. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-desuperheater.xml +565 -566
  845. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-dhw-indirect.xml +531 -534
  846. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-cfis.xml +575 -576
  847. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-door.xml +562 -563
  848. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-hvac-distribution.xml +562 -563
  849. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-clothes-washer-water-heater.xml +465 -827
  850. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-dishwasher-water-heater.xml +465 -827
  851. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-skylight.xml +590 -591
  852. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-solar-thermal-system.xml +577 -578
  853. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-window.xml +562 -563
  854. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location-other.xml +562 -563
  855. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location.xml +562 -563
  856. data/example_files/resources/hpxml-measures/workflow/template.osw +5 -1
  857. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AC.xml +6 -17
  858. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AL.xml +6 -17
  859. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AC.xml +6 -17
  860. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AL.xml +6 -17
  861. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AC.xml +6 -17
  862. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AL.xml +6 -17
  863. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AC.xml +6 -17
  864. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AL.xml +6 -17
  865. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AC.xml +6 -17
  866. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AL.xml +6 -17
  867. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AC.xml +6 -17
  868. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AL.xml +6 -17
  869. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AC.xml +6 -17
  870. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AL.xml +6 -17
  871. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AC.xml +6 -17
  872. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AL.xml +6 -17
  873. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AC.xml +6 -17
  874. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AL.xml +6 -17
  875. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AC.xml +6 -17
  876. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AL.xml +6 -17
  877. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AC.xml +6 -17
  878. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AL.xml +6 -17
  879. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L302XC.xml +6 -19
  880. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L304XC.xml +6 -19
  881. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L322XC.xml +6 -19
  882. data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L324XC.xml +6 -19
  883. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results.csv +294 -0
  884. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_ashrae_140.csv +27 -0
  885. data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_hvac_sizing.csv +294 -0
  886. data/example_files/resources/hpxml-measures/workflow/tests/compare.rb +130 -0
  887. data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +522 -527
  888. data/example_files/{measures/BuildResidentialModel/resources → resources}/measure-info.json +0 -0
  889. data/example_files/{measures/BuildResidentialModel/resources → resources}/meta_measure.rb +53 -44
  890. data/example_files/validation_schema.yaml +149 -0
  891. data/example_files/visualization/input_visualization_feature.html +213 -56
  892. data/example_files/visualization/input_visualization_scenario.html +92 -30
  893. data/lib/uo_cli.rb +406 -128
  894. data/lib/uo_cli/version.rb +17 -7
  895. data/requirements.txt +2 -0
  896. data/scripts/setup-env-gitbash.sh +5 -5
  897. data/scripts/setup-env-unix.sh +4 -4
  898. data/scripts/setup-env.bat +14 -11
  899. data/scripts/setup-env.ps1 +13 -10
  900. data/uo_cli.gemspec +10 -8
  901. metadata +390 -130
  902. data/developer_nrel_key.rb +0 -31
  903. data/example_files/measures/ResidentialGeometryCreateMultifamily/measure.rb +0 -1005
  904. data/example_files/measures/ResidentialGeometryCreateMultifamily/measure.xml +0 -326
  905. data/example_files/measures/ResidentialGeometryCreateMultifamily/tests/create_residential_multifamily_geometry_test.rb +0 -477
  906. data/example_files/measures/ResidentialGeometryCreateSingleFamilyAttached/measure.rb +0 -1039
  907. data/example_files/measures/ResidentialGeometryCreateSingleFamilyAttached/measure.xml +0 -393
  908. data/example_files/measures/ResidentialGeometryCreateSingleFamilyAttached/tests/create_residential_single_family_attached_geometry_test.rb +0 -456
  909. data/example_files/measures/ResidentialGeometryCreateSingleFamilyDetached/measure.rb +0 -979
  910. data/example_files/measures/ResidentialGeometryCreateSingleFamilyDetached/measure.xml +0 -388
  911. data/example_files/measures/ResidentialGeometryCreateSingleFamilyDetached/tests/create_residential_single_family_detached_geometry_test.rb +0 -704
  912. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/location.rb +0 -24
  913. data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.yml +0 -61
  914. data/example_files/resources/hpxml-measures/docs/source/hpxml_to_openstudio.rst +0 -1386
  915. data/example_files/resources/hpxml-measures/docs/source/simulation_output_report.rst +0 -252
  916. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-shared-laundry-room.xml +0 -828
  917. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-shared-water-heater-recirc.xml +0 -820
  918. data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-shared-water-heater.xml +0 -813
  919. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-attached-multifamily.xml +0 -810
  920. data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-common-surfaces.xml +0 -928
  921. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ideal-air.xml +0 -501
  922. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple2.xml +0 -838
  923. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-chiller-baseboard.xml +0 -777
  924. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-chiller-fan-coil-ducted.xml +0 -808
  925. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-chiller-fan-coil.xml +0 -780
  926. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-chiller-water-loop-heat-pump.xml +0 -820
  927. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-cooling-tower-water-loop-heat-pump.xml +0 -815
  928. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-baseboard.xml +0 -760
  929. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-fan-coil-ducted.xml +0 -790
  930. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-fan-coil-eae.xml +0 -759
  931. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-fan-coil.xml +0 -762
  932. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-water-loop-heat-pump.xml +0 -796
  933. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-chiller-only-baseboard.xml +0 -759
  934. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-chiller-only-fan-coil-ducted.xml +0 -789
  935. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-chiller-only-fan-coil.xml +0 -761
  936. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-chiller-only-water-loop-heat-pump.xml +0 -796
  937. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-cooling-tower-only-water-loop-heat-pump.xml +0 -791
  938. data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-ground-loop-ground-to-air-heat-pump.xml +0 -814
  939. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-shared-preconditioning.xml +0 -851
  940. data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-shared.xml +0 -835
  941. data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-shared.xml +0 -827
  942. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/coal-for-non-boiler-heating.xml +0 -514
  943. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type.xml +0 -828
  944. data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-window-interior-shading.xml +0 -564
@@ -47,6 +47,7 @@ class EUT
47
47
  Lighting = 'Lighting'
48
48
  Fireplace = 'Fireplace'
49
49
  PV = 'PV'
50
+ Generator = 'Generator'
50
51
  end
51
52
 
52
53
  class HWT
@@ -84,7 +85,6 @@ class CLT
84
85
  NaturalVentilation = 'Natural Ventilation'
85
86
  MechanicalVentilation = 'Mechanical Ventilation'
86
87
  WholeHouseFan = 'Whole House Fan'
87
- ClothesDryerExhaust = 'Clothes Dryer Exhaust'
88
88
  Ducts = 'Ducts'
89
89
  InternalGains = 'Internal Gains'
90
90
  end
@@ -101,7 +101,6 @@ class AFT
101
101
  MechanicalVentilation = 'Mechanical Ventilation'
102
102
  NaturalVentilation = 'Natural Ventilation'
103
103
  WholeHouseFan = 'Whole House Fan'
104
- ClothesDryerExhaust = 'Clothes Dryer Exhaust'
105
104
  end
106
105
 
107
106
  class WT
@@ -2,103 +2,109 @@
2
2
 
3
3
  require_relative '../../HPXMLtoOpenStudio/resources/minitest_helper'
4
4
  require 'openstudio'
5
- require 'openstudio/ruleset/ShowRunnerOutput'
6
- require 'minitest/autorun'
5
+ require 'openstudio/measure/ShowRunnerOutput'
7
6
  require 'fileutils'
8
7
  require 'csv'
9
8
  require_relative '../measure.rb'
10
9
 
11
10
  class SimulationOutputReportTest < MiniTest::Test
12
11
  AnnualRows = [
13
- 'Electricity: Total (MBtu)',
14
- 'Electricity: Net (MBtu)',
15
- 'Natural Gas: Total (MBtu)',
16
- 'Fuel Oil: Total (MBtu)',
17
- 'Propane: Total (MBtu)',
18
- 'Wood Cord: Total (MBtu)',
19
- 'Wood Pellets: Total (MBtu)',
20
- 'Coal: Total (MBtu)',
21
- 'Electricity: Heating (MBtu)',
22
- 'Electricity: Heating Fans/Pumps (MBtu)',
23
- 'Electricity: Cooling (MBtu)',
24
- 'Electricity: Cooling Fans/Pumps (MBtu)',
25
- 'Electricity: Hot Water (MBtu)',
26
- 'Electricity: Hot Water Recirc Pump (MBtu)',
27
- 'Electricity: Hot Water Solar Thermal Pump (MBtu)',
28
- 'Electricity: Lighting Interior (MBtu)',
29
- 'Electricity: Lighting Garage (MBtu)',
30
- 'Electricity: Lighting Exterior (MBtu)',
31
- 'Electricity: Mech Vent (MBtu)',
32
- 'Electricity: Mech Vent Preheating (MBtu)',
33
- 'Electricity: Mech Vent Precooling (MBtu)',
34
- 'Electricity: Whole House Fan (MBtu)',
35
- 'Electricity: Refrigerator (MBtu)',
36
- 'Electricity: Freezer (MBtu)',
37
- 'Electricity: Dehumidifier (MBtu)',
38
- 'Electricity: Dishwasher (MBtu)',
39
- 'Electricity: Clothes Washer (MBtu)',
40
- 'Electricity: Clothes Dryer (MBtu)',
41
- 'Electricity: Range/Oven (MBtu)',
42
- 'Electricity: Ceiling Fan (MBtu)',
43
- 'Electricity: Television (MBtu)',
44
- 'Electricity: Plug Loads (MBtu)',
45
- 'Electricity: Electric Vehicle Charging (MBtu)',
46
- 'Electricity: Well Pump (MBtu)',
47
- 'Electricity: Pool Heater (MBtu)',
48
- 'Electricity: Pool Pump (MBtu)',
49
- 'Electricity: Hot Tub Heater (MBtu)',
50
- 'Electricity: Hot Tub Pump (MBtu)',
51
- 'Electricity: PV (MBtu)',
52
- 'Natural Gas: Heating (MBtu)',
53
- 'Natural Gas: Hot Water (MBtu)',
54
- 'Natural Gas: Clothes Dryer (MBtu)',
55
- 'Natural Gas: Range/Oven (MBtu)',
56
- 'Natural Gas: Pool Heater (MBtu)',
57
- 'Natural Gas: Hot Tub Heater (MBtu)',
58
- 'Natural Gas: Grill (MBtu)',
59
- 'Natural Gas: Lighting (MBtu)',
60
- 'Natural Gas: Fireplace (MBtu)',
61
- 'Natural Gas: Mech Vent Preheating (MBtu)',
62
- 'Fuel Oil: Heating (MBtu)',
63
- 'Fuel Oil: Hot Water (MBtu)',
64
- 'Fuel Oil: Clothes Dryer (MBtu)',
65
- 'Fuel Oil: Range/Oven (MBtu)',
66
- 'Fuel Oil: Grill (MBtu)',
67
- 'Fuel Oil: Lighting (MBtu)',
68
- 'Fuel Oil: Fireplace (MBtu)',
69
- 'Fuel Oil: Mech Vent Preheating (MBtu)',
70
- 'Propane: Heating (MBtu)',
71
- 'Propane: Hot Water (MBtu)',
72
- 'Propane: Clothes Dryer (MBtu)',
73
- 'Propane: Range/Oven (MBtu)',
74
- 'Propane: Grill (MBtu)',
75
- 'Propane: Lighting (MBtu)',
76
- 'Propane: Fireplace (MBtu)',
77
- 'Propane: Mech Vent Preheating (MBtu)',
78
- 'Wood Cord: Heating (MBtu)',
79
- 'Wood Cord: Hot Water (MBtu)',
80
- 'Wood Cord: Clothes Dryer (MBtu)',
81
- 'Wood Cord: Range/Oven (MBtu)',
82
- 'Wood Cord: Grill (MBtu)',
83
- 'Wood Cord: Lighting (MBtu)',
84
- 'Wood Cord: Fireplace (MBtu)',
85
- 'Wood Cord: Mech Vent Preheating (MBtu)',
86
- 'Wood Pellets: Heating (MBtu)',
87
- 'Wood Pellets: Hot Water (MBtu)',
88
- 'Wood Pellets: Clothes Dryer (MBtu)',
89
- 'Wood Pellets: Range/Oven (MBtu)',
90
- 'Wood Pellets: Grill (MBtu)',
91
- 'Wood Pellets: Lighting (MBtu)',
92
- 'Wood Pellets: Fireplace (MBtu)',
93
- 'Wood Pellets: Mech Vent Preheating (MBtu)',
94
- 'Coal: Heating (MBtu)',
95
- 'Coal: Hot Water (MBtu)',
96
- 'Coal: Clothes Dryer (MBtu)',
97
- 'Coal: Range/Oven (MBtu)',
98
- 'Coal: Grill (MBtu)',
99
- 'Coal: Lighting (MBtu)',
100
- 'Coal: Fireplace (MBtu)',
101
- 'Coal: Mech Vent Preheating (MBtu)',
12
+ 'Fuel Use: Electricity: Total (MBtu)',
13
+ 'Fuel Use: Electricity: Net (MBtu)',
14
+ 'Fuel Use: Natural Gas: Total (MBtu)',
15
+ 'Fuel Use: Fuel Oil: Total (MBtu)',
16
+ 'Fuel Use: Propane: Total (MBtu)',
17
+ 'Fuel Use: Wood Cord: Total (MBtu)',
18
+ 'Fuel Use: Wood Pellets: Total (MBtu)',
19
+ 'Fuel Use: Coal: Total (MBtu)',
20
+ 'End Use: Electricity: Heating (MBtu)',
21
+ 'End Use: Electricity: Heating Fans/Pumps (MBtu)',
22
+ 'End Use: Electricity: Cooling (MBtu)',
23
+ 'End Use: Electricity: Cooling Fans/Pumps (MBtu)',
24
+ 'End Use: Electricity: Hot Water (MBtu)',
25
+ 'End Use: Electricity: Hot Water Recirc Pump (MBtu)',
26
+ 'End Use: Electricity: Hot Water Solar Thermal Pump (MBtu)',
27
+ 'End Use: Electricity: Lighting Interior (MBtu)',
28
+ 'End Use: Electricity: Lighting Garage (MBtu)',
29
+ 'End Use: Electricity: Lighting Exterior (MBtu)',
30
+ 'End Use: Electricity: Mech Vent (MBtu)',
31
+ 'End Use: Electricity: Mech Vent Preheating (MBtu)',
32
+ 'End Use: Electricity: Mech Vent Precooling (MBtu)',
33
+ 'End Use: Electricity: Whole House Fan (MBtu)',
34
+ 'End Use: Electricity: Refrigerator (MBtu)',
35
+ 'End Use: Electricity: Freezer (MBtu)',
36
+ 'End Use: Electricity: Dehumidifier (MBtu)',
37
+ 'End Use: Electricity: Dishwasher (MBtu)',
38
+ 'End Use: Electricity: Clothes Washer (MBtu)',
39
+ 'End Use: Electricity: Clothes Dryer (MBtu)',
40
+ 'End Use: Electricity: Range/Oven (MBtu)',
41
+ 'End Use: Electricity: Ceiling Fan (MBtu)',
42
+ 'End Use: Electricity: Television (MBtu)',
43
+ 'End Use: Electricity: Plug Loads (MBtu)',
44
+ 'End Use: Electricity: Electric Vehicle Charging (MBtu)',
45
+ 'End Use: Electricity: Well Pump (MBtu)',
46
+ 'End Use: Electricity: Pool Heater (MBtu)',
47
+ 'End Use: Electricity: Pool Pump (MBtu)',
48
+ 'End Use: Electricity: Hot Tub Heater (MBtu)',
49
+ 'End Use: Electricity: Hot Tub Pump (MBtu)',
50
+ 'End Use: Electricity: PV (MBtu)',
51
+ 'End Use: Electricity: Generator (MBtu)',
52
+ 'End Use: Natural Gas: Heating (MBtu)',
53
+ 'End Use: Natural Gas: Hot Water (MBtu)',
54
+ 'End Use: Natural Gas: Clothes Dryer (MBtu)',
55
+ 'End Use: Natural Gas: Range/Oven (MBtu)',
56
+ 'End Use: Natural Gas: Pool Heater (MBtu)',
57
+ 'End Use: Natural Gas: Hot Tub Heater (MBtu)',
58
+ 'End Use: Natural Gas: Grill (MBtu)',
59
+ 'End Use: Natural Gas: Lighting (MBtu)',
60
+ 'End Use: Natural Gas: Fireplace (MBtu)',
61
+ 'End Use: Natural Gas: Mech Vent Preheating (MBtu)',
62
+ 'End Use: Natural Gas: Generator (MBtu)',
63
+ 'End Use: Fuel Oil: Heating (MBtu)',
64
+ 'End Use: Fuel Oil: Hot Water (MBtu)',
65
+ 'End Use: Fuel Oil: Clothes Dryer (MBtu)',
66
+ 'End Use: Fuel Oil: Range/Oven (MBtu)',
67
+ 'End Use: Fuel Oil: Grill (MBtu)',
68
+ 'End Use: Fuel Oil: Lighting (MBtu)',
69
+ 'End Use: Fuel Oil: Fireplace (MBtu)',
70
+ 'End Use: Fuel Oil: Mech Vent Preheating (MBtu)',
71
+ 'End Use: Fuel Oil: Generator (MBtu)',
72
+ 'End Use: Propane: Heating (MBtu)',
73
+ 'End Use: Propane: Hot Water (MBtu)',
74
+ 'End Use: Propane: Clothes Dryer (MBtu)',
75
+ 'End Use: Propane: Range/Oven (MBtu)',
76
+ 'End Use: Propane: Grill (MBtu)',
77
+ 'End Use: Propane: Lighting (MBtu)',
78
+ 'End Use: Propane: Fireplace (MBtu)',
79
+ 'End Use: Propane: Mech Vent Preheating (MBtu)',
80
+ 'End Use: Propane: Generator (MBtu)',
81
+ 'End Use: Wood Cord: Heating (MBtu)',
82
+ 'End Use: Wood Cord: Hot Water (MBtu)',
83
+ 'End Use: Wood Cord: Clothes Dryer (MBtu)',
84
+ 'End Use: Wood Cord: Range/Oven (MBtu)',
85
+ 'End Use: Wood Cord: Grill (MBtu)',
86
+ 'End Use: Wood Cord: Lighting (MBtu)',
87
+ 'End Use: Wood Cord: Fireplace (MBtu)',
88
+ 'End Use: Wood Cord: Mech Vent Preheating (MBtu)',
89
+ 'End Use: Wood Cord: Generator (MBtu)',
90
+ 'End Use: Wood Pellets: Heating (MBtu)',
91
+ 'End Use: Wood Pellets: Hot Water (MBtu)',
92
+ 'End Use: Wood Pellets: Clothes Dryer (MBtu)',
93
+ 'End Use: Wood Pellets: Range/Oven (MBtu)',
94
+ 'End Use: Wood Pellets: Grill (MBtu)',
95
+ 'End Use: Wood Pellets: Lighting (MBtu)',
96
+ 'End Use: Wood Pellets: Fireplace (MBtu)',
97
+ 'End Use: Wood Pellets: Mech Vent Preheating (MBtu)',
98
+ 'End Use: Wood Pellets: Generator (MBtu)',
99
+ 'End Use: Coal: Heating (MBtu)',
100
+ 'End Use: Coal: Hot Water (MBtu)',
101
+ 'End Use: Coal: Clothes Dryer (MBtu)',
102
+ 'End Use: Coal: Range/Oven (MBtu)',
103
+ 'End Use: Coal: Grill (MBtu)',
104
+ 'End Use: Coal: Lighting (MBtu)',
105
+ 'End Use: Coal: Fireplace (MBtu)',
106
+ 'End Use: Coal: Mech Vent Preheating (MBtu)',
107
+ 'End Use: Coal: Generator (MBtu)',
102
108
  'Load: Heating (MBtu)',
103
109
  'Load: Cooling (MBtu)',
104
110
  'Load: Hot Water: Delivered (MBtu)',
@@ -126,7 +132,6 @@ class SimulationOutputReportTest < MiniTest::Test
126
132
  'Component Load: Heating: Natural Ventilation (MBtu)',
127
133
  'Component Load: Heating: Mechanical Ventilation (MBtu)',
128
134
  'Component Load: Heating: Whole House Fan (MBtu)',
129
- 'Component Load: Heating: Clothes Dryer Exhaust (MBtu)',
130
135
  'Component Load: Heating: Ducts (MBtu)',
131
136
  'Component Load: Heating: Internal Gains (MBtu)',
132
137
  'Component Load: Cooling: Roofs (MBtu)',
@@ -144,7 +149,6 @@ class SimulationOutputReportTest < MiniTest::Test
144
149
  'Component Load: Cooling: Natural Ventilation (MBtu)',
145
150
  'Component Load: Cooling: Mechanical Ventilation (MBtu)',
146
151
  'Component Load: Cooling: Whole House Fan (MBtu)',
147
- 'Component Load: Cooling: Clothes Dryer Exhaust (MBtu)',
148
152
  'Component Load: Cooling: Ducts (MBtu)',
149
153
  'Component Load: Cooling: Internal Gains (MBtu)',
150
154
  'Hot Water: Clothes Washer (gal)',
@@ -154,89 +158,96 @@ class SimulationOutputReportTest < MiniTest::Test
154
158
  ]
155
159
 
156
160
  TimeseriesColsFuels = [
157
- 'Electricity: Total',
158
- 'Natural Gas: Total',
159
- 'Fuel Oil: Total',
160
- 'Propane: Total',
161
- 'Wood Cord: Total',
162
- 'Wood Pellets: Total',
163
- 'Coal: Total',
161
+ 'Fuel Use: Electricity: Total',
162
+ 'Fuel Use: Natural Gas: Total',
163
+ 'Fuel Use: Fuel Oil: Total',
164
+ 'Fuel Use: Propane: Total',
165
+ 'Fuel Use: Wood Cord: Total',
166
+ 'Fuel Use: Wood Pellets: Total',
167
+ 'Fuel Use: Coal: Total',
164
168
  ]
165
169
 
166
170
  TimeseriesColsEndUses = [
167
- 'Electricity: Heating',
168
- 'Electricity: Heating Fans/Pumps',
169
- 'Electricity: Cooling',
170
- 'Electricity: Cooling Fans/Pumps',
171
- 'Electricity: Hot Water',
172
- 'Electricity: Hot Water Recirc Pump',
173
- 'Electricity: Hot Water Solar Thermal Pump',
174
- 'Electricity: Lighting Interior',
175
- 'Electricity: Lighting Garage',
176
- 'Electricity: Lighting Exterior',
177
- 'Electricity: Mech Vent',
178
- 'Electricity: Whole House Fan',
179
- 'Electricity: Refrigerator',
180
- 'Electricity: Freezer',
181
- 'Electricity: Dehumidifier',
182
- 'Electricity: Dishwasher',
183
- 'Electricity: Clothes Washer',
184
- 'Electricity: Clothes Dryer',
185
- 'Electricity: Range/Oven',
186
- 'Electricity: Ceiling Fan',
187
- 'Electricity: Television',
188
- 'Electricity: Plug Loads',
189
- 'Electricity: Electric Vehicle Charging',
190
- 'Electricity: Well Pump',
191
- 'Electricity: Pool Heater',
192
- 'Electricity: Pool Pump',
193
- 'Electricity: Hot Tub Heater',
194
- 'Electricity: Hot Tub Pump',
195
- 'Electricity: PV',
196
- 'Natural Gas: Heating',
197
- 'Natural Gas: Hot Water',
198
- 'Natural Gas: Clothes Dryer',
199
- 'Natural Gas: Range/Oven',
200
- 'Natural Gas: Pool Heater',
201
- 'Natural Gas: Hot Tub Heater',
202
- 'Natural Gas: Grill',
203
- 'Natural Gas: Lighting',
204
- 'Natural Gas: Fireplace',
205
- 'Fuel Oil: Heating',
206
- 'Fuel Oil: Hot Water',
207
- 'Fuel Oil: Clothes Dryer',
208
- 'Fuel Oil: Range/Oven',
209
- 'Fuel Oil: Grill',
210
- 'Fuel Oil: Lighting',
211
- 'Fuel Oil: Fireplace',
212
- 'Propane: Heating',
213
- 'Propane: Hot Water',
214
- 'Propane: Clothes Dryer',
215
- 'Propane: Range/Oven',
216
- 'Propane: Grill',
217
- 'Propane: Lighting',
218
- 'Propane: Fireplace',
219
- 'Wood Cord: Heating',
220
- 'Wood Cord: Hot Water',
221
- 'Wood Cord: Clothes Dryer',
222
- 'Wood Cord: Range/Oven',
223
- 'Wood Cord: Grill',
224
- 'Wood Cord: Lighting',
225
- 'Wood Cord: Fireplace',
226
- 'Wood Pellets: Heating',
227
- 'Wood Pellets: Hot Water',
228
- 'Wood Pellets: Clothes Dryer',
229
- 'Wood Pellets: Range/Oven',
230
- 'Wood Pellets: Grill',
231
- 'Wood Pellets: Lighting',
232
- 'Wood Pellets: Fireplace',
233
- 'Coal: Heating',
234
- 'Coal: Hot Water',
235
- 'Coal: Clothes Dryer',
236
- 'Coal: Range/Oven',
237
- 'Coal: Grill',
238
- 'Coal: Lighting',
239
- 'Coal: Fireplace',
171
+ 'End Use: Electricity: Heating',
172
+ 'End Use: Electricity: Heating Fans/Pumps',
173
+ 'End Use: Electricity: Cooling',
174
+ 'End Use: Electricity: Cooling Fans/Pumps',
175
+ 'End Use: Electricity: Hot Water',
176
+ 'End Use: Electricity: Hot Water Recirc Pump',
177
+ 'End Use: Electricity: Hot Water Solar Thermal Pump',
178
+ 'End Use: Electricity: Lighting Interior',
179
+ 'End Use: Electricity: Lighting Garage',
180
+ 'End Use: Electricity: Lighting Exterior',
181
+ 'End Use: Electricity: Mech Vent',
182
+ 'End Use: Electricity: Whole House Fan',
183
+ 'End Use: Electricity: Refrigerator',
184
+ 'End Use: Electricity: Freezer',
185
+ 'End Use: Electricity: Dehumidifier',
186
+ 'End Use: Electricity: Dishwasher',
187
+ 'End Use: Electricity: Clothes Washer',
188
+ 'End Use: Electricity: Clothes Dryer',
189
+ 'End Use: Electricity: Range/Oven',
190
+ 'End Use: Electricity: Ceiling Fan',
191
+ 'End Use: Electricity: Television',
192
+ 'End Use: Electricity: Plug Loads',
193
+ 'End Use: Electricity: Electric Vehicle Charging',
194
+ 'End Use: Electricity: Well Pump',
195
+ 'End Use: Electricity: Pool Heater',
196
+ 'End Use: Electricity: Pool Pump',
197
+ 'End Use: Electricity: Hot Tub Heater',
198
+ 'End Use: Electricity: Hot Tub Pump',
199
+ 'End Use: Electricity: PV',
200
+ 'End Use: Electricity: Generator',
201
+ 'End Use: Natural Gas: Heating',
202
+ 'End Use: Natural Gas: Hot Water',
203
+ 'End Use: Natural Gas: Clothes Dryer',
204
+ 'End Use: Natural Gas: Range/Oven',
205
+ 'End Use: Natural Gas: Pool Heater',
206
+ 'End Use: Natural Gas: Hot Tub Heater',
207
+ 'End Use: Natural Gas: Grill',
208
+ 'End Use: Natural Gas: Lighting',
209
+ 'End Use: Natural Gas: Fireplace',
210
+ 'End Use: Natural Gas: Generator',
211
+ 'End Use: Fuel Oil: Heating',
212
+ 'End Use: Fuel Oil: Hot Water',
213
+ 'End Use: Fuel Oil: Clothes Dryer',
214
+ 'End Use: Fuel Oil: Range/Oven',
215
+ 'End Use: Fuel Oil: Grill',
216
+ 'End Use: Fuel Oil: Lighting',
217
+ 'End Use: Fuel Oil: Fireplace',
218
+ 'End Use: Fuel Oil: Generator',
219
+ 'End Use: Propane: Heating',
220
+ 'End Use: Propane: Hot Water',
221
+ 'End Use: Propane: Clothes Dryer',
222
+ 'End Use: Propane: Range/Oven',
223
+ 'End Use: Propane: Grill',
224
+ 'End Use: Propane: Lighting',
225
+ 'End Use: Propane: Fireplace',
226
+ 'End Use: Propane: Generator',
227
+ 'End Use: Wood Cord: Heating',
228
+ 'End Use: Wood Cord: Hot Water',
229
+ 'End Use: Wood Cord: Clothes Dryer',
230
+ 'End Use: Wood Cord: Range/Oven',
231
+ 'End Use: Wood Cord: Grill',
232
+ 'End Use: Wood Cord: Lighting',
233
+ 'End Use: Wood Cord: Fireplace',
234
+ 'End Use: Wood Cord: Generator',
235
+ 'End Use: Wood Pellets: Heating',
236
+ 'End Use: Wood Pellets: Hot Water',
237
+ 'End Use: Wood Pellets: Clothes Dryer',
238
+ 'End Use: Wood Pellets: Range/Oven',
239
+ 'End Use: Wood Pellets: Grill',
240
+ 'End Use: Wood Pellets: Lighting',
241
+ 'End Use: Wood Pellets: Fireplace',
242
+ 'End Use: Wood Pellets: Generator',
243
+ 'End Use: Coal: Heating',
244
+ 'End Use: Coal: Hot Water',
245
+ 'End Use: Coal: Clothes Dryer',
246
+ 'End Use: Coal: Range/Oven',
247
+ 'End Use: Coal: Grill',
248
+ 'End Use: Coal: Lighting',
249
+ 'End Use: Coal: Fireplace',
250
+ 'End Use: Coal: Generator',
240
251
  ]
241
252
 
242
253
  TimeseriesColsWaterUses = [
@@ -249,6 +260,7 @@ class SimulationOutputReportTest < MiniTest::Test
249
260
  TimeseriesColsTotalLoads = [
250
261
  'Load: Heating',
251
262
  'Load: Cooling',
263
+ 'Load: Hot Water: Delivered',
252
264
  ]
253
265
 
254
266
  TimeseriesColsComponentLoads = [
@@ -267,7 +279,6 @@ class SimulationOutputReportTest < MiniTest::Test
267
279
  'Component Load: Heating: Natural Ventilation',
268
280
  'Component Load: Heating: Mechanical Ventilation',
269
281
  'Component Load: Heating: Whole House Fan',
270
- 'Component Load: Heating: Clothes Dryer Exhaust',
271
282
  'Component Load: Heating: Ducts',
272
283
  'Component Load: Heating: Internal Gains',
273
284
  'Component Load: Cooling: Roofs',
@@ -285,11 +296,15 @@ class SimulationOutputReportTest < MiniTest::Test
285
296
  'Component Load: Cooling: Natural Ventilation',
286
297
  'Component Load: Cooling: Mechanical Ventilation',
287
298
  'Component Load: Cooling: Whole House Fan',
288
- 'Component Load: Cooling: Clothes Dryer Exhaust',
289
299
  'Component Load: Cooling: Ducts',
290
300
  'Component Load: Cooling: Internal Gains',
291
301
  ]
292
302
 
303
+ TimeseriesColsUnmetLoads = [
304
+ 'Unmet Load: Heating',
305
+ 'Unmet Load: Cooling',
306
+ ]
307
+
293
308
  TimeseriesColsZoneTemps = [
294
309
  'Temperature: Attic - Unvented',
295
310
  'Temperature: Living Space',
@@ -307,7 +322,6 @@ class SimulationOutputReportTest < MiniTest::Test
307
322
  'Airflow: Mechanical Ventilation',
308
323
  'Airflow: Natural Ventilation',
309
324
  'Airflow: Whole House Fan',
310
- 'Airflow: Clothes Dryer Exhaust'
311
325
  ]
312
326
 
313
327
  TimeseriesColsWeather = [
@@ -364,42 +378,50 @@ class SimulationOutputReportTest < MiniTest::Test
364
378
  'enduseElectricityTelevision',
365
379
  'enduseElectricityPlugLoads',
366
380
  'enduseElectricityPV',
381
+ 'enduseElectricityGenerator',
367
382
  'enduseNaturalGasHeating',
368
383
  'enduseNaturalGasHotWater',
369
384
  'enduseNaturalGasClothesDryer',
370
385
  'enduseNaturalGasRangeOven',
371
386
  'enduseNaturalGasMechVentPreheating',
387
+ 'enduseNaturalGasGenerator',
372
388
  'enduseFuelOilHeating',
373
389
  'enduseFuelOilHotWater',
374
390
  'enduseFuelOilClothesDryer',
375
391
  'enduseFuelOilRangeOven',
376
392
  'enduseFuelOilMechVentPreheating',
393
+ 'enduseFuelOilGenerator',
377
394
  'endusePropaneHeating',
378
395
  'endusePropaneHotWater',
379
396
  'endusePropaneClothesDryer',
380
397
  'endusePropaneRangeOven',
381
398
  'endusePropaneMechVentPreheating',
399
+ 'endusePropaneGenerator',
382
400
  'enduseWoodCordHeating',
383
401
  'enduseWoodCordHotWater',
384
402
  'enduseWoodCordClothesDryer',
385
403
  'enduseWoodCordRangeOven',
386
404
  'enduseWoodCordMechVentPreheating',
405
+ 'enduseWoodCordGenerator',
387
406
  'enduseWoodPelletsHeating',
388
407
  'enduseWoodPelletsHotWater',
389
408
  'enduseWoodPelletsClothesDryer',
390
409
  'enduseWoodPelletsRangeOven',
391
410
  'enduseWoodPelletsMechVentPreheating',
411
+ 'enduseWoodPelletsGenerator',
392
412
  'enduseCoalHeating',
393
413
  'enduseCoalHotWater',
394
414
  'enduseCoalClothesDryer',
395
415
  'enduseCoalRangeOven',
396
416
  'enduseCoalMechVentPreheating',
417
+ 'enduseCoalGenerator',
397
418
  'loadHeating',
398
419
  'loadCooling',
399
420
  'loadHotWaterDelivered',
400
421
  'hpxml_cfa',
401
422
  'hpxml_nbr',
402
423
  'hpxml_nst',
424
+ 'hpxml_residential_facility_type',
403
425
  ]
404
426
 
405
427
  def all_timeseries_cols
@@ -408,6 +430,7 @@ class SimulationOutputReportTest < MiniTest::Test
408
430
  TimeseriesColsWaterUses +
409
431
  TimeseriesColsTotalLoads +
410
432
  TimeseriesColsComponentLoads +
433
+ TimeseriesColsUnmetLoads +
411
434
  TimeseriesColsZoneTemps +
412
435
  TimeseriesColsAirflows +
413
436
  TimeseriesColsWeather)
@@ -415,12 +438,14 @@ class SimulationOutputReportTest < MiniTest::Test
415
438
 
416
439
  def test_annual_only
417
440
  args_hash = { 'hpxml_path' => '../workflow/sample_files/base.xml',
441
+ 'add_component_loads' => true,
418
442
  'timeseries_frequency' => 'hourly',
419
443
  'include_timeseries_fuel_consumptions' => false,
420
444
  'include_timeseries_end_use_consumptions' => false,
421
445
  'include_timeseries_hot_water_uses' => false,
422
446
  'include_timeseries_total_loads' => false,
423
447
  'include_timeseries_component_loads' => false,
448
+ 'include_timeseries_unmet_loads' => false,
424
449
  'include_timeseries_zone_temperatures' => false,
425
450
  'include_timeseries_airflows' => false,
426
451
  'include_timeseries_weather' => false }
@@ -434,12 +459,14 @@ class SimulationOutputReportTest < MiniTest::Test
434
459
 
435
460
  def test_annual_only2
436
461
  args_hash = { 'hpxml_path' => '../workflow/sample_files/base.xml',
462
+ 'add_component_loads' => true,
437
463
  'timeseries_frequency' => 'none',
438
464
  'include_timeseries_fuel_consumptions' => true,
439
465
  'include_timeseries_end_use_consumptions' => true,
440
466
  'include_timeseries_hot_water_uses' => true,
441
467
  'include_timeseries_total_loads' => true,
442
468
  'include_timeseries_component_loads' => true,
469
+ 'include_timeseries_unmet_loads' => true,
443
470
  'include_timeseries_zone_temperatures' => true,
444
471
  'include_timeseries_airflows' => true,
445
472
  'include_timeseries_weather' => true }
@@ -459,6 +486,7 @@ class SimulationOutputReportTest < MiniTest::Test
459
486
  'include_timeseries_hot_water_uses' => false,
460
487
  'include_timeseries_total_loads' => false,
461
488
  'include_timeseries_component_loads' => false,
489
+ 'include_timeseries_unmet_loads' => false,
462
490
  'include_timeseries_zone_temperatures' => false,
463
491
  'include_timeseries_airflows' => false,
464
492
  'include_timeseries_weather' => false }
@@ -469,7 +497,7 @@ class SimulationOutputReportTest < MiniTest::Test
469
497
  actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
470
498
  assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
471
499
  assert_equal(8760, File.readlines(timeseries_csv).size - 2)
472
- _check_for_nonzero_timeseries_value(timeseries_csv, ['Electricity: Total'])
500
+ _check_for_nonzero_timeseries_value(timeseries_csv, ['Fuel Use: Electricity: Total'])
473
501
  end
474
502
 
475
503
  def test_timeseries_hourly_enduses
@@ -480,6 +508,7 @@ class SimulationOutputReportTest < MiniTest::Test
480
508
  'include_timeseries_hot_water_uses' => false,
481
509
  'include_timeseries_total_loads' => false,
482
510
  'include_timeseries_component_loads' => false,
511
+ 'include_timeseries_unmet_loads' => false,
483
512
  'include_timeseries_zone_temperatures' => false,
484
513
  'include_timeseries_airflows' => false,
485
514
  'include_timeseries_weather' => false }
@@ -490,7 +519,7 @@ class SimulationOutputReportTest < MiniTest::Test
490
519
  actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
491
520
  assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
492
521
  assert_equal(8760, File.readlines(timeseries_csv).size - 2)
493
- _check_for_nonzero_timeseries_value(timeseries_csv, ['Electricity: Plug Loads'])
522
+ _check_for_nonzero_timeseries_value(timeseries_csv, ['End Use: Electricity: Plug Loads'])
494
523
  end
495
524
 
496
525
  def test_timeseries_hourly_hotwateruses
@@ -501,6 +530,7 @@ class SimulationOutputReportTest < MiniTest::Test
501
530
  'include_timeseries_hot_water_uses' => true,
502
531
  'include_timeseries_total_loads' => false,
503
532
  'include_timeseries_component_loads' => false,
533
+ 'include_timeseries_unmet_loads' => false,
504
534
  'include_timeseries_zone_temperatures' => false,
505
535
  'include_timeseries_airflows' => false,
506
536
  'include_timeseries_weather' => false }
@@ -514,7 +544,7 @@ class SimulationOutputReportTest < MiniTest::Test
514
544
  _check_for_nonzero_timeseries_value(timeseries_csv, TimeseriesColsWaterUses)
515
545
  end
516
546
 
517
- def test_timeseries_hourly_loads
547
+ def test_timeseries_hourly_total_loads
518
548
  args_hash = { 'hpxml_path' => '../workflow/sample_files/base.xml',
519
549
  'timeseries_frequency' => 'hourly',
520
550
  'include_timeseries_fuel_consumptions' => false,
@@ -522,6 +552,7 @@ class SimulationOutputReportTest < MiniTest::Test
522
552
  'include_timeseries_hot_water_uses' => false,
523
553
  'include_timeseries_total_loads' => true,
524
554
  'include_timeseries_component_loads' => false,
555
+ 'include_timeseries_unmet_loads' => false,
525
556
  'include_timeseries_zone_temperatures' => false,
526
557
  'include_timeseries_airflows' => false,
527
558
  'include_timeseries_weather' => false }
@@ -535,14 +566,16 @@ class SimulationOutputReportTest < MiniTest::Test
535
566
  _check_for_nonzero_timeseries_value(timeseries_csv, TimeseriesColsTotalLoads)
536
567
  end
537
568
 
538
- def test_timeseries_hourly_componentloads
569
+ def test_timeseries_hourly_component_loads
539
570
  args_hash = { 'hpxml_path' => '../workflow/sample_files/base.xml',
571
+ 'add_component_loads' => true,
540
572
  'timeseries_frequency' => 'hourly',
541
573
  'include_timeseries_fuel_consumptions' => false,
542
574
  'include_timeseries_end_use_consumptions' => false,
543
575
  'include_timeseries_hot_water_uses' => false,
544
576
  'include_timeseries_total_loads' => false,
545
577
  'include_timeseries_component_loads' => true,
578
+ 'include_timeseries_unmet_loads' => false,
546
579
  'include_timeseries_zone_temperatures' => false,
547
580
  'include_timeseries_airflows' => false,
548
581
  'include_timeseries_weather' => false }
@@ -556,6 +589,28 @@ class SimulationOutputReportTest < MiniTest::Test
556
589
  _check_for_nonzero_timeseries_value(timeseries_csv, ['Component Load: Heating: Internal Gains', 'Component Load: Cooling: Internal Gains'])
557
590
  end
558
591
 
592
+ def test_timeseries_hourly_unmet_loads
593
+ args_hash = { 'hpxml_path' => '../workflow/sample_files/base-hvac-undersized.xml',
594
+ 'timeseries_frequency' => 'hourly',
595
+ 'include_timeseries_fuel_consumptions' => false,
596
+ 'include_timeseries_end_use_consumptions' => false,
597
+ 'include_timeseries_hot_water_uses' => false,
598
+ 'include_timeseries_total_loads' => false,
599
+ 'include_timeseries_component_loads' => false,
600
+ 'include_timeseries_unmet_loads' => true,
601
+ 'include_timeseries_zone_temperatures' => false,
602
+ 'include_timeseries_airflows' => false,
603
+ 'include_timeseries_weather' => false }
604
+ annual_csv, timeseries_csv, eri_csv = _test_measure(args_hash)
605
+ assert(File.exist?(annual_csv))
606
+ assert(File.exist?(timeseries_csv))
607
+ expected_timeseries_cols = ['Time'] + TimeseriesColsUnmetLoads
608
+ actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
609
+ assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
610
+ assert_equal(8760, File.readlines(timeseries_csv).size - 2)
611
+ _check_for_nonzero_timeseries_value(timeseries_csv, TimeseriesColsUnmetLoads)
612
+ end
613
+
559
614
  def test_timeseries_hourly_zone_temperatures
560
615
  args_hash = { 'hpxml_path' => '../workflow/sample_files/base.xml',
561
616
  'timeseries_frequency' => 'hourly',
@@ -564,6 +619,7 @@ class SimulationOutputReportTest < MiniTest::Test
564
619
  'include_timeseries_hot_water_uses' => false,
565
620
  'include_timeseries_total_loads' => false,
566
621
  'include_timeseries_component_loads' => false,
622
+ 'include_timeseries_unmet_loads' => false,
567
623
  'include_timeseries_zone_temperatures' => true,
568
624
  'include_timeseries_airflows' => false,
569
625
  'include_timeseries_weather' => false }
@@ -578,27 +634,29 @@ class SimulationOutputReportTest < MiniTest::Test
578
634
  end
579
635
 
580
636
  def test_timeseries_hourly_zone_temperatures_mf_space
581
- args_hash = { 'hpxml_path' => '../workflow/sample_files/base-enclosure-attached-multifamily.xml',
637
+ args_hash = { 'hpxml_path' => '../workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml',
582
638
  'timeseries_frequency' => 'hourly',
583
639
  'include_timeseries_fuel_consumptions' => false,
584
640
  'include_timeseries_end_use_consumptions' => false,
585
641
  'include_timeseries_hot_water_uses' => false,
586
642
  'include_timeseries_total_loads' => false,
587
643
  'include_timeseries_component_loads' => false,
644
+ 'include_timeseries_unmet_loads' => false,
588
645
  'include_timeseries_zone_temperatures' => true,
589
646
  'include_timeseries_airflows' => false,
590
647
  'include_timeseries_weather' => false }
591
648
  annual_csv, timeseries_csv, eri_csv = _test_measure(args_hash)
592
649
  assert(File.exist?(annual_csv))
593
650
  assert(File.exist?(timeseries_csv))
594
- expected_timeseries_cols = ['Time'] + TimeseriesColsZoneTemps + TimeseriesColsTempsOtherSide
595
651
  actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
596
- assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
652
+ TimeseriesColsTempsOtherSide.each do |expected_col|
653
+ assert(actual_timeseries_cols.include? expected_col)
654
+ end
597
655
  assert_equal(8760, File.readlines(timeseries_csv).size - 2)
598
656
  _check_for_nonzero_timeseries_value(timeseries_csv, TimeseriesColsTempsOtherSide)
599
657
  end
600
658
 
601
- def test_timeseries_hourly_airflows
659
+ def test_timeseries_hourly_airflows_with_exhaust_mechvent
602
660
  args_hash = { 'hpxml_path' => '../workflow/sample_files/base-mechvent-exhaust.xml',
603
661
  'timeseries_frequency' => 'hourly',
604
662
  'include_timeseries_fuel_consumptions' => false,
@@ -606,6 +664,7 @@ class SimulationOutputReportTest < MiniTest::Test
606
664
  'include_timeseries_hot_water_uses' => false,
607
665
  'include_timeseries_total_loads' => false,
608
666
  'include_timeseries_component_loads' => false,
667
+ 'include_timeseries_unmet_loads' => false,
609
668
  'include_timeseries_zone_temperatures' => false,
610
669
  'include_timeseries_airflows' => true,
611
670
  'include_timeseries_weather' => false }
@@ -627,6 +686,7 @@ class SimulationOutputReportTest < MiniTest::Test
627
686
  'include_timeseries_hot_water_uses' => false,
628
687
  'include_timeseries_total_loads' => false,
629
688
  'include_timeseries_component_loads' => false,
689
+ 'include_timeseries_unmet_loads' => false,
630
690
  'include_timeseries_zone_temperatures' => false,
631
691
  'include_timeseries_airflows' => true,
632
692
  'include_timeseries_weather' => false }
@@ -648,6 +708,7 @@ class SimulationOutputReportTest < MiniTest::Test
648
708
  'include_timeseries_hot_water_uses' => false,
649
709
  'include_timeseries_total_loads' => false,
650
710
  'include_timeseries_component_loads' => false,
711
+ 'include_timeseries_unmet_loads' => false,
651
712
  'include_timeseries_zone_temperatures' => false,
652
713
  'include_timeseries_airflows' => true,
653
714
  'include_timeseries_weather' => false }
@@ -658,7 +719,7 @@ class SimulationOutputReportTest < MiniTest::Test
658
719
  actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
659
720
  assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
660
721
  assert_equal(8760, File.readlines(timeseries_csv).size - 2)
661
- _check_for_nonzero_timeseries_value(timeseries_csv, ['Airflow: Clothes Dryer Exhaust'])
722
+ _check_for_nonzero_timeseries_value(timeseries_csv, ['Airflow: Mechanical Ventilation'])
662
723
  end
663
724
 
664
725
  def test_timeseries_hourly_airflows_with_balanced_mechvent
@@ -669,6 +730,7 @@ class SimulationOutputReportTest < MiniTest::Test
669
730
  'include_timeseries_hot_water_uses' => false,
670
731
  'include_timeseries_total_loads' => false,
671
732
  'include_timeseries_component_loads' => false,
733
+ 'include_timeseries_unmet_loads' => false,
672
734
  'include_timeseries_zone_temperatures' => false,
673
735
  'include_timeseries_airflows' => true,
674
736
  'include_timeseries_weather' => false }
@@ -690,6 +752,7 @@ class SimulationOutputReportTest < MiniTest::Test
690
752
  'include_timeseries_hot_water_uses' => false,
691
753
  'include_timeseries_total_loads' => false,
692
754
  'include_timeseries_component_loads' => false,
755
+ 'include_timeseries_unmet_loads' => false,
693
756
  'include_timeseries_zone_temperatures' => false,
694
757
  'include_timeseries_airflows' => true,
695
758
  'include_timeseries_weather' => false }
@@ -711,6 +774,7 @@ class SimulationOutputReportTest < MiniTest::Test
711
774
  'include_timeseries_hot_water_uses' => false,
712
775
  'include_timeseries_total_loads' => false,
713
776
  'include_timeseries_component_loads' => false,
777
+ 'include_timeseries_unmet_loads' => false,
714
778
  'include_timeseries_zone_temperatures' => false,
715
779
  'include_timeseries_airflows' => false,
716
780
  'include_timeseries_weather' => true }
@@ -732,6 +796,7 @@ class SimulationOutputReportTest < MiniTest::Test
732
796
  'include_timeseries_hot_water_uses' => true,
733
797
  'include_timeseries_total_loads' => true,
734
798
  'include_timeseries_component_loads' => true,
799
+ 'include_timeseries_unmet_loads' => true,
735
800
  'include_timeseries_zone_temperatures' => true,
736
801
  'include_timeseries_airflows' => true,
737
802
  'include_timeseries_weather' => true }
@@ -742,7 +807,7 @@ class SimulationOutputReportTest < MiniTest::Test
742
807
  actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
743
808
  assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
744
809
  assert_equal(8760, File.readlines(timeseries_csv).size - 2)
745
- _check_for_zero_baseload_timeseries_value(timeseries_csv, ['Electricity: Refrigerator'])
810
+ _check_for_zero_baseload_timeseries_value(timeseries_csv, ['End Use: Electricity: Refrigerator'])
746
811
  end
747
812
 
748
813
  def test_timeseries_daily_ALL
@@ -753,6 +818,7 @@ class SimulationOutputReportTest < MiniTest::Test
753
818
  'include_timeseries_hot_water_uses' => true,
754
819
  'include_timeseries_total_loads' => true,
755
820
  'include_timeseries_component_loads' => true,
821
+ 'include_timeseries_unmet_loads' => true,
756
822
  'include_timeseries_zone_temperatures' => true,
757
823
  'include_timeseries_airflows' => true,
758
824
  'include_timeseries_weather' => true }
@@ -763,7 +829,7 @@ class SimulationOutputReportTest < MiniTest::Test
763
829
  actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
764
830
  assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
765
831
  assert_equal(365, File.readlines(timeseries_csv).size - 2)
766
- _check_for_zero_baseload_timeseries_value(timeseries_csv, ['Electricity: Refrigerator'])
832
+ _check_for_zero_baseload_timeseries_value(timeseries_csv, ['End Use: Electricity: Refrigerator'])
767
833
  end
768
834
 
769
835
  def test_timeseries_monthly_ALL
@@ -774,6 +840,7 @@ class SimulationOutputReportTest < MiniTest::Test
774
840
  'include_timeseries_hot_water_uses' => true,
775
841
  'include_timeseries_total_loads' => true,
776
842
  'include_timeseries_component_loads' => true,
843
+ 'include_timeseries_unmet_loads' => true,
777
844
  'include_timeseries_zone_temperatures' => true,
778
845
  'include_timeseries_airflows' => true,
779
846
  'include_timeseries_weather' => true }
@@ -784,196 +851,133 @@ class SimulationOutputReportTest < MiniTest::Test
784
851
  actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
785
852
  assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
786
853
  assert_equal(12, File.readlines(timeseries_csv).size - 2)
787
- _check_for_zero_baseload_timeseries_value(timeseries_csv, ['Electricity: Refrigerator'])
854
+ _check_for_zero_baseload_timeseries_value(timeseries_csv, ['End Use: Electricity: Refrigerator'])
788
855
  end
789
856
 
790
- def test_timeseries_timestep_ALL_60min
857
+ def test_timeseries_timestep
791
858
  args_hash = { 'hpxml_path' => '../workflow/sample_files/base.xml',
792
859
  'timeseries_frequency' => 'timestep',
793
860
  'include_timeseries_fuel_consumptions' => true,
794
- 'include_timeseries_end_use_consumptions' => true,
795
- 'include_timeseries_hot_water_uses' => true,
796
- 'include_timeseries_total_loads' => true,
797
- 'include_timeseries_component_loads' => true,
798
- 'include_timeseries_zone_temperatures' => true,
799
- 'include_timeseries_airflows' => true,
800
- 'include_timeseries_weather' => true }
861
+ 'include_timeseries_end_use_consumptions' => false,
862
+ 'include_timeseries_hot_water_uses' => false,
863
+ 'include_timeseries_total_loads' => false,
864
+ 'include_timeseries_component_loads' => false,
865
+ 'include_timeseries_unmet_loads' => false,
866
+ 'include_timeseries_zone_temperatures' => false,
867
+ 'include_timeseries_airflows' => false,
868
+ 'include_timeseries_weather' => false }
801
869
  annual_csv, timeseries_csv, eri_csv = _test_measure(args_hash)
802
870
  assert(File.exist?(annual_csv))
803
871
  assert(File.exist?(timeseries_csv))
804
- expected_timeseries_cols = ['Time'] + all_timeseries_cols
805
- actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
806
- assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
807
872
  assert_equal(8760, File.readlines(timeseries_csv).size - 2)
808
- _check_for_zero_baseload_timeseries_value(timeseries_csv, ['Electricity: Refrigerator'])
809
873
  end
810
874
 
811
- def test_timeseries_timestep_ALL_10min
875
+ def test_timeseries_timestep_10min
812
876
  args_hash = { 'hpxml_path' => '../workflow/sample_files/base-simcontrol-timestep-10-mins.xml',
813
877
  'timeseries_frequency' => 'timestep',
814
878
  'include_timeseries_fuel_consumptions' => true,
815
- 'include_timeseries_end_use_consumptions' => true,
816
- 'include_timeseries_hot_water_uses' => true,
817
- 'include_timeseries_total_loads' => true,
818
- 'include_timeseries_component_loads' => true,
819
- 'include_timeseries_zone_temperatures' => true,
820
- 'include_timeseries_airflows' => true,
821
- 'include_timeseries_weather' => true }
879
+ 'include_timeseries_end_use_consumptions' => false,
880
+ 'include_timeseries_hot_water_uses' => false,
881
+ 'include_timeseries_total_loads' => false,
882
+ 'include_timeseries_component_loads' => false,
883
+ 'include_timeseries_unmet_loads' => false,
884
+ 'include_timeseries_zone_temperatures' => false,
885
+ 'include_timeseries_airflows' => false,
886
+ 'include_timeseries_weather' => false }
822
887
  annual_csv, timeseries_csv, eri_csv = _test_measure(args_hash)
823
888
  assert(File.exist?(annual_csv))
824
889
  assert(File.exist?(timeseries_csv))
825
- expected_timeseries_cols = ['Time'] + all_timeseries_cols
826
- actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
827
- assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
828
890
  assert_equal(52560, File.readlines(timeseries_csv).size - 2)
829
- _check_for_zero_baseload_timeseries_value(timeseries_csv, ['Electricity: Refrigerator'])
830
891
  end
831
892
 
832
- def test_timeseries_hourly_ALL_runperiod_Jan
893
+ def test_timeseries_hourly_runperiod_Jan
833
894
  args_hash = { 'hpxml_path' => '../workflow/sample_files/base-simcontrol-runperiod-1-month.xml',
834
895
  'timeseries_frequency' => 'hourly',
835
896
  'include_timeseries_fuel_consumptions' => true,
836
- 'include_timeseries_end_use_consumptions' => true,
837
- 'include_timeseries_hot_water_uses' => true,
838
- 'include_timeseries_total_loads' => true,
839
- 'include_timeseries_component_loads' => true,
840
- 'include_timeseries_zone_temperatures' => true,
841
- 'include_timeseries_airflows' => true,
842
- 'include_timeseries_weather' => true }
897
+ 'include_timeseries_end_use_consumptions' => false,
898
+ 'include_timeseries_hot_water_uses' => false,
899
+ 'include_timeseries_total_loads' => false,
900
+ 'include_timeseries_component_loads' => false,
901
+ 'include_timeseries_unmet_loads' => false,
902
+ 'include_timeseries_zone_temperatures' => false,
903
+ 'include_timeseries_airflows' => false,
904
+ 'include_timeseries_weather' => false }
843
905
  annual_csv, timeseries_csv, eri_csv = _test_measure(args_hash)
844
906
  assert(File.exist?(annual_csv))
845
907
  assert(File.exist?(timeseries_csv))
846
- expected_timeseries_cols = ['Time'] + all_timeseries_cols
847
- actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
848
- assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
849
908
  assert_equal(31 * 24, File.readlines(timeseries_csv).size - 2)
850
- _check_for_zero_baseload_timeseries_value(timeseries_csv, ['Electricity: Refrigerator'])
851
909
  end
852
910
 
853
- def test_timeseries_daily_ALL_runperiod_Jan
911
+ def test_timeseries_daily_runperiod_Jan
854
912
  args_hash = { 'hpxml_path' => '../workflow/sample_files/base-simcontrol-runperiod-1-month.xml',
855
913
  'timeseries_frequency' => 'daily',
856
914
  'include_timeseries_fuel_consumptions' => true,
857
- 'include_timeseries_end_use_consumptions' => true,
858
- 'include_timeseries_hot_water_uses' => true,
859
- 'include_timeseries_total_loads' => true,
860
- 'include_timeseries_component_loads' => true,
861
- 'include_timeseries_zone_temperatures' => true,
862
- 'include_timeseries_airflows' => true,
863
- 'include_timeseries_weather' => true }
915
+ 'include_timeseries_end_use_consumptions' => false,
916
+ 'include_timeseries_hot_water_uses' => false,
917
+ 'include_timeseries_total_loads' => false,
918
+ 'include_timeseries_component_loads' => false,
919
+ 'include_timeseries_unmet_loads' => false,
920
+ 'include_timeseries_zone_temperatures' => false,
921
+ 'include_timeseries_airflows' => false,
922
+ 'include_timeseries_weather' => false }
864
923
  annual_csv, timeseries_csv, eri_csv = _test_measure(args_hash)
865
924
  assert(File.exist?(annual_csv))
866
925
  assert(File.exist?(timeseries_csv))
867
- expected_timeseries_cols = ['Time'] + all_timeseries_cols
868
- actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
869
- assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
870
926
  assert_equal(31, File.readlines(timeseries_csv).size - 2)
871
- _check_for_zero_baseload_timeseries_value(timeseries_csv, ['Electricity: Refrigerator'])
872
927
  end
873
928
 
874
- def test_timeseries_monthly_ALL_runperiod_Jan
929
+ def test_timeseries_monthly_runperiod_Jan
875
930
  args_hash = { 'hpxml_path' => '../workflow/sample_files/base-simcontrol-runperiod-1-month.xml',
876
931
  'timeseries_frequency' => 'monthly',
877
932
  'include_timeseries_fuel_consumptions' => true,
878
- 'include_timeseries_end_use_consumptions' => true,
879
- 'include_timeseries_hot_water_uses' => true,
880
- 'include_timeseries_total_loads' => true,
881
- 'include_timeseries_component_loads' => true,
882
- 'include_timeseries_zone_temperatures' => true,
883
- 'include_timeseries_airflows' => true,
884
- 'include_timeseries_weather' => true }
933
+ 'include_timeseries_end_use_consumptions' => false,
934
+ 'include_timeseries_hot_water_uses' => false,
935
+ 'include_timeseries_total_loads' => false,
936
+ 'include_timeseries_component_loads' => false,
937
+ 'include_timeseries_unmet_loads' => false,
938
+ 'include_timeseries_zone_temperatures' => false,
939
+ 'include_timeseries_airflows' => false,
940
+ 'include_timeseries_weather' => false }
885
941
  annual_csv, timeseries_csv, eri_csv = _test_measure(args_hash)
886
942
  assert(File.exist?(annual_csv))
887
943
  assert(File.exist?(timeseries_csv))
888
- expected_timeseries_cols = ['Time'] + all_timeseries_cols
889
- actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
890
- assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
891
944
  assert_equal(1, File.readlines(timeseries_csv).size - 2)
892
- _check_for_zero_baseload_timeseries_value(timeseries_csv, ['Electricity: Refrigerator'])
893
945
  end
894
946
 
895
- def test_timeseries_timestep_ALL_60min_runperiod_Jan
947
+ def test_timeseries_timestep_runperiod_Jan
896
948
  args_hash = { 'hpxml_path' => '../workflow/sample_files/base-simcontrol-runperiod-1-month.xml',
897
949
  'timeseries_frequency' => 'timestep',
898
950
  'include_timeseries_fuel_consumptions' => true,
899
- 'include_timeseries_end_use_consumptions' => true,
900
- 'include_timeseries_hot_water_uses' => true,
901
- 'include_timeseries_total_loads' => true,
902
- 'include_timeseries_component_loads' => true,
903
- 'include_timeseries_zone_temperatures' => true,
904
- 'include_timeseries_airflows' => true,
905
- 'include_timeseries_weather' => true }
951
+ 'include_timeseries_end_use_consumptions' => false,
952
+ 'include_timeseries_hot_water_uses' => false,
953
+ 'include_timeseries_total_loads' => false,
954
+ 'include_timeseries_component_loads' => false,
955
+ 'include_timeseries_unmet_loads' => false,
956
+ 'include_timeseries_zone_temperatures' => false,
957
+ 'include_timeseries_airflows' => false,
958
+ 'include_timeseries_weather' => false }
906
959
  annual_csv, timeseries_csv, eri_csv = _test_measure(args_hash)
907
960
  assert(File.exist?(annual_csv))
908
961
  assert(File.exist?(timeseries_csv))
909
- expected_timeseries_cols = ['Time'] + all_timeseries_cols
910
- actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
911
- assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
912
962
  assert_equal(31 * 24, File.readlines(timeseries_csv).size - 2)
913
- _check_for_zero_baseload_timeseries_value(timeseries_csv, ['Electricity: Refrigerator'])
914
963
  end
915
964
 
916
- def test_timeseries_hourly_ALL_AMY_2012
965
+ def test_timeseries_hourly_AMY_2012
917
966
  args_hash = { 'hpxml_path' => '../workflow/sample_files/base-location-AMY-2012.xml',
918
967
  'timeseries_frequency' => 'hourly',
919
968
  'include_timeseries_fuel_consumptions' => true,
920
- 'include_timeseries_end_use_consumptions' => true,
921
- 'include_timeseries_hot_water_uses' => true,
922
- 'include_timeseries_total_loads' => true,
923
- 'include_timeseries_component_loads' => true,
924
- 'include_timeseries_zone_temperatures' => true,
925
- 'include_timeseries_airflows' => true,
926
- 'include_timeseries_weather' => true }
927
- annual_csv, timeseries_csv, eri_csv = _test_measure(args_hash)
928
- assert(File.exist?(annual_csv))
929
- assert(File.exist?(timeseries_csv))
930
- expected_timeseries_cols = ['Time'] + all_timeseries_cols
931
- actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
932
- assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
933
- assert_equal(8784, File.readlines(timeseries_csv).size - 2)
934
- _check_for_zero_baseload_timeseries_value(timeseries_csv, ['Electricity: Refrigerator'])
935
- end
936
-
937
- def test_timeseries_daily_ALL_AMY_2012
938
- args_hash = { 'hpxml_path' => '../workflow/sample_files/base-location-AMY-2012.xml',
939
- 'timeseries_frequency' => 'daily',
940
- 'include_timeseries_fuel_consumptions' => true,
941
- 'include_timeseries_end_use_consumptions' => true,
942
- 'include_timeseries_hot_water_uses' => true,
943
- 'include_timeseries_total_loads' => true,
944
- 'include_timeseries_component_loads' => true,
945
- 'include_timeseries_zone_temperatures' => true,
946
- 'include_timeseries_airflows' => true,
947
- 'include_timeseries_weather' => true }
948
- annual_csv, timeseries_csv, eri_csv = _test_measure(args_hash)
949
- assert(File.exist?(annual_csv))
950
- assert(File.exist?(timeseries_csv))
951
- expected_timeseries_cols = ['Time'] + all_timeseries_cols
952
- actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
953
- assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
954
- assert_equal(366, File.readlines(timeseries_csv).size - 2)
955
- _check_for_zero_baseload_timeseries_value(timeseries_csv, ['Electricity: Refrigerator'])
956
- end
957
-
958
- def test_timeseries_timestep_ALL_60min_AMY_2012
959
- args_hash = { 'hpxml_path' => '../workflow/sample_files/base-location-AMY-2012.xml',
960
- 'timeseries_frequency' => 'timestep',
961
- 'include_timeseries_fuel_consumptions' => true,
962
- 'include_timeseries_end_use_consumptions' => true,
963
- 'include_timeseries_hot_water_uses' => true,
964
- 'include_timeseries_total_loads' => true,
965
- 'include_timeseries_component_loads' => true,
966
- 'include_timeseries_zone_temperatures' => true,
967
- 'include_timeseries_airflows' => true,
968
- 'include_timeseries_weather' => true }
969
+ 'include_timeseries_end_use_consumptions' => false,
970
+ 'include_timeseries_hot_water_uses' => false,
971
+ 'include_timeseries_total_loads' => false,
972
+ 'include_timeseries_component_loads' => false,
973
+ 'include_timeseries_unmet_loads' => false,
974
+ 'include_timeseries_zone_temperatures' => false,
975
+ 'include_timeseries_airflows' => false,
976
+ 'include_timeseries_weather' => false }
969
977
  annual_csv, timeseries_csv, eri_csv = _test_measure(args_hash)
970
978
  assert(File.exist?(annual_csv))
971
979
  assert(File.exist?(timeseries_csv))
972
- expected_timeseries_cols = ['Time'] + all_timeseries_cols
973
- actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
974
- assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
975
980
  assert_equal(8784, File.readlines(timeseries_csv).size - 2)
976
- _check_for_zero_baseload_timeseries_value(timeseries_csv, ['Electricity: Refrigerator'])
977
981
  end
978
982
 
979
983
  def test_eri_designs
@@ -984,20 +988,21 @@ class SimulationOutputReportTest < MiniTest::Test
984
988
  require 'oga'
985
989
  old_hpxml_path = File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml')
986
990
  [Constants.CalcTypeERIReferenceHome, Constants.CalcTypeERIReferenceHome].each do |eri_design|
987
- new_hpxml_path = File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-eri.xml')
991
+ new_hpxml_path = File.join(File.dirname(__FILE__), '../../workflow/tests/test-eri.xml')
988
992
  FileUtils.cp(old_hpxml_path, new_hpxml_path)
989
993
  hpxml = HPXML.new(hpxml_path: new_hpxml_path)
990
994
  hpxml.header.eri_design = eri_design
991
995
  XMLHelper.write_file(hpxml.to_oga(), new_hpxml_path)
992
996
 
993
997
  # Run tests
994
- args_hash = { 'hpxml_path' => '../workflow/sample_files/base-eri.xml',
998
+ args_hash = { 'hpxml_path' => '../workflow/tests/test-eri.xml',
995
999
  'timeseries_frequency' => 'hourly',
996
1000
  'include_timeseries_fuel_consumptions' => true,
997
1001
  'include_timeseries_end_use_consumptions' => true,
998
1002
  'include_timeseries_hot_water_uses' => true,
999
1003
  'include_timeseries_total_loads' => true,
1000
1004
  'include_timeseries_component_loads' => true,
1005
+ 'include_timeseries_unmet_loads' => true,
1001
1006
  'include_timeseries_zone_temperatures' => true,
1002
1007
  'include_timeseries_airflows' => true,
1003
1008
  'include_timeseries_weather' => true }
@@ -1042,7 +1047,7 @@ class SimulationOutputReportTest < MiniTest::Test
1042
1047
  workflow.setWorkflowSteps(steps)
1043
1048
  osw_path = File.join(File.dirname(template_osw), 'test.osw')
1044
1049
  workflow.saveAs(osw_path)
1045
- assert_equal(10, found_args.size)
1050
+ assert_equal(args_hash.size, found_args.size)
1046
1051
 
1047
1052
  # Run OSW
1048
1053
  success = system("#{OpenStudio.getOpenStudioCLI} run -w #{osw_path}")
@@ -1052,9 +1057,11 @@ class SimulationOutputReportTest < MiniTest::Test
1052
1057
  File.delete(osw_path)
1053
1058
 
1054
1059
  if not eri_design.nil?
1055
- annual_csv = File.join(File.dirname(template_osw), File.dirname(args_hash['hpxml_path']), "#{eri_design.gsub(' ', '')}.csv")
1056
- timeseries_csv = File.join(File.dirname(template_osw), File.dirname(args_hash['hpxml_path']), "#{eri_design.gsub(' ', '')}_Hourly.csv")
1057
- eri_csv = File.join(File.dirname(template_osw), File.dirname(args_hash['hpxml_path']), "#{eri_design.gsub(' ', '')}_ERI.csv")
1060
+ output_dir = File.dirname(File.join(File.dirname(__FILE__), '..', args_hash['hpxml_path']))
1061
+ hpxml_name = File.basename(args_hash['hpxml_path']).gsub('.xml', '')
1062
+ annual_csv = File.join(output_dir, "#{hpxml_name}.csv")
1063
+ timeseries_csv = File.join(output_dir, "#{hpxml_name}_Hourly.csv")
1064
+ eri_csv = File.join(output_dir, "#{hpxml_name}_ERI.csv")
1058
1065
  else
1059
1066
  annual_csv = File.join(File.dirname(template_osw), 'run', 'results_annual.csv')
1060
1067
  timeseries_csv = File.join(File.dirname(template_osw), 'run', 'results_timeseries.csv')