Beispiel #1
0
    def test_neighbours(self):
        london = CoastalTerritory(self.state, 1, 'London', 'England', [2], [])
        wales = CoastalTerritory(self.state, 2, 'Wales', 'England', [1], [])
        paris = InlandTerritory(self.state, 3, 'Paris', 'France', [])

        self.assertTrue(london.adjacent_to(wales))
        self.assertFalse(london.adjacent_to(paris))
Beispiel #2
0
    def test_named_coast(self):
        london = CoastalTerritory(self.state, 1, 'London', 'England', [], [])
        spain = CoastalTerritory(self.state, 2, 'Spain', None, [], [])
        spain_north_coast = NamedCoast(self.state, 1, 'North Coast', spain, [])

        self.assertEqual(spain.named_coasts, [spain_north_coast])
        self.assertEqual(london.named_coasts, [])
Beispiel #3
0
    def test_is_complex(self):
        london = CoastalTerritory(self.state, 1, 'London', 'England', [], [])
        spain = CoastalTerritory(self.state, 2, 'Spain', None, [], [])
        NamedCoast(self.state, 1, 'North Coast', spain, [])

        self.assertTrue(spain.is_complex)
        self.assertFalse(london.is_complex)
Beispiel #4
0
    def test_shared_coasts(self):
        london = CoastalTerritory(self.state, 1, 'London', 'England', [2], [2])
        wales = CoastalTerritory(self.state, 2, 'Wales', 'England', [1], [1])
        paris = InlandTerritory(self.state, 3, 'Paris', 'France', [])

        self.assertEqual(london.shared_coasts, [wales])
        self.assertEqual(wales.shared_coasts, [london])
        self.assertFalse(paris in london.neighbours)
Beispiel #5
0
    def setUp(self):
        self.state = State()
        self.portugal = CoastalTerritory(11, 'Portugal', None, [], [])
        self.spain = CoastalTerritory(10, 'Spain', None, [], [])
        self.spain_south_coast = NamedCoast(2, 'South Coast', self.spain, [])

        to_register = [self.spain, self.spain_south_coast]
        [self.state.register(o) for o in to_register]
Beispiel #6
0
    def test_named_coast(self):
        london = CoastalTerritory(1, 'London', 'England', [], [])
        spain = CoastalTerritory(2, 'Spain', None, [], [])
        spain_north_coast = NamedCoast(1, 'North Coast', spain, [])
        self.state.register(london, spain, spain_north_coast)

        self.assertEqual(spain.named_coasts, {spain_north_coast})
        self.assertEqual(london.named_coasts, set())
Beispiel #7
0
    def test_is_complex(self):
        london = CoastalTerritory(1, 'London', 'England', [], [])
        spain = CoastalTerritory(2, 'Spain', None, [], [])
        spain_north_coast = NamedCoast(1, 'North Coast', spain, [])
        self.state.register(london, spain, spain_north_coast)

        self.assertTrue(spain.is_complex)
        self.assertFalse(london.is_complex)
Beispiel #8
0
    def test_occupied(self):
        london = CoastalTerritory(self.state, 1, 'London', 'England', [], [])
        wales = CoastalTerritory(self.state, 2, 'Wales', 'England', [], [])

        Army(self.state, 0, 'England', london)

        self.assertTrue(london.occupied)
        self.assertFalse(wales.occupied)
Beispiel #9
0
    def test_shared_coasts(self):
        london = CoastalTerritory(1, 'London', 'England', [2], [2])
        wales = CoastalTerritory(2, 'Wales', 'England', [1], [1])
        paris = InlandTerritory(3, 'Paris', 'France', [])
        self.state.register(london, wales, paris)

        self.assertEqual(london.shared_coasts, {wales})
        self.assertEqual(wales.shared_coasts, {london})
        self.assertFalse(paris in london.neighbours)
