Ejemplo n.º 1
0
 def test_run_empty_no_end_time(self):
     simulator.ready()
     self.assertEqual(simulator.now(), 0)
     self.assertFalse(simulator.is_finished())
     simulator.run()
     self.assertEqual(simulator.now(), 0)
     self.assertTrue(simulator.is_finished())
     simulator.reset()
Ejemplo n.º 2
0
 def receive(self, message):
     if message["dst_node_id"] == self.__node_id:
         print(
             "t=%d: node %d received message with content '%s'" %
             (simulator.now(), self.__node_id, message["content"]))
     else:
         (next_hop, travel_duration
          ) = self.__forward_table[message["dst_node_id"]]
         simulator.schedule(travel_duration,
                            self.__all_nodes[next_hop].receive,
                            message)
         self.__forward_counter += 1
         print("t=%d: node %d forward message %s to node %d" %
               (simulator.now(), self.__node_id, str(message),
                next_hop))
Ejemplo n.º 3
0
    def test_end_in_event(self):

        self.test_end_in_event_counter = 22

        def x(val):
            self.test_end_in_event_counter += val

        def y():
            simulator.end(5)

        simulator.ready()
        simulator.schedule(60, x, 22)
        simulator.schedule(70, y)
        simulator.schedule(70, x, 3)
        simulator.schedule(71, y)
        simulator.schedule(74, x, 5)
        simulator.schedule(75, x, 22)
        simulator.schedule(76, x, 22)
        simulator.schedule(888, x, 22)
        simulator.schedule(999, x, 22)
        simulator.schedule(8953, x, 22)
        simulator.end(1000)
        simulator.run()
        self.assertEqual(self.test_end_in_event_counter, 22 + 22 + 3 + 5)
        self.assertEqual(simulator.now(), 75)
        self.assertTrue(simulator.is_finished())
        self.assertEqual(simulator.event_heap_size(), 5)
        simulator.reset()
Ejemplo n.º 4
0
 def receive_stick_and_run(self):
     print("Athlete %d receives stick and starts run at t=%.3gs" %
           (self.idx, simulator.now() / 1e9))
     if self.idx != len(self.athletes) - 1:
         simulator.schedule(
             int(100.0 / self.speed_m_per_s * 1e9),
             self.athletes[self.idx + 1].receive_stick_and_run)
     else:
         simulator.schedule(int(100.0 / self.speed_m_per_s * 1e9),
                            relay_finished)
Ejemplo n.º 5
0
    def test_end_in_same_event(self):

        self.test_end_in_same_event_counter = 0

        def x():
            self.test_end_in_same_event_counter += 100

        def y():
            self.test_end_in_same_event_counter += 3

        def z():
            self.test_end_in_same_event_counter += 5

            self.assertFalse(simulator.is_init())
            self.assertFalse(simulator.is_ready())
            self.assertTrue(simulator.is_running())
            self.assertFalse(simulator.is_finished())

            simulator.end()  # End after this event has been executed

            self.assertFalse(simulator.is_init())
            self.assertFalse(simulator.is_ready())
            self.assertTrue(simulator.is_running())
            self.assertFalse(simulator.is_finished())

        simulator.ready()
        simulator.schedule_with_priority(70, 5, x)
        simulator.schedule_with_priority(70, 5, x)
        simulator.schedule_with_priority(70, 20, y)
        simulator.schedule_with_priority(70, 10, z)
        simulator.run()
        self.assertEqual(self.test_end_in_same_event_counter, 100 + 100 + 5)
        self.assertEqual(simulator.now(), 70)
        self.assertTrue(simulator.is_finished())
        self.assertEqual(simulator.event_heap_size(), 1)
        simulator.reset()
        self.assertTrue(simulator.is_init())
        self.assertFalse(simulator.is_ready())
        self.assertFalse(simulator.is_running())
        self.assertFalse(simulator.is_finished())
        self.assertEqual(simulator.now(), 0)
        self.assertEqual(simulator.event_heap_size(), 0)
Ejemplo n.º 6
0
    def test_end_one(self):

        self.test_end_one_counter = 0

        def x(val):
            self.test_end_one_counter += val

        simulator.ready()
        simulator.schedule(10, x, 57)
        simulator.end(100)
        simulator.run()
        self.assertEqual(self.test_end_one_counter, 57)
        self.assertEqual(simulator.now(), 100)
        self.assertTrue(simulator.is_finished())
        simulator.reset()
Ejemplo n.º 7
0
    def test_end_override(self):

        self.test_end_two_override_counter = 22

        def x(val):
            self.test_end_two_override_counter += val

        simulator.ready()
        simulator.schedule(57, x, 67)
        simulator.end(100)
        simulator.end(57)
        simulator.end(100)
        simulator.run()
        self.assertEqual(self.test_end_two_override_counter, 22)
        self.assertEqual(simulator.now(), 57)
        self.assertTrue(simulator.is_finished())
        simulator.reset()
Ejemplo n.º 8
0
    def test_normal_just(self):

        self.test_normal_counter = 0

        def x(val):
            self.test_normal_counter += val

        simulator.ready()
        simulator.schedule(100, x, 57)
        simulator.schedule(100, x, 473)
        simulator.schedule(199, x, 88)
        simulator.end(200)
        simulator.run()
        self.assertEqual(self.test_normal_counter, 57 + 473 + 88)
        self.assertEqual(simulator.now(), 200)
        self.assertTrue(simulator.is_finished())
        self.assertEqual(simulator.event_heap_size(), 0)
        simulator.reset()
        self.assertEqual(simulator.event_heap_size(), 0)
