Package de.hpi.eworld.simulationstatistic.model

Examples of de.hpi.eworld.simulationstatistic.model.StatEdge


    StatInterval interval0 = model.getInterval(0);
    Assert.assertEquals(3, model.numIntervals());
    Assert.assertEquals(12, interval0.numEdges());
   
    //test edge values
    StatEdge edge1 = interval0.getStatEdge("1fi");
    Assert.assertEquals(30.2, edge1.getValue(Value.TRAVELTIME), 0);
    Assert.assertEquals(6329.1, edge1.getValue(Value.SAMPLEDSECONDS), 0);
    Assert.assertEquals(28.3, edge1.getValue(Value.DENSITY), 0);
    Assert.assertEquals(14.15, edge1.getValue(Value.OCCUPANCY), 0);
    Assert.assertEquals(89.0, edge1.getValue(Value.NRSTOPS),0);
    Assert.assertEquals(8.23, edge1.getValue(Value.SPEED), 0);
    Assert.assertEquals(145.0, edge1.getValue(Value.VEHICLESENTERED),0);
    Assert.assertEquals(89.0, edge1.getValue(Value.VEHICLESEMITTED),0);
    Assert.assertEquals(205.0, edge1.getValue(Value.VEHICLESLEFT),0);
   
    /*<edge id="1fi" traveltime="30.20" sampledSeconds="6329.10"
    density="28.30" occupancy="14.15" noStops="89"
    speed="8.23" entered="145" emitted="89" left="205"/>
    */
 
View Full Code Here


         ...
         </edge>
    */
   
    //test edge values
    StatEdge edge1 = interval0.getStatEdge("1fi");
    Assert.assertEquals(1, edge1.numLanes());
    Assert.assertFalse(edge1.hasValues());
    Assert.assertEquals(30.2, edge1.getValue(Value.TRAVELTIME), 0);
    Assert.assertEquals(6329.1, edge1.getValue(Value.SAMPLEDSECONDS), 0);
    Assert.assertEquals(28.3, edge1.getValue(Value.DENSITY), 0);
    Assert.assertEquals(14.15, edge1.getValue(Value.OCCUPANCY), 0);
    Assert.assertEquals(89, edge1.getValue(Value.NRSTOPS),0);
    Assert.assertEquals(8.23, edge1.getValue(Value.SPEED), 0);
    Assert.assertEquals(145, edge1.getValue(Value.VEHICLESENTERED),0);
    Assert.assertEquals(89, edge1.getValue(Value.VEHICLESEMITTED),0);
    Assert.assertEquals(205, edge1.getValue(Value.VEHICLESLEFT),0);
    Assert.assertTrue(edge1.hasValues());
   
    //test normalized edge values
    StatEdge edge2 = interval0.getStatEdge("1si");
    Assert.assertEquals(3, edge2.numLanes());
    Assert.assertFalse(edge2.hasValues());
    Assert.assertEquals(85.97, edge2.getValue(Value.TRAVELTIME), 0.01);
    Assert.assertEquals(5806.67, edge2.getValue(Value.SAMPLEDSECONDS), 0.01);
    Assert.assertEquals(27.21, edge2.getValue(Value.DENSITY), 0.01);
    Assert.assertEquals(13.60, edge2.getValue(Value.OCCUPANCY), 0.01);
    Assert.assertEquals(3607, edge2.getValue(Value.NRSTOPS),0);
    Assert.assertEquals(5.31, edge2.getValue(Value.SPEED), 0.01);
    Assert.assertEquals(68, edge2.getValue(Value.VEHICLESENTERED),0);
    Assert.assertEquals(0, edge2.getValue(Value.VEHICLESEMITTED),0);
    Assert.assertEquals(55, edge2.getValue(Value.VEHICLESLEFT),0);
    Assert.assertTrue(edge2.hasValues());
   
    //TODO:test for non-existent lane
    Assert.assertNull(interval0.getStatLane("not_there_0"));
   
    //test for non-existent edge
View Full Code Here

    List<EdgeModel> edges = new ArrayList<EdgeModel>();
    edges.addAll(way.getBackwardEdges());
    edges.addAll(way.getForwardEdges());

    for (EdgeModel edge : edges) {
      StatEdge statEdge = interval.getStatEdge(edge.getInternalID());
      if (statEdge != null) {
        for (int i = 0; i < edge.getNoOfLanes(); i++) {
          StatLane lane = statEdge.getStatLane(i);
          if (lane != null)
            meanList.add(i, lane.getValue(value) / edges.size());
        }
      }
    }