Beispiel #10
0
    def test_supporting_piece_not_included(self):
        picardy = CoastalTerritory(self.state, 1, 'Picardy', 'France', [2, 3],
                                   [])
        paris = InlandTerritory(self.state, 2, 'Paris', 'France', [1])
        brest = CoastalTerritory(self.state, 3, 'Brest', 'France', [1], [])
        fleet_brest = Fleet(self.state, 0, 'France', brest)
        Support(self.state, 0, 'France', paris, brest, picardy)
        Move(self.state, 0, 'France', brest, picardy)

        self.assertEqual(picardy.attacking_pieces, [fleet_brest])
Beispiel #11
0
    def test_coastal(self):
        picardy = CoastalTerritory(self.state, 1, 'Picardy', 'France', [], [])
        english_channel = SeaTerritory(self.state, 2, 'English Channel', [])
        brest = CoastalTerritory(self.state, 3, 'Brest', 'France', [], [])

        army = Army(self.state, 0, 'England', picardy)
        fleet = Fleet(self.state, 0, 'France', english_channel)

        self.assertTrue(brest.accessible_by_piece_type(army))
        self.assertTrue(brest.accessible_by_piece_type(fleet))
Beispiel #12
0
    def test_occupied(self):
        london = CoastalTerritory(1, 'London', 'England', [], [])
        wales = CoastalTerritory(2, 'Wales', 'England', [], [])
        self.state.register(london, wales)

        army_london = Army('England', london)
        self.state.register(army_london)

        self.assertTrue(london.occupied)
        self.assertFalse(wales.occupied)
Beispiel #13
0
    def test_supporting_piece_not_included(self):
        picardy = CoastalTerritory(1, 'Picardy', 'France', [2, 3], [])
        paris = InlandTerritory(2, 'Paris', 'France', [1])
        brest = CoastalTerritory(3, 'Brest', 'France', [1], [])
        fleet_brest = Fleet('France', brest)
        support = Support('France', paris, brest, picardy)
        move = Move('France', brest, picardy)
        self.state.register(picardy, paris, brest, fleet_brest, move, support)

        self.assertEqual(picardy.attacking_pieces, {fleet_brest})
    def test_order_exists(self):
        state = State()
        london = CoastalTerritory(1, 'London', 'England', [], [])
        wales = CoastalTerritory(2, 'Wales', 'England', [], [])
        army = Army('England', london)
        london_move = Move('England', london, wales)

        to_register = [london, wales, army, london_move]
        [state.register(o) for o in to_register]

        self.assertEqual(army.order, london_move)
Beispiel #15
0
    def test_piece(self):
        london = CoastalTerritory(self.state, 1, 'London', 'England', [], [])
        wales = CoastalTerritory(self.state, 2, 'Wales', 'England', [], [])
        paris = InlandTerritory(self.state, 3, 'Paris', 'France', [])

        army_london = Army(self.state, 0, 'England', london)
        army_wales = Army(self.state, 0, 'England', wales)

        self.assertEqual(army_london, london.piece)
        self.assertEqual(army_wales, wales.piece)
        self.assertIsNone(paris.piece)
Beispiel #16
0
    def test_piece(self):

        london = CoastalTerritory(self.state, 1, 'London', 'England', [], [])
        wales = CoastalTerritory(self.state, 2, 'Wales', 'England', [], [])

        army = Army(self.state, 0, 'England', london)
        london_hold = Hold(self.state, 0, 'England', london)
        wales_hold = Hold(self.state, 0, 'England', wales)

        self.assertEqual(london_hold.piece, army)
        self.assertIsNone(wales_hold.piece)
Beispiel #17
0
    def test_other_attacking_pieces(self):
        picardy = CoastalTerritory(self.state, 1, 'Picardy', 'France', [2], [])
        paris = InlandTerritory(self.state, 2, 'Paris', 'France', [1])
        brest = CoastalTerritory(self.state, 3, 'Brest', 'France', [1], [])
        army_paris = Army(self.state, 0, 'England', paris)
        fleet_brest = Fleet(self.state, 0, 'France', brest)
        Move(self.state, 0, 'England', paris, picardy)
        Move(self.state, 0, 'France', brest, picardy)

        self.assertEqual(picardy.other_attacking_pieces(fleet_brest),
                         [army_paris])
