Skip to content

Commit

Permalink
Merge b74f926 into 6ded15d
Browse files Browse the repository at this point in the history
  • Loading branch information
jmarrec committed Aug 1, 2019
2 parents 6ded15d + b74f926 commit 9a2077b
Show file tree
Hide file tree
Showing 4 changed files with 377 additions and 1 deletion.
10 changes: 9 additions & 1 deletion epregressions/diffs/table_diff.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,8 +209,16 @@ def hdict2soup(soup, heading, num, hdict, tdict, horder):
tdtag = Tag(soup, name='td', attrs=[("class", "big")])
tdtag.append('ColumnHeadingDifference')
elif h == 'DummyPlaceholder' or h == 'Subcategory':
# Some tables such as the Source Energy End Use Components
# have a blank row full of `<td>&nbsp;</td>` which won't be
# decoded nicely
tdtag = Tag(soup, name='td')
tdtag.append((str(hdict[h][i])))
val = hdict[h][i]
try:
tdtag.append(str(val))
except Exception: # pragram: no cover
val = val.encode('ascii', 'ignore').decode('ascii')
tdtag.append(str(val))
else:
(diff, which) = hdict[h][i]
tdtag = Tag(soup, name='td', attrs=[('class', which)])
Expand Down
170 changes: 170 additions & 0 deletions epregressions/tests/diffs/tbl_resources/eplustbl_nbsp_base.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> Bldg DENVER CENTENNIAL ANN CLG 1% CONDNS DB=>MWB **
2018-11-20
17:26:37
- EnergyPlus</title>
</head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<body>
<p><a href="#toc" style="float: right">Table of Contents</a></p>
<a name=top></a>
<p>Program Version:<b>EnergyPlus, Version 9.0.1-a7c9cc14ce, YMD=2018.11.20 17:26</b></p>
<p>Tabular Output Report in Format: <b>HTML</b></p>
<p>Building: <b>Bldg</b></p>
<p>Environment: <b>DENVER CENTENNIAL ANN CLG 1% CONDNS DB=>MWB ** </b></p>
<p>Simulation Timestamp: <b>2018-11-20
17:26:37</b></p>
<hr>
<p><a href="#toc" style="float: right">Table of Contents</a></p>
<a name=AnnualBuildingUtilityPerformanceSummary::EntireFacility></a>
<p>Report:<b> Annual Building Utility Performance Summary</b></p>
<p>For:<b> Entire Facility</b></p>
<p>Timestamp: <b>2018-11-20
17:26:37</b></p>
<b>Values gathered over 0.00 hours</b><br><br>
<b>WARNING: THE REPORT DOES NOT REPRESENT A FULL ANNUAL SIMULATION.</b><br><br>
<br><br>
<b>Source Energy End Use Components Per Total Floor Area</b><br><br>
<!-- FullName:Source Energy End Use Components Summary_Entire Facility_Source Energy End Use Components Per Total Floor Area-->
<table border="1" cellpadding="4" cellspacing="0">
<tr><td></td>
<td align="right">Source Electricity [MJ/m2]</td>
<td align="right">Source Natural Gas [MJ/m2]</td>
<td align="right">Source Additional Fuel [MJ/m2]</td>
<td align="right">Source District Cooling [MJ/m2]</td>
<td align="right">Source District Heating [MJ/m2]</td>
</tr>
<tr>
<td align="right">Heating</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.37</td>
</tr>
<tr>
<td align="right">Cooling</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 555.42</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Interior Lighting</td>
<td align="right"> 74.78</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Exterior Lighting</td>
<td align="right"> 23.83</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Interior Equipment</td>
<td align="right"> 528.48</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Exterior Equipment</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Fans</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Pumps</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Heat Rejection</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Humidification</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Heat Recovery</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Water Systems</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Refrigeration</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Generators</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">&nbsp;</td>
<td align="right">&nbsp;</td>
<td align="right">&nbsp;</td>
<td align="right">&nbsp;</td>
<td align="right">&nbsp;</td>
<td align="right">&nbsp;</td>
</tr>
<tr>
<td align="right">Total Source Energy End Use Components</td>
<td align="right"> 627.09</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 555.42</td>
<td align="right"> 0.37</td>
</tr>
</table>
<br><br>
</body>
</html>
170 changes: 170 additions & 0 deletions epregressions/tests/diffs/tbl_resources/eplustbl_nbsp_mod.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> Bldg DENVER CENTENNIAL ANN CLG 1% CONDNS DB=>MWB **
2018-11-20
17:26:37
- EnergyPlus</title>
</head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<body>
<p><a href="#toc" style="float: right">Table of Contents</a></p>
<a name=top></a>
<p>Program Version:<b>EnergyPlus, Version 9.0.1-a7c9cc14ce, YMD=2018.11.20 17:26</b></p>
<p>Tabular Output Report in Format: <b>HTML</b></p>
<p>Building: <b>Bldg</b></p>
<p>Environment: <b>DENVER CENTENNIAL ANN CLG 1% CONDNS DB=>MWB ** </b></p>
<p>Simulation Timestamp: <b>2018-11-20
17:26:37</b></p>
<hr>
<p><a href="#toc" style="float: right">Table of Contents</a></p>
<a name=AnnualBuildingUtilityPerformanceSummary::EntireFacility></a>
<p>Report:<b> Annual Building Utility Performance Summary</b></p>
<p>For:<b> Entire Facility</b></p>
<p>Timestamp: <b>2018-11-20
17:26:37</b></p>
<b>Values gathered over 0.00 hours</b><br><br>
<b>WARNING: THE REPORT DOES NOT REPRESENT A FULL ANNUAL SIMULATION.</b><br><br>
<br><br>
<b>Source Energy End Use Components Per Total Floor Area</b><br><br>
<!-- FullName:Source Energy End Use Components Summary_Entire Facility_Source Energy End Use Components Per Total Floor Area-->
<table border="1" cellpadding="4" cellspacing="0">
<tr><td></td>
<td align="right">Source Electricity [MJ/m2]</td>
<td align="right">Source Natural Gas [MJ/m2]</td>
<td align="right">Source Additional Fuel [MJ/m2]</td>
<td align="right">Source District Cooling [MJ/m2]</td>
<td align="right">Source District Heating [MJ/m2]</td>
</tr>
<tr>
<td align="right">Heating</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.22</td>
</tr>
<tr>
<td align="right">Cooling</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 320.45</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Interior Lighting</td>
<td align="right"> 43.14</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Exterior Lighting</td>
<td align="right"> 13.75</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Interior Equipment</td>
<td align="right"> 304.91</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Exterior Equipment</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Fans</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Pumps</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Heat Rejection</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Humidification</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Heat Recovery</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Water Systems</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Refrigeration</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">Generators</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
</tr>
<tr>
<td align="right">&nbsp;</td>
<td align="right">&nbsp;</td>
<td align="right">&nbsp;</td>
<td align="right">&nbsp;</td>
<td align="right">&nbsp;</td>
<td align="right">&nbsp;</td>
</tr>
<tr>
<td align="right">Total Source Energy End Use Components</td>
<td align="right"> 361.80</td>
<td align="right"> 0.00</td>
<td align="right"> 0.00</td>
<td align="right"> 320.45</td>
<td align="right"> 0.22</td>
</tr>
</table>
<br><br>
</body>
</html>
28 changes: 28 additions & 0 deletions epregressions/tests/diffs/test_table_diff.py
Original file line number Diff line number Diff line change
Expand Up @@ -360,3 +360,31 @@ def test_second_file_has_table_with_different_headings(self):
self.assertEqual(1, response[6]) # size errors
self.assertEqual(0, response[7]) # in file 2 but not in file 1
self.assertEqual(0, response[8]) # in file 1 but not in file 2

