add readme, move testing function to lib
This commit is contained in:
parent
2fb8318506
commit
8b3f543bda
5 changed files with 118 additions and 10 deletions
|
|
@ -134,3 +134,14 @@ def run_scenario(input_trace, expected_output_trace, statechart_class, INITIAL,
|
|||
elif verbose:
|
||||
print_diff()
|
||||
return True
|
||||
|
||||
def run_scenarios(scenarios, statechart_class, initial, idempotent, verbose=True):
|
||||
ok = True
|
||||
for scenario in scenarios:
|
||||
print(f"Running scenario: {scenario["name"]}")
|
||||
ok = run_scenario(scenario["input_events"], scenario["output_events"], statechart_class, initial, idempotent, verbose=verbose) and ok
|
||||
print("--------")
|
||||
if ok:
|
||||
print("All scenarios passed.")
|
||||
else:
|
||||
print("Some scenarios failed.")
|
||||
|
|
|
|||
63
StartingPoint/runner_exercises_tests.py
Normal file
63
StartingPoint/runner_exercises_tests.py
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
from srcgen import a, b, c, d, e
|
||||
from lib.test import run_scenarios
|
||||
|
||||
SCENARIOS_A = [
|
||||
{
|
||||
"name": "A",
|
||||
"input_events": [],
|
||||
"output_events": [
|
||||
(1000000000, "x", None),
|
||||
(2000000000, "x", None),
|
||||
(3000000000, "x", None),
|
||||
],
|
||||
},
|
||||
]
|
||||
SCENARIOS_B = [
|
||||
{
|
||||
"name": "B",
|
||||
"input_events": [],
|
||||
"output_events": [
|
||||
(2000000000, "inner", None),
|
||||
(3000000000, "outer", None),
|
||||
(5000000000, "inner", None),
|
||||
(6000000000, "outer", None),
|
||||
(8000000000, "inner", None),
|
||||
(9000000000, "outer", None),
|
||||
],
|
||||
},
|
||||
]
|
||||
SCENARIOS_C = [
|
||||
{
|
||||
"name": "C",
|
||||
"input_events": [],
|
||||
"output_events": [],
|
||||
},
|
||||
]
|
||||
SCENARIOS_D = [
|
||||
{
|
||||
"name": "D",
|
||||
"input_events": [],
|
||||
"output_events": [],
|
||||
},
|
||||
]
|
||||
SCENARIOS_E = [
|
||||
{
|
||||
"name": "E",
|
||||
"input_events": [],
|
||||
"output_events": [
|
||||
(1000000000, "x", None),
|
||||
(1000000000, "y", None),
|
||||
(2000000000, "x", None),
|
||||
(2000000000, "y", None),
|
||||
(3000000000, "x", None),
|
||||
(3000000000, "y", None),
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
if __name__ == "__main__":
|
||||
run_scenarios(SCENARIOS_A, a.A, [], [], verbose=True)
|
||||
run_scenarios(SCENARIOS_B, b.B, [], [], verbose=True)
|
||||
run_scenarios(SCENARIOS_C, c.C, [], [], verbose=True)
|
||||
run_scenarios(SCENARIOS_D, d.D, [], [], verbose=True)
|
||||
run_scenarios(SCENARIOS_E, e.E, [], [], verbose=True)
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
import tkinter
|
||||
import atexit
|
||||
import sys
|
||||
|
||||
# load generated Statechart code
|
||||
from srcgen.water_level_simulator import WaterLevelSimulator
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import functools
|
||||
from lib.test import run_scenario
|
||||
from lib.test import run_scenarios
|
||||
|
||||
# from srcgen.lock_controller import LockController
|
||||
from srcgen.solution import Solution as LockController # Teacher's solution
|
||||
|
|
@ -229,12 +229,4 @@ INITIAL = [
|
|||
]
|
||||
|
||||
if __name__ == "__main__":
|
||||
ok = True
|
||||
for scenario in SCENARIOS:
|
||||
print(f"Running scenario: {scenario["name"]}")
|
||||
ok = run_scenario(scenario["input_events"], scenario["output_events"], LockController, INITIAL, IDEMPOTENT, verbose=False) and ok
|
||||
print("--------")
|
||||
if ok:
|
||||
print("All scenarios passed.")
|
||||
else:
|
||||
print("Some scenarios failed.")
|
||||
run_scenarios(SCENARIOS, LockController, INITIAL, IDEMPOTENT)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue