diff --git a/tests/example_tests/input/A1_in.txt b/tests/example_tests/input/A1_in.txt new file mode 100644 index 0000000..ab1339a --- /dev/null +++ b/tests/example_tests/input/A1_in.txt @@ -0,0 +1,8 @@ +4 7 +1 0 1 +0 0 1 +0 2 3 +1 0 1 +1 1 2 +0 0 2 +1 1 3 diff --git a/tests/example_tests/input/A1_out.txt b/tests/example_tests/input/A1_out.txt new file mode 100644 index 0000000..5565ed6 --- /dev/null +++ b/tests/example_tests/input/A1_out.txt @@ -0,0 +1,4 @@ +0 +1 +0 +1 diff --git a/tests/example_tests/input/B1_in.txt b/tests/example_tests/input/B1_in.txt new file mode 100644 index 0000000..291b92d --- /dev/null +++ b/tests/example_tests/input/B1_in.txt @@ -0,0 +1,7 @@ +5 5 +1 2 3 4 5 +1 0 5 +1 2 4 +0 3 10 +1 0 5 +1 0 3 diff --git a/tests/example_tests/input/B1_out.txt b/tests/example_tests/input/B1_out.txt new file mode 100644 index 0000000..bcc0016 --- /dev/null +++ b/tests/example_tests/input/B1_out.txt @@ -0,0 +1,4 @@ +15 +7 +25 +6 diff --git a/tests/example_tests/input/C1_in.txt b/tests/example_tests/input/C1_in.txt new file mode 100644 index 0000000..a8c18db --- /dev/null +++ b/tests/example_tests/input/C1_in.txt @@ -0,0 +1,6 @@ +5 +4 10 6 3 +6 5 4 3 +1 1 0 0 +31415 92653 58979 32384 +1000000000 1000000000 999999999 999999999 diff --git a/tests/example_tests/input/C1_out.txt b/tests/example_tests/input/C1_out.txt new file mode 100644 index 0000000..9bf207b --- /dev/null +++ b/tests/example_tests/input/C1_out.txt @@ -0,0 +1,5 @@ +3 +13 +0 +314095480 +499999999500000000 diff --git a/tests/example_tests/input/D1_in.txt b/tests/example_tests/input/D1_in.txt new file mode 100644 index 0000000..8beef8d --- /dev/null +++ b/tests/example_tests/input/D1_in.txt @@ -0,0 +1,4 @@ +3 3 +#.. +..# +... diff --git a/tests/example_tests/input/D1_out.txt b/tests/example_tests/input/D1_out.txt new file mode 100644 index 0000000..dba0fe7 --- /dev/null +++ b/tests/example_tests/input/D1_out.txt @@ -0,0 +1,4 @@ +3 +#>< +><# +><. diff --git a/tests/example_tests/input/E1_in.txt b/tests/example_tests/input/E1_in.txt new file mode 100644 index 0000000..ef48fa0 --- /dev/null +++ b/tests/example_tests/input/E1_in.txt @@ -0,0 +1,4 @@ +3 1 +5 3 2 +1 4 8 +7 6 9 diff --git a/tests/example_tests/input/E1_out.txt b/tests/example_tests/input/E1_out.txt new file mode 100644 index 0000000..275818a --- /dev/null +++ b/tests/example_tests/input/E1_out.txt @@ -0,0 +1,4 @@ +19 +X.. +..X +.X. diff --git a/tests/example_tests/input/E2_in.txt b/tests/example_tests/input/E2_in.txt new file mode 100644 index 0000000..1683489 --- /dev/null +++ b/tests/example_tests/input/E2_in.txt @@ -0,0 +1,4 @@ +3 2 +10 10 1 +10 10 1 +1 1 10 diff --git a/tests/example_tests/input/E2_out.txt b/tests/example_tests/input/E2_out.txt new file mode 100644 index 0000000..a338cbf --- /dev/null +++ b/tests/example_tests/input/E2_out.txt @@ -0,0 +1,4 @@ +50 +XX. +XX. +..X diff --git a/tests/example_tests/input/F1_in.txt b/tests/example_tests/input/F1_in.txt new file mode 100644 index 0000000..9c43d44 --- /dev/null +++ b/tests/example_tests/input/F1_in.txt @@ -0,0 +1,3 @@ +4 5 +1 2 3 4 +5 6 7 8 9 diff --git a/tests/example_tests/input/F1_out.txt b/tests/example_tests/input/F1_out.txt new file mode 100644 index 0000000..472de40 --- /dev/null +++ b/tests/example_tests/input/F1_out.txt @@ -0,0 +1 @@ +5 16 34 60 70 70 59 36 diff --git a/tests/example_tests/input/F2_in.txt b/tests/example_tests/input/F2_in.txt new file mode 100644 index 0000000..b7d6b96 --- /dev/null +++ b/tests/example_tests/input/F2_in.txt @@ -0,0 +1,3 @@ +1 1 +10000000 +10000000 diff --git a/tests/example_tests/input/F2_out.txt b/tests/example_tests/input/F2_out.txt new file mode 100644 index 0000000..d632954 --- /dev/null +++ b/tests/example_tests/input/F2_out.txt @@ -0,0 +1 @@ +871938225 diff --git a/tests/example_tests/input/G1_in.txt b/tests/example_tests/input/G1_in.txt new file mode 100644 index 0000000..d45ca1a --- /dev/null +++ b/tests/example_tests/input/G1_in.txt @@ -0,0 +1,8 @@ +6 7 +1 4 +5 2 +3 0 +5 5 +4 1 +0 3 +4 2 diff --git a/tests/example_tests/input/G1_out.txt b/tests/example_tests/input/G1_out.txt new file mode 100644 index 0000000..60bdf40 --- /dev/null +++ b/tests/example_tests/input/G1_out.txt @@ -0,0 +1,5 @@ +4 +1 5 +2 1 4 +1 2 +2 0 3 diff --git a/tests/example_tests/input/H1_in.txt b/tests/example_tests/input/H1_in.txt new file mode 100644 index 0000000..b606d4f --- /dev/null +++ b/tests/example_tests/input/H1_in.txt @@ -0,0 +1,4 @@ +3 2 +1 4 +2 5 +0 6 diff --git a/tests/example_tests/input/H1_out.txt b/tests/example_tests/input/H1_out.txt new file mode 100644 index 0000000..0ecfb0f --- /dev/null +++ b/tests/example_tests/input/H1_out.txt @@ -0,0 +1,4 @@ +Yes +4 +2 +0 diff --git a/tests/example_tests/input/H2_in.txt b/tests/example_tests/input/H2_in.txt new file mode 100644 index 0000000..31d62cc --- /dev/null +++ b/tests/example_tests/input/H2_in.txt @@ -0,0 +1,4 @@ +3 3 +1 4 +2 5 +0 6 diff --git a/tests/example_tests/input/H2_out.txt b/tests/example_tests/input/H2_out.txt new file mode 100644 index 0000000..cf45697 --- /dev/null +++ b/tests/example_tests/input/H2_out.txt @@ -0,0 +1 @@ +No diff --git a/tests/example_tests/input/I1_in.txt b/tests/example_tests/input/I1_in.txt new file mode 100644 index 0000000..a647f89 --- /dev/null +++ b/tests/example_tests/input/I1_in.txt @@ -0,0 +1 @@ +abcbcba diff --git a/tests/example_tests/input/I1_out.txt b/tests/example_tests/input/I1_out.txt new file mode 100644 index 0000000..aabe6ec --- /dev/null +++ b/tests/example_tests/input/I1_out.txt @@ -0,0 +1 @@ +21 diff --git a/tests/example_tests/input/I2_in.txt b/tests/example_tests/input/I2_in.txt new file mode 100644 index 0000000..1f4f5fe --- /dev/null +++ b/tests/example_tests/input/I2_in.txt @@ -0,0 +1 @@ +mississippi diff --git a/tests/example_tests/input/I2_out.txt b/tests/example_tests/input/I2_out.txt new file mode 100644 index 0000000..59343b0 --- /dev/null +++ b/tests/example_tests/input/I2_out.txt @@ -0,0 +1 @@ +53 diff --git a/tests/example_tests/input/I3_in.txt b/tests/example_tests/input/I3_in.txt new file mode 100644 index 0000000..e57708b --- /dev/null +++ b/tests/example_tests/input/I3_in.txt @@ -0,0 +1 @@ +ababacaca diff --git a/tests/example_tests/input/I3_out.txt b/tests/example_tests/input/I3_out.txt new file mode 100644 index 0000000..bb95160 --- /dev/null +++ b/tests/example_tests/input/I3_out.txt @@ -0,0 +1 @@ +33 diff --git a/tests/example_tests/input/I4_in.txt b/tests/example_tests/input/I4_in.txt new file mode 100644 index 0000000..ccc3e7b --- /dev/null +++ b/tests/example_tests/input/I4_in.txt @@ -0,0 +1 @@ +aaaaa diff --git a/tests/example_tests/input/I4_out.txt b/tests/example_tests/input/I4_out.txt new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/tests/example_tests/input/I4_out.txt @@ -0,0 +1 @@ +5 diff --git a/tests/example_tests/input/J1_in.txt b/tests/example_tests/input/J1_in.txt new file mode 100644 index 0000000..ead868d --- /dev/null +++ b/tests/example_tests/input/J1_in.txt @@ -0,0 +1,7 @@ +5 5 +1 2 3 2 1 +2 1 5 +3 2 3 +1 3 1 +2 2 4 +3 1 3 diff --git a/tests/example_tests/input/J1_out.txt b/tests/example_tests/input/J1_out.txt new file mode 100644 index 0000000..64e8645 --- /dev/null +++ b/tests/example_tests/input/J1_out.txt @@ -0,0 +1,4 @@ +3 +3 +2 +6 diff --git a/tests/example_tests/input/K1_in.txt b/tests/example_tests/input/K1_in.txt new file mode 100644 index 0000000..8268178 --- /dev/null +++ b/tests/example_tests/input/K1_in.txt @@ -0,0 +1,9 @@ +5 7 +1 2 3 4 5 +1 0 5 +0 2 4 100 101 +1 0 3 +0 1 3 102 103 +1 2 5 +0 2 5 104 105 +1 0 5 diff --git a/tests/example_tests/input/K1_out.txt b/tests/example_tests/input/K1_out.txt new file mode 100644 index 0000000..19aafcd --- /dev/null +++ b/tests/example_tests/input/K1_out.txt @@ -0,0 +1,4 @@ +15 +404 +41511 +4317767 diff --git a/tests/example_tests/input/L1_in.txt b/tests/example_tests/input/L1_in.txt new file mode 100644 index 0000000..3a23c03 --- /dev/null +++ b/tests/example_tests/input/L1_in.txt @@ -0,0 +1,7 @@ +5 5 +0 1 0 0 1 +2 1 5 +1 3 4 +2 2 5 +1 1 3 +2 1 2 diff --git a/tests/example_tests/input/L1_out.txt b/tests/example_tests/input/L1_out.txt new file mode 100644 index 0000000..4c5d59c --- /dev/null +++ b/tests/example_tests/input/L1_out.txt @@ -0,0 +1,3 @@ +2 +0 +1 diff --git a/tests/example_tests/test_examples.py b/tests/example_tests/test_examples.py new file mode 100644 index 0000000..52198a7 --- /dev/null +++ b/tests/example_tests/test_examples.py @@ -0,0 +1,37 @@ +from pathlib import Path + +import pytest + +import util + + +class TestExamples: + @pytest.mark.parametrize('problem_id, source', ( + ('A', 'dsu_practice.py'), + ('B', 'fenwick_practice.py'), + ('C', 'floor_sum_practice.py'), + ('D', 'maxflow_practice.py'), + ('E', 'mincostflow_practice.py'), + ('F', 'convolution_practice.py'), + ('F', 'convolution_practice_int.py'), + ('G', 'scc_practice.py'), + ('H', 'twosat_practice.py'), + ('I', 'sa_practice.py'), + ('J', 'segtree_practice.py'), + ('J', 'segtree_practice_reversed.py'), + ('K', 'lazysegtree_practice_k.py'), + ('K', 'lazysegtree_practice_k_wo_modint.py'), + ('L', 'lazysegtree_practice_l.py'))) + def test_examples(self, problem_id, source) -> None: + input_path = (Path(__file__).parent / 'input') + stdin_paths = list(input_path.glob(f'{problem_id}*_in.txt')) + stdout_paths = list(input_path.glob(f'{problem_id}*_out.txt')) + stdin_paths.sort() + stdout_paths.sort() + + for stdin_path, stdout_path in zip(stdin_paths, stdout_paths): + with open(stdin_path) as stdin: + output = util.run(source, stdin).decode() + + with open(stdout_path) as stdout: + assert output == stdout.read() diff --git a/tests/example_tests/util.py b/tests/example_tests/util.py new file mode 100644 index 0000000..afbb67b --- /dev/null +++ b/tests/example_tests/util.py @@ -0,0 +1,8 @@ +from pathlib import Path +from subprocess import check_output +import sys + + +def run(source, stdin): + source_path = Path(__file__).parent.parent.parent / 'example' / source + return check_output((sys.executable, source_path), stdin=stdin)