Beispiel #18
0
    def test_multiple_attacking_piece_exist(self):
        picardy = CoastalTerritory(1, 'Picardy', 'France', [2, 3], [])
        paris = InlandTerritory(2, 'Paris', 'France', [1])
        brest = CoastalTerritory(3, 'Brest', 'France', [1], [])
        army_paris = Army('France', paris)
        fleet_brest = Fleet('France', brest)
        move_1 = Move('France', paris, picardy)
        move_2 = Move('France', brest, picardy)
        self.state.register(picardy, paris, brest, army_paris, fleet_brest,
                            move_1, move_2)

        self.assertEqual(picardy.attacking_pieces, {army_paris, fleet_brest})
Beispiel #19
0
    def test_multiple_attacking_piece_exist(self):
        picardy = CoastalTerritory(self.state, 1, 'Picardy', 'France', [2, 3],
                                   [])
        paris = InlandTerritory(self.state, 2, 'Paris', 'France', [1])
        brest = CoastalTerritory(self.state, 3, 'Brest', 'France', [1], [])
        army_paris = Army(self.state, 0, 'France', paris)
        fleet_brest = Fleet(self.state, 0, 'France', brest)
        Move(self.state, 0, 'France', paris, picardy)
        Move(self.state, 0, 'France', brest, picardy)

        self.assertEqual(set(picardy.attacking_pieces),
                         set([army_paris, fleet_brest]))
Beispiel #20
0
    def test_coastal(self):
        picardy = CoastalTerritory(1, 'Picardy', 'France', [], [])
        english_channel = SeaTerritory(2, 'English Channel', [])
        brest = CoastalTerritory(3, 'Brest', 'France', [], [])
        self.state.register(picardy, english_channel, brest)

        army = Army('England', picardy)
        fleet = Fleet('France', english_channel)
        self.state.register(army, fleet)

        self.assertTrue(brest.accessible_by_piece_type(army))
        self.assertTrue(brest.accessible_by_piece_type(fleet))
Beispiel #21
0
    def test_piece(self):
        london = CoastalTerritory(1, 'London', 'England', [], [])
        wales = CoastalTerritory(2, 'Wales', 'England', [], [])
        paris = InlandTerritory(3, 'Paris', 'France', [])
        self.state.register(london, wales, paris)

        army_london = Army('England', london)
        army_wales = Army('England', wales)
        self.state.register(army_london, army_wales)

        self.assertEqual(army_london, london.piece)
        self.assertEqual(army_wales, wales.piece)
        self.assertIsNone(paris.piece)
Beispiel #22
0
    def test_other_attacking_pieces(self):
        picardy = CoastalTerritory(1, 'Picardy', 'France', [2], [])
        paris = InlandTerritory(2, 'Paris', 'France', [1])
        brest = CoastalTerritory(3, 'Brest', 'France', [1], [])
        army_paris = Army('England', paris)
        fleet_brest = Fleet('France', brest)
        move_1 = Move('England', paris, picardy)
        move_2 = Move('France', brest, picardy)
        self.state.register(picardy, paris, brest, army_paris, fleet_brest,
                            move_1, move_2)

        self.assertEqual(picardy.other_attacking_pieces(fleet_brest),
                         [army_paris])
