Esempio n. 1
0
 def test_one_fleet_chain(self):
     orders = [
         Convoy(Nations.ENGLAND, self.territories.ENGLISH_CHANNEL,
                self.territories.BREST, self.territories.LONDON),
     ]
     source = self.territories.BREST
     target = self.territories.LONDON
     result = get_convoy_chains(source, target, orders)
     self.assertEqual(result[0].convoys, [orders[0]])
Esempio n. 2
0
 def _update_convoy_chains(self):
     for move in [m for m in self.moves if m.via_convoy]:
         source = move.source
         target = move.target
         eligible_convoys = [
             c for c in self.convoys
             if c.aux == source and c.target == target
         ]
         move.convoy_chains = get_convoy_chains(source, target,
                                                eligible_convoys)
Esempio n. 3
0
    def test_two_one_fleet_chains(self):
        orders = [
            Convoy(Nations.ENGLAND, self.territories.ENGLISH_CHANNEL,
                   self.territories.BELGIUM, self.territories.LONDON),
            Convoy(Nations.ENGLAND, self.territories.NORTH_SEA,
                   self.territories.BELGIUM, self.territories.LONDON),
        ]
        source = self.territories.BELGIUM
        target = self.territories.LONDON
        result = get_convoy_chains(source, target, orders)

        self.assertTrue([orders[0]] in [result[0].convoys, result[1].convoys])
        self.assertTrue([orders[1]] in [result[0].convoys, result[1].convoys])
Esempio n. 4
0
    def test_two_fleet_chain(self):
        orders = [
            Convoy(Nations.ENGLAND, self.territories.MID_ATLANTIC,
                   self.territories.PORTUGAL, self.territories.LONDON),
            Convoy(Nations.ENGLAND, self.territories.ENGLISH_CHANNEL,
                   self.territories.PORTUGAL, self.territories.LONDON),
        ]
        source = self.territories.PORTUGAL
        target = self.territories.LONDON
        result = get_convoy_chains(source, target, orders)

        self.assertTrue(all([o in result[0].convoys for o in orders]))
        self.assertEqual(len(result[0].convoys), 2)
        self.assertEqual(len(result), 1)
Esempio n. 5
0
 def test_two_two_fleet_chains(self):
     orders = [
         Convoy(Nations.ENGLAND, self.territories.MID_ATLANTIC,
                self.territories.PORTUGAL, self.territories.WALES),
         Convoy(Nations.ENGLAND, self.territories.ENGLISH_CHANNEL,
                self.territories.PORTUGAL, self.territories.WALES),
         Convoy(Nations.ENGLAND, self.territories.IRISH_SEA,
                self.territories.PORTUGAL, self.territories.WALES),
     ]
     source = self.territories.PORTUGAL
     target = self.territories.WALES
     result = get_convoy_chains(source, target, orders)
     self.assertTrue(
         [orders[0], orders[1]] in [result[0].convoys, result[1].convoys])
     self.assertTrue(
         [orders[0], orders[2]] in [result[0].convoys, result[1].convoys])
Esempio n. 6
0
 def test_three_fleet_chain(self):
     orders = [
         Convoy(self.state, 0, Nations.ENGLAND,
                self.territories.MID_ATLANTIC, self.territories.PORTUGAL,
                self.territories.NORWAY),
         Convoy(self.state, 0, Nations.ENGLAND,
                self.territories.ENGLISH_CHANNEL, self.territories.PORTUGAL,
                self.territories.NORWAY),
         Convoy(self.state, 0, Nations.ENGLAND, self.territories.NORTH_SEA,
                self.territories.PORTUGAL, self.territories.NORWAY),
     ]
     source = self.territories.PORTUGAL
     target = self.territories.NORWAY
     result = get_convoy_chains(source, target, orders)
     self.assertTrue(all([o in result[0].convoys for o in orders]))
     self.assertEqual(len(result[0].convoys), 3)
     self.assertEqual(len(result), 1)