65 lines
2.7 KiB
Python
65 lines
2.7 KiB
Python
import unittest
|
|
from prog import *
|
|
|
|
class Rotate(unittest.TestCase):
|
|
def test_rotate_L90(self):
|
|
self.assertEqual(new_dir_after_rotate("N", "L", 90), "W")
|
|
self.assertEqual(new_dir_after_rotate("E", "L", 90), "N")
|
|
self.assertEqual(new_dir_after_rotate("S", "L", 90), "E")
|
|
self.assertEqual(new_dir_after_rotate("W", "L", 90), "S")
|
|
|
|
def test_rotate_R90(self):
|
|
self.assertEqual(new_dir_after_rotate("N", "R", 90), "E")
|
|
self.assertEqual(new_dir_after_rotate("E", "R", 90), "S")
|
|
self.assertEqual(new_dir_after_rotate("S", "R", 90), "W")
|
|
self.assertEqual(new_dir_after_rotate("W", "R", 90), "N")
|
|
|
|
def test_rotate_L180(self):
|
|
self.assertEqual(new_dir_after_rotate("N", "L", 180), "S")
|
|
self.assertEqual(new_dir_after_rotate("E", "L", 180), "W")
|
|
self.assertEqual(new_dir_after_rotate("S", "L", 180), "N")
|
|
self.assertEqual(new_dir_after_rotate("W", "L", 180), "E")
|
|
|
|
def test_rotate_R180(self):
|
|
self.assertEqual(new_dir_after_rotate("N", "R", 180), "S")
|
|
self.assertEqual(new_dir_after_rotate("E", "R", 180), "W")
|
|
self.assertEqual(new_dir_after_rotate("S", "R", 180), "N")
|
|
self.assertEqual(new_dir_after_rotate("W", "R", 180), "E")
|
|
|
|
def test_rotate_L270(self):
|
|
self.assertEqual(new_dir_after_rotate("N", "L", 270), "E")
|
|
self.assertEqual(new_dir_after_rotate("E", "L", 270), "S")
|
|
self.assertEqual(new_dir_after_rotate("S", "L", 270), "W")
|
|
self.assertEqual(new_dir_after_rotate("W", "L", 270), "N")
|
|
|
|
def test_rotate_R270(self):
|
|
self.assertEqual(new_dir_after_rotate("N", "R", 270), "W")
|
|
self.assertEqual(new_dir_after_rotate("E", "R", 270), "N")
|
|
self.assertEqual(new_dir_after_rotate("S", "R", 270), "E")
|
|
self.assertEqual(new_dir_after_rotate("W", "R", 270), "S")
|
|
|
|
def test_rotate_L360(self):
|
|
self.assertEqual(new_dir_after_rotate("N", "L", 360), "N")
|
|
self.assertEqual(new_dir_after_rotate("E", "L", 360), "E")
|
|
self.assertEqual(new_dir_after_rotate("S", "L", 360), "S")
|
|
self.assertEqual(new_dir_after_rotate("W", "L", 360), "W")
|
|
|
|
def test_rotate_R360(self):
|
|
self.assertEqual(new_dir_after_rotate("N", "R", 360), "N")
|
|
self.assertEqual(new_dir_after_rotate("E", "R", 360), "E")
|
|
self.assertEqual(new_dir_after_rotate("S", "R", 360), "S")
|
|
self.assertEqual(new_dir_after_rotate("W", "R", 360), "W")
|
|
|
|
class Result(unittest.TestCase):
|
|
def setUp(self):
|
|
self.inp = get_input(sample = True)
|
|
|
|
def test_part_1(self):
|
|
result = get_result(self.inp)
|
|
self.assertEqual(result, 25)
|
|
|
|
def test_part_2(self):
|
|
result = get_result(self.inp, part = 2)
|
|
self.assertEqual(result, 286)
|
|
|