Beispiel #23
0
    def setUp(self):

        self.state = State()
        self.paris = InlandTerritory(1, 'Paris', 'France', [7])
        self.london = CoastalTerritory(2, 'London', 'England', [3, 6], [3])
        self.wales = CoastalTerritory(3, 'Wales', 'England', [2, 6], [2])
        self.munich = InlandTerritory(4, 'Munich', 'Germany', [5])
        self.silesia = InlandTerritory(5, 'Silesia', 'Germany', [4])
        self.english_channel = SeaTerritory(6, 'English Channel', [2, 3])
        self.brest = CoastalTerritory(7, 'Brest', 'France', [1, 6], [])

        to_register = [self.paris, self.london, self.wales, self.munich,
                       self.silesia, self.english_channel, self.brest]
        [self.state.register(o) for o in to_register]
    def setUp(self):

        self.state = State()
        self.paris = InlandTerritory(1, 'Paris', 'France', [7])
        self.london = CoastalTerritory(2, 'London', 'England', [3, 6], [3])
        self.wales = CoastalTerritory(3, 'Wales', 'England', [2, 6], [2])
        self.english_channel = SeaTerritory(6, 'English Channel', [2, 3])
        self.brest = CoastalTerritory(7, 'Brest', 'France', [1, 6], [])
        self.rome = CoastalTerritory(8, 'Rome', 'Italy', [9], [])
        self.apulia = CoastalTerritory(9, 'Apulia', 'Italy', [8], [])

        self.spain = CoastalTerritory(10, 'Spain', None, [11, 12, 13, 14],
                                      [11, 12])
        self.gascony = CoastalTerritory(11, 'Gascony', 'France', [10], [])
        self.marseilles = CoastalTerritory(12, 'Marseilles', 'France', [10],
                                           [10])
        self.mid_atlantic = SeaTerritory(13, 'Mid Atlantic', [10])
        self.gulf_of_lyon = SeaTerritory(14, 'Gulf of Lyon', [10])
        self.spain_north_coast = NamedCoast(1, 'North Coast', self.spain,
                                            [self.gascony, self.mid_atlantic])
        self.spain_south_coast = NamedCoast(
            2, 'South Coast', self.spain,
            [self.marseilles, self.gulf_of_lyon, self.marseilles])

        to_register = [
            self.paris, self.london, self.wales, self.english_channel,
            self.brest, self.rome, self.apulia, self.spain, self.gascony,
            self.marseilles, self.mid_atlantic, self.gulf_of_lyon,
            self.spain_north_coast, self.spain_south_coast
        ]
        [self.state.register(o) for o in to_register]
Beispiel #25
0
    def test_piece(self):
        state = State()

        london = CoastalTerritory(1, 'London', 'England', [], [])
        wales = CoastalTerritory(2, 'Wales', 'England', [], [])

        army = Army('England', london)
        london_hold = Hold('England', london)
        wales_hold = Hold('England', wales)

        to_register = [london, wales, army, london_hold, wales_hold]
        [state.register(o) for o in to_register]

        self.assertEqual(london_hold.piece, army)
        self.assertIsNone(wales_hold.piece)
Beispiel #26
0
    def test_attacking_piece_exists(self):
        picardy = CoastalTerritory(self.state, 1, 'Picardy', 'France', [2], [])
        paris = InlandTerritory(self.state, 2, 'Paris', 'France', [1])
        army_paris = Army(self.state, 0, 'France', paris)
        Move(self.state, 0, 'France', paris, picardy)

        self.assertEqual(picardy.attacking_pieces, [army_paris])
Beispiel #27
0
    def test_attacking_piece_exists(self):
        picardy = CoastalTerritory(1, 'Picardy', 'France', [2], [])
        paris = InlandTerritory(2, 'Paris', 'France', [1])
        army_paris = Army('France', paris)
        move = Move('France', paris, picardy)
        self.state.register(picardy, paris, army_paris, move)

        self.assertEqual(picardy.attacking_pieces, {army_paris})
Beispiel #28
0
 def test_serialize_state_territory(self):
     CoastalTerritory(self.state, 1, 'London', 1, [2], [])
     data = TurnSchema().dump(self.state)
     territory_data = (dict(data['territories'][0]))
     self.assertEqual(
         sorted(territory_data.keys()),
         ['bounce_occurred', 'captured_by', 'id']
     )
Beispiel #29
0
    def test_hold(self):
        london = CoastalTerritory(1, 'London', 'England', [], [])
        Army('England', london)
        london_hold = Hold('England', london)

        self.assertTrue(london_hold.is_hold)
        self.assertFalse(london_hold.is_move)
        with self.assertRaises(AttributeError):
            london_hold.is_fake_class_name
Beispiel #30
0
 def test_serialize_state_order(self):
     london = CoastalTerritory(self.state, 1, 'London', 1, [2], [])
     Hold(self.state, 1, 1, london)
     data = TurnSchema().dump(self.state)
     order_data = (dict(data['orders'][0]))
     self.assertEqual(
         sorted(order_data.keys()),
         ['id', 'illegal', 'illegal_code', 'illegal_verbose', 'outcome']
     )