View Javadoc
1   package org.opentrafficsim.road.gtu.strategical;
2   
3   import static org.opentrafficsim.road.gtu.lane.RoadGTUTypes.CAR;
4   
5   import java.util.HashMap;
6   import java.util.Map;
7   
8   import org.junit.Test;
9   import org.opentrafficsim.core.dsol.OTSSimulatorInterface;
10  import org.opentrafficsim.core.geometry.OTSGeometryException;
11  import org.opentrafficsim.core.geometry.OTSLine3D;
12  import org.opentrafficsim.core.geometry.OTSPoint3D;
13  import org.opentrafficsim.core.gtu.GTUException;
14  import org.opentrafficsim.core.gtu.GTUType;
15  import org.opentrafficsim.core.gtu.behavioralcharacteristics.BehavioralCharacteristics;
16  import org.opentrafficsim.core.network.LinkType;
17  import org.opentrafficsim.core.network.LongitudinalDirectionality;
18  import org.opentrafficsim.core.network.Network;
19  import org.opentrafficsim.core.network.NetworkException;
20  import org.opentrafficsim.core.network.OTSLink;
21  import org.opentrafficsim.core.network.OTSNetwork;
22  import org.opentrafficsim.core.network.OTSNode;
23  import org.opentrafficsim.road.DefaultTestParameters;
24  import org.opentrafficsim.road.gtu.lane.tactical.LaneBasedCFLCTacticalPlanner;
25  import org.opentrafficsim.road.gtu.lane.tactical.following.CarFollowingModel;
26  import org.opentrafficsim.road.gtu.lane.tactical.following.IDMPlus;
27  
28  import mockit.MockUp;
29  
30  /**
31   * Test the LaneBasedStrategicalRoutePlanner class.
32   * <p>
33   * Copyright (c) 2013-2016 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
34   * BSD-style license. See <a href="http://opentrafficsim.org/docs/current/license.html">OpenTrafficSim License</a>.
35   * <p>
36   * @version $Revision$, $LastChangedDate$, by $Author$, initial version Apr 19, 2016 <br>
37   * @author <a href="http://www.tbm.tudelft.nl/averbraeck">Alexander Verbraeck</a>
38   * @author <a href="http://www.tudelft.nl/pknoppers">Peter Knoppers</a>
39   */
40  public class LaneBasedStrategicalRoutePlannerTest
41  {
42  
43      /**
44       * Test the nextLinkDirection method.
45       * @throws GTUException if not caught this test has failed
46       * @throws NetworkException if not caught this test has failed
47       * @throws OTSGeometryException when construction of design line fails
48       */
49      @Test
50      public final void nextLinkDirectionTest() throws GTUException, NetworkException, OTSGeometryException
51      {
52          Network network = new OTSNetwork("next link direction test");
53          GTUType gtuType = CAR;
54          // Build a really simple network
55          OTSNode fromNode = new OTSNode(network, "from", new OTSPoint3D(0, 0, 0));
56          OTSNode toNode = new OTSNode(network, "to", new OTSPoint3D(100, 0, 0));
57          Map<GTUType, LongitudinalDirectionality> directionalityMap = new HashMap<GTUType, LongitudinalDirectionality>();
58          directionalityMap.put(gtuType, LongitudinalDirectionality.DIR_PLUS); // Start with the easy cases
59          OTSLine3D designLine = new OTSLine3D(fromNode.getPoint(), toNode.getPoint());
60          OTSSimulatorInterface simulator = new MockUp<OTSSimulatorInterface>()
61          {
62              // no implementation needed.
63          }.getMockInstance();
64          OTSLink link = new OTSLink(network, "link", fromNode, toNode, LinkType.ALL, designLine, simulator, directionalityMap);
65          CarFollowingModel cfm = new IDMPlus();
66          LaneBasedCFLCTacticalPlanner tacticalPlanner = new LaneBasedCFLCTacticalPlanner(null, null, null);
67          BehavioralCharacteristics bc = DefaultTestParameters.create();
68          // TODO Gtu cannot be null anymore...
69          // LaneBasedStrategicalRoutePlanner lbsrp = new LaneBasedStrategicalRoutePlanner(bc, tacticalPlanner, null);
70  
71      }
72  }