improve reserving for missions
This commit is contained in:
@@ -9,6 +9,7 @@ import ru.trader.core.*;
|
||||
import ru.trader.store.simple.SimpleMarket;
|
||||
import ru.trader.store.simple.SimpleOffer;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class RouteFillerTest extends Assert {
|
||||
@@ -484,30 +485,30 @@ public class RouteFillerTest extends Assert {
|
||||
assertEquals(3, route.getLands());
|
||||
|
||||
/* v1 3x100 + 2x20 -> v2 5x50 -> v3 3x60 -> v4 */
|
||||
double[] profits = RouteFiller.getLostProfits(route, 0, v4, cargo, cargo);
|
||||
double[] profits = RouteFiller.getLostProfits(route, 0, v4, cargo);
|
||||
assertArrayEquals(new double[]{750, 430, 180, 0}, profits, 0.001);
|
||||
|
||||
profits = RouteFiller.getLostProfits(route, 0, v1, cargo, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 0, v1, cargo);
|
||||
assertArrayEquals(new double[]{0, 430, 180, 0}, profits, 0.001);
|
||||
|
||||
profits = RouteFiller.getLostProfits(route, 1, v2, cargo, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 1, v2, cargo);
|
||||
assertArrayEquals(new double[]{320, 0, 500, 320}, profits, 0.001);
|
||||
|
||||
profits = RouteFiller.getLostProfits(route, 2, v3, cargo, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 2, v3, cargo);
|
||||
assertArrayEquals(new double[]{570, 250, 0, 570}, profits, 0.001);
|
||||
|
||||
profits = RouteFiller.getLostProfits(route, 0, v3, cargo, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 0, v3, cargo);
|
||||
assertArrayEquals(new double[]{570, 250, 0, 570}, profits, 0.001);
|
||||
|
||||
profits = RouteFiller.getLostProfits(route, 0, v1, 2, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 0, v1, 2);
|
||||
assertArrayEquals(new double[]{0, 0, 0, 0}, profits, 0.001);
|
||||
|
||||
/* v1 -2x20 -> v2 -2x50 -> v3 -> v4 */
|
||||
profits = RouteFiller.getLostProfits(route, 0, v4, 4, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 0, v4, 4);
|
||||
assertArrayEquals(new double[]{120, 100, 0, 0}, profits, 0.001);
|
||||
|
||||
/* v1 -1x100 - 2x20 -> v2 -3x50 -> v3 -1x60 -> v4 */
|
||||
profits = RouteFiller.getLostProfits(route, 0, v4, 5, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 0, v4, 5);
|
||||
assertArrayEquals(new double[]{330, 210, 60, 0}, profits, 0.001);
|
||||
}
|
||||
|
||||
@@ -559,22 +560,22 @@ public class RouteFillerTest extends Assert {
|
||||
assertEquals(4, route.getLands());
|
||||
|
||||
/* v1 3x100 + 2x20 -> v2 5x50 -> v3 3x60 -> v4 5x50 -> v3 transit -> v1 */
|
||||
double[] profits = RouteFiller.getLostProfits(route, 0, v4, cargo, cargo);
|
||||
double[] profits = RouteFiller.getLostProfits(route, 0, v4, cargo);
|
||||
assertArrayEquals(new double[]{750, 430, 180, 0, 750}, profits, 0.001);
|
||||
|
||||
profits = RouteFiller.getLostProfits(route, 0, v1, cargo, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 0, v1, cargo);
|
||||
assertArrayEquals(new double[]{0, 680, 430, 250, 0}, profits, 0.001);
|
||||
|
||||
profits = RouteFiller.getLostProfits(route, 1, v2, cargo, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 1, v2, cargo);
|
||||
assertArrayEquals(new double[]{320, 0, 750, 570, 320}, profits, 0.001);
|
||||
|
||||
profits = RouteFiller.getLostProfits(route, 2, v3, cargo, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 2, v3, cargo);
|
||||
assertArrayEquals(new double[]{570, 250, 0, 820, 570}, profits, 0.001);
|
||||
|
||||
profits = RouteFiller.getLostProfits(route, 0, v3, cargo, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 0, v3, cargo);
|
||||
assertArrayEquals(new double[]{570, 250, 0, 820, 570}, profits, 0.001);
|
||||
|
||||
profits = RouteFiller.getLostProfits(route, 0, v1, 2, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 0, v1, 2);
|
||||
assertArrayEquals(new double[]{0, 0, 0, 0, 0}, profits, 0.001);
|
||||
|
||||
}
|
||||
@@ -627,22 +628,22 @@ public class RouteFillerTest extends Assert {
|
||||
assertEquals(5, route.getLands());
|
||||
|
||||
/* v1 3x100 + 2x20 -> v2 5x50 -> v3 3x60 -> v4 5x20 -> v3 3x10 -> v1 */
|
||||
double[] profits = RouteFiller.getLostProfits(route, 0, v4, cargo, cargo);
|
||||
double[] profits = RouteFiller.getLostProfits(route, 0, v4, cargo);
|
||||
assertArrayEquals(new double[]{750, 430, 180, 0, 780}, profits, 0.001);
|
||||
|
||||
profits = RouteFiller.getLostProfits(route, 0, v1, cargo, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 0, v1, cargo);
|
||||
assertArrayEquals(new double[]{0, 560, 310, 130, 30}, profits, 0.001);
|
||||
|
||||
profits = RouteFiller.getLostProfits(route, 1, v2, cargo, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 1, v2, cargo);
|
||||
assertArrayEquals(new double[]{320, 0, 630, 450, 350}, profits, 0.001);
|
||||
|
||||
profits = RouteFiller.getLostProfits(route, 2, v3, cargo, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 2, v3, cargo);
|
||||
assertArrayEquals(new double[]{570, 250, 0, 100, 0}, profits, 0.001);
|
||||
|
||||
profits = RouteFiller.getLostProfits(route, 0, v3, cargo, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 0, v3, cargo);
|
||||
assertArrayEquals(new double[]{570, 250, 0, 100, 0}, profits, 0.001);
|
||||
|
||||
profits = RouteFiller.getLostProfits(route, 0, v1, 2, cargo);
|
||||
profits = RouteFiller.getLostProfits(route, 0, v1, 2);
|
||||
assertArrayEquals(new double[]{0, 0, 0, 0, 0}, profits, 0.001);
|
||||
|
||||
}
|
||||
@@ -660,9 +661,13 @@ public class RouteFillerTest extends Assert {
|
||||
|
||||
/* v1 3x100 + 2x20 -> v2 5x50 -> v3 3x60 -> v4 5x20 -> v3 3x10 -> v1 */
|
||||
Offer offer = SimpleOffer.fakeBuy(v2, ITEM3, 210, 3);
|
||||
int completeIndex = RouteFiller.addOrders(route, 1, offer, cargo);
|
||||
Collection<RouteReserve> reserves = RouteFiller.getReserves(route, 1, offer);
|
||||
assertEquals(2, reserves.size());
|
||||
int completeIndex = RouteReserve.getCompleteIndex(reserves, 1);
|
||||
assertEquals(1, completeIndex);
|
||||
|
||||
route.reserve(reserves);
|
||||
|
||||
Order order1 = new Order(v1.getSell(ITEM2), v2.getBuy(ITEM2), 3);
|
||||
Order order2 = new Order(v1.getSell(ITEM4), v2.getBuy(ITEM4), 1);
|
||||
Order order3 = new Order(v2.getSell(ITEM1), v3.getBuy(ITEM1), 5);
|
||||
@@ -680,7 +685,7 @@ public class RouteFillerTest extends Assert {
|
||||
|
||||
order2 = new Order(v1.getSell(ITEM4), v2.getBuy(ITEM4), 2);
|
||||
|
||||
RouteFiller.removeOrders(route, offer);
|
||||
route.unreserve(reserves);
|
||||
TestUtil.assertCollectionEquals(route.get(0).getOrders(), order1, order2);
|
||||
TestUtil.assertCollectionEquals(route.get(1).getOrders(), order3);
|
||||
TestUtil.assertCollectionEquals(route.get(2).getOrders(), order4);
|
||||
|
||||
Reference in New Issue
Block a user