def test_nbsp(self):
# This table has a numeric difference.
# It also has a row full of `<td>&nbsp;</td>` to separate between bulk
# of table and the total row.
# nbsp won't be decoded nicely by ascii, and it would throw an error:
# ```
# UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0'
# in position 0: ordinal not in range(128)
# ```
response = table_diff(
self.thresh_dict,
os.path.join(self.diff_files_dir, 'eplustbl_nbsp_base.htm'),
os.path.join(self.diff_files_dir, 'eplustbl_nbsp_mod.htm'),
os.path.join(self.temp_output_dir, 'abs_diff.htm'),
os.path.join(self.temp_output_dir, 'rel_diff.htm'),
os.path.join(self.temp_output_dir, 'math_diff.log'),
os.path.join(self.temp_output_dir, 'summary.htm'),
)
self.assertEqual('', response[0]) # diff status
self.assertEqual(1, response[1]) # count_of_tables
self.assertEqual(8, response[2]) # big diffs
self.assertEqual(0, response[3]) # small diffs
self.assertEqual(72, response[4]) # equals
self.assertEqual(0, response[5]) # string diffs
self.assertEqual(0, response[6]) # size errors
self.assertEqual(0, response[7]) # in file 2 but not in file 1
self.assertEqual(0, response[8]) # in file 1 but not in file 2

0 comments on commit 9a2077b

Please sign in to comment.