Ejemplo n.º 9
0
    def test_normal_not(self):

        self.test_normal_counter = 0

        def x(val):
            self.test_normal_counter -= val

        simulator.ready()
        simulator.schedule(100, x, 57)
        simulator.schedule(153, x, 245)
        simulator.schedule(199, x, 88)
        simulator.end(156)
        simulator.run()
        self.assertEqual(self.test_normal_counter, - 57 - 245)
        self.assertEqual(simulator.now(), 156)
        self.assertTrue(simulator.is_finished())
        self.assertEqual(simulator.event_heap_size(), 1)
        simulator.reset()
        self.assertEqual(simulator.event_heap_size(), 0)
Ejemplo n.º 10
0
    def test_end_within_event_while_running(self):
        def something(value):
            print("t=" + str(simulator.now()) + ": something() with value: " +
                  str(value))

        def we_are_done(value):
            print("t=" + str(simulator.now()) +
                  ": we_are_done() with value: " + str(value))
            simulator.end()

        simulator.ready()
        simulator.schedule(100, something, "ABC")
        simulator.schedule(120, something, "DEF")
        simulator.schedule(140, we_are_done, "XYZ")
        simulator.schedule(160, something, "TEST")
        simulator.schedule(700, something, "GHI")
        simulator.end(1000)
        simulator.run()
        print("End time: " + str(simulator.now()))
        simulator.reset()
Ejemplo n.º 11
0
    def test_stage_transitions(self):

        self.assertTrue(simulator.is_init())
        self.assertFalse(simulator.is_ready())
        self.assertFalse(simulator.is_running())
        self.assertFalse(simulator.is_finished())

        simulator.ready()

        self.assertFalse(simulator.is_init())
        self.assertTrue(simulator.is_ready())
        self.assertFalse(simulator.is_running())
        self.assertFalse(simulator.is_finished())

        def check_running():
            self.assertFalse(simulator.is_init())
            self.assertFalse(simulator.is_ready())
            self.assertTrue(simulator.is_running())
            self.assertFalse(simulator.is_finished())
            self.assertEqual(simulator.now(), 0)

        simulator.schedule(0, check_running)
        simulator.end(100000)
        simulator.run()
        self.assertEqual(simulator.now(), 100000)

        self.assertFalse(simulator.is_init())
        self.assertFalse(simulator.is_ready())
        self.assertFalse(simulator.is_running())
        self.assertTrue(simulator.is_finished())

        simulator.reset()

        self.assertTrue(simulator.is_init())
        self.assertFalse(simulator.is_ready())
        self.assertFalse(simulator.is_running())
        self.assertFalse(simulator.is_finished())
Ejemplo n.º 12
0
 def something(value):
     print("t=" + str(simulator.now()) + ": something() with value " +
           str(value))
Ejemplo n.º 13
0
 def something():
     self.test_zero_arguments_info.append(simulator.now())
Ejemplo n.º 14
0
 def relay_finished():
     print("Last athlete finished: 4x100m relay in %.3gs" %
           (simulator.now() / 1e9))
Ejemplo n.º 15
0
 def something():
     print("t=" + str(simulator.now()) + ": something() was called")
     print(simulator._Simulator__event_heap)
Ejemplo n.º 16
0
 def something(self, value):
     print("t=" + str(simulator.now()) +
           ": instance of class Example (x=" + str(self.x) +
           ") something() with value: " + str(value))
Ejemplo n.º 17
0
 def something(value):
     print("t=" + str(simulator.now()) + ": something() with value: " +
           str(value))
     simulator.schedule(200, something,
                        "XYZ")  # 100 time units in the future from now
Ejemplo n.º 18
0
 def we_are_done(value):
     print("t=" + str(simulator.now()) +
           ": we_are_done() with value: " + str(value))
     simulator.end()
Ejemplo n.º 19
0
 def something(val1, val2, abc3, xyz=28):
     print("t=" + str(simulator.now()) + ": something() with: val1=" +
           str(val1) + ", val2=" + str(val2) + ", abc3=" + str(abc3) +
           ", xyz=" + str(xyz))
Ejemplo n.º 20
0
 def something(arg1):
     self.test_one_argument_info.append((simulator.now(), arg1))
Ejemplo n.º 21
0
 def x(v):
     self.test_function_in_function_info.append(
         (simulator.now(), xyz, v))
Ejemplo n.º 22
0
 def x(val):
     result.append((simulator.now(), val))
Ejemplo n.º 23
0
 def check_running():
     self.assertFalse(simulator.is_init())
     self.assertFalse(simulator.is_ready())
     self.assertTrue(simulator.is_running())
     self.assertFalse(simulator.is_finished())
     self.assertEqual(simulator.now(), 0)
Ejemplo n.º 24
0
 def something():
     print("t=" + str(simulator.now()) + ": something() was called")
Ejemplo n.º 25
0
 def something(arg1, arg2, arg3="def", arg4=2384):
     self.test_many_arguments_info.append(
         (simulator.now(), arg1, arg2, arg3, arg4))