/* amodeus - Copyright (c) 2018, ETH Zurich, Institute for Dynamic Systems and Control */ package amodeus.amodeus.prep; import java.io.File; import amodeus.amodeus.test.ScenarioExecutionTest; import amodeus.amodeus.test.TestFileHandling; import amodeus.amodeus.util.io.Locate; import amodeus.amodeus.util.io.MultiFileTools; import amodeus.amodeus.util.math.GlobalAssert; import junit.framework.TestCase; import org.matsim.amodeus.config.AmodeusModeConfig; import org.matsim.api.core.v01.population.Population; public class TheRequestApocalypseTest extends TestCase { public void testSimple() throws Exception { File workingDirectory = MultiFileTools.getDefaultWorkingDirectory(); /** download a scenario */ File scenarioDirectory = // new File(Locate.repoFolder(ScenarioExecutionTest.class, "amodeus"), "resources/testScenario"); GlobalAssert.that(workingDirectory.isDirectory()); TestFileHandling.copyScnearioToMainDirectory(scenarioDirectory.getAbsolutePath(), // workingDirectory.getAbsolutePath()); /** prepare a scenario */ Preparer preparer = new Preparer(workingDirectory); Population population = preparer.population; PopulationCutter populationCutter = preparer.scenOpt.getPopulationCutter(); populationCutter.cut(population, preparer.network, preparer.config); /** reduce the number of legs */ int numReqDes = 3000; long seed = 1234; TheRequestApocalypse.reducesThe(population).toNoMoreThan(numReqDes, seed); /** ensure testing worked correctly */ assertEquals(numReqDes, (int) LegCount.of(population, AmodeusModeConfig.DEFAULT_MODE)); } @Override public void tearDown() throws Exception { TestFileHandling.removeGeneratedFiles(); } }