Class ContourPlotTest

java.lang.Object
org.opentrafficsim.draw.graphs.ContourPlotTest
All Implemented Interfaces:
org.djunits.unit.util.UNITS

public class ContourPlotTest extends Object implements org.djunits.unit.util.UNITS
Test the non-GUI part of the ContourPlot class.

Copyright (c) 2013-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.

Author:
Peter Knoppers
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    (package private) nl.tudelft.simulation.dsol.formalisms.eventscheduling.SimEventInterface<org.djunits.value.vdouble.scalar.Duration>
     
    (package private) org.opentrafficsim.kpi.interfaces.LaneData<?>
     
    (package private) org.opentrafficsim.kpi.interfaces.LaneData<?>
     
    (package private) org.opentrafficsim.draw.graphs.GraphPath<org.opentrafficsim.kpi.interfaces.LaneData<?>>
    Mocked GraphPath.
    (package private) org.opentrafficsim.kpi.sampling.SamplerData
     
    (package private) org.opentrafficsim.draw.graphs.PlotScheduler
     
    (package private) org.opentrafficsim.core.dsol.OtsSimulatorInterface
     
    (package private) org.opentrafficsim.draw.graphs.GraphPath.Section<org.opentrafficsim.kpi.interfaces.LaneData<?>>
     
    (package private) org.opentrafficsim.draw.graphs.GraphPath.Section<org.opentrafficsim.kpi.interfaces.LaneData<?>>
     

    Fields inherited from interface org.djunits.unit.util.UNITS

    ABAMPERE, ABCOULOMB, ABOHM, ABVOLT, ACRE, AMPERE, AMPERE_HOUR, ANGSTROM, ANGSTROM_ABS, ARCMINUTE, ARCMINUTE_PER_SECOND, ARCMINUTE_PER_SECOND_SQUARED, ARCSECOND, ARCSECOND_PER_SECOND, ARCSECOND_PER_SECOND_SQUARED, ARE, ASTRONOMICAL_UNIT, ASTRONOMICAL_UNIT_ABS, ATMOSPHERE_STANDARD, ATMOSPHERE_TECHNICAL, ATOMIC_UNIT, BAR, BARYE, BASE_DAY, BASE_HOUR, BASE_MICROSECOND, BASE_MILLISECOND, BASE_MINUTE, BASE_SECOND, BASE_WEEK, BECQUEREL, BTU_ISO, BTU_IT, CALORIE, CALORIE_IT, CANDELA, CENTESIMAL_ARCMINUTE, CENTESIMAL_ARCMINUTE_PER_SECOND, CENTESIMAL_ARCMINUTE_SQUARED, CENTESIMAL_ARCSECOND, CENTESIMAL_ARCSECOND_PER_SECOND, CENTESIMAL_ARCSECOND_PER_SECOND_SQUARED, CENTIARE, CENTIMETER, CENTIMETER_ABS, CENTIMETER_MERCURY, COULOMB, CUBIC_CENTIMETER, CUBIC_DECAMETER, CUBIC_DECIMETER, CUBIC_FEET_PER_MINUTE, CUBIC_FEET_PER_SECOND, CUBIC_FOOT, CUBIC_HECTOMETER, CUBIC_INCH, CUBIC_INCH_PER_MINUTE, CUBIC_INCH_PER_SECOND, CUBIC_KILOMETER, CUBIC_LIGHTYEAR, CUBIC_METER, CUBIC_METER_PER_DAY, CUBIC_METER_PER_HOUR, CUBIC_METER_PER_MINUTE, CUBIC_METER_PER_SECOND, CUBIC_MILE, CUBIC_MILLIMETER, CUBIC_NAUTICAL_MILE, CUBIC_PARSEC, CUBIC_YARD, CURIE, DALTON, DAY, DECAMETER, DECAMETER_ABS, DECIMETER, DECIMETER_ABS, DEGREE, DEGREE_CELSIUS, DEGREE_CELSIUS_ABS, DEGREE_FAHRENHEIT, DEGREE_FAHRENHEIT_ABS, DEGREE_PER_SECOND, DEGREE_PER_SECOND_SQUARED, DEGREE_RANKINE, DEGREE_RANKINE_ABS, DEGREE_REAUMUR, DEGREE_REAUMUR_ABS, DYNE, EAST_DEGREE, EAST_RADIAN, EMU, ENERGY_ELECTRONVOLT, ENERGY_GIGAELECTRONVOLT, ENERGY_KILOELECTRONVOLT, ENERGY_MEGAELECTRONVOLT, ENERGY_MICROELECTRONVOLT, ENERGY_MILLIELECTRONVOLT, EPOCH_DAY, EPOCH_HOUR, EPOCH_J2000_SECOND, EPOCH_MICROSECOND, EPOCH_MILLISECOND, EPOCH_MINUTE, EPOCH_SECOND, EPOCH_WEEK, EPOCH_YEAR1_SECOND, ERG, ERG_PER_GRAM, ERG_PER_SECOND, ESU, FARAD, FARADAY, FLUID_OUNCE_IMP, FLUID_OUNCE_US, FOOT, FOOT_ABS, FOOT_MERCURY, FOOT_PER_HOUR, FOOT_PER_MINUTE, FOOT_PER_SECOND, FOOT_PER_SECOND_2, FOOT_POUND_FORCE, FOOT_POUND_FORCE_PER_HOUR, FOOT_POUND_FORCE_PER_MINUTE, FOOT_POUND_FORCE_PER_SECOND, FRANKLIN, GAL, GALLON_IMP, GALLON_US, GALLON_US_PER_DAY, GALLON_US_PER_HOUR, GALLON_US_PER_MINUTE, GALLON_US_PER_SECOND, GAUSS, GIGABECQUEREL, GIGAHERTZ, GIGAJOULE, GIGAOHM, GIGAVOLT, GIGAWATT, GIGAWATT_HOUR, GRAD, GRAD_PER_SECOND, GRAD_PER_SECOND_SQUARED, GRAM, GRAM_PER_CENTIMETER_3, GRAY, HECTARE, HECTOMETER, HECTOMETER_ABS, HECTOPASCAL, HENRY, HERTZ, HORSEPOWER_METRIC, HOUR, INCH, INCH_ABS, INCH_MERCURY, INCH_PER_HOUR, INCH_PER_MINUTE, INCH_PER_SECOND, INCH_PER_SECOND_2, INCH_POUND_FORCE, JOULE, KATAL, KELVIN, KELVIN_ABS, KG_PER_METER_3, KGF_PER_SQUARE_MM, KILOAMPERE, KILOAMPERE_HOUR, KILOBECQUEREL, KILOCALORIE, KILOGRAM, KILOGRAM_FORCE, KILOGRAM_METER_PER_SECOND, KILOGRAM_PER_SECOND, KILOHERTZ, KILOJOULE, KILOLUX, KILOMETER, KILOMETER_ABS, KILOOHM, KILOPASCAL, KILOVOLT, KILOWATT, KILOWATT_HOUR, KM_PER_HOUR, KM_PER_HOUR_2, KM_PER_SECOND, KNOT, KNOT_PER_SECOND, LIGHTYEAR, LIGHTYEAR_ABS, LITER, LITER_PER_DAY, LITER_PER_HOUR, LITER_PER_MINUTE, LITER_PER_SECOND, LUMEN, LUX, MASS_ELECTRONVOLT, MASS_GIGAELECTRONVOLT, MASS_KILOELECTRONVOLT, MASS_MEGAELECTRONVOLT, MASS_MICROELECTRONVOLT, MASS_MILLIELECTRONVOLT, MAXWELL, MEGAAMPERE, MEGAAMPERE_HOUR, MEGABECQUEREL, MEGAHERTZ, MEGAJOULE, MEGAOHM, MEGAVOLT, MEGAWATT, MEGAWATT_HOUR, METER, METER_ABS, METER_KILOGRAM_FORCE, METER_PER_HOUR, METER_PER_SECOND, METER_PER_SECOND_2, MICROAMPERE, MICROCOULOMB, MICROCURIE, MICROFARAD, MICROGRAM, MICROGRAY, MICROHENRY, MICROJOULE, MICROKATAL, MICROLUX, MICROMETER, MICROMETER_ABS, MICROMOLE, MICROOHM, MICROSECOND, MICROSIEMENS, MICROSIEVERT, MICROTESLA, MICROVOLT, MICROWATT, MICROWATT_HOUR, MICROWEBER, MILE, MILE_ABS, MILE_PER_HOUR, MILE_PER_HOUR_2, MILE_PER_HOUR_PER_SECOND, MILE_PER_MINUTE, MILE_PER_SECOND, MILE_PER_SECOND_2, MILLIAMPERE, MILLIAMPERE_HOUR, MILLIAMPERE_SECOND, MILLIBAR, MILLICOULOMB, MILLICURIE, MILLIFARAD, MILLIGRAM, MILLIGRAY, MILLIHENRY, MILLIJOULE, MILLIKATAL, MILLILUX, MILLIMETER, MILLIMETER_ABS, MILLIMETER_MERCURY, MILLIMOLE, MILLIOHM, MILLISECOND, MILLISIEMENS, MILLISIEVERT, MILLITESLA, MILLIVOLT, MILLIWATT, MILLIWATT_HOUR, MILLIWEBER, MINUTE, MOLE, NANOCURIE, NANOFARAD, NANOHENRY, NANOKATAL, NANOMETER, NANOMETER_ABS, NANOMOLE, NANOSIEMENS, NANOTESLA, NANOWEBER, NAUTICAL_MILE, NAUTICAL_MILE_ABS, NEWTON, NEWTON_METER, NORTH_DEGREE, NORTH_RADIAN, NOX, OHM, OUNCE, OUNCE_FORCE, PARSEC, PARSEC_ABS, PASCAL, PER_ANGSTROM, PER_ASTRONOMICAL_UNIT, PER_CENTIMETER, PER_DAY, PER_DECAMETER, PER_DECIMETER, PER_FOOT, PER_HECTOMETER, PER_HOUR, PER_INCH, PER_KILOMETER, PER_LIGHTYEAR, PER_METER, PER_MICROMETER, PER_MICROSECOND, PER_MILE, PER_MILLIMETER, PER_MILLISECOND, PER_MINUTE, PER_NAUTICAL_MILE, PER_PARSEC, PER_SECOND, PER_WEEK, PER_YARD, PERCENT, PETABECQUEREL, PETAJOULE, PETAWATT, PETAWATT_HOUR, PHOT, PICOFARAD, PIEZE, PINT_IMP, PINT_US, POUND, POUND_FOOT, POUND_FORCE, POUND_INCH, POUND_PER_SECOND, POUND_PER_SQUARE_FOOT, POUND_PER_SQUARE_INCH, QUART_IMP, QUART_US, RAD, RADIAN, RADIAN_PER_SECOND, RADIAN_PER_SECOND_SQUARED, REM, RPM, RUTHERFORD, SECOND, SIEMENS, SIEVERT, SQUARE_CENTIMETER, SQUARE_DECAMETER, SQUARE_DECIMETER, SQUARE_DEGREE, SQUARE_FOOT, SQUARE_HECTOMETER, SQUARE_INCH, SQUARE_KILOMETER, SQUARE_METER, SQUARE_MILE, SQUARE_MILLIMETER, SQUARE_NAUTICAL_MILE, SQUARE_YARD, STANDARD_GRAVITY, STATAMPERE, STATCOULOMB, STATOHM, STATVOLT, STERADIAN, STHENE, STHENE_METER, STHENE_METER_PER_SECOND, TERABECQUEREL, TERAHERTZ, TERAJOULE, TERAWATT, TERAWATT_HOUR, TESLA, TON_FORCE, TON_LONG, TON_METRIC, TON_SHORT, TONNE, TORR, UNIT, VOLT, WATT, WATT_HOUR, WEBER, WEEK, YARD, YARD_ABS
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    final void
    Test the ContourPlotAcceleration.
    final void
    Test the ContourPlotDensity.
    final void
    Test the ContourPlotFlow.
    static void
    main(String[] args)
    Run the DensityContourPlot stand-alone for profiling.
    (package private) static void
    printMatrix(org.opentrafficsim.draw.graphs.AbstractContourPlot<?> cp, int fromX, int toX, int fromY, int toY)
    Debugging method.
    final void
    Code common to all contour plot tests.
    final void
    Test the SpeedContourPlot.
    static void
    standardContourTests(org.opentrafficsim.core.dsol.OtsSimulatorInterface simulator, org.opentrafficsim.draw.graphs.AbstractContourPlot<?> cp, org.opentrafficsim.draw.graphs.GraphPath<?> path, double expectedZValue, double expectedZValueWithTraffic)
    Test various properties of a ContourPlot that has no observed data added.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • mockedPath

      org.opentrafficsim.draw.graphs.GraphPath<org.opentrafficsim.kpi.interfaces.LaneData<?>> mockedPath
      Mocked GraphPath.
    • section0

      org.opentrafficsim.draw.graphs.GraphPath.Section<org.opentrafficsim.kpi.interfaces.LaneData<?>> section0
    • section1

      org.opentrafficsim.draw.graphs.GraphPath.Section<org.opentrafficsim.kpi.interfaces.LaneData<?>> section1
    • mockedLane0

      org.opentrafficsim.kpi.interfaces.LaneData<?> mockedLane0
    • mockedLane1

      org.opentrafficsim.kpi.interfaces.LaneData<?> mockedLane1
    • mockedSamplerData

      org.opentrafficsim.kpi.sampling.SamplerData mockedSamplerData
    • mockedSimulator

      org.opentrafficsim.core.dsol.OtsSimulatorInterface mockedSimulator
    • mockedScheduler

      org.opentrafficsim.draw.graphs.PlotScheduler mockedScheduler
    • lastScheduledEvent

      nl.tudelft.simulation.dsol.formalisms.eventscheduling.SimEventInterface<org.djunits.value.vdouble.scalar.Duration> lastScheduledEvent
  • Constructor Details

    • ContourPlotTest

      public ContourPlotTest()
  • Method Details

    • setUp

      public final void setUp() throws nl.tudelft.simulation.dsol.SimRuntimeException, NamingException
      Code common to all contour plot tests.
      Throws:
      nl.tudelft.simulation.dsol.SimRuntimeException - if that happens uncaught; this test has failed
      NamingException - on error
    • accelerationContourTest

      @Test public final void accelerationContourTest() throws Exception
      Test the ContourPlotAcceleration.
      Throws:
      Exception - when something goes wrong (should not happen)
    • densityContourTest

      @Test public final void densityContourTest() throws Exception
      Test the ContourPlotDensity.
      Throws:
      Exception - when something goes wrong (should not happen)
    • flowContourTest

      @Test public final void flowContourTest() throws Exception
      Test the ContourPlotFlow.
      Throws:
      Exception - when something goes wrong (should not happen)
    • speedContourTest

      @Test public final void speedContourTest() throws Exception
      Test the SpeedContourPlot.
      Throws:
      Exception - when something goes wrong (should not happen)
    • printMatrix

      static void printMatrix(org.opentrafficsim.draw.graphs.AbstractContourPlot<?> cp, int fromX, int toX, int fromY, int toY)
      Debugging method.
      Parameters:
      cp - AbstractContourPlot<?>; a contour plot
      fromX - int; lower bound of the x coordinate to print (inclusive)
      toX - int; upper bound of the x coordinate to print (inclusive)
      fromY - int; lower bound of the y coordinate to print (inclusive)
      toY - int; upper bound of the y coordinate to print (inclusive)
    • standardContourTests

      public static void standardContourTests(org.opentrafficsim.core.dsol.OtsSimulatorInterface simulator, org.opentrafficsim.draw.graphs.AbstractContourPlot<?> cp, org.opentrafficsim.draw.graphs.GraphPath<?> path, double expectedZValue, double expectedZValueWithTraffic) throws Exception
      Test various properties of a ContourPlot that has no observed data added.
      Parameters:
      simulator - OtsSimulatorInterface; the simulator
      cp - AbstractContourPlot<?>; the ContourPlot to test
      path - GraphPath<?>; the path
      expectedZValue - double; the value that getZ and getZValue should return for a valid item when no car has passed
      expectedZValueWithTraffic - double; the value that getZ and getZValue should return a valid item where a car has traveled at constant speed of 50 km/h. Supply Double.NaN if the value varies but differs from the value expected when no car has passed
      Throws:
      Exception - when something goes wrong (should not happen)
    • main

      public static void main(String[] args) throws Exception
      Run the DensityContourPlot stand-alone for profiling.
      Parameters:
      args - String[]; the command line arguments (not used)
      Throws:
      Exception - when something goes wrong (should not happen)