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.")
Exemple #2
0
 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.")