def test_invalid_direction(self): with self.assertRaises(ValueError): vec = avt.Vector("4J")
def test_duplicate_vertical_vectors_raise_error(self): with self.assertRaises(ValueError): vec = avt.Vector("4+ 4+ 3- 7E")
def test_negative_value(self): with self.assertRaises(ValueError): vec = avt.Vector("-4E 3A")
def test_two_h_120_b(self): vec = avt.Vector("4E 3A") self.assertEqual("3F 1E", str(vec))
def test_menagerie(self): vec = avt.Vector("14F 3B 6+ 10D 2- 4A 2C") self.assertEqual("6F 3E 4+", str(vec)) self.assertEqual("UV+ (-9,3,4)", repr(vec))
def test_add_stills(self): v1 = avt.Vector("") v2 = avt.Vector("") self.assertEqual("STILL", str(v1 + v2)) self.assertEqual("STILL", str(v1)) self.assertEqual("STILL", str(v2))
def test_zeroed_default(self): vec = avt.Vector("") self.assertEqual("STILL", str(vec))
def test_two_h_opposites_cancel(self): vec = avt.Vector("4F 4C") self.assertEqual("STILL", str(vec))
def test_two_v_opposites(self): vec = avt.Vector("8+ 3-") self.assertEqual("5+", str(vec))
def test_two_h_order_reversed(self): vec = avt.Vector("4D 22E") self.assertEqual("22E 4D", str(vec))
def test_two_h_opposites(self): vec = avt.Vector("22E 8B") self.assertEqual("14E", str(vec))
def test_two_h(self): vec = avt.Vector("22F 8A") self.assertEqual("22F 8A", str(vec))
def test_two_case_insensitive(self): vec = avt.Vector("18d 12c") self.assertEqual("18D 12C", str(vec))
def test_one_h(self): vec = avt.Vector("22E") self.assertEqual("22E", str(vec))
def test_no_direction(self): with self.assertRaises(ValueError): vec = avt.Vector("3")
def test_two_h_120(self): vec = avt.Vector("4F 3B") self.assertEqual("3A 1F", str(vec))
def test_no_value(self): with self.assertRaises(ValueError): vec = avt.Vector("A")
def test_three_h_120(self): vec = avt.Vector("4F 3B 1D") self.assertEqual("2A 1F", str(vec))
def test_add_still_to_moving(self): v1 = avt.Vector("3F 2-") v2 = avt.Vector("") self.assertEqual("3F 2-", str(v1 + v2)) self.assertEqual("3F 2-", str(v1)) self.assertEqual("STILL", str(v2))
def test_everything_cancels(self): vector = avt.Vector("14F 14D 14A 14B 14C 14E 6- 6+") expected = "STILL" self.assertEqual(expected, vector.movement_grid())