コード例 #1
0
ファイル: common_test.py プロジェクト: kandluis/terrazero
 def test_equality_operator(self) -> None:
     self.assertEqual(
         common.Income(coins=10, workers=1, bridges=2, priests=4, power=10),
         common.Income(coins=10, workers=1, bridges=2, priests=4, power=10))
     self.assertNotEqual(
         common.Income(coins=10, workers=1, bridges=2, priests=4, power=4),
         common.Income(coins=10, workers=1, bridges=2, priests=4, power=3))
コード例 #2
0
 def _tp_income_spots(self) -> List[common.Income]:
     return [
         common.Income(coins=2, power=1) for _ in range(
             Faction.TOTAL_STRUCTURES[common.Structure.TRADING_POST] // 2)
     ] + [
         common.Income(coins=2, power=2) for _ in range(
             Faction.TOTAL_STRUCTURES[common.Structure.TRADING_POST] // 2)
     ]
コード例 #3
0
ファイル: common_test.py プロジェクト: kandluis/terrazero
 def test_addition_operator(self) -> None:
     self.assertEqual(
         common.Income(power=1) + common.Income(power=2, priests=4),
         common.Income(power=3, priests=4))
     self.assertEqual(
         sum((common.Income(power=10), common.Income(power=2, bridges=4))),
         common.Income(power=12, bridges=4))
     income = common.Income(power=10)
     income += common.Income(power=1)
     self.assertEqual(income, common.Income(power=11))
コード例 #4
0
    def test_income_for_structures(self) -> None:
        engineer = faction.Engineers()

        # tests SH + SA + DW income, with 1 DW incoming missing.
        self.assertEqual(
            engineer.income_for_structures({
                common.Structure.DWELLING: 4,
                common.Structure.STRONGHOLD: 1,
                common.Structure.SANCTUARY: 1
            }), common.Income(workers=3, priests=1, power=2))

        # Test TP + TE income, extra power.
        self.assertEqual(
            engineer.income_for_structures({
                common.Structure.TRADING_POST: 3,
                common.Structure.TEMPLE: 2
            }), common.Income(priests=1, coins=6, power=9))
コード例 #5
0
    def test_income_for_structures(self) -> None:
        halfling = faction.Halflings()

        # tests SH + SA + DW income.
        self.assertEqual(
            halfling.income_for_structures({
                common.Structure.DWELLING: 4,
                common.Structure.STRONGHOLD: 1,
                common.Structure.SANCTUARY: 1
            }), common.Income(workers=(4 + 1), priests=1, power=2))

        # Tests last DW does not give income + TP + TE income
        self.assertEqual(
            halfling.income_for_structures({
                common.Structure.DWELLING: 8,
                common.Structure.TRADING_POST: 3,
                common.Structure.TEMPLE: 1
            }), common.Income(workers=8, priests=1, coins=6, power=4))
コード例 #6
0
 def _worker_income_spots(self) -> List[common.Income]:
     return [
         common.Income(workers=1),
         common.Income(workers=1),
         common.Income(),
         common.Income(workers=1),
         common.Income(workers=1),
         common.Income(),
         common.Income(workers=1),
         common.Income(workers=1)
     ]
コード例 #7
0
ファイル: common_test.py プロジェクト: kandluis/terrazero
 def test_subtraction(self) -> None:
     self.assertEqual(
         common.Income(power=1) - common.Income(power=1, priests=4),
         common.Income(power=0, priests=-4))
     income = common.Income(power=10)
     income -= common.Income(power=1)
     self.assertEqual(income, common.Income(power=9))
コード例 #8
0
ファイル: common_test.py プロジェクト: kandluis/terrazero
 def test_income_from_bonus_cards(self) -> None:
     self.assertEqual(common.BonusCard.PRIEST.player_income(),
                      common.Income(priests=1))
     self.assertEqual(common.BonusCard.WORKER_3POWER.player_income(),
                      common.Income(workers=1, power=3))
     self.assertEqual(common.BonusCard.COIN6.player_income(),
                      common.Income(coins=6))
     self.assertEqual(common.BonusCard.POWER3_SHIPPING.player_income(),
                      common.Income(power=3))
     self.assertEqual(common.BonusCard.SPADE_COIN2.player_income(),
                      common.Income(coins=2))
     self.assertEqual(common.BonusCard.CULT_COIN4.player_income(),
                      common.Income(coins=4))
     self.assertEqual(common.BonusCard.DWELLING_COIN2.player_income(),
                      common.Income(coins=2))
     self.assertEqual(common.BonusCard.TRADING_POST_WORKER.player_income(),
                      common.Income(workers=1))
     self.assertEqual(common.BonusCard.STRONGHOLD_WORKER2.player_income(),
                      common.Income(workers=2))
コード例 #9
0
 def _temple_income_spots(self) -> List[common.Income]:
     return [
         common.Income(priests=1),
         common.Income(power=5),
         common.Income(priests=1)
     ]
コード例 #10
0
 def _default_income(self) -> common.Income:
     return common.Income()
コード例 #11
0
 def _temple_income_spots(self) -> List[common.Income]:
     return [
         common.Income(priests=1)
         for _ in range(Faction.TOTAL_STRUCTURES[common.Structure.TEMPLE])
     ]
コード例 #12
0
 def _worker_income_spots(self) -> List[common.Income]:
     return [
         common.Income(workers=1) for _ in range(
             Faction.TOTAL_STRUCTURES[common.Structure.DWELLING] - 1)
     ] + [common.Income()]
コード例 #13
0
ファイル: common_test.py プロジェクト: kandluis/terrazero
    def test_functions_raise_errors(self) -> None:
        with self.assertRaises(utils.InternalError):
            common.Income().is_valid()

        with self.assertRaises(utils.InternalError):
            common.Income().force_valid()
コード例 #14
0
ファイル: common_test.py プロジェクト: kandluis/terrazero
 def testIncomeFromFavorTiel(self) -> None:
     self.assertEqual(common.FavorTile.COIN3_FIRE.player_income(),
                      common.Income(coins=3))
     self.assertEqual(common.FavorTile.WORKER_POWER_EARTH2.player_income(),
                      common.Income(workers=1, power=1))
     self.assertEqual(common.FavorTile.POWER4_AIR2.player_income(),
                      common.Income(power=4))
     self.assertEqual(common.FavorTile.TP3VP_WATER.player_income(),
                      common.Income())
     self.assertEqual(common.FavorTile.DWELLING2_EARTH.player_income(),
                      common.Income())
     self.assertEqual(common.FavorTile.TP1234_AIR.player_income(),
                      common.Income())
     self.assertEqual(common.FavorTile.TOWN_FIRE2.player_income(),
                      common.Income())
     self.assertEqual(common.FavorTile.CULTACTION_AIR2.player_income(),
                      common.Income())
     self.assertEqual(common.FavorTile.FIRE3.player_income(),
                      common.Income())
     self.assertEqual(common.FavorTile.WATER3.player_income(),
                      common.Income())
     self.assertEqual(common.FavorTile.EARTH3.player_income(),
                      common.Income())
     self.assertEqual(common.FavorTile.AIR3.player_income(),
                      common.Income())
コード例 #15
0
 def _sanctuary_income(self) -> common.Income:
     return common.Income(priests=1)
コード例 #16
0
 def _strong_hold_income(self) -> common.Income:
     return common.Income(power=2)
コード例 #17
0
 def _default_income(self) -> common.Income:
     return common.Income(workers=1)