Example #1
0
    def test_mdf_homes_rotated(self):
        # Todo: Which minimization is more important?
        variant = load_variant(
            """
            [homes]
            ONE=AAA,BBB
            TWO=BBB,CCC
            TRE=AAA,CCC
            [borders]
            AAA=AMY BBB CCC DDD
            BBB=AMY AAA CCC DDD
            CCC=AMY AAA BBB DDD
            DDD=AMY AAA BBB CCC
        """
        )

        ONE = variant.rep["ONE"]
        TWO = variant.rep["TWO"]
        TRE = variant.rep["TRE"]
        AAA = variant.rep["AAA"]
        BBB = variant.rep["BBB"]
        CCC = variant.rep["CCC"]

        centers = variant.mdf().fold()[2][0]
        single_provs = [[[ONE, TRE], AAA], [[ONE, TWO], BBB], [[TRE, TWO], CCC]]
        single_pows = [[ONE, AAA, BBB], [TRE, AAA, CCC], [TWO, BBB, CCC]]

        self.assertContains([single_provs, single_pows], centers)
Example #2
0
    def test_missing_UNO(self):
        # Map can define maps with no non-home center clause in the MDF.
        variant = load_variant(
            """
            [homes]
            ONE=AAA
            TWO=BBB
            TRE=CCC
            [borders]
            AAA=AMY BBB CCC DDD
            BBB=AMY AAA CCC DDD
            CCC=AMY AAA BBB DDD
            DDD=AMY AAA BBB CCC
        """
        )

        ONE = variant.rep["ONE"]
        TWO = variant.rep["TWO"]
        TRE = variant.rep["TRE"]
        AAA = variant.rep["AAA"]
        BBB = variant.rep["BBB"]
        CCC = variant.rep["CCC"]
        DDD = variant.rep["DDD"]
        mdf = MDF(ONE, TWO, TRE)(([ONE, AAA], [TWO, BBB], [TRE, CCC]), [DDD])(
            (AAA, [AMY, BBB, CCC, DDD]),
            (BBB, [AMY, AAA, CCC, DDD]),
            (CCC, [AMY, AAA, BBB, DDD]),
            (DDD, [AMY, AAA, BBB, CCC]),
        )

        game_map = Map(variant)
        msg = game_map.define(mdf)
        self.failIf(msg, msg)
Example #3
0
 def test_ownership_one(self):
     variant = load_variant(
         """
         [ownership]
         ONE=TWO
     """
     )
     self.failUnlessEqual(variant.ownership, {"ONE": ["TWO"]})
Example #4
0
 def test_season_loaded(self):
     variant = load_variant(
         """
         [variant]
         start=WIN 2000
     """
     )
     self.failUnlessEqual(variant.start, (WIN, 2000))
Example #5
0
 def test_rep_power(self):
     variant = load_variant(
         """
         [homes]
         ONE=TWO
     """
     )
     self.failUnlessEqual(variant.rep, {"ONE": 0x4100})
Example #6
0
 def test_rep_bicoastal(self):
     variant = load_variant(
         """
         [borders]
         ONE=AMY TWO, (FLT NCS) FUR, (FLT SCS) SIX
     """
     )
     self.failUnlessEqual(variant.rep, {"ONE": 0x5600})
Example #7
0
 def test_rep_sea(self):
     variant = load_variant(
         """
         [borders]
         ONE=FLT TWO
     """
     )
     self.failUnlessEqual(variant.rep, {"ONE": 0x5200})
Example #8
0
 def test_rep_inland(self):
     variant = load_variant(
         """
         [borders]
         ONE=AMY TWO
     """
     )
     self.failUnlessEqual(variant.rep, {"ONE": 0x5000})
Example #9
0
 def test_position_spaces(self):
     variant = load_variant(
         """
         [positions]
         ONE=AMY TWO, AMY TRE, FLT FUR
     """
     )
     self.failUnlessEqual(variant.position, {"ONE": ["AMY TWO", "AMY TRE", "FLT FUR"]})
Example #10
0
 def test_position_comma(self):
     variant = load_variant(
         """
         [positions]
         ONE=AMY TWO,FLT TRE,
     """
     )
     self.failUnlessEqual(variant.position, {"ONE": ["AMY TWO", "FLT TRE"]})
Example #11
0
 def test_position_empty(self):
     variant = load_variant(
         """
         [positions]
         ONE=
     """
     )
     self.failUnlessEqual(variant.position, {"ONE": []})
