def test_two_exits_from_one_turf(self): a, b, c = Turf(), Turf(), Turf() a.add_exit((0, 1), b) a.add_exit((1, 0), c) self.assertEqual(a.exits[(0, 1)], b) self.assertEqual(a.exits[(1, 0)], c) self.assertEqual(len(a.exits), 2)
def test_add_one_directional_exit(self): dx, dy = (1, 0) a, b = Turf(), Turf() a.add_exit((dx, dy), b) self.assertEqual(a.exits[(dx, dy)], b) self.assertEqual(len(a.exits), 1) with self.assertRaises(KeyError): b.exits[(-dx, -dy)]
def test_add_bidirectional_exit(self): dx, dy = (1, 0) a, b = Turf(), Turf() a.add_exit((dx, dy), b) b.add_exit((-dx, -dy), a) self.assertEqual(a.exits[(dx, dy)], b) self.assertEqual(len(a.exits), 1) self.assertEqual(b.exits[(-dx, -dy)], a) self.assertEqual(len(b.exits), 1)
def test_only_specific_deltas_are_permitted(self): invalid_deltas = [(9, 0), (0, 0), ('potato', 'tomato')] a, b = Turf(), Turf() for dx, dy in invalid_deltas: with self.assertRaises(Turf.InvalidExitDelta): a.add_exit((dx, dy), b)