Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
    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))
Exemple #5
0
    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)
Exemple #6
0
    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)
Exemple #7
0
    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)
Exemple #8
0
    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))
Exemple #9
0
    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))
Exemple #10
0
    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))
Exemple #11
0
    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))
Exemple #12
0
    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))
Exemple #13
0
    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))
Exemple #14
0
    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))
Exemple #15
0
    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))
Exemple #16
0
    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)
Exemple #17
0
    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"))
Exemple #18
0
    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))