-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_day05.py
52 lines (44 loc) · 1.59 KB
/
test_day05.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
from day05 import CargoShip
def test_cargoship_init_moves():
ship = CargoShip('inputs/2022/day05-test.txt')
assert len(ship.moves) == 4
assert ship.moves[0]['moves'] == 1
assert ship.moves[0]['from'] == '2'
assert ship.moves[0]['to'] == '1'
assert ship.moves[-1]['moves'] == 1
assert ship.moves[-1]['from'] == '1'
assert ship.moves[-1]['to'] == '2'
def test_cargoship_init_stacks():
ship = CargoShip('inputs/2022/day05-test.txt')
assert ship.stacks['1'] == ['[Z]', '[N]']
assert '2' in ship.stacks
assert '3' in ship.stacks
assert '4' not in ship.stacks
def test_cargoship_init_stack_names():
ship = CargoShip('inputs/2022/day05-test.txt')
assert ship.stack_names == ['1', '2', '3']
assert ship.stack_names == list(ship.stacks)
assert ship.stack_tops == 'NDP'
def test_cargoship_init_real_data():
ship = CargoShip('inputs/2022/day05.txt')
assert ship.stack_tops == 'ZLFGWFJQP'
def test_cargoship_move_crate():
ship = CargoShip('inputs/2022/day05-test.txt')
ship._move_crate('1', '3')
assert CargoShip.stack_to_str(ship.stacks['3']) == 'PN'
def test_cargoship_move_crate_9001():
ship = CargoShip('inputs/2022/day05-test.txt')
ship._move_crate('1', '3', count=2)
assert CargoShip.stack_to_str(ship.stacks['3']) == 'PZN'
def test_cargoship_do_move():
ship = CargoShip('inputs/2022/day05-test.txt')
ship._do_move({
'moves': 3,
'from': '2',
'to': '1'
})
assert CargoShip.stack_to_str(ship.stacks['1']) == 'ZNDCM'
def test_cargoship_move_crates():
ship = CargoShip('inputs/2022/day05-test.txt')
ship.move_crates()
assert ship.stack_tops == 'CMZ'