Print

Print


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