def test_can_downgrade(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) bi.purchase("red", 3) bi.upgrade("red", 1) self.assertTrue(bi.can_downgrade("red", 1)) bi.downgrade("red", 1) self.assertFalse(bi.can_downgrade("red", 1)) bi.mortgage("red", 1) self.assertFalse(bi.can_downgrade("red", 1)) bi.unmortgage("red", 1) self.assertFalse(bi.can_downgrade("red", 1)) bi.upgrade("red", 1) self.assertTrue(bi.can_downgrade("red", 1))
def test_can_downgrade_non_monopoly(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) self.assertFalse(bi.can_downgrade("red", 1)) self.assertFalse(bi.can_downgrade("blue", 1))
def test_can_downgrade_monopoly_mortgaged(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) bi.purchase("red", 3) bi.mortgage("red", 1) self.assertFalse(bi.can_downgrade("red", 1)) self.assertFalse(bi.can_downgrade("blue", 1))
def test_can_downgrade(self): bi = Board(["red", "blue"]) bi.purchase("red", 1) bi.purchase("red", 3) self.assertFalse(bi.can_downgrade("red", 1)) bi.mortgage("red", 1) self.assertFalse(bi.can_downgrade("red", 1))
def test_can_downgrade_level_1(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) bi.purchase("red", 3) self.assertFalse(bi.can_downgrade("red", 1)) self.assertFalse(bi.can_downgrade("blue", 1)) self.assertFalse(bi.can_downgrade("red", 3)) self.assertFalse(bi.can_downgrade("blue", 3))
def test_can_downgrade_monopoly_level_4(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) bi.purchase("red", 3) bi.upgrade("red", 1) bi.upgrade("red", 1) bi.upgrade("red", 1) self.assertTrue(bi.can_downgrade("red", 1)) self.assertFalse(bi.can_downgrade("blue", 1)) self.assertFalse(bi.can_downgrade("red", 3))
def test_can_downgrade_4_houses(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) bi.purchase("red", 3) bi.available_houses = 4 bi.upgrade("red", 1) bi.upgrade("red", 1) bi.upgrade("red", 1) bi.upgrade("red", 1) bi.upgrade("red", 1) self.assertTrue(bi.can_downgrade("red", 1)) self.assertFalse(bi.can_downgrade("blue", 1))
def test_can_downgrade_non_max(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) bi.purchase("red", 3) bi.upgrade("red", 1) bi.upgrade("red", 1) bi.downgrade("red", 1) self.assertTrue(bi.can_downgrade("red", 1))
def test_can_downgrade(self): bi = Board(["red", "blue"]) bi.purchase("red", 6) bi.purchase("red", 8) bi.purchase("red", 9) self.assertFalse(bi.can_downgrade("red", 6)) self.assertFalse(bi.can_downgrade("red", 8)) self.assertFalse(bi.can_downgrade("red", 9)) bi.mortgage("red", 6) bi.mortgage("red", 8) bi.mortgage("red", 9) self.assertFalse(bi.can_downgrade("red", 6)) self.assertFalse(bi.can_downgrade("red", 8)) self.assertFalse(bi.can_downgrade("red", 9)) bi.unmortgage("red", 6) bi.unmortgage("red", 8) bi.unmortgage("red", 9) self.assertFalse(bi.can_downgrade("red", 6)) self.assertFalse(bi.can_downgrade("red", 8)) self.assertFalse(bi.can_downgrade("red", 9))
def test_can_downgrade_max_no_houses(self): bi = Board(["red", "blue"], 10000, 4, 4) bi.purchase("red", 1) bi.purchase("red", 3) bi.purchase("blue", 6) bi.purchase("blue", 8) bi.purchase("blue", 9) bi.upgrade("red", 1) bi.upgrade("red", 1) bi.upgrade("red", 1) bi.upgrade("red", 1) bi.upgrade("red", 1) bi.upgrade("blue", 6) bi.upgrade("blue", 6) bi.upgrade("blue", 6) bi.upgrade("blue", 6) self.assertFalse(bi.can_downgrade("red", 1)) self.assertTrue(bi.can_downgrade("blue", 6))
def test_can_downgrade_unowned(self): bi = Board(["red", "blue"], 10000) self.assertFalse(bi.can_downgrade("red", 1)) self.assertFalse(bi.can_downgrade("blue", 1))