-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_advent2017_18.py
84 lines (81 loc) · 3.02 KB
/
test_advent2017_18.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import pytest
from advent2017_18 import process
@pytest.mark.parametrize(
"input, expected",
[
(
([("set", "i", "31")], {"i": 0, "pointer": 0, "result": 0}),
([("set", "i", "31")], {"i": 31, "pointer": 1, "result": 0}),
),
(
([("set", "i", "a")], {"a": 57, "i": 0, "pointer": 0, "result": 0}),
([("set", "i", "a")], {"a": 57, "i": 57, "pointer": 1, "result": 0}),
),
(
([("add", "i", "31")], {"i": 2, "pointer": 0, "result": 0}),
([("add", "i", "31")], {"i": 33, "pointer": 1, "result": 0}),
),
(
([("add", "i", "a")], {"a": 2, "i": 3, "pointer": 0, "result": 0}),
([("add", "i", "a")], {"a": 2, "i": 5, "pointer": 1, "result": 0}),
),
(
([("mul", "i", "31")], {"i": 2, "pointer": 0, "result": 0}),
([("mul", "i", "31")], {"i": 62, "pointer": 1, "result": 0}),
),
(
([("mul", "i", "a")], {"a": 2, "i": 2, "pointer": 0, "result": 0}),
([("mul", "i", "a")], {"a": 2, "i": 4, "pointer": 1, "result": 0}),
),
(
([("mod", "i", "10")], {"i": 31, "pointer": 0, "result": 0}),
([("mod", "i", "10")], {"i": 1, "pointer": 1, "result": 0}),
),
(
([("mod", "i", "a")], {"a": 10, "i": 31, "pointer": 0, "result": 0}),
([("mod", "i", "a")], {"a": 10, "i": 1, "pointer": 1, "result": 0}),
),
(
([("snd", "i")], {"a": 10, "i": 31, "pointer": 0, "result": 0}),
([("snd", "i")], {"a": 10, "i": 31, "pointer": 1, "result": 31}),
),
(
([("jgz", "i", "10")], {"i": 0, "pointer": 0, "result": 0}),
([("jgz", "i", "10")], {"i": 0, "pointer": 1, "result": 0}),
),
(
([("jgz", "i", "10")], {"i": 1, "pointer": 0, "result": 0}),
([("jgz", "i", "10")], {"i": 1, "pointer": 10, "result": 0}),
),
(
([("jgz", "i", "a")], {"a": 10, "i": 1, "pointer": 0, "result": 0}),
([("jgz", "i", "a")], {"a": 10, "i": 1, "pointer": 10, "result": 0}),
),
(
([("jgz", "i", "a")], {"a": -5, "i": 1, "pointer": 0, "result": 0}),
([("jgz", "i", "a")], {"a": -5, "i": 1, "pointer": -5, "result": 0}),
),
(
(
[("rcv", "i")],
{"a": 10, "i": 1, "pointer": 0, "result": 0, "end_program": None},
),
(
[("rcv", "i")],
{"a": 10, "i": 1, "pointer": 0, "result": 0, "end_program": True},
),
),
(
(
[("rcv", "i")],
{"a": 10, "i": 0, "pointer": 0, "result": 0, "end_program": None},
),
(
[("rcv", "i")],
{"a": 10, "i": 0, "pointer": 1, "result": 0, "end_program": None},
),
),
],
)
def test_process(input, expected):
assert process(*input) == expected