Author: [log in to unmask] Date: Mon Nov 17 16:26:35 2014 New Revision: 1558 Log: Rename test and also improve it so that it actually checks what it is supposed to check. Added: java/trunk/conditions/src/test/java/org/hps/conditions/RunNumberTest.java - copied, changed from r1556, java/trunk/conditions/src/test/java/org/hps/conditions/ConditionsDriverTest.java Removed: java/trunk/conditions/src/test/java/org/hps/conditions/ConditionsDriverTest.java Copied: java/trunk/conditions/src/test/java/org/hps/conditions/RunNumberTest.java (from r1556, java/trunk/conditions/src/test/java/org/hps/conditions/ConditionsDriverTest.java) ============================================================================= --- java/trunk/conditions/src/test/java/org/hps/conditions/ConditionsDriverTest.java (original) +++ java/trunk/conditions/src/test/java/org/hps/conditions/RunNumberTest.java Mon Nov 17 16:26:35 2014 @@ -3,27 +3,29 @@ import java.io.File; import java.net.URL; import java.util.ArrayList; +import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; +import java.util.logging.Level; import junit.framework.TestCase; -import org.lcsim.event.EventHeader; +import org.hps.conditions.database.DatabaseConditionsManager; +import org.lcsim.geometry.Detector; import org.lcsim.util.Driver; import org.lcsim.util.cache.FileCache; import org.lcsim.util.loop.LCSimLoop; /** - * This class tests that - * {@link org.lcsim.hps.conditions.TestRunConditionsDriver} works correctly by - * checking the number of runs it processes. + * This class checks that event processing works correctly for files that + * have multiple runs in them. + * * @author Jeremy McCormick <[log in to unmask]> */ -public class ConditionsDriverTest extends TestCase { +public class RunNumberTest extends TestCase { - // This test file has a few events from each of the "good runs" of the 2012 - // Test Run. + // This test file has a few events from each of the "good runs" of the 2012 Test Run. private static final String fileLocation = "http://www.lcsim.org/test/hps-java/ConditionsTest.slcio"; // Number of runs that should be processed in the job. @@ -40,18 +42,14 @@ File testFile = cache.getCachedFile(new URL(fileLocation)); // Create the record loop. + new DatabaseConditionsManager(); + //DatabaseConditionsManager.getInstance().setLogLevel(Level.WARNING); LCSimLoop loop = new LCSimLoop(); // Configure the loop. loop.setLCIORecordSource(testFile); - TestRunConditionsDriver conditionsDriver = new TestRunConditionsDriver(); - conditionsDriver.setLoadSvtConditions(false); - loop.add(conditionsDriver); RunNumberDriver runNumberDriver = new RunNumberDriver(); loop.add(runNumberDriver); - - // Turn off the log messages. - // DatabaseConditionsManager.getInstance().setLogLevel(Level.OFF); // Run over all events. loop.loop(-1, null); @@ -60,7 +58,7 @@ // Print out unique runs. System.out.println("Unique run numbers in this job ..."); - for (int runNumber : runNumberDriver.getUniqueRuns()) { + for (int runNumber : runNumberDriver.uniqueRuns) { System.out.println(runNumber); } @@ -68,15 +66,21 @@ // Print out runs processed. System.out.println("Processed runs in order ..."); - for (int runNumber : runNumberDriver.getRunsProcessed()) { + for (int runNumber : runNumberDriver.runsProcessed) { System.out.println(runNumber); } // Check that correct number of runs was processed. - assertEquals("Number of runs processed was incorrect.", NRUNS, runNumberDriver.getNumberOfRuns()); + assertEquals("Number of runs processed was incorrect.", NRUNS, runNumberDriver.nRuns); // Check that the number of unique runs was correct. - assertEquals("Number of unique runs was incorrect.", NRUNS, runNumberDriver.getUniqueRuns().size()); + assertEquals("Number of unique runs was incorrect.", NRUNS, runNumberDriver.uniqueRuns.size()); + + // Check that detectorChanged was called the correct number of times. + assertEquals("The detectorChanged method was called an incorrect number of times.", NRUNS, runNumberDriver.nDetectorChanged); + + // Check that there was a unique Detector created for each run. + assertEquals("The number of Detector objects created was not correct.", NRUNS, runNumberDriver.uniqueDetectorObjects.size()); } /** @@ -84,31 +88,21 @@ */ static class RunNumberDriver extends Driver { - int currentRun = -1; - int nruns = 0; + int nRuns = 0; + int nDetectorChanged = 0; List<Integer> runsProcessed = new ArrayList<Integer>(); - Set<Integer> uniqueRuns = new LinkedHashSet<Integer>(); - - public void process(EventHeader event) { - int runNumber = event.getRunNumber(); - if (runNumber != currentRun) { - currentRun = runNumber; - uniqueRuns.add(currentRun); - runsProcessed.add(currentRun); - nruns++; - } - } - - int getNumberOfRuns() { - return nruns; - } - - List<Integer> getRunsProcessed() { - return runsProcessed; - } - - Set<Integer> getUniqueRuns() { - return uniqueRuns; + Set<Integer> uniqueRuns = new LinkedHashSet<Integer>(); + Set<Detector> uniqueDetectorObjects = new HashSet<Detector>(); + static DatabaseConditionsManager conditionsManager = DatabaseConditionsManager.getInstance(); + + public void detectorChanged(Detector detector) { + System.out.println("detectorChanged - detector " + detector.getDetectorName() + " and run #" + conditionsManager.getRun()); + int run = conditionsManager.getRun(); + uniqueRuns.add(run); + runsProcessed.add(run); + ++nRuns; + ++nDetectorChanged; + uniqueDetectorObjects.add(detector); } } }