/** * Test whether the number of events filter works. */ @Test public void testFilter() { final TimeSeriesGenerator original = homogenousPoisson(500, 20); final TimeSeriesGenerator filtered = filter(original, numEventsPredicate(20)); final RandomGenerator rng = new MersenneTwister(123L); for (int i = 0; i < 10; i++) { assertEquals(20, filtered.generate(rng.nextLong()).size()); } } }
/** * Tests whether times which are outside the interval [0,length) are correctly * rejected. */ @Test(expected = IllegalArgumentException.class) public void timesFail() { final int scenarioLength = 10; final ParcelGenerator pg2 = Parcels .builder() .announceTimes( TimeSeries.homogenousPoisson(scenarioLength + 0.1, 100)) .build(); pg2.generate(123, TravelTimesUtil.distance(), scenarioLength); }
/** * @return Test configs */ @Parameters public static Collection<Object[]> data() { return Arrays.asList(new Object[][] { {TimeSeries.homogenousPoisson(60d, 10)}, {TimeSeries.homogenousPoisson(60d, 100)}, {TimeSeries.homogenousPoisson(180d, 10)}, {TimeSeries.homogenousPoisson(180d, 100)}, {TimeSeries.nonHomogenousPoisson(60d, IntensityFunctions .sineIntensity() .period(60).area(10).build())}, {TimeSeries.nonHomogenousPoisson(60d, IntensityFunctions .sineIntensity() .period(60).area(10).phaseShift(2).build())}, {TimeSeries.nonHomogenousPoisson(60d, IntensityFunctions .sineIntensity() .period(60).area(10).height(1).build())}, {TimeSeries.nonHomogenousPoisson(300d, IntensityFunctions .sineIntensity() .period(60).area(10).height(1).build())}, {TimeSeries.nonHomogenousPoisson(600d, IntensityFunctions .sineIntensity() .period(600).area(200).height(1).build())} }); }
/** * Tests whether all generated times are in the interval [0,length). */ @Test public void timesTest() { final int scenarioLength = 10; final ParcelGenerator pg = Parcels.builder() .announceTimes(TimeSeries.homogenousPoisson(scenarioLength, 100)) .build(); final List<AddParcelEvent> events = pg.generate(123, TravelTimesUtil.distance(), scenarioLength); for (final AddParcelEvent ape : events) { assertTrue(ape.getTime() < scenarioLength); } TestUtil.testPrivateConstructor(Parcels.class); }
.builder() .announceTimes( TimeSeries.homogenousPoisson(4 * 60 * 60 * 1000L, 10)) .locations(Locations.builder().square(5).buildUniform()) .timeWindows(TimeWindows.builder().build())