Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.unice.polytech.si3.project.dronedelivery.d.visualiser;
- import fr.unice.polytech.si3.project.dronedelivery.d.commons.Drone;
- import fr.unice.polytech.si3.project.dronedelivery.d.commons.Item;
- import fr.unice.polytech.si3.project.dronedelivery.d.commons.command.Command;
- import fr.unice.polytech.si3.project.dronedelivery.d.commons.command.Deliver;
- import fr.unice.polytech.si3.project.dronedelivery.d.commons.command.Load;
- import fr.unice.polytech.si3.project.dronedelivery.d.commons.command.Unload;
- import fr.unice.polytech.si3.project.dronedelivery.d.commons.poi.Order;
- import fr.unice.polytech.si3.project.dronedelivery.d.commons.poi.Warehouse;
- import fr.unice.polytech.si3.project.dronedelivery.d.commons.utils.CalculeUtils;
- import org.junit.Before;
- import org.junit.Test;
- import java.awt.*;
- import java.util.ArrayList;
- import java.util.List;
- import static fr.unice.polytech.si3.project.dronedelivery.d.commons.TestCommon.*;
- import static junit.framework.TestCase.assertEquals;
- import static junit.framework.TestCase.assertTrue;
- /**
- * Created by user on 20/01/2017.
- */
- public class DroneParserTest {
- private final Item item1 = new Item(1, 40);
- private final Item item2 = new Item(2, 40);
- private final Item item0 = new Item(0, 40);
- private DroneParser droneParser;
- private Command loadCommand;
- private int nbItems;
- private List<Warehouse> warehouseList = new ArrayList<>();
- private Drone drone;
- private Order order0;
- private Deliver deliverCommand;
- private Warehouse warehouse0;
- private List<Order> orders = new ArrayList<>();
- @Before
- public void setUp() throws Exception {
- int budget = 25;
- drone = new Drone(0, 200, initTestItemMap(item0, item1, item2), budget, new Point(0, 0));
- warehouse0 = createTestWarehouse(0, item1, 3);
- Warehouse warehouse1 = createTestWarehouse(1, item1, 4);
- warehouseList.add(warehouse0);
- warehouseList.add(warehouse1);
- order0 = createTestOrder(0, item1, 1);
- Order order1 = createTestOrder(1, item1, 2);
- orders.add(order0);
- orders.add(order1);
- droneParser = new DroneParser(drone, budget, warehouseList, orders);
- nbItems = 2;
- loadCommand = new Load(drone, warehouse0, item1, nbItems);
- deliverCommand = new Deliver(drone, order0, item1, nbItems);
- }
- @Test
- public void load() throws Exception {
- droneParser.load(1, 1, nbItems);
- DataStruct turn = droneParser.getTurn(0);
- assertTrue(turn.getCommand() instanceof Load);
- assertEquals(warehouseList.get(1), turn.getDestination());
- }
- @Test
- public void deliver() throws Exception {
- droneParser.deliver(1, 1, nbItems);
- DataStruct turn = droneParser.getTurn(0);
- assertTrue(turn.getCommand() instanceof Deliver);
- assertEquals(orders.get(1), turn.getDestination());
- }
- @Test
- public void unload() throws Exception {
- droneParser.unload(0, 1, nbItems);
- DataStruct turn = droneParser.getTurn(0);
- assertTrue(turn.getCommand() instanceof Unload);
- assertEquals(warehouseList.get(0), turn.getDestination());
- }
- @Test
- public void takeAction() throws Exception {
- int firstDist = drone.getEuclidienneDistance(warehouseList.get(0).getCoordonnees()) + 1;
- int firstMax = firstDist;
- droneParser.takeAction(warehouse0, loadCommand, nbItems);
- for (int i = 0; i < firstMax; i++) {
- DataStruct turn = droneParser.getTurn(i);
- assertEquals(loadCommand, turn.getCommand());
- assertEquals(warehouseList.get(0), turn.getDestination());
- assertEquals(firstDist--, turn.getEta());
- assertEquals(nbItems, turn.getItemCount());
- }
- int dist = CalculeUtils.calculEuclidien(warehouse0.getCoordonnees(), order0.getCoordonnees()) + 1;
- int max = dist;
- droneParser.takeAction(order0, deliverCommand, nbItems);
- for (int i = firstMax; i < max; i++) {
- DataStruct turn = droneParser.getTurn(i);
- assertEquals(deliverCommand, turn.getCommand());
- assertEquals(order0, turn.getDestination());
- assertEquals(dist--, turn.getEta());
- assertEquals(nbItems, turn.getItemCount());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement