コード例 #1
0
 def test_wait_time(self):
     q1 = MapPh1N(MAP.exponential(1.0), PhaseType.exponential(2.0), 5)
     q2 = MapPh1N(MAP.exponential(2.0), PhaseType.exponential(5.0), 10)
     exp_q1 = MM1N(1.0, 2.0, 5)
     exp_q2 = MM1N(2, 5, 10)
     self.assertAlmostEqual(q1.wait_time, exp_q1.wait_time)
     self.assertAlmostEqual(q2.wait_time, exp_q2.wait_time)
コード例 #2
0
 def test_system_size_avg(self):
     q1 = MapPh1N(MAP.exponential(1.0), PhaseType.exponential(2.0), 5)
     q2 = MapPh1N(MAP.exponential(2.0), PhaseType.exponential(5.0), 10)
     exp_q1 = MM1N(1.0, 2.0, 5)
     exp_q2 = MM1N(2, 5, 10)
     self.assertAlmostEqual(q1.system_size_avg, exp_q1.system_size_avg)
     self.assertAlmostEqual(q2.system_size_avg, exp_q2.system_size_avg)
コード例 #3
0
 def test_system_size_pmf(self):
     q1 = MapPh1N(MAP.exponential(1.0), PhaseType.exponential(2.0), 5)
     q2 = MapPh1N(MAP.exponential(2.0), PhaseType.exponential(5.0), 10)
     exp_q1 = MM1N(1.0, 2.0, 5)
     exp_q2 = MM1N(2, 5, 10)
     assert_almost_equal(q1.system_size_pmf(10), exp_q1.system_size_pmf(10))
     self.assertEqual(len(q1.system_size_pmf()), q1.capacity + 1)
     assert_almost_equal(q2.system_size_pmf(), exp_q2.system_size_pmf())
コード例 #4
0
 def test_valid_creation(self):
     q1 = MapPh1N(MAP.exponential(1.0), PhaseType.exponential(2.0), 5)
     q2 = MapPh1N(MAP.exponential(2.0), PhaseType.exponential(5.0), 4)
     self.assertAlmostEqual(q1.arrival_rate, 1)
     self.assertAlmostEqual(q1.service_rate, 2)
     self.assertEqual(q1.capacity, 5)
     self.assertAlmostEqual(q2.arrival_rate, 2)
     self.assertAlmostEqual(q2.service_rate, 5)
     self.assertAlmostEqual(q2.capacity, 4)
コード例 #5
0
    def test_moments_map_arrival(self):
        source = MAP.exponential(3.0)

        self.assertIsInstance(stats.moment(source, 1), np.ndarray)
        self.assertIsInstance(stats.moment(source, 2), np.ndarray)
        assert_almost_equal(stats.moment(source, 1), [1 / 3], 10)
        assert_almost_equal(stats.moment(source, 2), [1 / 3, 2 / 9], 10)
コード例 #6
0
 def test_departure_process(self):
     q1 = MapPh1N(MAP.exponential(1.0), PhaseType.exponential(2.0), 20)
     q2 = MapPh1N(MAP.erlang(4, 1.0), PhaseType.erlang(3, 2.0), 20)
     self.assertIsInstance(q1.departure, MAP)
     self.assertIsInstance(q2.departure, MAP)
     # Since queue is very long, arrival rate will be close to departure
     # rate.
     self.assertAlmostEqual(q1.departure.rate, q1.arrival_rate, 5)
     self.assertAlmostEqual(q2.departure.rate, q2.arrival_rate, 5)
コード例 #7
0
    def test_invalid_creation(self):
        ar1 = MAP.exponential(1.0)
        srv1 = PhaseType.exponential(2.0)

        with self.assertRaises(ValueError):
            MapPh1N(ar1, srv1, -1)
        with self.assertRaises(ValueError):
            MapPh1N(ar1, srv1, 0)
        with self.assertRaises(TypeError):
            MapPh1N(ar1, srv1, '1')
        with self.assertRaises(TypeError):
            MapPh1N(ar1, srv1, 1.2)
        with self.assertRaises(TypeError):
            MapPh1N(ar1, srv1, [1, 2])
コード例 #8
0
 def test_utilization(self):
     q1 = MapPh1N(MAP.exponential(1.0), PhaseType.exponential(2.0), 20)
     q2 = MapPh1N(MAP.erlang(4, 1.0), PhaseType.erlang(3, 2.0), 20)
     self.assertAlmostEqual(q1.utilization, 1 / 2)
     self.assertAlmostEqual(q2.utilization, 3 / 8)
コード例 #9
0
 def test_service_distribution(self):
     q = MapPh1N(MAP.exponential(1.0), PhaseType.exponential(2.0), 5)
     self.assertIsInstance(q.service, PhaseType)
     self.assertAlmostEqual(q.service.rate, q.service_rate)
コード例 #10
0
 def test_arrival_process(self):
     q = MapPh1N(MAP.exponential(1.0), PhaseType.exponential(2.0), 5)
     self.assertIsInstance(q.arrival, MAP)
     self.assertAlmostEqual(q.arrival.rate, q.arrival_rate)