use of games.strategy.util.IntegerMap in project triplea by triplea-game.
the class MoveDelegateTest method testSimpleMoveLength2.
@Test
public void testSimpleMoveLength2() {
final IntegerMap<UnitType> map = new IntegerMap<>();
map.put(armour, 2);
final Route route = new Route();
route.setStart(egypt);
route.add(eastAfrica);
route.add(kenya);
assertEquals(18, egypt.getUnits().size());
assertEquals(0, kenya.getUnits().size());
final String results = delegate.move(GameDataTestUtil.getUnits(map, route.getStart()), route);
assertValid(results);
assertEquals(16, egypt.getUnits().size());
assertEquals(2, kenya.getUnits().size());
}
use of games.strategy.util.IntegerMap in project triplea by triplea-game.
the class MoveDelegateTest method testAirCantLandInConquered.
@Test
public void testAirCantLandInConquered() {
// take over empty neutral
Route route = new Route();
route.setStart(egypt);
route.add(kenya);
route.add(southAfrica);
IntegerMap<UnitType> map = new IntegerMap<>();
map.put(armour, 1);
String results = delegate.move(GameDataTestUtil.getUnits(map, route.getStart()), route);
assertValid(results);
// move carriers to ensure they can't go anywhere
route = new Route();
route.setStart(congoSeaZone);
route.add(westAfricaSea);
route.add(northAtlantic);
Collection<Unit> units = new ArrayList<>();
units.addAll(CollectionUtils.getMatches(gameData.getMap().getTerritory(congoSeaZone.toString()).getUnits().getUnits(), Matches.unitIsCarrier()));
results = delegate.move(units, route);
assertValid(results);
// move carriers to ensure they can't go anywhere
route = new Route();
route.setStart(redSea);
route.add(eastMediteranean);
route.add(blackSea);
units = new ArrayList<>();
units.addAll(CollectionUtils.getMatches(gameData.getMap().getTerritory(redSea.toString()).getUnits().getUnits(), Matches.unitIsCarrier()));
results = delegate.move(units, route);
assertValid(results);
// make sure the place cant use it to land
// the only possibility would be newly conquered south africa
route = new Route();
route.setStart(congoSeaZone);
route.add(southAtlantic);
route.add(angolaSeaZone);
route.add(southAfricaSeaZone);
map = new IntegerMap<>();
map.put(fighter, 1);
results = delegate.move(GameDataTestUtil.getUnits(map, route.getStart()), route);
assertError(results);
}
use of games.strategy.util.IntegerMap in project triplea by triplea-game.
the class MoveDelegateTest method testUnloadingTransportsCantMove.
@Test
public void testUnloadingTransportsCantMove() {
IntegerMap<UnitType> map = new IntegerMap<>();
map.put(infantry, 4);
Route route = new Route();
route.setStart(congoSeaZone);
route.add(equatorialAfrica);
String results = delegate.move(GameDataTestUtil.getUnits(map, route.getStart()), route);
assertValid(results);
map = new IntegerMap<>();
map.put(transport, 2);
route = new Route();
route.setStart(congoSeaZone);
route.add(westAfricaSeaZone);
// the transports unloaded so they cant move
results = delegate.move(GameDataTestUtil.getUnits(map, route.getStart()), route);
assertError(results);
}
use of games.strategy.util.IntegerMap in project triplea by triplea-game.
the class MoveDelegateTest method testTransportsCanSplit.
@Test
public void testTransportsCanSplit() {
// move 1 armour to red sea
Route route = new Route();
route.setStart(egypt);
route.add(redSea);
IntegerMap<UnitType> map = new IntegerMap<>();
map.put(armour, 1);
String results = delegate.move(GameDataTestUtil.getUnits(map, route.getStart()), route, route.getEnd().getUnits().getUnits());
assertValid(results);
// move two infantry to red sea
route = new Route();
route.setStart(eastAfrica);
route.add(redSea);
map = new IntegerMap<>();
map.put(infantry, 2);
results = delegate.move(GameDataTestUtil.getUnits(map, route.getStart()), route, route.getEnd().getUnits().getUnits());
assertValid(results);
// try to move 1 transport to indian ocean with 1 tank
route = new Route();
route.setStart(redSea);
route.add(indianOcean);
map = new IntegerMap<>();
map.put(armour, 1);
map.put(transport, 1);
results = delegate.move(GameDataTestUtil.getUnits(map, route.getStart()), route);
assertValid(results);
// move the other transport to west compass
route = new Route();
route.setStart(redSea);
route.add(westCompass);
map = new IntegerMap<>();
map.put(infantry, 2);
map.put(transport, 1);
results = delegate.move(GameDataTestUtil.getUnits(map, route.getStart()), route);
assertValid(results);
}
use of games.strategy.util.IntegerMap in project triplea by triplea-game.
the class MoveDelegateTest method testOverrunNeutralMustStop.
@Test
public void testOverrunNeutralMustStop() {
IntegerMap<UnitType> map = new IntegerMap<>();
map.put(armour, 2);
Route route = new Route();
route.setStart(equatorialAfrica);
route.add(westAfrica);
String results = delegate.move(GameDataTestUtil.getUnits(map, route.getStart()), route);
assertValid(results);
map = new IntegerMap<>();
map.put(armour, 2);
route = new Route();
route.setStart(westAfrica);
route.add(equatorialAfrica);
results = delegate.move(GameDataTestUtil.getUnits(map, route.getStart()), route);
assertError(results);
}
Aggregations