Skip to content

Commit caed7d0

Browse files
authored
Merge pull request #363 from Limmen/stopping_tests
Stopping-game tests
2 parents 7587d5d + 9651e20 commit caed7d0

11 files changed

+1563
-25
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
3 1 2 2 2 72 12 0.9
2+
0 0
3+
1 0
4+
2 0
5+
WAIT
6+
RECOVER
7+
FALSEALARM
8+
ATTACK
9+
o_0
10+
o_1
11+
0 1
12+
0 1
13+
0 1
14+
0 1
15+
0 0 0 0 0 0.06
16+
0 0 0 1 0 0.04000000000000001
17+
0 0 0 0 1 0.12
18+
0 0 0 1 1 0.08000000000000002
19+
0 0 0 0 2 0.42
20+
0 0 0 1 2 0.27999999999999997
21+
0 0 1 0 0 0.1
22+
0 0 1 1 0 0.1
23+
0 0 1 0 1 0.15
24+
0 0 1 1 1 0.15
25+
0 0 1 0 2 0.25
26+
0 0 1 1 2 0.25
27+
0 1 0 0 0 0.3
28+
0 1 0 1 0 0.2
29+
0 1 0 0 1 0.18
30+
0 1 0 1 1 0.12
31+
0 1 0 0 2 0.12
32+
0 1 0 1 2 0.08000000000000002
33+
0 1 1 0 0 0.15
34+
0 1 1 1 0 0.15
35+
0 1 1 0 1 0.2
36+
0 1 1 1 1 0.2
37+
0 1 1 0 2 0.15
38+
0 1 1 1 2 0.15
39+
1 0 0 0 0 0.18
40+
1 0 0 1 0 0.12
41+
1 0 0 0 1 0.24
42+
1 0 0 1 1 0.16000000000000003
43+
1 0 0 0 2 0.18
44+
1 0 0 1 2 0.12
45+
1 0 1 0 0 0.2
46+
1 0 1 1 0 0.2
47+
1 0 1 0 1 0.15
48+
1 0 1 1 1 0.15
49+
1 0 1 0 2 0.15
50+
1 0 1 1 2 0.15
51+
1 1 0 0 0 0.18
52+
1 1 0 1 0 0.12
53+
1 1 0 0 1 0.3
54+
1 1 0 1 1 0.2
55+
1 1 0 0 2 0.12
56+
1 1 0 1 2 0.08000000000000002
57+
1 1 1 0 0 0.25
58+
1 1 1 1 0 0.25
59+
1 1 1 0 1 0.2
60+
1 1 1 1 1 0.2
61+
1 1 1 0 2 0.05
62+
1 1 1 1 2 0.05
63+
2 0 0 0 0 0.12
64+
2 0 0 1 0 0.08000000000000002
65+
2 0 0 0 1 0.12
66+
2 0 0 1 1 0.08000000000000002
67+
2 0 0 0 2 0.36
68+
2 0 0 1 2 0.24
69+
2 0 1 0 0 0.15
70+
2 0 1 1 0 0.15
71+
2 0 1 0 1 0.15
72+
2 0 1 1 1 0.15
73+
2 0 1 0 2 0.2
74+
2 0 1 1 2 0.2
75+
2 1 0 0 0 0.24
76+
2 1 0 1 0 0.16000000000000003
77+
2 1 0 0 1 0.18
78+
2 1 0 1 1 0.12
79+
2 1 0 0 2 0.18
80+
2 1 0 1 2 0.12
81+
2 1 1 0 0 0.1
82+
2 1 1 1 0 0.1
83+
2 1 1 0 1 0.25
84+
2 1 1 1 1 0.25
85+
2 1 1 0 2 0.15
86+
2 1 1 1 2 0.15
87+
0 0 0 -1.0
88+
0 0 1 -1.0
89+
0 1 0 -4.0
90+
0 1 1 -4.0
91+
1 0 0 -2.0
92+
1 0 1 -2.0
93+
1 1 0 -5.0
94+
1 1 1 -5.0
95+
2 0 0 -3.0
96+
2 0 1 -3.0
97+
2 1 0 -6.0
98+
2 1 1 -6.0
99+
0 0.1 0.9

simulation-system/libs/csle-tolerance/src/csle_tolerance/util/intrusion_recovery_pomdp_util.py

-1
Original file line numberDiff line numberDiff line change
@@ -522,7 +522,6 @@ def generate_transitions(game_config: IntrusionRecoveryGameConfig) -> List[str]:
522522
if prob > 0:
523523
transition = f"{s} {a1} {a2} {i} {s_prime} {prob}"
524524
transitions.append(transition)
525-
526525
return transitions
527526

528527
@staticmethod

simulation-system/libs/csle-tolerance/tests/test_intrusion_recovery_game_config.py

