def test_unknown_player(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) bi.purchase("red", 3) with self.assertRaises(BoardError): bi.upgrade("reed", 2)
def test_current_rent_amount(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) bi.purchase("red", 3) self.assertEquals(bi.get_rent(1, 7), 2) bi.upgrade("red", 1) self.assertEquals(bi.get_rent(1, 7), 10) bi.upgrade("red", 1) self.assertEquals(bi.get_rent(1, 7), 30) bi.upgrade("red", 1) self.assertEquals(bi.get_rent(1, 7), 90) bi.upgrade("red", 1) self.assertEquals(bi.get_rent(1, 7), 160) bi.upgrade("red", 1) self.assertEquals(bi.get_rent(1, 7), 250) bi.downgrade("red", 1) self.assertEquals(bi.get_rent(1, 7), 160) bi.downgrade("red", 1) self.assertEquals(bi.get_rent(1, 7), 90) bi.downgrade("red", 1) self.assertEquals(bi.get_rent(1, 7), 30) bi.downgrade("red", 1) self.assertEquals(bi.get_rent(1, 7), 10) bi.downgrade("red", 1) self.assertEquals(bi.get_rent(1, 7), 2)
def test_level(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) bi.purchase("red", 3) self.assertEquals(bi.get_level(1), 1) bi.upgrade("red", 1) self.assertEquals(bi.get_level(1), 2) bi.upgrade("red", 1) self.assertEquals(bi.get_level(1), 3) bi.upgrade("red", 1) self.assertEquals(bi.get_level(1), 4) bi.upgrade("red", 1) self.assertEquals(bi.get_level(1), 5) bi.upgrade("red", 1) self.assertEquals(bi.get_level(1), 6)
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_houses_return_when_hotel_upgrade(self): bi = Board(["red", "blue"], 10000, available_houses=20, available_hotels=4) bi.purchase("red", 1) bi.purchase("red", 3) self.assertEquals(20, bi.available_houses) self.assertEquals(4, bi.available_hotels) bi.upgrade("red", 1) self.assertEquals(19, bi.available_houses) self.assertEquals(4, bi.available_hotels) bi.upgrade("red", 1) self.assertEquals(18, bi.available_houses) self.assertEquals(4, bi.available_hotels) bi.upgrade("red", 1) self.assertEquals(17, bi.available_houses) self.assertEquals(4, bi.available_hotels) bi.upgrade("red", 1) self.assertEquals(16, bi.available_houses) self.assertEquals(4, bi.available_hotels) bi.upgrade("red", 1) self.assertEquals(20, bi.available_houses) self.assertEquals(3, bi.available_hotels)
def test_non_property_position(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) bi.purchase("red", 3) with self.assertRaises(BoardError): bi.upgrade("red", 2)
def test_unowned_property(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) bi.purchase("red", 3) with self.assertRaises(BoardError): bi.upgrade("red", 6)
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_can_mortgage_other_props_of_same_color(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) bi.purchase("red", 3) bi.upgrade("red", 1) self.assertFalse(bi.can_mortgage("red", 1)) self.assertFalse(bi.can_mortgage("red", 3))
def test_can_upgrade_no_houses(self): bi = Board(["red", "blue"], 10000) bi.available_houses = 1 bi.purchase("red", 1) bi.purchase("red", 3) bi.upgrade("red", 1) self.assertFalse(bi.can_upgrade("red", 1)) self.assertFalse(bi.can_upgrade("red", 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_value(self): bi = Board(["red", "blue"], 10000) bi.purchase("red", 1) bi.purchase("red", 3) bi.upgrade("red", 1) self.assertEquals(110, bi.get_value(1)) bi.downgrade("red", 1) self.assertEquals(60, bi.get_value(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))
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_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_houses_decline(self): bi = Board(["red", "blue"], 10000, available_houses=20, available_hotels=4) bi.purchase("red", 1) bi.purchase("red", 3) self.assertEquals(20, bi.available_houses) bi.upgrade("red", 1) self.assertEquals(19, bi.available_houses) bi.upgrade("red", 1) self.assertEquals(18, bi.available_houses) bi.upgrade("red", 1) self.assertEquals(17, bi.available_houses)
def test_proper_number(self): bi = Board(["red", "blue"]) bi.purchase("red", 6) self.assertEquals(1, bi.get_total_levels_owned("red")) self.assertEquals(0, bi.get_total_levels_owned("blue")) bi.purchase("red", 8) bi.purchase("red", 9) self.assertEquals(3, bi.get_total_levels_owned("red")) bi.upgrade("red", 6) bi.upgrade("red", 6) bi.upgrade("red", 6) self.assertEquals(6, bi.get_total_levels_owned("red")) bi.upgrade("red", 8) bi.upgrade("red", 8) bi.upgrade("red", 8) self.assertEquals(9, bi.get_total_levels_owned("red"))
def test_can_upgrade_max_level(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) bi.upgrade("red", 1) bi.upgrade("red", 1) self.assertFalse(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))