Exemple #1
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)
Exemple #2
0
    def test_map_define(self):
        ''' Test the creation of a new map from a simple MDF.'''

        mdf = MDF(ENG, FRA)([
            (ENG, EDI, LON),
            (FRA, BRE, PAR),
            ([ENG, FRA], BEL, HOL),
            (UNO, SPA, NWY),
        ], [ECH, NTH, PIC])(
            (EDI, [AMY, LON], [FLT, NTH]),
            (LON, [AMY, EDI], [FLT, NTH, ECH]),
            (BRE, [AMY, PAR, PIC, SPA], [FLT, ECH, PIC, (SPA, NCS)]),
            (PAR, [AMY, PAR, SPA, PIC]),
            (BEL, [AMY, PIC, HOL], [FLT, NTH, ECH, PIC, HOL]),
            (HOL, [AMY, BEL], [FLT, NTH]),
            (SPA, [AMY, PAR, BRE], [(FLT, NCS), BRE]),
            (NWY, [AMY], [FLT, NTH]),
            (ECH, [FLT, NTH, BRE, LON, BEL, PIC]),
            (NTH, [FLT, ECH, BEL, HOL, LON, NWY, EDI]),
            (PIC, [AMY, BRE, PAR, BEL], [FLT, ECH, BRE, BEL]),
        )

        self.failIf(Validator().validate_server_message(mdf),
                    'Invalid MDF message')
        m = Map(Variant('simplified'))
        self.failIf(m.valid, 'Map valid before MDF')
        result = m.define(mdf)
        self.failIf(result, result)
