Exemple #1
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 #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_unknown_player(self):
        bi = Board(["red", "blue"], 10000)
        bi.purchase("red", 1)
        bi.purchase("red", 3)

        with self.assertRaises(BoardError):
            bi.downgrade("reed", 2)
Exemple #4
0
    def test_unowned_property(self):
        bi = Board(["red", "blue"], 10000)
        bi.purchase("red", 1)
        bi.purchase("red", 3)

        with self.assertRaises(BoardError):
            bi.downgrade("red", 6)
Exemple #5
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.downgrade("red", 2)
Exemple #6
0
    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))
Exemple #7
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 #8
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))

        bi.downgrade("red", 1)

        self.assertTrue(bi.can_mortgage("red", 1))
Exemple #9
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)

        bi.downgrade("red", 1)

        self.assertEquals(bi.get_level(1), 5)

        bi.downgrade("red", 1)

        self.assertEquals(bi.get_level(1), 4)

        bi.downgrade("red", 1)

        self.assertEquals(bi.get_level(1), 3)

        bi.downgrade("red", 1)

        self.assertEquals(bi.get_level(1), 2)

        bi.downgrade("red", 1)

        self.assertEquals(bi.get_level(1), 1)
Exemple #10
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)
        bi.upgrade("red", 1)
        bi.upgrade("red", 1)
        bi.upgrade("red", 1)
        bi.upgrade("red", 1)
        bi.upgrade("red", 1)

        self.assertEquals(20, bi.available_houses)
        self.assertEquals(3, bi.available_hotels)

        bi.downgrade("red", 1)

        self.assertEquals(16, bi.available_houses)
        self.assertEquals(4, bi.available_hotels)
Exemple #11
0
    def test_houses_increase(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)
        bi.downgrade("red", 1)
        self.assertEquals(18, bi.available_houses)
        bi.downgrade("red", 1)
        self.assertEquals(19, bi.available_houses)
        bi.downgrade("red", 1)
        self.assertEquals(20, bi.available_houses)