-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaoc_spec.cr
46 lines (40 loc) · 1.09 KB
/
aoc_spec.cr
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
require "spec"
require "../src/aoc"
describe "run" do
it "works for inc commands" do
run([["inc", "b"]]).should eq 0
run([["inc", "a"]]).should eq 1
run([["inc", "a"], ["inc", "b"]]).should eq 1
run([["inc", "b"], ["inc", "a"]]).should eq 1
run([["inc", "a"], ["inc", "b"], ["inc", "a"]]).should eq 2
end
it "works for dec commands" do
run([["dec", "b"]]).should eq 0
run([["dec", "a"]]).should eq -1
run([["dec", "a"], ["dec", "b"]]).should eq -1
run([["dec", "b"], ["dec", "a"]]).should eq -1
run([["dec", "a"], ["dec", "b"], ["dec", "a"]]).should eq -2
end
it "works for cpy commands" do
run([["cpy", "23", "a"]]).should eq 23
run([["cpy", "-1", "a"]]).should eq -1
run([
["cpy", "9", "b"],
["cpy", "b", "a"],
]).should eq 9
run([
["cpy", "-7", "d"],
["cpy", "d", "c"],
["cpy", "c", "b"],
["cpy", "b", "a"],
]).should eq -7
end
it "works for jnz commands" do
run([
["inc", "a"],
["jnz", "a", "2"],
["inc", "a"], # skipped
["inc", "a"],
]).should eq 2
end
end