/*package*/ boolean useVolumesOfIteration(final int iteration, final int firstIteration) { int iterationMod = iteration % this.config.getWriteCountsInterval(); int effectiveIteration = iteration - firstIteration; int averaging = Math.min(this.config.getAverageCountsOverIterations(), this.config.getWriteCountsInterval()); if (iterationMod == 0) { return ((this.config.getAverageCountsOverIterations() <= 1) || (effectiveIteration >= averaging)); } return (iterationMod > (this.config.getWriteCountsInterval() - this.config.getAverageCountsOverIterations()) && (effectiveIteration + (this.config.getWriteCountsInterval() - iterationMod) >= averaging)); }
private static boolean isActiveInThisIteration(final int iter, final Config config) { return (iter > 0 && iter % config.counts().getWriteCountsInterval() == 0); } }
/*package*/ boolean createCountsInIteration(final int iteration) { return ((iteration % this.config.getWriteCountsInterval() == 0) && (this.iterationsUsed >= this.config.getAverageCountsOverIterations())); }
@Test public void testWriteCountsInterval() { CountsConfigGroup cg = new CountsConfigGroup(); // test initial value Assert.assertEquals(10, cg.getWriteCountsInterval()); Assert.assertEquals("10", cg.getValue("writeCountsInterval")); // test setting with setMobsim cg.setWriteCountsInterval(4); Assert.assertEquals(4, cg.getWriteCountsInterval()); Assert.assertEquals("4", cg.getValue("writeCountsInterval")); // test setting with addParam cg.addParam("writeCountsInterval", "2"); Assert.assertEquals(2, cg.getWriteCountsInterval()); Assert.assertEquals("2", cg.getValue("writeCountsInterval")); }
@Override public void notifyIterationEnds(final IterationEndsEvent event) { if (counts != null && this.config.getWriteCountsInterval() > 0) { if (useVolumesOfIteration(event.getIteration(), controlerConfigGroup.getFirstIteration())) { addVolumes(volumesAnalyzer);
Assert.assertEquals(10, config.counts().getWriteCountsInterval()); Assert.assertEquals(5, config.counts().getAverageCountsOverIterations());