diff options
Diffstat (limited to 'docs/html/logic_tests_8cpp_source.html')
-rw-r--r-- | docs/html/logic_tests_8cpp_source.html | 656 |
1 files changed, 656 insertions, 0 deletions
diff --git a/docs/html/logic_tests_8cpp_source.html b/docs/html/logic_tests_8cpp_source.html new file mode 100644 index 0000000..e3344b4 --- /dev/null +++ b/docs/html/logic_tests_8cpp_source.html @@ -0,0 +1,656 @@ +<!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 Source File</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 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 List</span></a></li> + <li><a href="globals.html"><span>File Members</span></a></li> + </ul> + </div> +<div class="header"> + <div class="headertitle"> +<div class="title">tests/logicTests.cpp</div> </div> +</div> +<div class="contents"> +<a href="logic_tests_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 +<a name="l00055"></a>00055 <span class="preprocessor">#include <vector></span> +<a name="l00056"></a>00056 <span class="preprocessor">#include <list></span> +<a name="l00057"></a>00057 <span class="preprocessor">#include <utility></span> +<a name="l00058"></a>00058 <span class="keyword">using namespace </span>std; +<a name="l00059"></a>00059 +<a name="l00060"></a>00060 <span class="preprocessor">#include <gtest/gtest.h></span> +<a name="l00061"></a>00061 +<a name="l00062"></a>00062 <span class="preprocessor">#include "../source/logic/CollisionDetector.h"</span> +<a name="l00063"></a>00063 <span class="preprocessor">#include "../source/logic/PlayerCar.h"</span> +<a name="l00064"></a>00064 <span class="preprocessor">#include "../source/logic/EnemyCar.h"</span> +<a name="l00065"></a>00065 <span class="preprocessor">#include "../source/logic/Checkpoint.h"</span> +<a name="l00066"></a>00066 <span class="preprocessor">#include "../source/logic/Rock.h"</span> +<a name="l00067"></a>00067 <span class="preprocessor">#include "../source/logic/Smokescreen.h"</span> +<a name="l00068"></a>00068 <span class="preprocessor">#include "../source/logic/Maze.h"</span> +<a name="l00069"></a>00069 <span class="preprocessor">#include "../source/logic/MazeMath.h"</span> +<a name="l00070"></a>00070 <span class="preprocessor">#include "../source/logic/DestroyedObjectPopup.h"</span> +<a name="l00071"></a>00071 +<a name="l00075"></a><a class="code" href="logic_tests_8cpp.html#af107924db552c5a66c5bf3aeafe15519">00075</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, updateMovesPlayerUpInEmptyMaze) +<a name="l00076"></a>00076 { +<a name="l00077"></a>00077 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze; +<a name="l00078"></a>00078 vector<pair<int,int> > walls; +<a name="l00079"></a>00079 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5); +<a name="l00080"></a>00080 +<a name="l00081"></a>00081 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(2,2,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze::UP</a>); +<a name="l00082"></a>00082 +<a name="l00083"></a>00083 list<Smokescreen> smokescreens; +<a name="l00084"></a>00084 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame's worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens); +<a name="l00085"></a>00085 +<a name="l00086"></a>00086 <span class="keywordtype">double</span> expectX = 2; +<a name="l00087"></a>00087 <span class="keywordtype">double</span> expectY = 2-player.<a class="code" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9" title="Function to access the current speed of the car.">speed</a>(); +<a name="l00088"></a>00088 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>()); +<a name="l00089"></a>00089 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>()); +<a name="l00090"></a>00090 } +<a name="l00091"></a>00091 +<a name="l00095"></a><a class="code" href="logic_tests_8cpp.html#a4011469f0a6dfeb25d704d662ce02caf">00095</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, updateMovesPlayerDownInEmptyMaze) +<a name="l00096"></a>00096 { +<a name="l00097"></a>00097 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze; +<a name="l00098"></a>00098 vector<pair<int,int> > walls; +<a name="l00099"></a>00099 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5); +<a name="l00100"></a>00100 +<a name="l00101"></a>00101 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(2,2,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">Maze::DOWN</a>); +<a name="l00102"></a>00102 +<a name="l00103"></a>00103 list<Smokescreen> smokescreens; +<a name="l00104"></a>00104 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame's worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens); +<a name="l00105"></a>00105 +<a name="l00106"></a>00106 <span class="keywordtype">double</span> expectX = 2; +<a name="l00107"></a>00107 <span class="keywordtype">double</span> expectY = 2+player.<a class="code" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9" title="Function to access the current speed of the car.">speed</a>(); +<a name="l00108"></a>00108 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>()); +<a name="l00109"></a>00109 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>()); +<a name="l00110"></a>00110 } +<a name="l00111"></a>00111 +<a name="l00115"></a><a class="code" href="logic_tests_8cpp.html#ac7954e0cf27b4044b5b9ba0a7faf747e">00115</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, updateMovesPlayerLeftInEmptyMaze) +<a name="l00116"></a>00116 { +<a name="l00117"></a>00117 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze; +<a name="l00118"></a>00118 vector<pair<int,int> > walls; +<a name="l00119"></a>00119 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5); +<a name="l00120"></a>00120 +<a name="l00121"></a>00121 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(2,2,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">Maze::LEFT</a>); +<a name="l00122"></a>00122 +<a name="l00123"></a>00123 list<Smokescreen> smokescreens; +<a name="l00124"></a>00124 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame's worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens); +<a name="l00125"></a>00125 +<a name="l00126"></a>00126 <span class="keywordtype">double</span> expectX = 2-player.<a class="code" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9" title="Function to access the current speed of the car.">speed</a>(); +<a name="l00127"></a>00127 <span class="keywordtype">double</span> expectY = 2; +<a name="l00128"></a>00128 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>()); +<a name="l00129"></a>00129 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>()); +<a name="l00130"></a>00130 } +<a name="l00131"></a>00131 +<a name="l00135"></a><a class="code" href="logic_tests_8cpp.html#a1b0625252aae5ca87e0b26e01b7aa506">00135</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, updateMovesPlayerRightInEmptyMaze) +<a name="l00136"></a>00136 { +<a name="l00137"></a>00137 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze; +<a name="l00138"></a>00138 vector<pair<int,int> > walls; +<a name="l00139"></a>00139 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5); +<a name="l00140"></a>00140 +<a name="l00141"></a>00141 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(2,2,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">Maze::RIGHT</a>); +<a name="l00142"></a>00142 +<a name="l00143"></a>00143 list<Smokescreen> smokescreens; +<a name="l00144"></a>00144 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame's worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens); +<a name="l00145"></a>00145 +<a name="l00146"></a>00146 <span class="keywordtype">double</span> expectX = 2+player.<a class="code" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9" title="Function to access the current speed of the car.">speed</a>(); +<a name="l00147"></a>00147 <span class="keywordtype">double</span> expectY = 2; +<a name="l00148"></a>00148 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>()); +<a name="l00149"></a>00149 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>()); +<a name="l00150"></a>00150 } +<a name="l00151"></a>00151 +<a name="l00155"></a><a class="code" href="logic_tests_8cpp.html#a2c0f1615b9769a4140124c5d6845d50a">00155</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, carNotMovedWhenPathUpBlocked) +<a name="l00156"></a>00156 { +<a name="l00157"></a>00157 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze; +<a name="l00158"></a>00158 vector<pair<int,int> > walls; +<a name="l00159"></a>00159 walls.push_back(make_pair(3,3)); +<a name="l00160"></a>00160 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5); +<a name="l00161"></a>00161 +<a name="l00162"></a>00162 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(3,4,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze::UP</a>); +<a name="l00163"></a>00163 +<a name="l00164"></a>00164 list<Smokescreen> smokescreens; +<a name="l00165"></a>00165 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame's worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens); +<a name="l00166"></a>00166 +<a name="l00167"></a>00167 <span class="keywordtype">double</span> expectX = 3; +<a name="l00168"></a>00168 <span class="keywordtype">double</span> expectY = 4; +<a name="l00169"></a>00169 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>()); +<a name="l00170"></a>00170 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>()); +<a name="l00171"></a>00171 } +<a name="l00175"></a><a class="code" href="logic_tests_8cpp.html#a1a6506ee8e2f21181a26f92098707a9b">00175</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, carNotMovedWhenPathDownBlocked) +<a name="l00176"></a>00176 { +<a name="l00177"></a>00177 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze; +<a name="l00178"></a>00178 vector<pair<int,int> > walls; +<a name="l00179"></a>00179 walls.push_back(make_pair(3,3)); +<a name="l00180"></a>00180 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5); +<a name="l00181"></a>00181 +<a name="l00182"></a>00182 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(3,2,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">Maze::DOWN</a>); +<a name="l00183"></a>00183 +<a name="l00184"></a>00184 list<Smokescreen> smokescreens; +<a name="l00185"></a>00185 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame's worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens); +<a name="l00186"></a>00186 +<a name="l00187"></a>00187 <span class="keywordtype">double</span> expectX = 3; +<a name="l00188"></a>00188 <span class="keywordtype">double</span> expectY = 2; +<a name="l00189"></a>00189 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>()); +<a name="l00190"></a>00190 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>()); +<a name="l00191"></a>00191 } +<a name="l00195"></a><a class="code" href="logic_tests_8cpp.html#ad2919e050b740fafe3545d279463a4ab">00195</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, carNotMovedWhenPathLeftBlocked) +<a name="l00196"></a>00196 { +<a name="l00197"></a>00197 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze; +<a name="l00198"></a>00198 vector<pair<int,int> > walls; +<a name="l00199"></a>00199 walls.push_back(make_pair(3,3)); +<a name="l00200"></a>00200 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5); +<a name="l00201"></a>00201 +<a name="l00202"></a>00202 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(4,3,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">Maze::LEFT</a>); +<a name="l00203"></a>00203 +<a name="l00204"></a>00204 list<Smokescreen> smokescreens; +<a name="l00205"></a>00205 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame's worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens); +<a name="l00206"></a>00206 +<a name="l00207"></a>00207 <span class="keywordtype">double</span> expectX = 4; +<a name="l00208"></a>00208 <span class="keywordtype">double</span> expectY = 3; +<a name="l00209"></a>00209 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>()); +<a name="l00210"></a>00210 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>()); +<a name="l00211"></a>00211 } +<a name="l00215"></a><a class="code" href="logic_tests_8cpp.html#a9ac2e91f3041374b626d08f5ede8b914">00215</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, carNotMovedWhenPathRightBlocked) +<a name="l00216"></a>00216 { +<a name="l00217"></a>00217 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze; +<a name="l00218"></a>00218 vector<pair<int,int> > walls; +<a name="l00219"></a>00219 walls.push_back(make_pair(3,3)); +<a name="l00220"></a>00220 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5); +<a name="l00221"></a>00221 +<a name="l00222"></a>00222 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(2,3,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">Maze::RIGHT</a>); +<a name="l00223"></a>00223 +<a name="l00224"></a>00224 list<Smokescreen> smokescreens; +<a name="l00225"></a>00225 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame's worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens); +<a name="l00226"></a>00226 +<a name="l00227"></a>00227 <span class="keywordtype">double</span> expectX = 2; +<a name="l00228"></a>00228 <span class="keywordtype">double</span> expectY = 3; +<a name="l00229"></a>00229 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>()); +<a name="l00230"></a>00230 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>()); +<a name="l00231"></a>00231 } +<a name="l00232"></a>00232 +<a name="l00236"></a><a class="code" href="logic_tests_8cpp.html#a485e6ab1a085528b7315eebf1ee9d65d">00236</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, carDoesNotMoveUpOutMaze) +<a name="l00237"></a>00237 { +<a name="l00238"></a>00238 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze; +<a name="l00239"></a>00239 vector<pair<int,int> > walls; +<a name="l00240"></a>00240 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5); +<a name="l00241"></a>00241 +<a name="l00242"></a>00242 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(3,0,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fad2e008a4b04be5e2d3559c70193920e7">Maze::UP</a>); +<a name="l00243"></a>00243 +<a name="l00244"></a>00244 list<Smokescreen> smokescreens; +<a name="l00245"></a>00245 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame's worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens); +<a name="l00246"></a>00246 +<a name="l00247"></a>00247 <span class="keywordtype">double</span> expectX = 3; +<a name="l00248"></a>00248 <span class="keywordtype">double</span> expectY = 0; +<a name="l00249"></a>00249 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>()); +<a name="l00250"></a>00250 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>()); +<a name="l00251"></a>00251 } +<a name="l00255"></a><a class="code" href="logic_tests_8cpp.html#a2bf92ba800c8c7190ccd736289fc083a">00255</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, carDoesNotMoveDownOutMaze) +<a name="l00256"></a>00256 { +<a name="l00257"></a>00257 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze; +<a name="l00258"></a>00258 vector<pair<int,int> > walls; +<a name="l00259"></a>00259 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5); +<a name="l00260"></a>00260 +<a name="l00261"></a>00261 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(3,5,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa89ab143d020541957ab5e0e9cfdd3e23">Maze::DOWN</a>); +<a name="l00262"></a>00262 +<a name="l00263"></a>00263 list<Smokescreen> smokescreens; +<a name="l00264"></a>00264 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame's worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens); +<a name="l00265"></a>00265 +<a name="l00266"></a>00266 <span class="keywordtype">double</span> expectX = 3; +<a name="l00267"></a>00267 <span class="keywordtype">double</span> expectY = 5; +<a name="l00268"></a>00268 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>()); +<a name="l00269"></a>00269 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>()); +<a name="l00270"></a>00270 } +<a name="l00274"></a><a class="code" href="logic_tests_8cpp.html#a6a8767f7e51b8997ce11e56ce5d88b53">00274</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, carDoesNotMoveLeftOutMaze) +<a name="l00275"></a>00275 { +<a name="l00276"></a>00276 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze; +<a name="l00277"></a>00277 vector<pair<int,int> > walls; +<a name="l00278"></a>00278 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5); +<a name="l00279"></a>00279 +<a name="l00280"></a>00280 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(0,3,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28faab1a1fe0274cd139b3c0116d8caf458c">Maze::LEFT</a>); +<a name="l00281"></a>00281 +<a name="l00282"></a>00282 list<Smokescreen> smokescreens; +<a name="l00283"></a>00283 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame's worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens); +<a name="l00284"></a>00284 +<a name="l00285"></a>00285 <span class="keywordtype">double</span> expectX = 0; +<a name="l00286"></a>00286 <span class="keywordtype">double</span> expectY = 3; +<a name="l00287"></a>00287 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>()); +<a name="l00288"></a>00288 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>()); +<a name="l00289"></a>00289 } +<a name="l00293"></a><a class="code" href="logic_tests_8cpp.html#aa9dba66248eff545a8f6d12943ad9965">00293</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_car.html" title="GameObject that moves through the maze and changes direction.">Car</a>, carDoesNotMoveRightOutMaze) +<a name="l00294"></a>00294 { +<a name="l00295"></a>00295 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze; +<a name="l00296"></a>00296 vector<pair<int,int> > walls; +<a name="l00297"></a>00297 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5); +<a name="l00298"></a>00298 +<a name="l00299"></a>00299 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(5,3,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">Maze::RIGHT</a>); +<a name="l00300"></a>00300 +<a name="l00301"></a>00301 list<Smokescreen> smokescreens; +<a name="l00302"></a>00302 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame's worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens); +<a name="l00303"></a>00303 +<a name="l00304"></a>00304 <span class="keywordtype">double</span> expectX = 5; +<a name="l00305"></a>00305 <span class="keywordtype">double</span> expectY = 3; +<a name="l00306"></a>00306 EXPECT_FLOAT_EQ(expectX, player.<a class="code" href="class_game_object.html#a676dd981c2891493782de36fb4618cd8" title="Provides access to the x coordinate of the object.">x</a>()); +<a name="l00307"></a>00307 EXPECT_FLOAT_EQ(expectY, player.<a class="code" href="class_game_object.html#a293548656551d6aed5f714f8c4a3235b" title="Provides access to the y coordinate of the object.">y</a>()); +<a name="l00308"></a>00308 } +<a name="l00309"></a>00309 +<a name="l00313"></a><a class="code" href="logic_tests_8cpp.html#a2e89a1385841eacfe13c25e920de6543">00313</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>, countIncrementsAndDecrements) +<a name="l00314"></a>00314 { +<a name="l00315"></a>00315 vector<Checkpoint> checkpoints; +<a name="l00316"></a>00316 EXPECT_EQ(0, <a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" title="Function for accessing the number of checkpoints that currently exist.">Checkpoint::checkpointCount</a>()); +<a name="l00317"></a>00317 +<a name="l00318"></a>00318 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i<1000; ++i) +<a name="l00319"></a>00319 { +<a name="l00320"></a>00320 checkpoints.push_back(<a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>(i,i)); +<a name="l00321"></a>00321 } +<a name="l00322"></a>00322 EXPECT_EQ(1000, <a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" title="Function for accessing the number of checkpoints that currently exist.">Checkpoint::checkpointCount</a>()); +<a name="l00323"></a>00323 +<a name="l00324"></a>00324 <span class="comment">//brackets to limit scope</span> +<a name="l00325"></a>00325 { +<a name="l00326"></a>00326 <a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a> extraCheck1(0,0); +<a name="l00327"></a>00327 <a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a> extraCheck2 = extraCheck1; +<a name="l00328"></a>00328 EXPECT_EQ(1002, <a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" title="Function for accessing the number of checkpoints that currently exist.">Checkpoint::checkpointCount</a>()); +<a name="l00329"></a>00329 extraCheck2 = extraCheck1; +<a name="l00330"></a>00330 EXPECT_EQ(1002, <a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" title="Function for accessing the number of checkpoints that currently exist.">Checkpoint::checkpointCount</a>()); +<a name="l00331"></a>00331 } +<a name="l00332"></a>00332 EXPECT_EQ(1000, <a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" title="Function for accessing the number of checkpoints that currently exist.">Checkpoint::checkpointCount</a>()); +<a name="l00333"></a>00333 +<a name="l00334"></a>00334 <span class="keywordflow">while</span>(!checkpoints.empty()) +<a name="l00335"></a>00335 { +<a name="l00336"></a>00336 checkpoints.pop_back(); +<a name="l00337"></a>00337 } +<a name="l00338"></a>00338 EXPECT_EQ(0, <a class="code" href="class_checkpoint.html#a872d8574b6f0a7960854fb1175e05f13" title="Function for accessing the number of checkpoints that currently exist.">Checkpoint::checkpointCount</a>()); +<a name="l00339"></a>00339 } +<a name="l00340"></a>00340 +<a name="l00344"></a><a class="code" href="logic_tests_8cpp.html#a8f4ecb8511bd9f8da009cce86e7de78f">00344</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a>, playerAndEnemyBothDestroyed) +<a name="l00345"></a>00345 { +<a name="l00346"></a>00346 list<PlayerCar> players; +<a name="l00347"></a>00347 list<EnemyCar> enemies; +<a name="l00348"></a>00348 list<Checkpoint> checkpoints; +<a name="l00349"></a>00349 list<Rock> rocks; +<a name="l00350"></a>00350 list<Smokescreen> smokescreens; +<a name="l00351"></a>00351 <a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a> detector; +<a name="l00352"></a>00352 +<a name="l00353"></a>00353 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(5,5)); +<a name="l00354"></a>00354 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(5,6)); +<a name="l00355"></a>00355 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(6,5)); +<a name="l00356"></a>00356 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(7,7.5)); +<a name="l00357"></a>00357 +<a name="l00358"></a>00358 enemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(5,6)); +<a name="l00359"></a>00359 enemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(4,5)); +<a name="l00360"></a>00360 enemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(6,6)); +<a name="l00361"></a>00361 enemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(6.5,8)); +<a name="l00362"></a>00362 +<a name="l00363"></a>00363 detector.<a class="code" href="class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b" title="Checks for collisions between all relevant pairs of objects, and calls the relevant collision functio...">checkCollisions</a>(players, enemies, checkpoints, rocks, smokescreens); +<a name="l00364"></a>00364 +<a name="l00365"></a>00365 list<PlayerCar>::const_iterator playerIter = players.begin(); +<a name="l00366"></a>00366 EXPECT_FALSE(playerIter->destroyed()); +<a name="l00367"></a>00367 ++playerIter; +<a name="l00368"></a>00368 EXPECT_TRUE(playerIter->destroyed()); +<a name="l00369"></a>00369 ++playerIter; +<a name="l00370"></a>00370 EXPECT_FALSE(playerIter->destroyed()); +<a name="l00371"></a>00371 ++playerIter; +<a name="l00372"></a>00372 EXPECT_TRUE(playerIter->destroyed()); +<a name="l00373"></a>00373 +<a name="l00374"></a>00374 list<EnemyCar>::const_iterator enemyIter = enemies.begin(); +<a name="l00375"></a>00375 EXPECT_TRUE(enemyIter->destroyed()); +<a name="l00376"></a>00376 ++enemyIter; +<a name="l00377"></a>00377 EXPECT_FALSE(enemyIter->destroyed()); +<a name="l00378"></a>00378 ++enemyIter; +<a name="l00379"></a>00379 EXPECT_FALSE(enemyIter->destroyed()); +<a name="l00380"></a>00380 ++enemyIter; +<a name="l00381"></a>00381 EXPECT_TRUE(enemyIter->destroyed()); +<a name="l00382"></a>00382 } +<a name="l00383"></a>00383 +<a name="l00387"></a><a class="code" href="logic_tests_8cpp.html#abb21ae25f8060ef3dafd386ed054c44f">00387</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a>, playerDestroyedByRock) +<a name="l00388"></a>00388 { +<a name="l00389"></a>00389 list<PlayerCar> players; +<a name="l00390"></a>00390 list<EnemyCar> enemies; +<a name="l00391"></a>00391 list<Checkpoint> checkpoints; +<a name="l00392"></a>00392 list<Rock> rocks; +<a name="l00393"></a>00393 list<Smokescreen> smokescreens; +<a name="l00394"></a>00394 <a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a> detector; +<a name="l00395"></a>00395 +<a name="l00396"></a>00396 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(5,5)); +<a name="l00397"></a>00397 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(5,6)); +<a name="l00398"></a>00398 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(6,5)); +<a name="l00399"></a>00399 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(7,7.5)); +<a name="l00400"></a>00400 +<a name="l00401"></a>00401 rocks.push_back(<a class="code" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a>(5,6)); +<a name="l00402"></a>00402 rocks.push_back(<a class="code" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a>(4,5)); +<a name="l00403"></a>00403 rocks.push_back(<a class="code" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a>(6,6)); +<a name="l00404"></a>00404 rocks.push_back(<a class="code" href="class_rock.html" title="A game object that acts as an obstacle to the player.">Rock</a>(6.5,8)); +<a name="l00405"></a>00405 +<a name="l00406"></a>00406 detector.<a class="code" href="class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b" title="Checks for collisions between all relevant pairs of objects, and calls the relevant collision functio...">checkCollisions</a>(players, enemies, checkpoints, rocks, smokescreens); +<a name="l00407"></a>00407 +<a name="l00408"></a>00408 list<PlayerCar>::const_iterator playerIter = players.begin(); +<a name="l00409"></a>00409 EXPECT_FALSE(playerIter->destroyed()); +<a name="l00410"></a>00410 ++playerIter; +<a name="l00411"></a>00411 EXPECT_TRUE(playerIter->destroyed()); +<a name="l00412"></a>00412 ++playerIter; +<a name="l00413"></a>00413 EXPECT_FALSE(playerIter->destroyed()); +<a name="l00414"></a>00414 ++playerIter; +<a name="l00415"></a>00415 EXPECT_TRUE(playerIter->destroyed()); +<a name="l00416"></a>00416 +<a name="l00417"></a>00417 list<Rock>::const_iterator rockIter = rocks.begin(); +<a name="l00418"></a>00418 EXPECT_FALSE(rockIter->destroyed()); +<a name="l00419"></a>00419 ++rockIter; +<a name="l00420"></a>00420 EXPECT_FALSE(rockIter->destroyed()); +<a name="l00421"></a>00421 ++rockIter; +<a name="l00422"></a>00422 EXPECT_FALSE(rockIter->destroyed()); +<a name="l00423"></a>00423 ++rockIter; +<a name="l00424"></a>00424 EXPECT_FALSE(rockIter->destroyed()); +<a name="l00425"></a>00425 } +<a name="l00426"></a>00426 +<a name="l00430"></a><a class="code" href="logic_tests_8cpp.html#a115831998a1832f3354e06bdd11c150b">00430</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a>, checkpointDestroyedByPlayer) +<a name="l00431"></a>00431 { +<a name="l00432"></a>00432 list<PlayerCar> players; +<a name="l00433"></a>00433 list<EnemyCar> enemies; +<a name="l00434"></a>00434 list<Checkpoint> checkpoints; +<a name="l00435"></a>00435 list<Rock> rocks; +<a name="l00436"></a>00436 list<Smokescreen> smokescreens; +<a name="l00437"></a>00437 <a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a> detector; +<a name="l00438"></a>00438 +<a name="l00439"></a>00439 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(5,5)); +<a name="l00440"></a>00440 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(5,6)); +<a name="l00441"></a>00441 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(6,5)); +<a name="l00442"></a>00442 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(7,7.5)); +<a name="l00443"></a>00443 +<a name="l00444"></a>00444 checkpoints.push_back(<a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>(5,6)); +<a name="l00445"></a>00445 checkpoints.push_back(<a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>(4,5)); +<a name="l00446"></a>00446 checkpoints.push_back(<a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>(6,6)); +<a name="l00447"></a>00447 checkpoints.push_back(<a class="code" href="class_checkpoint.html" title="GameObject that the player needs to pick up by driving over.">Checkpoint</a>(6.5,8)); +<a name="l00448"></a>00448 +<a name="l00449"></a>00449 detector.<a class="code" href="class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b" title="Checks for collisions between all relevant pairs of objects, and calls the relevant collision functio...">checkCollisions</a>(players, enemies, checkpoints, rocks, smokescreens); +<a name="l00450"></a>00450 +<a name="l00451"></a>00451 list<PlayerCar>::const_iterator playerIter = players.begin(); +<a name="l00452"></a>00452 EXPECT_FALSE(playerIter->destroyed()); +<a name="l00453"></a>00453 ++playerIter; +<a name="l00454"></a>00454 EXPECT_FALSE(playerIter->destroyed()); +<a name="l00455"></a>00455 ++playerIter; +<a name="l00456"></a>00456 EXPECT_FALSE(playerIter->destroyed()); +<a name="l00457"></a>00457 ++playerIter; +<a name="l00458"></a>00458 EXPECT_FALSE(playerIter->destroyed()); +<a name="l00459"></a>00459 +<a name="l00460"></a>00460 list<Checkpoint>::const_iterator checkpointIter = checkpoints.begin(); +<a name="l00461"></a>00461 EXPECT_TRUE(checkpointIter->destroyed()); +<a name="l00462"></a>00462 ++checkpointIter; +<a name="l00463"></a>00463 EXPECT_FALSE(checkpointIter->destroyed()); +<a name="l00464"></a>00464 ++checkpointIter; +<a name="l00465"></a>00465 EXPECT_FALSE(checkpointIter->destroyed()); +<a name="l00466"></a>00466 ++checkpointIter; +<a name="l00467"></a>00467 EXPECT_TRUE(checkpointIter->destroyed()); +<a name="l00468"></a>00468 } +<a name="l00469"></a>00469 +<a name="l00473"></a><a class="code" href="logic_tests_8cpp.html#a9860202068d4e498e238d9d886234ea7">00473</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a>, enemyStoppedBySmokescreen) +<a name="l00474"></a>00474 { +<a name="l00475"></a>00475 list<PlayerCar> players; +<a name="l00476"></a>00476 list<EnemyCar> enemies; +<a name="l00477"></a>00477 list<Checkpoint> checkpoints; +<a name="l00478"></a>00478 list<Rock> rocks; +<a name="l00479"></a>00479 list<Smokescreen> smokescreens; +<a name="l00480"></a>00480 <a class="code" href="class_collision_detector.html" title="Object for handling collisions between GameObjects.">CollisionDetector</a> detector; +<a name="l00481"></a>00481 +<a name="l00482"></a>00482 enemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(5,5)); +<a name="l00483"></a>00483 enemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(5,6)); +<a name="l00484"></a>00484 enemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(6,5)); +<a name="l00485"></a>00485 enemies.push_back(<a class="code" href="class_enemy_car.html" title="GameObject that chases the player around the maze.">EnemyCar</a>(7,7.5)); +<a name="l00486"></a>00486 +<a name="l00487"></a>00487 smokescreens.push_back(<a class="code" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>(5,6)); +<a name="l00488"></a>00488 smokescreens.push_back(<a class="code" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>(4,5)); +<a name="l00489"></a>00489 smokescreens.push_back(<a class="code" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>(6,6)); +<a name="l00490"></a>00490 smokescreens.push_back(<a class="code" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>(6.5,8)); +<a name="l00491"></a>00491 +<a name="l00492"></a>00492 detector.<a class="code" href="class_collision_detector.html#a6ee96032c26ceeab038d2702d7064c7b" title="Checks for collisions between all relevant pairs of objects, and calls the relevant collision functio...">checkCollisions</a>(players, enemies, checkpoints, rocks, smokescreens); +<a name="l00493"></a>00493 +<a name="l00494"></a>00494 list<EnemyCar>::const_iterator enemyIter = enemies.begin(); +<a name="l00495"></a>00495 EXPECT_GT(enemyIter->speed(),0); +<a name="l00496"></a>00496 ++enemyIter; +<a name="l00497"></a>00497 EXPECT_FLOAT_EQ(0, enemyIter->speed()); +<a name="l00498"></a>00498 ++enemyIter; +<a name="l00499"></a>00499 EXPECT_GT(enemyIter->speed(),0); +<a name="l00500"></a>00500 ++enemyIter; +<a name="l00501"></a>00501 EXPECT_FLOAT_EQ(0, enemyIter->speed()); +<a name="l00502"></a>00502 } +<a name="l00503"></a>00503 +<a name="l00507"></a><a class="code" href="logic_tests_8cpp.html#a484a53647d1cde5db81c1fdc53bf55c9">00507</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" 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>, destroyedAfterSetTime) +<a name="l00508"></a>00508 { +<a name="l00509"></a>00509 <a class="code" 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> testPopup(3,2,<a class="code" href="class_bitmap_store.html#af3bc66181673def9d0a590cd13c7e386a8b9eb5b79abe467982784ea2227d67e0">BitmapStore::CRASHED_CAR</a>); +<a name="l00510"></a>00510 +<a name="l00511"></a>00511 <span class="keywordtype">int</span> i=0; +<a name="l00512"></a>00512 <span class="keywordflow">while</span> (!testPopup.<a class="code" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea" title="Checks if an object has been marked for destruction, for example through a collision.">destroyed</a>()) +<a name="l00513"></a>00513 { +<a name="l00514"></a>00514 testPopup.<a class="code" href="class_limited_time_object.html#ad81a1c9aba4e21dfa40b9e6d881aba4e" title="Function that should be run on every iteration of the gameloop.">update</a>(); +<a name="l00515"></a>00515 ++i; +<a name="l00516"></a>00516 } +<a name="l00517"></a>00517 +<a name="l00518"></a>00518 EXPECT_EQ(30,i); +<a name="l00519"></a>00519 } +<a name="l00520"></a>00520 +<a name="l00524"></a><a class="code" href="logic_tests_8cpp.html#aa16a32786815a8bb8cb7e8de664ff950">00524</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>, queryOutsideBoundsReturnsSolid) +<a name="l00525"></a>00525 { +<a name="l00526"></a>00526 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze; +<a name="l00527"></a>00527 vector<pair<int,int> > walls; +<a name="l00528"></a>00528 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5); +<a name="l00529"></a>00529 +<a name="l00530"></a>00530 EXPECT_FALSE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(5,5)); +<a name="l00531"></a>00531 EXPECT_FALSE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(0,0)); +<a name="l00532"></a>00532 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(6,5)); +<a name="l00533"></a>00533 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(5,6)); +<a name="l00534"></a>00534 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(-1,3)); +<a name="l00535"></a>00535 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(3,-1)); +<a name="l00536"></a>00536 } +<a name="l00537"></a>00537 +<a name="l00541"></a><a class="code" href="logic_tests_8cpp.html#a38676411c83cef750c1e48dd8f1a87ca">00541</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>, generationWithWallsWithoutObjectMax) +<a name="l00542"></a>00542 { +<a name="l00543"></a>00543 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze; +<a name="l00544"></a>00544 vector<pair<int,int> > walls; +<a name="l00545"></a>00545 walls.push_back(make_pair(1,2)); +<a name="l00546"></a>00546 walls.push_back(make_pair(4,3)); +<a name="l00547"></a>00547 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls); +<a name="l00548"></a>00548 +<a name="l00549"></a>00549 <span class="comment">//test random empty blocks</span> +<a name="l00550"></a>00550 EXPECT_FALSE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(2,1)); +<a name="l00551"></a>00551 EXPECT_FALSE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(0,0)); +<a name="l00552"></a>00552 +<a name="l00553"></a>00553 <span class="comment">//test wall blocks</span> +<a name="l00554"></a>00554 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(1,2)); +<a name="l00555"></a>00555 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(4,3)); +<a name="l00556"></a>00556 +<a name="l00557"></a>00557 <span class="comment">//test bounds are being set right</span> +<a name="l00558"></a>00558 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(4,4)); +<a name="l00559"></a>00559 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(5,3)); +<a name="l00560"></a>00560 } +<a name="l00561"></a>00561 +<a name="l00565"></a><a class="code" href="logic_tests_8cpp.html#a0363213c93a0b22e67182dc5af60b78b">00565</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a>, generationWithWallsWithObjectMax) +<a name="l00566"></a>00566 { +<a name="l00567"></a>00567 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze; +<a name="l00568"></a>00568 vector<pair<int,int> > walls; +<a name="l00569"></a>00569 walls.push_back(make_pair(1,2)); +<a name="l00570"></a>00570 walls.push_back(make_pair(4,3)); +<a name="l00571"></a>00571 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,6); +<a name="l00572"></a>00572 +<a name="l00573"></a>00573 <span class="comment">//test random empty blocks</span> +<a name="l00574"></a>00574 EXPECT_FALSE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(2,1)); +<a name="l00575"></a>00575 EXPECT_FALSE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(0,0)); +<a name="l00576"></a>00576 +<a name="l00577"></a>00577 <span class="comment">//test wall blocks</span> +<a name="l00578"></a>00578 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(1,2)); +<a name="l00579"></a>00579 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(4,3)); +<a name="l00580"></a>00580 +<a name="l00581"></a>00581 <span class="comment">//test bounds are being set right</span> +<a name="l00582"></a>00582 EXPECT_FALSE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(4,4)); +<a name="l00583"></a>00583 EXPECT_FALSE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(5,6)); +<a name="l00584"></a>00584 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(6,6)); +<a name="l00585"></a>00585 EXPECT_TRUE(testMaze.<a class="code" href="class_maze.html#a1bbdfece82c4ba90ffcf2fea52e5fef1" title="Checks if a given position contains a wall or not.">getSolid</a>(5,7)); +<a name="l00586"></a>00586 } +<a name="l00587"></a>00587 +<a name="l00591"></a><a class="code" href="logic_tests_8cpp.html#a2b5bbb44002c6d13e3a3811cb3677832">00591</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_maze_math.html" title="Class of static methods for common math functions that occur in the 2D maze setting.">MazeMath</a>, distanceGivesExpectedResult) +<a name="l00592"></a>00592 { +<a name="l00593"></a>00593 <span class="comment">//right angle triange with sides of length 3, 4, and 5</span> +<a name="l00594"></a>00594 <span class="keywordtype">double</span> x1 = 1; +<a name="l00595"></a>00595 <span class="keywordtype">double</span> y1 = 1; +<a name="l00596"></a>00596 <span class="keywordtype">double</span> x2 = 4; +<a name="l00597"></a>00597 <span class="keywordtype">double</span> y2 = 5; +<a name="l00598"></a>00598 +<a name="l00599"></a>00599 <span class="keywordtype">double</span> expectedResult = 5; +<a name="l00600"></a>00600 +<a name="l00601"></a>00601 EXPECT_DOUBLE_EQ(expectedResult, <a class="code" href="class_maze_math.html#a5735276fb4c76f25944f2c02d622c3f6" title="Finds the straight line distance between two points on a 2D plane.">MazeMath::distance</a>(x1,y1,x2,y2)); +<a name="l00602"></a>00602 } +<a name="l00603"></a>00603 +<a name="l00607"></a><a class="code" href="logic_tests_8cpp.html#a5a55cf80381ed4c7885fb887427e6118">00607</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_maze_math.html" title="Class of static methods for common math functions that occur in the 2D maze setting.">MazeMath</a>, roundGivesExpectedResult) +<a name="l00608"></a>00608 { +<a name="l00609"></a>00609 <span class="comment">//right angle triange with sides of length 3, 4, and 5</span> +<a name="l00610"></a>00610 <span class="keywordtype">double</span> roundUp = 5.5; +<a name="l00611"></a>00611 <span class="keywordtype">double</span> roundDown = 5.49; +<a name="l00612"></a>00612 +<a name="l00613"></a>00613 <span class="keywordtype">double</span> expectUp = 6; +<a name="l00614"></a>00614 <span class="keywordtype">double</span> expectDown = 5; +<a name="l00615"></a>00615 +<a name="l00616"></a>00616 EXPECT_DOUBLE_EQ(expectUp, <a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(roundUp)); +<a name="l00617"></a>00617 EXPECT_DOUBLE_EQ(expectDown, <a class="code" href="class_maze_math.html#a2314f211065f4dc7cb11469770fd2f1c" title="Rounds a value to the nearest integer.">MazeMath::round</a>(roundDown)); +<a name="l00618"></a>00618 } +<a name="l00619"></a>00619 +<a name="l00626"></a><a class="code" href="logic_tests_8cpp.html#a610f20b2b4a1407fa2a8983015dfb81b">00626</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>, creationAndDestructionCanHappen) +<a name="l00627"></a>00627 { +<a name="l00628"></a>00628 EXPECT_NO_THROW({ +<a name="l00629"></a>00629 vector<PlayerCar> players; +<a name="l00630"></a>00630 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i<10; ++i) +<a name="l00631"></a>00631 { +<a name="l00632"></a>00632 players.push_back(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>(i,i)); +<a name="l00633"></a>00633 } +<a name="l00634"></a>00634 <span class="keywordflow">while</span>(!players.empty()) +<a name="l00635"></a>00635 { +<a name="l00636"></a>00636 players.pop_back(); +<a name="l00637"></a>00637 } +<a name="l00638"></a>00638 }); +<a name="l00639"></a>00639 +<a name="l00640"></a>00640 EXPECT_FALSE(al_is_system_installed()); +<a name="l00641"></a>00641 } +<a name="l00642"></a>00642 +<a name="l00648"></a><a class="code" href="logic_tests_8cpp.html#a257f2123dddae6d77b7926f48d4e71e2">00648</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a>, playerSpeedAffectedByPetrol) +<a name="l00649"></a>00649 { +<a name="l00650"></a>00650 <a class="code" href="class_maze.html" title="A rectangular 2D boolean array, representing where cars can drive and where they cannot.">Maze</a> testMaze; +<a name="l00651"></a>00651 vector<pair<int,int> > walls; +<a name="l00652"></a>00652 testMaze.<a class="code" href="class_maze.html#ae238f9a5dbae9418f78f158ced6decf8" title="Generates a new Maze from the vector of wall coordinates.">generateMaze</a>(walls,5,5); +<a name="l00653"></a>00653 +<a name="l00654"></a>00654 <a class="code" href="class_player_car.html" title="A GameObject that is controlled by the player.">PlayerCar</a> player(5,3,<a class="code" href="class_maze.html#ad12c28d50f4d7457160a70a94acfe28fa699ae3e1d989e9b12bd200aa86e29e9d">Maze::RIGHT</a>); +<a name="l00655"></a>00655 +<a name="l00656"></a>00656 list<Smokescreen> smokescreens; +<a name="l00657"></a>00657 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i<1429; ++i) +<a name="l00658"></a>00658 { +<a name="l00659"></a>00659 player.<a class="code" href="class_player_car.html#ae8c5ef8fb59e015c17ddad6ed9ebf907" title="Processes one frame's worth of activity for the object, called every frame.">update</a>(testMaze, smokescreens); +<a name="l00660"></a>00660 } +<a name="l00661"></a>00661 +<a name="l00662"></a>00662 EXPECT_FLOAT_EQ(0, player.<a class="code" href="class_player_car.html#af32c01166e92d567202c8415cb3e7c88" title="Function to allow access to the amount of petrol that the PlayerCar still has.">petrol</a>()); +<a name="l00663"></a>00663 EXPECT_FLOAT_EQ(0.05, player.<a class="code" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9" title="Function to access the current speed of the car.">speed</a>()); +<a name="l00664"></a>00664 +<a name="l00665"></a>00665 player.<a class="code" href="class_player_car.html#aaa8b9d66c0c4e4eab5a303dd0a4e5f39" title="Function that is called when the PlayerCar collides with a Checkpoint.">gotCheckpoint</a>(); +<a name="l00666"></a>00666 EXPECT_GT(player.<a class="code" href="class_player_car.html#af32c01166e92d567202c8415cb3e7c88" title="Function to allow access to the amount of petrol that the PlayerCar still has.">petrol</a>(), 0); +<a name="l00667"></a>00667 EXPECT_FLOAT_EQ(0.1, player.<a class="code" href="class_car.html#a68b59187e1520a5d016b0894b4c116b9" title="Function to access the current speed of the car.">speed</a>()); +<a name="l00668"></a>00668 } +<a name="l00669"></a>00669 +<a name="l00673"></a><a class="code" href="logic_tests_8cpp.html#a2de4a45e984d28048ec0cfcd3199cfc7">00673</a> <a class="code" href="data_tests_8cpp.html#a7612e068db66f415f3b230260450eba8" title="Tests that a normal complete config file can be read.">TEST</a>(<a class="code" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a>, destroyedAfterSetTime) +<a name="l00674"></a>00674 { +<a name="l00675"></a>00675 <a class="code" href="class_smokescreen.html" title="GameObject that causes the EnemyCar to be delayed if they crash into it.">Smokescreen</a> testSmokescreen(3,2); +<a name="l00676"></a>00676 +<a name="l00677"></a>00677 <span class="keywordtype">int</span> i=0; +<a name="l00678"></a>00678 <span class="keywordflow">while</span> (!testSmokescreen.<a class="code" href="class_game_object.html#a266871f6c0220f6b3c902075ebff8eea" title="Checks if an object has been marked for destruction, for example through a collision.">destroyed</a>()) +<a name="l00679"></a>00679 { +<a name="l00680"></a>00680 testSmokescreen.<a class="code" href="class_limited_time_object.html#ad81a1c9aba4e21dfa40b9e6d881aba4e" title="Function that should be run on every iteration of the gameloop.">update</a>(); +<a name="l00681"></a>00681 ++i; +<a name="l00682"></a>00682 } +<a name="l00683"></a>00683 +<a name="l00684"></a>00684 EXPECT_EQ(60,i); +<a name="l00685"></a>00685 } +</pre></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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </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  <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> |