+12-15
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
)
44
from csle_tolerance.util.intrusion_recovery_pomdp_util import IntrusionRecoveryPomdpUtil
55
import pytest_mock
6-
import numpy as np
76

87

98
class TestIntrusionRecoveryGameConfigSuite:
@@ -28,7 +27,7 @@ def test__init__(self) -> None:
2827
observations=[0, 1],
2928
cost_tensor=[[1, 2], [3, 4]],
3029
observation_tensor=[[1, 2], [3, 4]],
31-
transition_tensor=[[[0.1, 0.2], [0.3, 0.4]], [[0.5, 0.6], [0.7, 0.8]]],
30+
transition_tensor=[[[[0.1, 0.2], [0.3, 0.4]], [[0.5, 0.6], [0.7, 0.8]]]],
3231
b1=[0.1, 0.9],
3332
T=100,
3433
simulation_env_name="sim_env",
@@ -48,8 +47,7 @@ def test__init__(self) -> None:
4847
assert dto.cost_tensor == [[1, 2], [3, 4]]
4948
assert dto.observation_tensor == [[1, 2], [3, 4]]
5049
assert dto.transition_tensor == [
51-
[[0.1, 0.2], [0.3, 0.4]],
52-
[[0.5, 0.6], [0.7, 0.8]],
50+
[[[0.1, 0.2], [0.3, 0.4]], [[0.5, 0.6], [0.7, 0.8]]]
5351
]
5452
assert dto.b1 == [0.1, 0.9]
5553
assert dto.T == 100
@@ -74,7 +72,7 @@ def test__str__(self) -> None:
7472
observations=[0, 1],
7573
cost_tensor=[[1, 2], [3, 4]],
7674
observation_tensor=[[1, 2], [3, 4]],
77-
transition_tensor=[[[0.1, 0.2], [0.3, 0.4]], [[0.5, 0.6], [0.7, 0.8]]],
75+
transition_tensor=[[[[0.1, 0.2], [0.3, 0.4]], [[0.5, 0.6], [0.7, 0.8]]]],
7876
b1=[0.1, 0.9],
7977
T=100,
8078
simulation_env_name="sim_env",
@@ -85,7 +83,7 @@ def test__str__(self) -> None:
8583
"eta: 0.5, p_a: 0.8, p_c_1: 0.1, BTR: 10, negate_costs: True, seed: 123, "
8684
"discount_factor: 0.9, states: [0, 1, 2], actions: [0, 1], observations: [[1, 2], [3, 4]], "
8785
"cost_tensor: [[1, 2], [3, 4]], observation_tensor: [[1, 2], [3, 4]], "
88-
"transition_tensor: [[[0.1, 0.2], [0.3, 0.4]], [[0.5, 0.6], [0.7, 0.8]]], b1:[0.1, 0.9], "
86+
"transition_tensor: [[[[0.1, 0.2], [0.3, 0.4]], [[0.5, 0.6], [0.7, 0.8]]]], b1:[0.1, 0.9], "
8987
"T: 100, simulation_env_name: sim_env, gym_env_name: gym_env, max_horizon: 1000"
9088
)
9189
assert dto.__str__() == expected
@@ -107,7 +105,7 @@ def test_from_dict(self) -> None:
107105
"observations": [0, 1],
108106
"cost_tensor": [[1, 2], [3, 4]],
109107
"observation_tensor": [[1, 2], [3, 4]],
110-
"transition_tensor": [[[0.1, 0.2], [0.3, 0.4]], [[0.5, 0.6], [0.7, 0.8]]],
108+
"transition_tensor": [[[[0.1, 0.2], [0.3, 0.4]], [[0.5, 0.6], [0.7, 0.8]]]],
111109
"b1": [0.1, 0.9],
112110
"T": 100,
113111
"simulation_env_name": "sim_env",
@@ -127,8 +125,7 @@ def test_from_dict(self) -> None:
127125
assert dto.cost_tensor == [[1, 2], [3, 4]]
128126
assert dto.observation_tensor == [[1, 2], [3, 4]]
129127
assert dto.transition_tensor == [
130-
[[0.1, 0.2], [0.3, 0.4]],
131-
[[0.5, 0.6], [0.7, 0.8]],
128+
[[[0.1, 0.2], [0.3, 0.4]], [[0.5, 0.6], [0.7, 0.8]]]
132129
]
133130
assert dto.b1 == [0.1, 0.9]
134131
assert dto.T == 100
@@ -152,7 +149,7 @@ def test_to_dict(self) -> None:
152149
observations=[0, 1],
153150
cost_tensor=[[1, 2], [3, 4]],
154151
observation_tensor=[[1, 2], [3, 4]],
155-
transition_tensor=[[[0.1, 0.2], [0.3, 0.4]], [[0.5, 0.6], [0.7, 0.8]]],
152+
transition_tensor=[[[[0.1, 0.2], [0.3, 0.4]], [[0.5, 0.6], [0.7, 0.8]]]],
156153
b1=[0.1, 0.9],
157154
T=100,
158155
simulation_env_name="sim_env",
@@ -171,7 +168,7 @@ def test_to_dict(self) -> None:
171168
"observations": [0, 1],
172169
"cost_tensor": [[1, 2], [3, 4]],
173170
"observation_tensor": [[1, 2], [3, 4]],
174-
"transition_tensor": [[[0.1, 0.2], [0.3, 0.4]], [[0.5, 0.6], [0.7, 0.8]]],
171+
"transition_tensor": [[[[0.1, 0.2], [0.3, 0.4]], [[0.5, 0.6], [0.7, 0.8]]]],
175172
"b1": [0.1, 0.9],
176173
"T": 100,
177174
"simulation_env_name": "sim_env",
@@ -186,7 +183,7 @@ def test_from_json_file(self, mocker: pytest_mock.MockFixture) -> None:
186183
eta = 2
187184
p_a = 0.05
188185
p_c_1 = 0.01
189-
BTR = np.inf
186+
BTR = 100
190187
negate_costs = False
191188
discount_factor = 1 - p_c_1
192189
num_observations = 100
@@ -214,7 +211,7 @@ def test_from_json_file(self, mocker: pytest_mock.MockFixture) -> None:
214211
eta=eta,
215212
p_a=p_a,
216213
p_c_1=p_c_1,
217-
BTR=BTR,
214+
BTR=100,
218215
negate_costs=negate_costs,
219216
seed=999,
220217
discount_factor=discount_factor,
@@ -227,7 +224,7 @@ def test_from_json_file(self, mocker: pytest_mock.MockFixture) -> None:
227224
observation_tensor=observation_tensor,
228225
transition_tensor=transition_tensor,
229226
b1=IntrusionRecoveryPomdpUtil.initial_belief(p_a=p_a),
230-
T=BTR,
227+
T=int(BTR),
231228
simulation_env_name=simulation_name,
232229
gym_env_name="csle-tolerance-intrusion-recovery-pomdp-v1",
233230
)
@@ -238,7 +235,7 @@ def test_from_json_file(self, mocker: pytest_mock.MockFixture) -> None:
238235
assert dto.eta == 2
239236
assert dto.p_a == 0.05
240237
assert dto.p_c_1 == 0.01
241-
assert dto.BTR == np.inf
238+
assert dto.BTR == 100
242239
assert dto.negate_costs is False
243240
assert dto.seed == 999
244241
assert dto.discount_factor == 1 - p_c_1

