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);
}
}
}
|