Example #12
0
 def test_position_one(self):
     variant = load_variant(
         """
         [positions]
         ONE=AMY TWO
     """
     )
     self.failUnlessEqual(variant.position, {"ONE": ["AMY TWO"]})
Example #13
0
 def test_ownership_spaces(self):
     variant = load_variant(
         """
         [ownership]
         ONE=TWO, TRE, FUR
     """
     )
     self.failUnlessEqual(variant.ownership, {"ONE": ["TWO", "TRE", "FUR"]})
Example #14
0
 def test_ownership_comma(self):
     variant = load_variant(
         """
         [ownership]
         ONE=TWO,TRE,
     """
     )
     self.failUnlessEqual(variant.ownership, {"ONE": ["TWO", "TRE"]})
Example #15
0
 def test_ownership_empty(self):
     variant = load_variant(
         """
         [ownership]
         ONE=
     """
     )
     self.failUnlessEqual(variant.ownership, {"ONE": []})
Example #16
0
 def test_borders_coastlines(self):
     variant = load_variant(
         """
         [borders]
         ONE=AMY TWO, (FLT SCS) TRE, (FLT NCS) FUR
     """
     )
     self.failUnlessEqual(variant.borders, {"ONE": {AMY: "TWO", (FLT, SCS): "TRE", (FLT, NCS): "FUR"}})
Example #17
0
 def test_bordering_coastline(self):
     variant = load_variant(
         """
         [borders]
         ONE=FLT (TRE SCS)
     """
     )
     self.failUnlessEqual(variant.borders, {"ONE": {FLT: "(TRE SCS)"}})
Example #18
0
 def test_borders_empty(self):
     variant = load_variant(
         """
         [borders]
         ONE=
     """
     )
     self.failUnlessEqual(variant.borders, {"ONE": {}})
Example #19
0
 def test_mapname_loaded(self):
     variant = load_variant(
         """
         [variant]
         mapname=Something
     """
     )
     self.failUnlessEqual(variant.mapname, "Something")
Example #20
0
 def test_borders_army(self):
     variant = load_variant(
         """
         [borders]
         ONE=AMY TWO TRE FUR
     """
     )
     self.failUnlessEqual(variant.borders, {"ONE": {AMY: "TWO TRE FUR"}})
Example #21
0
 def test_rep_coastal(self):
     variant = load_variant(
         """
         [borders]
         ONE=AMY TWO, FLT FUR
     """
     )
     self.failUnlessEqual(variant.rep, {"ONE": 0x5400})
Example #22
0
 def test_borders_swiss(self):
     variant = load_variant(
         """
         [borders]
         ONE=AMY
     """
     )
     self.failUnlessEqual(variant.borders, {"ONE": {AMY: ""}})
Example #23
0
 def test_description_loaded(self):
     variant = load_variant(
         """
         [variant]
         description=Something
     """
     )
     self.failUnlessEqual(variant.description, "Something")
Example #24
0
 def test_borders_island(self):
     variant = load_variant(
         """
         [borders]
         ONE=AMY, FLT TWO
     """
     )
     self.failUnlessEqual(variant.borders, {"ONE": {AMY: "", FLT: "TWO"}})
Example #25
0
 def test_judge_loaded(self):
     variant = load_variant(
         """
         [variant]
         judge=Something
     """
     )
     self.failUnlessEqual(variant.judge, "Something")
Example #26
0
 def test_borders_fleet(self):
     variant = load_variant(
         """
         [borders]
         ONE=FLT TWO TRE FUR
     """
     )
     self.failUnlessEqual(variant.borders, {"ONE": {FLT: "TWO TRE FUR"}})
Example #27
0
 def test_mdf_borders_empty(self):
     variant = load_variant(
         """
         [borders]
     """
     )
     borders = variant.mdf().fold()[3]
     self.failUnlessEqual(borders, [])
Example #28
0
 def test_borders_lake(self):
     variant = load_variant(
         """
         [borders]
         ONE=FLT
     """
     )
     self.failUnlessEqual(variant.borders, {"ONE": {FLT: ""}})
Example #29
0
 def test_powers_both(self):
     variant = load_variant(
         """
         [powers]
         ONE=name,adj
     """
     )
     self.failUnlessEqual(variant.powers, {"ONE": ("name", "adj")})
Example #30
0
 def test_borders_coastal(self):
     variant = load_variant(
         """
         [borders]
         ONE=AMY TWO, FLT TRE
     """
     )
     self.failUnlessEqual(variant.borders, {"ONE": {AMY: "TWO", FLT: "TRE"}})