View Full Code Here

    List<EdgeModel> edges = new ArrayList<EdgeModel>();
    edges.addAll(way.getBackwardEdges());
    edges.addAll(way.getForwardEdges());

    for (EdgeModel edge : edges) {
      StatEdge statEdge = interval.getStatEdge(edge.getInternalID());
      if (statEdge != null)
        mean += statEdge.getValue(value);
    }
    // double sum = mean;
    mean = (edges.size() == 0) ? 0 : mean / edges.size();
    // logger.debug("Way: " + way.getInternalID() + " Edges: " +
    // edges.size() + " Sum: " + sum + " Mean: " + mean);
View Full Code Here

   * Test all variants for edge creation
   */
  @Test
  public void testEdgeCreation() {
    // edge with values
    StatEdge edge1 = new StatEdge("dummy1", 10.0, 200.0, 8.9, 14.4, 22.7,
        4, 6, 3, 9);
    Assert.assertEquals("dummy1", edge1.getId());
    Assert.assertEquals(10.0, edge1.getValue(Value.TRAVELTIME));
    Assert.assertEquals(200.0, edge1.getValue(Value.SAMPLEDSECONDS));
    Assert.assertEquals(8.9, edge1.getValue(Value.DENSITY));
    Assert.assertEquals(14.4, edge1.getValue(Value.OCCUPANCY));
    Assert.assertEquals(22.7, edge1.getValue(Value.SPEED));
    Assert.assertEquals(4, edge1.getValue(Value.NRSTOPS),0);
    Assert.assertEquals(6, edge1.getValue(Value.VEHICLESENTERED),0);
    Assert.assertEquals(3, edge1.getValue(Value.VEHICLESEMITTED),0);
    Assert.assertEquals(9, edge1.getValue(Value.VEHICLESLEFT),0);

    Assert.assertTrue(edge1.hasValues());
    Assert.assertEquals(0, edge1.numLanes());
    Assert.assertEquals(0, edge1.getStatLanes().size());

    // edge without values
    StatEdge edge2 = new StatEdge("dummy2");
    Assert.assertEquals("dummy2", edge2.getId());
    Assert.assertEquals(0.0, edge2.getValue(Value.TRAVELTIME));
    Assert.assertEquals(0.0, edge2.getValue(Value.SAMPLEDSECONDS));
    Assert.assertEquals(0.0, edge2.getValue(Value.DENSITY));
    Assert.assertEquals(0.0, edge2.getValue(Value.OCCUPANCY));
    Assert.assertEquals(0.0, edge2.getValue(Value.SPEED));
    Assert.assertEquals(0, edge2.getValue(Value.NRSTOPS),0);
    Assert.assertEquals(0, edge2.getValue(Value.VEHICLESENTERED),0);
    Assert.assertEquals(0, edge2.getValue(Value.VEHICLESEMITTED),0);
    Assert.assertEquals(0, edge2.getValue(Value.VEHICLESLEFT),0);

    Assert.assertFalse(edge2.hasValues());
    Assert.assertEquals(0, edge2.numLanes());
  }
