Skip to content

Commit

Permalink
Enable Tests (#18)
Browse files Browse the repository at this point in the history
Enable TestBound in the CMakeFile of the test folder. In this version, we duplicate the CMake and CMake builds to download the Google Test Framework. This is required due to the fact that with the current option ExternalProject_Add the external project is only downloaded and installed during the first CMake build. We will change this in another PR to align it with the framework Eigen.

Tests that work on linux "obviously" do not work always with windows ¯_(ツ)_/¯, e.g., in debug mode.

The above test fail was due to the fact that (.*) regular expression is not supported, but .* is. The issue is only happening on Windows. In addition, the message looks a little bit different on Windows compared to Unix systems. The output differs in "inside Bound.\n Condition" (Unix) from "inside egoa::Bound::Bound.\n Condition" (Windows).

Commits:
* Enable TestBound in the CMakeFile
* Add TestBound testcases
* Remove Gurobi Library from TestBound
* Check whether Windows and MacOS find the include with that file
* Replace find_package with own find CMake for Google Testframework
* Downloads need an initial build then the data is on the disk
   Why:
           * add subdirectory in CMake requires the CMakeFile that is not downloaded yet
* Check sudo
* The error in the tests is due to wrong runtime library
* Does DLL works
* Check without debug
* Resolve libcpmt.lib(StlLCMapStringW.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in TestBound.obj [D:\a\egoa\egoa\build\tests\TestBound.vcxproj]
      See note in: https://cmake.org/cmake/help/latest/variable/CMAKE_MSVC_RUNTIME_LIBRARY.html#variable:CMAKE_MSVC_RUNTIME_LIBRARY
* Fix a label mistake
* Add more verbose to the test output to understand what is going on
* Check if differentiation is necessary between Debug and Release
* Follow the error given in Windows debug death test "')' is unsupported"
        D:\a\egoa\egoa\external\GoogleTestFramework\googletest\src/gtest-port.cc(844): error: Failed
        Syntax error at index 42 in simple regular expression "(.*) assertion failed at (.*)Bound.hpp:(.*) inside Bound.
        Condition: minimum_ <= maximum_": ')' is unsupported.

        Running main() from D:\a\egoa\egoa\external\GoogleTestFramework\googletest\src\gtest_main.cc
        D:\a\egoa\egoa\tests\DataStructures\TestBound.cpp(70): error: Death test: {egoa::Bound<> bound (3,1);}
                Result: died but not with expected error.
        Expected: contains regular expression "(.*) assertion failed at (.*)Bound.hpp:(.*) inside Bound.\n Condition: minimum_ <= maximum_"
        Actual msg:
        [  DEATH   ] USAGE assertion failed at D:\a\egoa\egoa\include\DataStructures/Bound.hpp:48 inside egoa::Bound<double>::Bound.
        [  DEATH   ]  Condition: minimum_ <= maximum_

        [  FAILED  ] TestBound.DeathTest (146 ms)
* The output differs in "inside Bound.\n Condition" from "inside egoa::Bound<double>::Bound.\n Condition".
 D:\a\egoa\egoa\tests\DataStructures\TestBound.cpp(70): error: Death test: {egoa::Bound<> bound (3,1);}
                Result: died but not with expected error.
                Expected: contains regular expression ".* assertion failed at .*Bound.hpp:.* inside Bound.\n Condition: minimum_ <= maximum_"
        Actual msg:
        [  DEATH   ] USAGE assertion failed at D:\a\egoa\egoa\include\DataStructures/Bound.hpp:48 inside egoa::Bound<double>::Bound.
        [  DEATH   ]  Condition: minimum_ <= maximum_ 63a79b1
  • Loading branch information
github-actions[bot] committed Dec 8, 2023
0 parents commit 8169b39
Show file tree
Hide file tree
Showing 523 changed files with 140,242 additions and 0 deletions.
Empty file added .nojekyll
Empty file.
281 changes: 281 additions & 0 deletions _articulation_vertex_detection_8hpp_source.html

Large diffs are not rendered by default.

168 changes: 168 additions & 0 deletions _assertions_8hpp_source.html

Large diffs are not rendered by default.

170 changes: 170 additions & 0 deletions _auxiliary_2_types_8hpp_source.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Energy Grid Optimization &amp; Analysis (EGOA): include/Auxiliary/Types.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">Energy Grid Optimization &amp; Analysis (EGOA)<span id="projectnumber">&#160;1.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_1feb286f4781c752994d85cc2f2db043.html">Auxiliary</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">Types.hpp</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> * Types.hpp</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> *</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> * Created on: Sep 07, 2018</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> * Author: Franziska Wegner</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> */</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#ifndef EGOA__AUXILIARY__TYPES_HPP</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#define EGOA__AUXILIARY__TYPES_HPP</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;QDebug&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &lt;QRegularExpression&gt;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#ifdef GUROBI_AVAILABLE</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor"> #include &quot;gurobi_c++.h&quot;</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="keyword">namespace </span>egoa::Types {</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// Integer Z</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">typedef</span> int64_t integer; </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">typedef</span> integer rcount; </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">typedef</span> integer difference; </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="comment">// Positive integer Z_{&gt;=0}</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="comment">// for uint64_t check: https://en.cppreference.com/w/cpp/types/integer</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">typedef</span> uint64_t posInteger; </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">typedef</span> uint8_t ubyte; </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">typedef</span> posInteger largeNumber; </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">typedef</span> posInteger count; </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">typedef</span> posInteger index; </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// Identifier</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">typedef</span> index vertexId; </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">typedef</span> index loadId; </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">typedef</span> index generatorId; </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">typedef</span> index edgeId; </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">typedef</span> index labelId; </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">typedef</span> index blockId; </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// Real numbers R</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">typedef</span> <span class="keywordtype">double</span> real; </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">typedef</span> <span class="keywordtype">long</span> <span class="keywordtype">double</span> largeReal; </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// String </span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">typedef</span> std::string string; </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">typedef</span> std::string name; </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// Snapshots</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">typedef</span> real generatorSnapshot; </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">typedef</span> real loadSnapshot; </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">typedef</span> real weightSnapshot; </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">typedef</span> <span class="keywordtype">string</span> timestampSnapshot; </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">inline</span> real String2double( std::string str ) </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> {</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> QRegularExpression rx(<span class="stringliteral">&quot;(^-?[0-9]?\\d*(\\.\\d+)?)&quot;</span>); <span class="comment">// Filter numbers only</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> QRegularExpressionMatchIterator i = rx.globalMatch(QString::fromStdString(str));</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> QRegularExpressionMatch match = i.next();</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> QString t_string = match.captured(1);</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// QString t_string(str.c_str());</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordtype">bool</span> ok; <span class="keywordtype">double</span> number(0);</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="comment">// QLocale::setDefault(QLocale(QLocale::English, QLocale::UnitedStates));</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> number = QString(t_string).toDouble(&amp;ok); <span class="comment">// ok == true, d == 1234.56</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="comment">// if (!ok) {</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// QLocale locale(QLocale::German); //QLocale::Catalan</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="comment">// number = locale.toDouble(t_string);</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="comment">// }</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">return</span> number;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> }</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">inline</span> count String2integer( std::string str ) </div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> {</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> QRegularExpression rx(<span class="stringliteral">&quot;(^-?[0-9]?\\d*(\\.\\d+)?)&quot;</span>); <span class="comment">// Filter numbers only</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> QRegularExpressionMatchIterator i = rx.globalMatch(QString::fromStdString(str));</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> QRegularExpressionMatch match = i.next();</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> QString t_string = match.captured(1);</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="comment">// QString t_string(str.c_str());</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordtype">bool</span> ok; count number(0);</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> number = QString(t_string).toUInt(&amp;ok);</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">return</span> number;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> }</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span>} <span class="comment">// namespace egoa::Types</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="preprocessor">#endif </span><span class="comment">// EGOA__AUXILIARY__TYPES_HPP</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>
Loading

0 comments on commit 8169b39

Please sign in to comment.