def test_system_state(self): """ Test module SystemState. Add and remove packets from server and queue and check for correct behavior. """ s = SystemState(DESTestExtended.sim) # check correct initialization self.assertEqual([s.buffer.get_queue_length(), s.server_busy], [0, False], msg="Error in SystemState. Wrong int indicates queue length, wrong bool server busy.") # check correct behavior of start_service() after init self.assertEqual(s.start_service(), False, msg="Error in SystemState. Wrong value indicates wrong queue length.") # check correct adding of packets to server or queue self.assertEqual(s.add_packet_to_server(), True, msg="Error in SystemState. Could not add packet to server though it should be idle.") self.assertEqual(s.add_packet_to_server(), False, msg="Error in SystemState. Server not busy, though it should be.") self.assertEqual([s.buffer.get_queue_length(), s.server_busy], [0, True], msg="Error in SystemState. Wrong int indicates queue length, wrong bool server busy.") self.assertEqual(s.add_packet_to_queue(), True, msg="Error in SystemState. Server not busy, though busy though it shouldn't be.") self.assertEqual([s.buffer.get_queue_length(), s.server_busy], [1, True], msg="Error in SystemState. Wrong int indicates queue length, wrong bool server busy.") self.assertEqual(s.add_packet_to_server(), False, msg="Error in SystemState. Should not be able to add packet to server.") for _ in range(DESTestExtended.sim.sim_param.S - 1): self.assertEqual(s.add_packet_to_queue(), True, msg="Error in SystemState. Could not add packet to queue.") # check correct dropping of packets, when queue is full self.assertEqual(s.add_packet_to_queue(), False, msg="Error in SystemState. Could add packet to queue though it should be full.") self.assertEqual([s.buffer.get_queue_length(), s.server_busy], [DESTestExtended.sim.sim_param.S, True], msg="Error in SystemState. Wrong int indicates queue length, wrong bool server busy.") # check behavior of function complete_service() s.complete_service() self.assertEqual([s.buffer.get_queue_length(), s.server_busy], [DESTestExtended.sim.sim_param.S, False], msg="Error in SystemState. Wrong int indicates queue length, wrong bool server busy.") # check behavior of function start_service() self.assertEqual(s.start_service(), True, msg="Error in SystemState. Starting service should be possible at this point.") self.assertEqual([s.buffer.get_queue_length(), s.server_busy], [DESTestExtended.sim.sim_param.S - 1, True], msg="Error in SystemState. Wrong int indicates queue length, wrong bool server busy.")
def test_finite_queue(self): """ Test the basic behavior of the finite queue. """ DESTestExtended.sim.reset() s = SystemState(DESTestExtended.sim) self.assertEqual(s.get_queue_length(), 0, msg="Error in FiniteQueue. Wrong queue length.") s.add_packet_to_queue() DESTestExtended.sim.sim_state.now = 5 s.add_packet_to_queue() DESTestExtended.sim.sim_state.now = 10 s.add_packet_to_queue() self.assertEqual(s.get_queue_length(), 3, msg="Error in FiniteQueue. Wrong queue length.") s.server_busy = False s.start_service() self.assertEqual(s.server_busy, True, msg="Error in FiniteQueue. Server should be busy.") self.assertEqual( s.served_packet.t_arrival, 0, msg="Error in FiniteQueue. Arrival time of packet wrong.") self.assertEqual(s.get_queue_length(), 2, msg="Error in FiniteQueue. Wrong queue length.") s.server_busy = False s.start_service() self.assertEqual(s.server_busy, True, msg="Error in FiniteQueue. Server should be busy.") self.assertEqual( s.served_packet.t_arrival, 5, msg="Error in FiniteQueue. Arrival time of packet wrong.") self.assertEqual(s.get_queue_length(), 1, msg="Error in FiniteQueue. Wrong queue length.") s.server_busy = False s.start_service() self.assertEqual(s.server_busy, True, msg="Error in FiniteQueue. Server should be busy.") self.assertEqual( s.served_packet.t_arrival, 10, msg="Error in FiniteQueue. Arrival time of packet wrong.") self.assertEqual(s.get_queue_length(), 0, msg="Error in FiniteQueue. Wrong queue length.")