urbanopt-cli 0.4.1 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
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')