View Full Code Here

   *            child lanes are requested, and numLanes is equal to {@link #RANDOM_NUMBER_LANES}, then a random number of between 1 and 10 lanes are created
   *          id the id of the new edge. a uuid will be generated if 'null' or empty string given
   * @return a new StatEdge object with random values and a certain number of lanes
   */
  public static StatEdge createTestStatEdge(boolean withValues, boolean withChildLanes, int numLanes, String id) {
    StatEdge edge;
    String edgeId = id;
    if (edgeId == null || edgeId.equals("")){
      // need UUID, because edge maps use id as keys
      // tests could fail, if ids are not unique
      edgeId = "dummy" + UUID.randomUUID();
    }
   
    if (!withValues) {
      edge = new StatEdge(edgeId);
    } else {
      edge = new StatEdge(edgeId, 100 * Math.random(), 1000 * Math.random(), 100 * Math.random(), 100 * Math.random(),
          100 * Math.random(), (int) (100 * Math.random()), (int) (100 * Math.random()), (int) (100 * Math.random()),
          (int) (100 * Math.random()));
      edge.setMaxSpeed(100 * Math.random());
      edge.setMinSpeed(10 * Math.random());
      edge.setStreetName("street" + (int) (Math.random() * 100));
    }

    // create 1..10 child lanes if requested
    if (withChildLanes) {
      try {
        StatLane lane;
        // number of lanes == numLanes, unless numLanes==0
        int num = (numLanes == RANDOM_NUMBER_LANES) ? (int) ((Math.random() * 9) + 1) : numLanes;
        for (int i = 0; i < num; i++) {
          lane = createTestStatLane(edgeId + "_" + i);
          edge.addStatLane(lane);
        }
      } catch (Exception e) {
        e.printStackTrace();
        Assert.fail();
      }
View Full Code Here

    Assert.assertEquals(0, edge2.numLanes());
  }

  @Test
  public void testChildLanes() {
    StatEdge edge1 = new StatEdge("dummy1");
    StatLane lane1;
    try {
      lane1 = TestCaseUtil.createTestStatLane("dummy1_0");
    StatLane lane2 = TestCaseUtil.createTestStatLane("dummy1_1");
    Assert.assertEquals(0, edge1.numLanes());
    Assert.assertEquals(0, edge1.getStatLanes().size());
    edge1.addStatLane(lane1);
    Assert.assertEquals(1, edge1.numLanes());
    Assert.assertEquals(1, edge1.getStatLanes().size());
    edge1.addStatLane(lane2);
    Assert.assertEquals(2, edge1.numLanes());
    Assert.assertEquals(2, edge1.getStatLanes().size());

    Assert.assertSame(lane1, edge1.getStatLane(lane1.getId()));
    Assert.assertSame(lane2, edge1.getStatLane(lane2.getId()));
    } catch (Exception e) {
      e.printStackTrace();
      Assert.fail();
    }
  }
View Full Code Here

  }

  @Test
  public void testMeanValueComputation() {
    // test edge with child lanes
    StatEdge edge1 = new StatEdge("dummy1");
    Assert.assertEquals(0.0, edge1.getValue(Value.TRAVELTIME));
    Assert.assertEquals(0.0, edge1.getValue(Value.SAMPLEDSECONDS));
    Assert.assertEquals(0.0, edge1.getValue(Value.DENSITY));
    Assert.assertEquals(0.0, edge1.getValue(Value.OCCUPANCY));
    Assert.assertEquals(0.0, edge1.getValue(Value.SPEED));
    Assert.assertEquals(0, edge1.getValue(Value.NRSTOPS),0);
    Assert.assertEquals(0, edge1.getValue(Value.VEHICLESENTERED),0);
    Assert.assertEquals(0, edge1.getValue(Value.VEHICLESEMITTED),0);
    Assert.assertEquals(0, edge1.getValue(Value.VEHICLESLEFT),0);

    Assert.assertFalse(edge1.hasValues());
    Assert.assertEquals(0, edge1.numLanes());

    try {
      StatLane lane1 = new StatLane("dummy1_0", 6.0, 100.0, 9.0, 14.4,
          22.7, 4, 6, 3, 9);
      lane1.setMaxSpeed(30.0);
      lane1.setMinSpeed(5.0);
      StatLane lane2 = new StatLane("dummy1_1", 10.0, 200.0, 2.0, 7.2,
          20.1, 0, 8, 0, 8);
      lane2.setMaxSpeed(60.0);
      lane2.setMinSpeed(0.0);
      edge1.addStatLane(lane1);
      edge1.addStatLane(lane2);
      Assert.assertEquals(2, edge1.numLanes());
    } catch (Exception e) {
      e.printStackTrace();
      Assert.fail();
    }

    // edge should have mean data of his child lanes, as soon as first
    // value is accessed
    Assert.assertEquals(8.0, edge1.getValue(Value.TRAVELTIME));

    Assert.assertTrue(edge1.hasValues());

    Assert.assertEquals(150.0, edge1.getValue(Value.SAMPLEDSECONDS));
    Assert.assertEquals(5.5, edge1.getValue(Value.DENSITY));
    Assert.assertEquals(10.8, edge1.getValue(Value.OCCUPANCY));
    Assert.assertEquals(21.4, edge1.getValue(Value.SPEED));
    Assert.assertEquals(2, edge1.getValue(Value.NRSTOPS),0);
    Assert.assertEquals(7, edge1.getValue(Value.VEHICLESENTERED),0);
    Assert.assertEquals(1, edge1.getValue(Value.VEHICLESEMITTED),0);
    Assert.assertEquals(8, edge1.getValue(Value.VEHICLESLEFT),0);
    Assert.assertEquals(45.0, edge1.getValue(Value.MAXSPEED),0);
    Assert.assertEquals(2.5, edge1.getValue(Value.MINSPEED),0);

    // test edge without child lanes
    StatEdge edge2 = new StatEdge("dummy1");
    Assert.assertEquals(0.0, edge2.getValue(Value.TRAVELTIME));
    Assert.assertEquals(0.0, edge2.getValue(Value.SAMPLEDSECONDS));
    Assert.assertEquals(0.0, edge2.getValue(Value.DENSITY));
    Assert.assertEquals(0.0, edge2.getValue(Value.OCCUPANCY));
    Assert.assertEquals(0.0, edge2.getValue(Value.SPEED));
    Assert.assertEquals(0, edge2.getValue(Value.NRSTOPS),0);
    Assert.assertEquals(0, edge2.getValue(Value.VEHICLESENTERED),0);
    Assert.assertEquals(0, edge2.getValue(Value.VEHICLESEMITTED),0);
    Assert.assertEquals(0, edge2.getValue(Value.VEHICLESLEFT),0);

    Assert.assertFalse(edge2.hasValues());
    Assert.assertEquals(0, edge2.numLanes());

    // test edge with values AND childs
    // should return values of edge only, no mean values
    StatEdge edge3 = new StatEdge("dummy3", 10.0, 200.0, 8.9, 14.4, 22.7,
        4, 6, 3, 9);
    Assert.assertEquals("dummy3", edge3.getId());
    Assert.assertEquals(10.0, edge3.getValue(Value.TRAVELTIME));
    Assert.assertEquals(200.0, edge3.getValue(Value.SAMPLEDSECONDS));
    Assert.assertEquals(8.9, edge3.getValue(Value.DENSITY));
    Assert.assertEquals(14.4, edge3.getValue(Value.OCCUPANCY));
    Assert.assertEquals(22.7, edge3.getValue(Value.SPEED));
    Assert.assertEquals(4, edge3.getValue(Value.NRSTOPS),0);
    Assert.assertEquals(6, edge3.getValue(Value.VEHICLESENTERED),0);
    Assert.assertEquals(3, edge3.getValue(Value.VEHICLESEMITTED),0);
    Assert.assertEquals(9, edge3.getValue(Value.VEHICLESLEFT),0);

    Assert.assertTrue(edge3.hasValues());
    Assert.assertEquals(0, edge3.numLanes());

    // add two lanes
    try {
      StatLane lane3 = new StatLane("dummy1_0", 6.0, 100.0, 9.0, 14.4,
          22.7, 4, 6, 3, 9);
      lane3.setMaxSpeed(30.0);
      lane3.setMinSpeed(5.0);
      StatLane lane4 = new StatLane("dummy1_1", 10.0, 200.0, 2.0, 7.2,
          20.1, 0, 8, 0, 8);
      lane4.setMaxSpeed(60.0);
      lane4.setMinSpeed(0.0);
      edge3.addStatLane(lane3);
      edge3.addStatLane(lane4);
      Assert.assertEquals(2, edge1.numLanes());
    } catch (Exception e) {
      e.printStackTrace();
      Assert.fail();
    }

    // test if values are still the same as before
    Assert.assertEquals(10.0, edge3.getValue(Value.TRAVELTIME));
    Assert.assertEquals(200.0, edge3.getValue(Value.SAMPLEDSECONDS));
    Assert.assertEquals(8.9, edge3.getValue(Value.DENSITY));
    Assert.assertEquals(14.4, edge3.getValue(Value.OCCUPANCY));
    Assert.assertEquals(22.7, edge3.getValue(Value.SPEED));
    Assert.assertEquals(4, edge3.getValue(Value.NRSTOPS),0);
    Assert.assertEquals(6, edge3.getValue(Value.VEHICLESENTERED),0);
    Assert.assertEquals(3, edge3.getValue(Value.VEHICLESEMITTED),0);
    Assert.assertEquals(9, edge3.getValue(Value.VEHICLESLEFT),0);
  }
View Full Code Here

          // for each edge in the testcase add a StatEdge to the dummy
          // model...
          // with defaults for the values to be tested for (maxspeed, minspeed,
          // street name) and ...
          // ...without lanes (model1)
          StatEdge edge1 = TestCaseUtil.createTestStatEdge(true,
              false, 0, edge.getInternalID());
          edge1.setMaxSpeed(0);
          edge1.setMinSpeed(0);
          edge1.setStreetName(null);
          interval1.addStatEdge(edge1);

          // ...with same number of lanes as the edge has (model2)
          int lanes = edge.getNoOfLanes();
          //however, eWorlds edges have 1 lane by default, SUMOs do not
          lanes = (lanes == 1)? 0: lanes;
          StatEdge edge2 = TestCaseUtil.createTestStatEdge(true,
              true, lanes, edge.getInternalID());
          edge2.setMaxSpeed(0);
          edge2.setMinSpeed(0);
          edge2.setStreetName(null);
          interval2.addStatEdge(edge2);
         
         
          //System.out.println("Lanes   edge:" + edge.getNoOfLanes() +
          //    "statedge:" + edge2.numLanes());
          // also look for an edge, that has all attributes we want to
          // test for
          if (testEdge == null) {
            if ((edge.getMaxspeed() != 0)
                && (edge.getMinspeed() != 0)
                && (edge.getParentWay().getDescription() != null)) {
              testEdge = edge;
            }//end if
          }//end if
        }//end for edges
      }//end instanceof
    }//end for allElements

    // add models to statmodelmanager and test if testcase data was added to
    // them
    smm.addDataset(model1);
    StatEdge testStatEdge = model1.getInterval(0).getStatEdge(
        testEdge.getInternalID());
    Assert.assertFalse((testStatEdge.getValue(Value.MAXSPEED) == 0));
    Assert.assertFalse((testStatEdge.getValue(Value.MINSPEED) == 0));
    Assert.assertNotNull(testStatEdge.getStreetName());

    smm.clear();
    smm.addDataset(model2);
    testStatEdge = model2.getInterval(0).getStatEdge(
        testEdge.getInternalID());
    Assert.assertFalse((testStatEdge.getValue(Value.MAXSPEED) == 0));
    Assert.assertFalse((testStatEdge.getValue(Value.MINSPEED) == 0));
    Assert.assertNotNull(testStatEdge.getStreetName());
  }
