-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
15 changed files
with
253 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
This folder contains a bunch of resources for running tests. | ||
These are extremely lightweight executable scripts that mimic the actual E+ toolchain. | ||
There are also other files in here such as example weather files and E+ run files. | ||
|
||
def execute_energyplus(build_tree, entry_name, test_run_directory, | ||
run_type, min_reporting_freq, this_parametric_file, weather_file_name): | ||
# setup a few paths | ||
energyplus = build_tree['energyplus'] | ||
basement = build_tree['basement'] | ||
idd_path = build_tree['idd_path'] | ||
slab = build_tree['slab'] | ||
basementidd = build_tree['basementidd'] | ||
slabidd = build_tree['slabidd'] | ||
expandobjects = build_tree['expandobjects'] | ||
epmacro = build_tree['epmacro'] | ||
readvars = build_tree['readvars'] | ||
parametric = build_tree['parametric'] |
Empty file.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
#!/usr/bin/env python |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
#!/usr/bin/env python | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
#!/usr/bin/env python | ||
|
||
import shutil | ||
|
||
shutil.copy('in.imf', 'out.idf') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#!/usr/bin/env python | ||
|
||
file_contents = open('in.idf').read().upper() | ||
|
||
if 'HVACTEMPLATE' in file_contents: | ||
open('expanded.idf', 'w').write('HI') | ||
open('BasementGHTIn.idf', 'w').write('HI') | ||
open('GHTIn.idf', 'w').write('HI') | ||
open('EPObjects.TXT', 'w').write('HI') | ||
open('RunINPUT.TXT', 'w').write('HI') | ||
open('RunDEBUGOUT.TXT', 'w').write('HI') | ||
open('EPObjects.TXT', 'w').write('HI') | ||
open('BasementGHTIn.idf', 'w').write('HI') | ||
open('MonthlyResults.csv', 'w').write('HI') | ||
open('BasementGHT.idd', 'w').write('HI') | ||
open('SLABINP.TXT', 'w').write('HI') | ||
open('GHTIn.idf', 'w').write('HI') | ||
open('SLABSurfaceTemps.TXT', 'w').write('HI') | ||
open('SLABSplit Surface Temps.TXT', 'w').write('HI') | ||
open('SlabGHT.idd', 'w').write('HI') |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
#!/usr/bin/env python | ||
|
||
import shutil | ||
|
||
file_contents = open('in.idf').read().upper() | ||
|
||
if 'EXPAND' in file_contents: | ||
shutil.copy('in.idf', 'in-01.idf') | ||
shutil.copy('in.idf', 'in-02.idf') | ||
shutil.copy('in.idf', 'in-03.idf') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
#!/usr/bin/env python |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
#!/usr/bin/env python |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,189 @@ | ||
import os | ||
import tempfile | ||
import unittest | ||
|
||
from epregressions.energyplus import execute_energyplus | ||
from epregressions.structures import ReportingFreq, ForceRunType | ||
|
||
|
||
class TestEnergyPlus(unittest.TestCase): | ||
|
||
def setUp(self): | ||
cur_dir_path = os.path.dirname(os.path.realpath(__file__)) | ||
self.resource_dir = os.path.join(cur_dir_path, 'resources') | ||
self.build_tree = { | ||
'energyplus': os.path.join(self.resource_dir, 'dummy.energyplus.py'), | ||
'basement': os.path.join(self.resource_dir, 'dummy.basement.py'), | ||
'idd_path': os.path.join(self.resource_dir, 'dummy.Energy+.idd'), | ||
'slab': os.path.join(self.resource_dir, 'dummy.slab.py'), | ||
'basementidd': os.path.join(self.resource_dir, 'dummy.basement.idd'), | ||
'slabidd': os.path.join(self.resource_dir, 'dummy.slab.py'), | ||
'expandobjects': os.path.join(self.resource_dir, 'dummy.expandobjects.py'), | ||
'epmacro': os.path.join(self.resource_dir, 'dummy.epmacro.py'), | ||
'readvars': os.path.join(self.resource_dir, 'dummy.readvars.py'), | ||
'parametric': os.path.join(self.resource_dir, 'dummy.parametric.py'), | ||
'build_dir': '/dummy/' | ||
} | ||
self.run_dir = tempfile.mkdtemp() | ||
|
||
def test_eplus_passed_simple_dd_only(self): | ||
with open(os.path.join(self.run_dir, 'in.idf'), 'w') as f: | ||
f.write('') | ||
return_val = execute_energyplus( | ||
build_tree=self.build_tree, | ||
entry_name='entry_name', | ||
test_run_directory=self.run_dir, | ||
run_type=ForceRunType.DD, | ||
min_reporting_freq=ReportingFreq.HOURLY, | ||
this_parametric_file=False, | ||
weather_file_name='' | ||
) | ||
self.assertEqual('/dummy/', return_val[0]) | ||
self.assertEqual('entry_name', return_val[1]) | ||
self.assertTrue(return_val[2]) | ||
self.assertFalse(return_val[3]) | ||
|
||
def test_eplus_passed_simple_dd_only_with_rvi_mvi(self): | ||
with open(os.path.join(self.run_dir, 'in.idf'), 'w') as f: | ||
f.write('') | ||
with open(os.path.join(self.run_dir, 'in.rvi'), 'w') as f: | ||
f.write('HI') | ||
with open(os.path.join(self.run_dir, 'in.mvi'), 'w') as f: | ||
f.write('HI') | ||
return_val = execute_energyplus( | ||
build_tree=self.build_tree, | ||
entry_name='entry_name', | ||
test_run_directory=self.run_dir, | ||
run_type=ForceRunType.DD, | ||
min_reporting_freq=ReportingFreq.HOURLY, | ||
this_parametric_file=False, | ||
weather_file_name='' | ||
) | ||
self.assertEqual('/dummy/', return_val[0]) | ||
self.assertEqual('entry_name', return_val[1]) | ||
self.assertTrue(return_val[2]) | ||
self.assertFalse(return_val[3]) | ||
|
||
def test_eplus_passed_simple_annual(self): | ||
weather_file = os.path.join(self.resource_dir, 'dummy.in.epw') | ||
with open(os.path.join(self.run_dir, 'in.idf'), 'w') as f: | ||
f.write('') | ||
return_val = execute_energyplus( | ||
build_tree=self.build_tree, | ||
entry_name='entry_name', | ||
test_run_directory=self.run_dir, | ||
run_type=ForceRunType.ANNUAL, | ||
min_reporting_freq=ReportingFreq.HOURLY, | ||
this_parametric_file=False, | ||
weather_file_name=weather_file | ||
) | ||
self.assertEqual('/dummy/', return_val[0]) | ||
self.assertEqual('entry_name', return_val[1]) | ||
self.assertTrue(return_val[2]) | ||
self.assertFalse(return_val[3]) | ||
|
||
def test_eplus_passed_simple_no_force(self): | ||
weather_file = os.path.join(self.resource_dir, 'dummy.in.epw') | ||
with open(os.path.join(self.run_dir, 'in.idf'), 'w') as f: | ||
f.write('') | ||
return_val = execute_energyplus( | ||
build_tree=self.build_tree, | ||
entry_name='entry_name', | ||
test_run_directory=self.run_dir, | ||
run_type=ForceRunType.NONE, | ||
min_reporting_freq=ReportingFreq.HOURLY, | ||
this_parametric_file=False, | ||
weather_file_name=weather_file | ||
) | ||
self.assertEqual('/dummy/', return_val[0]) | ||
self.assertEqual('entry_name', return_val[1]) | ||
self.assertTrue(return_val[2]) | ||
self.assertFalse(return_val[3]) | ||
|
||
def test_eplus_passed_hvac_template(self): | ||
with open(os.path.join(self.run_dir, 'in.idf'), 'w') as f: | ||
f.write('HVACTEMPLATE') | ||
return_val = execute_energyplus( | ||
build_tree=self.build_tree, | ||
entry_name='entry_name', | ||
test_run_directory=self.run_dir, | ||
run_type=ForceRunType.DD, | ||
min_reporting_freq=ReportingFreq.HOURLY, | ||
this_parametric_file=False, | ||
weather_file_name='' | ||
) | ||
self.assertEqual('/dummy/', return_val[0]) | ||
self.assertEqual('entry_name', return_val[1]) | ||
self.assertTrue(return_val[2]) | ||
self.assertFalse(return_val[3]) | ||
|
||
def test_eplus_passed_macro(self): | ||
with open(os.path.join(self.run_dir, 'in.imf'), 'w') as f: | ||
f.write('##fileprefix line\n') | ||
f.write('line2\n') | ||
f.write('##fileprefix line3\n') | ||
return_val = execute_energyplus( | ||
build_tree=self.build_tree, | ||
entry_name='entry_name', | ||
test_run_directory=self.run_dir, | ||
run_type=ForceRunType.DD, | ||
min_reporting_freq=ReportingFreq.HOURLY, | ||
this_parametric_file=False, | ||
weather_file_name='' | ||
) | ||
self.assertEqual('/dummy/', return_val[0]) | ||
self.assertEqual('entry_name', return_val[1]) | ||
self.assertTrue(return_val[2]) | ||
self.assertFalse(return_val[3]) | ||
|
||
def test_eplus_passed_parametric(self): | ||
with open(os.path.join(self.run_dir, 'in.idf'), 'w') as f: | ||
f.write('EXPAND') | ||
return_val = execute_energyplus( | ||
build_tree=self.build_tree, | ||
entry_name='entry_name', | ||
test_run_directory=self.run_dir, | ||
run_type=ForceRunType.DD, | ||
min_reporting_freq=ReportingFreq.HOURLY, | ||
this_parametric_file=True, | ||
weather_file_name='' | ||
) | ||
self.assertEqual('/dummy/', return_val[0]) | ||
self.assertEqual('entry_name', return_val[1]) | ||
self.assertTrue(return_val[2]) | ||
self.assertFalse(return_val[3]) | ||
|
||
def test_eplus_failed_parametric(self): | ||
with open(os.path.join(self.run_dir, 'in.idf'), 'w') as f: | ||
f.write('') | ||
return_val = execute_energyplus( | ||
build_tree=self.build_tree, | ||
entry_name='entry_name', | ||
test_run_directory=self.run_dir, | ||
run_type=ForceRunType.DD, | ||
min_reporting_freq=ReportingFreq.HOURLY, | ||
this_parametric_file=True, | ||
weather_file_name='' | ||
) | ||
self.assertEqual('/dummy/', return_val[0]) | ||
self.assertEqual('entry_name', return_val[1]) | ||
self.assertFalse(return_val[2]) | ||
self.assertFalse(return_val[3]) | ||
|
||
def test_eplus_failed_invalid_epw(self): | ||
weather_file = os.path.join(self.resource_dir, 'DOES.NOT.EXIST.in.epw') | ||
with open(os.path.join(self.run_dir, 'in.idf'), 'w') as f: | ||
f.write('') | ||
return_val = execute_energyplus( | ||
build_tree=self.build_tree, | ||
entry_name='entry_name', | ||
test_run_directory=self.run_dir, | ||
run_type=ForceRunType.ANNUAL, | ||
min_reporting_freq=ReportingFreq.HOURLY, | ||
this_parametric_file=False, | ||
weather_file_name=weather_file | ||
) | ||
self.assertEqual('/dummy/', return_val[0]) | ||
self.assertEqual('entry_name', return_val[1]) | ||
self.assertFalse(return_val[2]) # Fail | ||
self.assertFalse(return_val[3]) |