Skip to content

Commit 1760522

Browse files
Raise Error whenever incorrect bounds are given
1 parent f490ea9 commit 1760522

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

ciw/tests/test_state_tracker.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1199,4 +1199,19 @@ def test_compare_state_probabilities_to_analytical(self):
11991199
self.assertEqual(round(state_probs[state], 2), round(expected_probs[state], 2))
12001200

12011201
error_squared = sum([(state_probs[i] - expected_probs[i])**2 for i in sorted(state_probs.keys())])
1202-
self.assertEqual(round(error_squared, 4), 0)
1202+
self.assertEqual(round(error_squared, 4), 0)
1203+
1204+
def test_error_checking_for_state_probabilities(self):
1205+
ciw.seed(0)
1206+
N = ciw.create_network(
1207+
arrival_distributions=[ciw.dists.Exponential(1)],
1208+
service_distributions=[ciw.dists.Exponential(2)],
1209+
number_of_servers=[1]
1210+
)
1211+
Q = ciw.Simulation(N, tracker=ciw.trackers.SystemPopulation())
1212+
Q.simulate_until_max_time(10)
1213+
1214+
self.assertRaises(ValueError, Q.statetracker.state_probabilities, (-1, 5))
1215+
self.assertRaises(ValueError, Q.statetracker.state_probabilities, (4, 2))
1216+
self.assertRaises(ValueError, Q.statetracker.state_probabilities, (-1, -4))
1217+
self.assertRaises(ValueError, Q.statetracker.state_probabilities, (3, 3))

ciw/trackers/state_tracker.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ def state_probabilities(self, observation_period=(0, float("Inf"))):
5959
prev_date = self.history[0][0]
6060
prev_state = self.history[0][1]
6161

62+
if start < 0 or end <= start:
63+
raise ValueError('Observation period need to be a positive interval above zero')
64+
6265
for event in self.history:
6366
date = event[0]
6467
state = event[1]

0 commit comments

Comments
 (0)