summaryrefslogtreecommitdiff
path: root/docs/html/logic_tests_8cpp.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/html/logic_tests_8cpp.html')
-rw-r--r--docs/html/logic_tests_8cpp.html1013
1 files changed, 1013 insertions, 0 deletions
diff --git a/docs/html/logic_tests_8cpp.html b/docs/html/logic_tests_8cpp.html
new file mode 100644
index 0000000..d97e511
--- /dev/null
+++ b/docs/html/logic_tests_8cpp.html
@@ -0,0 +1,1013 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>Rally X: tests/logicTests.cpp File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+ <td id="projectlogo"><img alt="Logo" src="car.PNG"/></td>
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">Rally X
+
+ </div>
+ <div id="projectbrief">ELEN3009 Project by Justin Wernick and David Schneider</div>
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.7.5.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">tests/logicTests.cpp File Reference</div> </div>
+</div>
+<div class="contents">
+
+<p>Unit tests for the logic layer of a Rally-X game.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;vector&gt;</code><br/>
+<code>#include &lt;list&gt;</code><br/>
+<code>#include &lt;utility&gt;</code><br/>
+<code>#include &lt;gtest/gtest.h&gt;</code><br/>
+<code>#include &quot;../source/logic/CollisionDetector.h&quot;</code><br/>
+<code>#include &quot;../source/logic/PlayerCar.h&quot;</code><br/>
+<code>#include &quot;../source/logic/EnemyCar.h&quot;</code><br/>
+<code>#include &quot;../source/logic/Checkpoint.h&quot;</code><br/>
+<code>#include &quot;../source/logic/Rock.h&quot;</code><br/>
+<code>#include &quot;../source/logic/Smokescreen.h&quot;</code><br/>
+<code>#include &quot;../source/logic/Maze.h&quot;</code><br/>
+<code>#include &quot;../source/logic/MazeMath.h&quot;</code><br/>
+<code>#include &quot;../source/logic/DestroyedObjectPopup.h&quot;</code><br/>
+</div>
+<p><a href="logic_tests_8cpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#af107924db552c5a66c5bf3aeafe15519">TEST</a> (<a class="el" href="class_car.html">Car</a>, updateMovesPlayerUpInEmptyMaze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> moves the correct amount in the up direction on each frame without obstacles. <a href="#af107924db552c5a66c5bf3aeafe15519"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a4011469f0a6dfeb25d704d662ce02caf">TEST</a> (<a class="el" href="class_car.html">Car</a>, updateMovesPlayerDownInEmptyMaze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> moves the correct amount in the down direction on each frame without obstacles. <a href="#a4011469f0a6dfeb25d704d662ce02caf"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#ac7954e0cf27b4044b5b9ba0a7faf747e">TEST</a> (<a class="el" href="class_car.html">Car</a>, updateMovesPlayerLeftInEmptyMaze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> moves the correct amount in the left direction on each frame without obstacles. <a href="#ac7954e0cf27b4044b5b9ba0a7faf747e"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a1b0625252aae5ca87e0b26e01b7aa506">TEST</a> (<a class="el" href="class_car.html">Car</a>, updateMovesPlayerRightInEmptyMaze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> moves the correct amount in the right direction on each frame without obstacles. <a href="#a1b0625252aae5ca87e0b26e01b7aa506"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a2c0f1615b9769a4140124c5d6845d50a">TEST</a> (<a class="el" href="class_car.html">Car</a>, carNotMovedWhenPathUpBlocked)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move up if the path is blocked. <a href="#a2c0f1615b9769a4140124c5d6845d50a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a1a6506ee8e2f21181a26f92098707a9b">TEST</a> (<a class="el" href="class_car.html">Car</a>, carNotMovedWhenPathDownBlocked)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move down if the path is blocked. <a href="#a1a6506ee8e2f21181a26f92098707a9b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#ad2919e050b740fafe3545d279463a4ab">TEST</a> (<a class="el" href="class_car.html">Car</a>, carNotMovedWhenPathLeftBlocked)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move left if the path is blocked. <a href="#ad2919e050b740fafe3545d279463a4ab"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a9ac2e91f3041374b626d08f5ede8b914">TEST</a> (<a class="el" href="class_car.html">Car</a>, carNotMovedWhenPathRightBlocked)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move right if the path is blocked. <a href="#a9ac2e91f3041374b626d08f5ede8b914"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a485e6ab1a085528b7315eebf1ee9d65d">TEST</a> (<a class="el" href="class_car.html">Car</a>, carDoesNotMoveUpOutMaze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move up if currently on the top row of the maze. <a href="#a485e6ab1a085528b7315eebf1ee9d65d"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a2bf92ba800c8c7190ccd736289fc083a">TEST</a> (<a class="el" href="class_car.html">Car</a>, carDoesNotMoveDownOutMaze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move down if currently on the bottom row of the maze. <a href="#a2bf92ba800c8c7190ccd736289fc083a"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a6a8767f7e51b8997ce11e56ce5d88b53">TEST</a> (<a class="el" href="class_car.html">Car</a>, carDoesNotMoveLeftOutMaze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move left if currently on the first column of the maze. <a href="#a6a8767f7e51b8997ce11e56ce5d88b53"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#aa9dba66248eff545a8f6d12943ad9965">TEST</a> (<a class="el" href="class_car.html">Car</a>, carDoesNotMoveRightOutMaze)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move right if currently on the last column of the maze. <a href="#aa9dba66248eff545a8f6d12943ad9965"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a2e89a1385841eacfe13c25e920de6543">TEST</a> (<a class="el" href="class_checkpoint.html">Checkpoint</a>, countIncrementsAndDecrements)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that counting of the number of checkpoints happens correctly. <a href="#a2e89a1385841eacfe13c25e920de6543"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a8f4ecb8511bd9f8da009cce86e7de78f">TEST</a> (<a class="el" href="class_collision_detector.html">CollisionDetector</a>, playerAndEnemyBothDestroyed)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that when a player and enemy overlap, both are marked for destruction. <a href="#a8f4ecb8511bd9f8da009cce86e7de78f"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#abb21ae25f8060ef3dafd386ed054c44f">TEST</a> (<a class="el" href="class_collision_detector.html">CollisionDetector</a>, playerDestroyedByRock)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that when a player and rock overlap, only the player is marked for destruction. <a href="#abb21ae25f8060ef3dafd386ed054c44f"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a115831998a1832f3354e06bdd11c150b">TEST</a> (<a class="el" href="class_collision_detector.html">CollisionDetector</a>, checkpointDestroyedByPlayer)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that when a player and checkpoint overlap, only the checkpoint is marked for destruction. <a href="#a115831998a1832f3354e06bdd11c150b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a9860202068d4e498e238d9d886234ea7">TEST</a> (<a class="el" href="class_collision_detector.html">CollisionDetector</a>, enemyStoppedBySmokescreen)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that when an enemy and smokescreen overlap, the enemy's speed becomes zero. <a href="#a9860202068d4e498e238d9d886234ea7"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a484a53647d1cde5db81c1fdc53bf55c9">TEST</a> (<a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a>, destroyedAfterSetTime)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that a <a class="el" href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed.">DestroyedObjectPopup</a> is destroyed 30 frames after it is created. <a href="#a484a53647d1cde5db81c1fdc53bf55c9"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#aa16a32786815a8bb8cb7e8de664ff950">TEST</a> (<a class="el" href="class_maze.html">Maze</a>, queryOutsideBoundsReturnsSolid)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that the maze treats the undefined area outside its bounds as being walls. <a href="#aa16a32786815a8bb8cb7e8de664ff950"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a38676411c83cef750c1e48dd8f1a87ca">TEST</a> (<a class="el" href="class_maze.html">Maze</a>, generationWithWallsWithoutObjectMax)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that a maze can be generated without extending the width and height for objects. <a href="#a38676411c83cef750c1e48dd8f1a87ca"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a0363213c93a0b22e67182dc5af60b78b">TEST</a> (<a class="el" href="class_maze.html">Maze</a>, generationWithWallsWithObjectMax)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that a maze can be generated with extending the width and height for objects. <a href="#a0363213c93a0b22e67182dc5af60b78b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a2b5bbb44002c6d13e3a3811cb3677832">TEST</a> (<a class="el" href="class_maze_math.html">MazeMath</a>, distanceGivesExpectedResult)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that the formula for a straight line distance works as expected. <a href="#a2b5bbb44002c6d13e3a3811cb3677832"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a5a55cf80381ed4c7885fb887427e6118">TEST</a> (<a class="el" href="class_maze_math.html">MazeMath</a>, roundGivesExpectedResult)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that rounding off function works as expected. <a href="#a5a55cf80381ed4c7885fb887427e6118"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a610f20b2b4a1407fa2a8983015dfb81b">TEST</a> (<a class="el" href="class_player_car.html">PlayerCar</a>, creationAndDestructionCanHappen)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> can be created and destroyed repeatedly without incident. <a href="#a610f20b2b4a1407fa2a8983015dfb81b"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a257f2123dddae6d77b7926f48d4e71e2">TEST</a> (<a class="el" href="class_player_car.html">PlayerCar</a>, playerSpeedAffectedByPetrol)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that the player's petrol runs out, and that the player's speed is halved after that. <a href="#a257f2123dddae6d77b7926f48d4e71e2"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="logic_tests_8cpp.html#a2de4a45e984d28048ec0cfcd3199cfc7">TEST</a> (<a class="el" href="class_smokescreen.html">Smokescreen</a>, destroyedAfterSetTime)</td></tr>
+<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests that a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> is destroyed 60 frames after it is created. <a href="#a2de4a45e984d28048ec0cfcd3199cfc7"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>Unit tests for the logic layer of a Rally-X game. </p>
+<p>The classes used to run Allegro's install and uninstall functions were tested indirectly through the use of other classes. If the AllegroWrappers classes are not working, they will result in tests failing, or the program crashing.</p>
+<p>The <a class="el" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a> class's movement is tested through implementing a subclass of <a class="el" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>, facing in a given direction with and without maze walls in the way, and testing its position after a frame has passed.</p>
+<p>The counting system with the <a class="el" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a> class is tested through repeated creation and destruction of <a class="el" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a> objects.</p>
+<p>The CollisionDetecter class is tested by setting up situations with each type of collision, and checking that they have the desired results on the objects involved.</p>
+<p>The <a class="el" href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed.">DestroyedObjectPopup</a> class is tested to ensure that it lasts the desired amount of time before being destroyed.</p>
+<p>The intelligence of the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> class is not unit tested, as it may change as extra states and AI schemes are implemented, possibly including a random element. Therefore, it should be tested manually by playing example levels and monitoring if the enemies appear to behave in a manner that makes gameplay interesting.</p>
+<p>The <a class="el" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a> class is not tested directly. It pulls all of the units being tested together into a complete game, and so should be tested by running the <a class="el" href="class_game.html" title="The object that controls the flow of the game, and the launch point of the game.">Game</a>.</p>
+<p>The <a class="el" href="class_game_object.html" title="Parent class for objects that are placed in the maze.">GameObject</a> class is tested indirectly through testing its subclasses.</p>
+<p>The <a class="el" href="class_limited_time_object.html" title="Parent class for GameObjects that are created, exist for a given time, and are then destroyed...">LimitedTimeObject</a> class is tested indirectly through the <a class="el" href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed.">DestroyedObjectPopup</a> and <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> classes.</p>
+<p>The <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> class is tested in terms of its ability to construct itself correctly from a list of coordinates. It is also tested with the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> class where the movement of the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> is tested in a <a class="el" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>.</p>
+<p>The <a class="el" href="class_maze_math.html" title="Class of static methods for common math functions that occur in the 2D maze setting.">MazeMath</a> class is tested by running each of its functions with expected input and output values.</p>
+<p>The <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> class is tested on its ability to move correctly as part of the tests for the <a class="el" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a> class. The functioning of the PlayerCar's petrol system is also tested. Controlling of the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> is not tested, and should be tested manually by running the game and verifying that the arrow keys cause the direction of the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> to change appropriately. Further, the creation of Smokescreens by pressing the spacebar should also be tested manually.</p>
+<p>The <a class="el" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a> class only has functionality in collisions, and so is tested through the CollisionDetector's tests.</p>
+<p>The <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> class is tested in that it disappears after a set time. Its affect on the <a class="el" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a> class is tested through the CollisionDetector's tests.</p>
+<dl class="author"><dt><b>Author:</b></dt><dd>Justin Wernick </dd>
+<dd>
+David Schneider </dd></dl>
+
+<p>Definition in file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+</div><hr/><h2>Function Documentation</h2>
+<a class="anchor" id="af107924db552c5a66c5bf3aeafe15519"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="af107924db552c5a66c5bf3aeafe15519" args="(Car, updateMovesPlayerUpInEmptyMaze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">updateMovesPlayerUpInEmptyMaze&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> moves the correct amount in the up direction on each frame without obstacles. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00075">75</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4011469f0a6dfeb25d704d662ce02caf"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a4011469f0a6dfeb25d704d662ce02caf" args="(Car, updateMovesPlayerDownInEmptyMaze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">updateMovesPlayerDownInEmptyMaze&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> moves the correct amount in the down direction on each frame without obstacles. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00095">95</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ac7954e0cf27b4044b5b9ba0a7faf747e"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="ac7954e0cf27b4044b5b9ba0a7faf747e" args="(Car, updateMovesPlayerLeftInEmptyMaze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">updateMovesPlayerLeftInEmptyMaze&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> moves the correct amount in the left direction on each frame without obstacles. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00115">115</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1b0625252aae5ca87e0b26e01b7aa506"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a1b0625252aae5ca87e0b26e01b7aa506" args="(Car, updateMovesPlayerRightInEmptyMaze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">updateMovesPlayerRightInEmptyMaze&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> moves the correct amount in the right direction on each frame without obstacles. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00135">135</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2c0f1615b9769a4140124c5d6845d50a"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a2c0f1615b9769a4140124c5d6845d50a" args="(Car, carNotMovedWhenPathUpBlocked)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">carNotMovedWhenPathUpBlocked&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move up if the path is blocked. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00155">155</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1a6506ee8e2f21181a26f92098707a9b"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a1a6506ee8e2f21181a26f92098707a9b" args="(Car, carNotMovedWhenPathDownBlocked)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">carNotMovedWhenPathDownBlocked&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move down if the path is blocked. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00175">175</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ad2919e050b740fafe3545d279463a4ab"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="ad2919e050b740fafe3545d279463a4ab" args="(Car, carNotMovedWhenPathLeftBlocked)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">carNotMovedWhenPathLeftBlocked&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move left if the path is blocked. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00195">195</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9ac2e91f3041374b626d08f5ede8b914"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a9ac2e91f3041374b626d08f5ede8b914" args="(Car, carNotMovedWhenPathRightBlocked)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">carNotMovedWhenPathRightBlocked&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move right if the path is blocked. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00215">215</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a485e6ab1a085528b7315eebf1ee9d65d"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a485e6ab1a085528b7315eebf1ee9d65d" args="(Car, carDoesNotMoveUpOutMaze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">carDoesNotMoveUpOutMaze&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move up if currently on the top row of the maze. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00236">236</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2bf92ba800c8c7190ccd736289fc083a"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a2bf92ba800c8c7190ccd736289fc083a" args="(Car, carDoesNotMoveDownOutMaze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">carDoesNotMoveDownOutMaze&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move down if currently on the bottom row of the maze. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00255">255</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6a8767f7e51b8997ce11e56ce5d88b53"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a6a8767f7e51b8997ce11e56ce5d88b53" args="(Car, carDoesNotMoveLeftOutMaze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">carDoesNotMoveLeftOutMaze&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move left if currently on the first column of the maze. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00274">274</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa9dba66248eff545a8f6d12943ad9965"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="aa9dba66248eff545a8f6d12943ad9965" args="(Car, carDoesNotMoveRightOutMaze)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_car.html">Car</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">carDoesNotMoveRightOutMaze&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> does not move right if currently on the last column of the maze. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00293">293</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2e89a1385841eacfe13c25e920de6543"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a2e89a1385841eacfe13c25e920de6543" args="(Checkpoint, countIncrementsAndDecrements)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_checkpoint.html">Checkpoint</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">countIncrementsAndDecrements&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that counting of the number of checkpoints happens correctly. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00313">313</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8f4ecb8511bd9f8da009cce86e7de78f"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a8f4ecb8511bd9f8da009cce86e7de78f" args="(CollisionDetector, playerAndEnemyBothDestroyed)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_collision_detector.html">CollisionDetector</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">playerAndEnemyBothDestroyed&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that when a player and enemy overlap, both are marked for destruction. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00344">344</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abb21ae25f8060ef3dafd386ed054c44f"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="abb21ae25f8060ef3dafd386ed054c44f" args="(CollisionDetector, playerDestroyedByRock)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_collision_detector.html">CollisionDetector</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">playerDestroyedByRock&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that when a player and rock overlap, only the player is marked for destruction. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00387">387</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a115831998a1832f3354e06bdd11c150b"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a115831998a1832f3354e06bdd11c150b" args="(CollisionDetector, checkpointDestroyedByPlayer)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_collision_detector.html">CollisionDetector</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">checkpointDestroyedByPlayer&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that when a player and checkpoint overlap, only the checkpoint is marked for destruction. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00430">430</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a9860202068d4e498e238d9d886234ea7"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a9860202068d4e498e238d9d886234ea7" args="(CollisionDetector, enemyStoppedBySmokescreen)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_collision_detector.html">CollisionDetector</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">enemyStoppedBySmokescreen&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that when an enemy and smokescreen overlap, the enemy's speed becomes zero. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00473">473</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a484a53647d1cde5db81c1fdc53bf55c9"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a484a53647d1cde5db81c1fdc53bf55c9" args="(DestroyedObjectPopup, destroyedAfterSetTime)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_destroyed_object_popup.html">DestroyedObjectPopup</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">destroyedAfterSetTime&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that a <a class="el" href="class_destroyed_object_popup.html" title="Object that appears on the screen for a short time when another object has been destroyed.">DestroyedObjectPopup</a> is destroyed 30 frames after it is created. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00507">507</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa16a32786815a8bb8cb7e8de664ff950"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="aa16a32786815a8bb8cb7e8de664ff950" args="(Maze, queryOutsideBoundsReturnsSolid)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_maze.html">Maze</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">queryOutsideBoundsReturnsSolid&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that the maze treats the undefined area outside its bounds as being walls. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00524">524</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a38676411c83cef750c1e48dd8f1a87ca"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a38676411c83cef750c1e48dd8f1a87ca" args="(Maze, generationWithWallsWithoutObjectMax)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_maze.html">Maze</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">generationWithWallsWithoutObjectMax&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that a maze can be generated without extending the width and height for objects. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00541">541</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a0363213c93a0b22e67182dc5af60b78b"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a0363213c93a0b22e67182dc5af60b78b" args="(Maze, generationWithWallsWithObjectMax)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_maze.html">Maze</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">generationWithWallsWithObjectMax&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that a maze can be generated with extending the width and height for objects. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00565">565</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2b5bbb44002c6d13e3a3811cb3677832"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a2b5bbb44002c6d13e3a3811cb3677832" args="(MazeMath, distanceGivesExpectedResult)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_maze_math.html">MazeMath</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">distanceGivesExpectedResult&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that the formula for a straight line distance works as expected. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00591">591</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a5a55cf80381ed4c7885fb887427e6118"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a5a55cf80381ed4c7885fb887427e6118" args="(MazeMath, roundGivesExpectedResult)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_maze_math.html">MazeMath</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">roundGivesExpectedResult&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that rounding off function works as expected. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00607">607</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a610f20b2b4a1407fa2a8983015dfb81b"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a610f20b2b4a1407fa2a8983015dfb81b" args="(PlayerCar, creationAndDestructionCanHappen)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_player_car.html">PlayerCar</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">creationAndDestructionCanHappen&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that a <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> can be created and destroyed repeatedly without incident. </p>
+<p>This tests that the <a class="el" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> can handle its own dependencies on Allegro, even when copy constructors are used (through vector). </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00626">626</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a257f2123dddae6d77b7926f48d4e71e2"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a257f2123dddae6d77b7926f48d4e71e2" args="(PlayerCar, playerSpeedAffectedByPetrol)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_player_car.html">PlayerCar</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">playerSpeedAffectedByPetrol&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that the player's petrol runs out, and that the player's speed is halved after that. </p>
+<p>Also tests that the speed is recovered if petrol is increased again. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00648">648</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2de4a45e984d28048ec0cfcd3199cfc7"></a><!-- doxytag: member="logicTests.cpp::TEST" ref="a2de4a45e984d28048ec0cfcd3199cfc7" args="(Smokescreen, destroyedAfterSetTime)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">TEST </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="class_smokescreen.html">Smokescreen</a>&#160;</td>
+ <td class="paramname">, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">destroyedAfterSetTime&#160;</td>
+ <td class="paramname">&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Tests that a <a class="el" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> is destroyed 60 frames after it is created. </p>
+
+<p>Definition at line <a class="el" href="logic_tests_8cpp_source.html#l00673">673</a> of file <a class="el" href="logic_tests_8cpp_source.html">logicTests.cpp</a>.</p>
+
+</div>
+</div>
+</div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Oct 5 2011 20:08:31 for Rally X by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.7.5.1
+</small></address>
+
+</body>
+</html>