Exemple #3
0
    def test_missing_homes(self):
        # Map can define maps with no home center entry for one of the powers.
        variant = load_variant(
            """
            [homes]
            ONE=AAA
            TWO=BBB
            TRE=
            UNO=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], [UNO, 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)
        self.assertContains(game_map.powers, TRE)
        self.failUnlessEqual(game_map.powers[TRE].homes, [])
Exemple #4
0
    def test_map_define(self):
        """ Test the creation of a new map from a simple MDF."""

        mdf = MDF(ENG, FRA)(
            [(ENG, EDI, LON), (FRA, BRE, PAR), ([ENG, FRA], BEL, HOL), (UNO, SPA, NWY)], [ECH, NTH, PIC]
        )(
            (EDI, [AMY, LON], [FLT, NTH]),
            (LON, [AMY, EDI], [FLT, NTH, ECH]),
            (BRE, [AMY, PAR, PIC, SPA], [FLT, ECH, PIC, (SPA, NCS)]),
            (PAR, [AMY, PAR, SPA, PIC]),
            (BEL, [AMY, PIC, HOL], [FLT, NTH, ECH, PIC, HOL]),
            (HOL, [AMY, BEL], [FLT, NTH]),
            (SPA, [AMY, PAR, BRE], [(FLT, NCS), BRE]),
            (NWY, [AMY], [FLT, NTH]),
            (ECH, [FLT, NTH, BRE, LON, BEL, PIC]),
            (NTH, [FLT, ECH, BEL, HOL, LON, NWY, EDI]),
            (PIC, [AMY, BRE, PAR, BEL], [FLT, ECH, BRE, BEL]),
        )

        self.failIf(Validator().validate_server_message(mdf), "Invalid MDF message")
        m = Map(Variant("simplified"))
        self.failIf(m.valid, "Map valid before MDF")
        result = m.define(mdf)
        self.failIf(result, result)
Exemple #5
0
 def test_empty_UNO(self):
     ''' Test whether Map can define maps with no non-home supply centers.'''
     # Almost Standard...
     mdf = '''
         MDF (AUS ENG FRA GER ITA RUS TUR)
         (((AUS bud tri vie)(ENG edi lon lvp)(FRA bre mar par)
           (GER ber kie mun)(ITA nap rom ven)(RUS mos sev stp war)
           (TUR ank con smy bel bul den gre hol nwy por rum ser spa swe tun)
           (UNO))
          (alb apu arm boh bur cly fin gal gas lvn naf pic pie pru ruh sil syr
           tus tyr ukr wal yor adr aeg bal bar bla gob eas ech hel ion iri gol
           mao nao nth nwg ska tys wes))
         ((adr(FLT alb apu ven tri ion))
          (aeg(FLT gre (bul scs) con smy eas ion))
          (alb(AMY tri gre ser)(FLT adr tri gre ion))
          (ank(AMY arm con smy)(FLT bla arm con))
          (apu(AMY ven nap rom)(FLT ven adr ion nap))
          (arm(AMY smy syr ank sev)(FLT ank sev bla))
          (bal(FLT lvn pru ber kie den swe gob))
          (bar(FLT nwg (stp ncs) nwy))
          (bel(AMY hol pic ruh bur)(FLT ech nth hol pic))
          (ber(AMY kie pru sil mun)(FLT kie bal pru))
          (bla(FLT rum sev arm ank con (bul ecs)))
          (boh(AMY mun sil gal vie tyr))
          (gob(FLT swe fin (stp scs) lvn bal))
          (bre(AMY pic gas par)(FLT mao ech pic gas))
          (bud(AMY vie gal rum ser tri))
          (bul((FLT ECS) con bla rum)(AMY gre con ser rum)((FLT SCS) gre aeg con))
          (bur(AMY mar gas par pic bel ruh mun))
          (cly(AMY edi lvp)(FLT edi lvp nao nwg))
          (con(AMY bul ank smy)(FLT (bul scs) (bul ecs) bla ank smy aeg))
          (den(AMY swe kie)(FLT hel nth swe bal kie ska))
          (eas(FLT syr smy aeg ion))
          (edi(AMY lvp yor cly)(FLT nth nwg cly yor))
          (ech(FLT mao iri wal lon nth bel pic bre))
          (fin(AMY swe stp nwy)(FLT swe (stp scs) gob))
          (gal(AMY war ukr rum bud vie boh sil))
          (gas(AMY par bur mar spa bre)(FLT (spa ncs) mao bre))
          (gre(AMY bul alb ser)(FLT (bul scs) aeg ion alb))
          (hel(FLT nth den kie hol))
          (hol(AMY bel kie ruh)(FLT bel nth hel kie))
          (ion(FLT tun tys nap apu adr alb gre aeg eas))
          (iri(FLT nao lvp wal ech mao))
          (kie(AMY hol den ber mun ruh)(FLT hol hel den bal ber))
          (lon(AMY yor wal)(FLT yor nth ech wal))
          (lvn(AMY pru stp mos war)(FLT pru bal gob (stp scs)))
          (lvp(AMY wal edi yor cly)(FLT wal iri nao cly))
          (gol(FLT (spa scs) mar pie tus tys wes))
          (mao(FLT nao iri ech bre gas (spa ncs) por (spa scs) naf wes))
          (mar(AMY spa pie gas bur)(FLT (spa scs) gol pie))
          (mos(AMY stp lvn war ukr sev))
          (mun(AMY bur ruh kie ber sil boh tyr))
          (naf(AMY tun)(FLT mao wes tun))
          (nao(FLT nwg lvp iri mao cly))
          (nap(AMY rom apu)(FLT rom tys ion apu))
          (nwy(AMY fin stp swe)(FLT ska nth nwg bar (stp ncs) swe))
          (nth(FLT yor edi nwg nwy ska den hel hol bel ech lon))
          (nwg(FLT nao bar nwy nth cly edi))
          (par(AMY bre pic bur gas))
          (pic(AMY bur par bre bel)(FLT bre ech bel))
          (pie(AMY mar tus ven tyr)(FLT mar gol tus))
          (por(AMY spa)(FLT mao (spa ncs) (spa scs)))
          (pru(AMY war sil ber lvn)(FLT ber bal lvn))
          (rom(AMY tus nap ven apu)(FLT tus tys nap))
          (ruh(AMY bur bel hol kie mun))
          (rum(AMY ser bud gal ukr sev bul)(FLT sev bla (bul ecs)))
          (ser(AMY tri bud rum bul gre alb))
          (sev(AMY ukr mos rum arm)(FLT rum bla arm))
          (sil(AMY mun ber pru war gal boh))
          (ska(FLT nth nwy den swe))
          (smy(AMY syr con ank arm)(FLT syr eas aeg con))
          (spa(AMY gas por mar)((FLT NCS) gas mao por)((FLT SCS) por wes gol mar mao))
          (stp(AMY fin lvn nwy mos)((FLT NCS) bar nwy)((FLT SCS) fin lvn gob))
          (swe(AMY fin den nwy)(FLT fin gob bal den ska nwy))
          (syr(AMY smy arm)(FLT eas smy))
          (tri(AMY tyr vie bud ser alb ven)(FLT alb adr ven))
          (tun(AMY naf)(FLT naf wes tys ion))
          (tus(AMY rom pie ven)(FLT rom tys gol pie))
          (tyr(AMY mun boh vie tri ven pie))
          (tys(FLT wes gol tus rom nap ion tun))
          (ukr(AMY rum gal war mos sev))
          (ven(AMY tyr tus rom pie apu tri)(FLT apu adr tri))
          (vie(AMY tyr boh gal bud tri))
          (wal(AMY lvp lon yor)(FLT lvp iri ech lon))
          (war(AMY sil pru lvn mos ukr gal))
          (wes(FLT mao (spa scs) gol tys tun naf))
          (yor(AMY edi lon lvp wal)(FLT edi nth lon))
         )
     '''#'''
     options = Variant("testing")
     mdf = options.rep.translate(mdf)
     game_map = Map(options)
     msg = game_map.define(mdf)
     self.failIf(msg, msg)