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)
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)
def test_ownership_one(self): variant = load_variant( """ [ownership] ONE=TWO """ ) self.failUnlessEqual(variant.ownership, {"ONE": ["TWO"]})
def test_season_loaded(self): variant = load_variant( """ [variant] start=WIN 2000 """ ) self.failUnlessEqual(variant.start, (WIN, 2000))
def test_rep_power(self): variant = load_variant( """ [homes] ONE=TWO """ ) self.failUnlessEqual(variant.rep, {"ONE": 0x4100})
def test_rep_bicoastal(self): variant = load_variant( """ [borders] ONE=AMY TWO, (FLT NCS) FUR, (FLT SCS) SIX """ ) self.failUnlessEqual(variant.rep, {"ONE": 0x5600})
def test_rep_sea(self): variant = load_variant( """ [borders] ONE=FLT TWO """ ) self.failUnlessEqual(variant.rep, {"ONE": 0x5200})
def test_rep_inland(self): variant = load_variant( """ [borders] ONE=AMY TWO """ ) self.failUnlessEqual(variant.rep, {"ONE": 0x5000})
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"]})
def test_position_comma(self): variant = load_variant( """ [positions] ONE=AMY TWO,FLT TRE, """ ) self.failUnlessEqual(variant.position, {"ONE": ["AMY TWO", "FLT TRE"]})
def test_position_empty(self): variant = load_variant( """ [positions] ONE= """ ) self.failUnlessEqual(variant.position, {"ONE": []})
def test_position_one(self): variant = load_variant( """ [positions] ONE=AMY TWO """ ) self.failUnlessEqual(variant.position, {"ONE": ["AMY TWO"]})
def test_ownership_spaces(self): variant = load_variant( """ [ownership] ONE=TWO, TRE, FUR """ ) self.failUnlessEqual(variant.ownership, {"ONE": ["TWO", "TRE", "FUR"]})
def test_ownership_comma(self): variant = load_variant( """ [ownership] ONE=TWO,TRE, """ ) self.failUnlessEqual(variant.ownership, {"ONE": ["TWO", "TRE"]})
def test_ownership_empty(self): variant = load_variant( """ [ownership] ONE= """ ) self.failUnlessEqual(variant.ownership, {"ONE": []})
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"}})
def test_bordering_coastline(self): variant = load_variant( """ [borders] ONE=FLT (TRE SCS) """ ) self.failUnlessEqual(variant.borders, {"ONE": {FLT: "(TRE SCS)"}})
def test_borders_empty(self): variant = load_variant( """ [borders] ONE= """ ) self.failUnlessEqual(variant.borders, {"ONE": {}})
def test_mapname_loaded(self): variant = load_variant( """ [variant] mapname=Something """ ) self.failUnlessEqual(variant.mapname, "Something")
def test_borders_army(self): variant = load_variant( """ [borders] ONE=AMY TWO TRE FUR """ ) self.failUnlessEqual(variant.borders, {"ONE": {AMY: "TWO TRE FUR"}})
def test_rep_coastal(self): variant = load_variant( """ [borders] ONE=AMY TWO, FLT FUR """ ) self.failUnlessEqual(variant.rep, {"ONE": 0x5400})
def test_borders_swiss(self): variant = load_variant( """ [borders] ONE=AMY """ ) self.failUnlessEqual(variant.borders, {"ONE": {AMY: ""}})
def test_description_loaded(self): variant = load_variant( """ [variant] description=Something """ ) self.failUnlessEqual(variant.description, "Something")
def test_borders_island(self): variant = load_variant( """ [borders] ONE=AMY, FLT TWO """ ) self.failUnlessEqual(variant.borders, {"ONE": {AMY: "", FLT: "TWO"}})
def test_judge_loaded(self): variant = load_variant( """ [variant] judge=Something """ ) self.failUnlessEqual(variant.judge, "Something")
def test_borders_fleet(self): variant = load_variant( """ [borders] ONE=FLT TWO TRE FUR """ ) self.failUnlessEqual(variant.borders, {"ONE": {FLT: "TWO TRE FUR"}})
def test_mdf_borders_empty(self): variant = load_variant( """ [borders] """ ) borders = variant.mdf().fold()[3] self.failUnlessEqual(borders, [])
def test_borders_lake(self): variant = load_variant( """ [borders] ONE=FLT """ ) self.failUnlessEqual(variant.borders, {"ONE": {FLT: ""}})
def test_powers_both(self): variant = load_variant( """ [powers] ONE=name,adj """ ) self.failUnlessEqual(variant.powers, {"ONE": ("name", "adj")})
def test_borders_coastal(self): variant = load_variant( """ [borders] ONE=AMY TWO, FLT TRE """ ) self.failUnlessEqual(variant.borders, {"ONE": {AMY: "TWO", FLT: "TRE"}})