simulation-system/libs/csle-tolerance/tests/test_intrusion_recovery_pomdp_config.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ def test_from_json_file(self, mocker: pytest_mock.MockFixture) -> None:
202202
p_c_1 = 0.01
203203
p_c_2 = 0.01
204204
p_u = 0.0
205-
BTR = np.inf
205+
BTR = 10
206206
negate_costs = False
207207
discount_factor = 1 - p_c_1
208208
num_observations = 100
@@ -259,7 +259,7 @@ def test_from_json_file(self, mocker: pytest_mock.MockFixture) -> None:
259259
assert dto.p_c_1 == 0.01
260260
assert dto.p_c_2 == 0.01
261261
assert dto.p_u == 0.0
262-
assert dto.BTR == np.inf
262+
assert dto.BTR == BTR
263263
assert dto.negate_costs is False
264264
assert dto.seed == 999
265265
assert dto.discount_factor == 1 - p_c_1

simulation-system/libs/csle-tolerance/tests/test_intrusion_recovery_pomdp_env.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import csle_common.constants.constants as constants
88
import numpy as np
99
import pytest
10+
from typing import Dict, Any
1011

1112

1213
class TestInstrusionRecoveryPomdpEnvSuite:
@@ -153,7 +154,7 @@ def test_info(self) -> None:
153154
gym_env_name="gym",
154155
max_horizon=np.inf,
155156
)
156-
info = {}
157+
info: Dict[str, Any] = {}
157158
with pytest.raises(IndexError):
158159
assert IntrusionRecoveryPomdpEnv(config)._info(info) is not None
159160

@@ -247,7 +248,7 @@ def test_reset_traces(self) -> None:
247248
gym_env_name="gym",
248249
max_horizon=np.inf,
249250
)
250-
assert IntrusionRecoveryPomdpEnv(config).reset_traces() is None
251+
assert not IntrusionRecoveryPomdpEnv(config).reset_traces()
251252

252253
@patch("time.time") # Mock the time.time function
253254
@patch(

0 commit comments

Comments
 (0)