View Full Code Here

  @Test
  public void edgeLaneGetterTest() {
    StatInterval interval1 = new StatInterval("dummy1", 0, 200);

    // setup test case
    StatEdge edge1 = TestCaseUtil.createTestStatEdge(false, false, 0, null);
    StatLane lane10, lane11, lane12;
    try {
      lane10 = TestCaseUtil.createTestStatLane(edge1.getId() + "_0");
      lane11 = TestCaseUtil.createTestStatLane(edge1.getId() + "_1");
      lane12 = TestCaseUtil.createTestStatLane(edge1.getId() + "_2");
      edge1.addStatLane(lane10);
      edge1.addStatLane(lane11);
      edge1.addStatLane(lane12);
      interval1.addStatEdge(edge1);

      StatEdge edge2 = TestCaseUtil.createTestStatEdge(false, false, 0, null);
      StatLane lane20, lane21;
      lane20 = TestCaseUtil.createTestStatLane(edge2.getId() + "_0");
      lane21 = TestCaseUtil.createTestStatLane(edge2.getId() + "_1");
      edge2.addStatLane(lane20);
      edge2.addStatLane(lane21);
      interval1.addStatEdge(edge2);

      // start testing
      Assert.assertEquals(2, interval1.numEdges());
      Assert.assertEquals(5, interval1.numLanes());
      Assert.assertSame(edge1, interval1.getStatEdge(edge1.getId()));
      Assert.assertSame(edge2, interval1.getStatEdge(edge2.getId()));
      Assert.assertSame(lane10, interval1.getStatLane(lane10
          .getExternalId()));
      Assert.assertSame(lane11, interval1.getStatLane(lane11
          .getExternalId()));
      Assert.assertSame(lane12, interval1.getStatLane(lane12
View Full Code Here

TOP

Related Classes of de.hpi.eworld.simulationstatistic.model.StatEdge

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.