View Javadoc

1   /*
2    * RandomSimulator_Test.java
3    *
4    * Created on July 24, 2007, 11:35 AM
5    *
6    * $Id: RandomSimulator_Test.java,v 1.1.1.1 2010/04/08 20:38:00 jeremy Exp $
7    */
8   
9   package org.lcsim.recon.tracking.trfutil;
10  
11  import java.util.ArrayList;
12  import java.util.List;
13  import junit.framework.TestCase;
14  
15  /**
16   *
17   * @author Norman Graf
18   */
19  public class RandomSimulator_Test extends TestCase
20  {
21      private boolean debug;
22      /** Creates a new instance of RandomSimulator_Test */
23      public void testRandomSimulator()
24      {
25          String component = "RandomSimulator";
26          String ok_prefix = component + " (I): ";
27          String error_prefix = component + " test (E): ";
28          
29          if(debug) System.out.println( ok_prefix
30                  + "---------- Testing component " + component
31                  + ". ----------" );
32          
33          //********************************************************************
34          
35          if(debug) System.out.println( ok_prefix + "Construct generators and simulator." );
36          double min = 2.0;
37          double max = 5.0;
38          long seed1 = 246813579L;
39          long seed2 = 987654321L;
40          long seed3 = 135724689L;
41          RandomGeneratorTest rgen1 = new RandomGeneratorTest(min,max,seed1);
42          RandomGeneratorTest rgen2 = new RandomGeneratorTest(min,max,seed2);
43          RandomGeneratorTest rgen3 = new RandomGeneratorTest(min,max,seed3);
44          if(debug) System.out.println( "Generators:" );
45          if(debug) System.out.println( rgen1 );
46          if(debug) System.out.println( rgen2 );
47          if(debug) System.out.println( rgen3 );
48          RandomSimulatorTest rsim = new RandomSimulatorTest(rgen1,rgen2,rgen3);
49          if(debug) System.out.println( "Simulator:" );
50          if(debug) System.out.println( rsim );
51          // save initial values
52          List values0 = new ArrayList();
53          values0.add( new Double( rgen1.flat()) );
54          values0.add( new Double( rgen2.flat()) );
55          values0.add( new Double( rgen3.flat()) );
56          List values1 = new ArrayList();
57          values1.add( new Double( rgen1.flat()) );
58          values1.add( new Double( rgen2.flat()) );
59          values1.add( new Double( rgen3.flat()) );
60          int nval = 3;
61          Assert.assertTrue( values0.size() == nval );
62          Assert.assertTrue( values1.size() == nval );
63          
64          //********************************************************************
65          
66          if(debug) System.out.println( ok_prefix + "Construct registry." );
67          RandomRegistry reg = new RandomRegistry();
68          rsim.registerGenerators(reg);
69          int rec = reg.record();
70          
71          //********************************************************************
72          
73          if(debug) System.out.println( ok_prefix + "Check initial generators." );
74          List gens = rsim.generators();
75          Assert.assertTrue( gens.size() == nval );
76          List values = rsim.generate_values();
77          int i;
78          for ( i=0; i<nval; ++i )
79          {
80              if(debug) System.out.println( i + " " + values.get(i) + " " + values0.get(i) );
81              if(debug) System.out.println( rsim );
82              Assert.assertTrue( values.get(i).equals(values0.get(i)) );
83          }
84          
85          //********************************************************************
86          
87          if(debug) System.out.println( ok_prefix + "Check non-initial states." );
88          values = rsim.generate_values();
89          for ( i=0; i<nval; ++i )
90          {
91              if(debug) System.out.println( i + " " + values.get(i) + " " + values0.get(i) + " "
92                      + values1.get(i) );
93              Assert.assertTrue( !values.get(i).equals(values0.get(i)) );
94              Assert.assertTrue( values.get(i).equals(values1.get(i)) );
95          }
96          rsim.generate_values();
97          rsim.generate_values();
98          rsim.generate_values();
99          
100         //********************************************************************
101         
102         if(debug) System.out.println( ok_prefix + "Check reset states." );
103         reg.set(rec);
104         values = rsim.generate_values();
105         for ( i=0; i<nval; ++i )
106         {
107             if(debug) System.out.println( values.get(i) + " " + values0.get(i) );
108             Assert.assertTrue( values.get(i).equals(values0.get(i)) );
109         }
110         
111         //********************************************************************
112         
113         if(debug) System.out.println( ok_prefix
114                 + "------------- All tests passed. -------------" );
115         
116         //********************************************************************
117     }
118     
119 }