def test_can_upgrade_owned(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) self.assertFalse(bi.can_upgrade("red", 1)) self.assertFalse(bi.can_upgrade("blue", 1))
def test_other_can_upgrade_when_unmortgaging(self): bi = Board(["red", "blue"]) bi.purchase("red", 6) bi.purchase("red", 8) bi.purchase("red", 9) self.assertTrue(bi.can_upgrade("red", 6)) self.assertTrue(bi.can_upgrade("red", 8)) self.assertTrue(bi.can_upgrade("red", 9)) bi.mortgage("red", 6) self.assertFalse(bi.can_upgrade("red", 6)) self.assertFalse(bi.can_upgrade("red", 8)) self.assertFalse(bi.can_upgrade("red", 9)) bi.unmortgage("red", 6) self.assertTrue(bi.can_upgrade("red", 6)) self.assertTrue(bi.can_upgrade("red", 8)) self.assertTrue(bi.can_upgrade("red", 9)) bi.mortgage("red", 8) self.assertFalse(bi.can_upgrade("red", 6)) self.assertFalse(bi.can_upgrade("red", 8)) self.assertFalse(bi.can_upgrade("red", 9)) bi.unmortgage("red", 8) self.assertTrue(bi.can_upgrade("red", 6)) self.assertTrue(bi.can_upgrade("red", 8)) self.assertTrue(bi.can_upgrade("red", 9))
def test_can_upgrade(self): bi = Board(["red", "blue"]) bi.purchase("red", 1) bi.purchase("red", 3) self.assertTrue(bi.can_upgrade("red", 1)) bi.mortgage("red", 1) self.assertFalse(bi.can_upgrade("red", 1))
def test_can_upgrade_monopoly(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) bi.purchase("red", 3) self.assertTrue(bi.can_upgrade("red", 1)) self.assertFalse(bi.can_upgrade("blue", 1)) self.assertTrue(bi.can_upgrade("red", 3)) self.assertFalse(bi.can_upgrade("blue", 3))
def test_can_upgrade_no_hotels(self): bi = Board(["red", "blue"], 10000, available_houses=20, available_hotels=0) bi.purchase("red", 1) bi.purchase("red", 3) bi.upgrade("red", 1) bi.upgrade("red", 1) bi.upgrade("red", 1) bi.upgrade("red", 1) self.assertFalse(bi.can_upgrade("red", 1)) self.assertTrue(bi.can_upgrade("red", 3))
def test_can_upgrade_non_max(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) bi.purchase("red", 3) bi.upgrade("red", 1) self.assertTrue(bi.can_upgrade("red", 1))
def test_other_props_cant_upgrade(self): bi = Board(["red", "blue"]) bi.purchase("red", 1) bi.purchase("red", 3) self.assertTrue(bi.can_upgrade("red", 1)) bi.mortgage("red", 1) self.assertRaises(BoardError, lambda: bi.upgrade("red", 3)) self.assertRaises(BoardError, lambda: bi.upgrade("red", 1))