@@ -127,7 +127,7 @@ TEST_CASE("Dynamics") {
127127 WHEN (" We add the agent" ) {
128128 dynamics.addAgent (0 , 2 );
129129 THEN (" The agent is added" ) {
130- CHECK_EQ (dynamics.agents (). size (), 1 );
130+ CHECK_EQ (dynamics.nAgents (), 1 );
131131 const auto & agent = dynamics.agents ().at (0 );
132132 CHECK_EQ (agent->id (), 0 );
133133 CHECK_EQ (agent->srcNodeId ().value (), 0 );
@@ -163,7 +163,7 @@ TEST_CASE("Dynamics") {
163163 THEN (
164164 " The number of agents is 1 and the destination is the same as the "
165165 " itinerary" ) {
166- CHECK_EQ (dynamics.agents (). size (), 1 );
166+ CHECK_EQ (dynamics.nAgents (), 1 );
167167 CHECK_EQ (dynamics.itineraries ()
168168 .at (dynamics.agents ().at (0 )->itineraryId ())
169169 ->destination (),
@@ -184,7 +184,7 @@ TEST_CASE("Dynamics") {
184184 " The number of agents is 3, the destination and the street is the "
185185 " same as "
186186 " the itinerary" ) {
187- CHECK_EQ (dynamics.agents (). size (), 3 );
187+ CHECK_EQ (dynamics.nAgents (), 3 );
188188 CHECK (dynamics.agents ().at (0 )->streetId ().has_value ());
189189 CHECK (dynamics.agents ().at (1 )->streetId ().has_value ());
190190 CHECK (dynamics.agents ().at (2 )->streetId ().has_value ());
@@ -236,7 +236,7 @@ TEST_CASE("Dynamics") {
236236 dynamics.addItinerary (Itinerary{0 , 2 });
237237 dynamics.addAgentsRandomly (1 , src, dst);
238238 THEN (" The agents are correctly set" ) {
239- CHECK_EQ (dynamics.agents (). size (), 1 );
239+ CHECK_EQ (dynamics.nAgents (), 1 );
240240 CHECK_EQ (dynamics.itineraries ()
241241 .at (dynamics.agents ().at (0 )->itineraryId ())
242242 ->destination (),
@@ -252,7 +252,7 @@ TEST_CASE("Dynamics") {
252252 dynamics.addItinerary (Itinerary{2 , 107 });
253253 dynamics.addAgentsRandomly (3 , src, dst);
254254 THEN (" The agents are correctly set" ) {
255- CHECK_EQ (dynamics.agents (). size (), 3 );
255+ CHECK_EQ (dynamics.nAgents (), 3 );
256256 CHECK_EQ (dynamics.itineraries ()
257257 .at (dynamics.agents ().at (0 )->itineraryId ())
258258 ->destination (),
@@ -279,6 +279,28 @@ TEST_CASE("Dynamics") {
279279 }
280280 }
281281 }
282+ SUBCASE (" addRandomAgents" ) {
283+ GIVEN (" A dynamics object" ) {
284+ auto const p{0.1 };
285+ auto const n{100 };
286+ auto graph = Graph{};
287+ graph.importMatrix (" ./data/matrix.dat" , false );
288+ graph.buildAdj ();
289+ graph.normalizeStreetCapacities ();
290+ Dynamics dynamics{graph, 69 };
291+ dynamics.setPassageProbability (p);
292+ WHEN (" We add some agent" ) {
293+ dynamics.addRandomAgents (n);
294+ THEN (" The number of agents is correct" ) { CHECK_EQ (dynamics.nAgents (), 100 ); }
295+ THEN (" If we evolve the dynamics agent disappear gradually" ) {
296+ for (auto i{0 }; i < 40 ; ++i) {
297+ dynamics.evolve (false );
298+ }
299+ CHECK (dynamics.nAgents () < n);
300+ }
301+ }
302+ }
303+ }
282304 SUBCASE (" addAgents" ) {
283305 GIVEN (" A dynamics object and one itinerary" ) {
284306 auto graph = Graph{};
@@ -296,7 +318,7 @@ TEST_CASE("Dynamics") {
296318 THEN (
297319 " The number of agents is 1 and the destination is the same as the "
298320 " itinerary" ) {
299- CHECK_EQ (dynamics.agents (). size (), 1 );
321+ CHECK_EQ (dynamics.nAgents (), 1 );
300322 CHECK_EQ (dynamics.itineraries ()
301323 .at (dynamics.agents ().at (0 )->itineraryId ())
302324 ->destination (),
@@ -305,7 +327,7 @@ TEST_CASE("Dynamics") {
305327 }
306328 WHEN (" We add 69 agents with itinerary 0" ) {
307329 dynamics.addAgents (0 , 69 );
308- THEN (" The number of agents is 69" ) { CHECK_EQ (dynamics.agents (). size (), 69 ); }
330+ THEN (" The number of agents is 69" ) { CHECK_EQ (dynamics.nAgents (), 69 ); }
309331 }
310332 }
311333 }
@@ -524,7 +546,7 @@ TEST_CASE("Dynamics") {
524546 }
525547 dynamics.evolve (true );
526548 THEN (" The agent is reinserted" ) {
527- CHECK_EQ (dynamics.agents (). size (), 1 );
549+ CHECK_EQ (dynamics.nAgents (), 1 );
528550 CHECK_EQ (dynamics.agents ().at (0 )->time (), 1 );
529551 CHECK_EQ (dynamics.agents ().at (0 )->delay (), 0 );
530552 CHECK_FALSE (dynamics.agents ().at (0 )->streetId ().has_value ());
0 commit comments