View Javadoc

1   /*
2    * VTrackGenerator_Test.java
3    *
4    * Created on July 24, 2007, 11:54 AM
5    *
6    * $Id: VTrackGenerator_Test.java,v 1.1.1.1 2010/04/08 20:38:00 jeremy Exp $
7    */
8   
9   package org.lcsim.recon.tracking.trfbase;
10  
11  import java.util.ArrayList;
12  import java.util.Iterator;
13  import java.util.List;
14  import junit.framework.TestCase;
15  import org.lcsim.recon.tracking.trfutil.Assert;
16  
17  /**
18   *
19   * @author Norman Graf
20   */
21  public class VTrackGenerator_Test extends TestCase
22  {
23      private boolean debug;
24      /** Creates a new instance of VTrackGenerator_Test */
25      public void testVTrackGenerator()
26      {
27                  String component = "VTrackGenerator";
28          String ok_prefix = component + " (I): ";
29          String error_prefix = component + " test (E): ";
30          
31          if(debug) System.out.println( ok_prefix
32                  + "---------- Testing component " + component
33                  + ". ----------" );
34          
35          //********************************************************************
36          
37          // Verify that each generated track is different and is in range.
38          if(debug) System.out.println( ok_prefix + "Test default sequence." );
39          SurfTest stest = new SurfTest(1);
40          TrackVector min = new TrackVector();
41          TrackVector max = new TrackVector();
42          min.set(0, 0.0);
43          max.set(0, 1.0);
44          min.set(1, 1.0);
45          max.set(1, 2.0);
46          min.set(2, -3.0);
47          max.set(2, -2.0);
48          min.set(3, 3.0);
49          max.set(3, 4.0);
50          min.set(4, -4.0);
51          max.set(4, 5.0);
52          VTrackGenerator gen = new VTrackGenerator(stest,min,max);
53          if(debug) System.out.println( gen );
54          Assert.assertTrue( stest.pureEqual( gen.surface() ) );
55          int ntest = 20;
56          int itest;
57          List values = new ArrayList();
58          if(debug) System.out.println( "************" );
59          for ( itest=0; itest<ntest; ++itest )
60          {
61              VTrack trk = gen.newTrack();
62              if(debug) System.out.println( trk );
63              if(debug) System.out.println( "************" );
64              for ( Iterator ival=values.iterator(); ival.hasNext(); )
65              {
66                  Assert.assertTrue( !trk.equals( (VTrack) ival.next()) );
67              }
68              Assert.assertTrue( stest.pureEqual( trk.surface() ) );
69              for ( int i=0; i<5; ++i )
70              {
71                  Assert.assertTrue( trk.vector().get(i) >= min.get(i) );
72                  Assert.assertTrue( trk.vector().get(i) <= max.get(i) );
73              }
74              values.add(trk);
75          }
76          
77          //********************************************************************
78          
79          // Verify that two generators starting with the same seed give the
80          // same values.
81          if(debug) System.out.println( ok_prefix + "Test sequence with seed." );
82          long seed = 246813579L;
83          gen.setSeed(seed);
84          VTrackGenerator gen2 = new VTrackGenerator(stest,min,max);
85          gen2.setSeed(seed);
86          for ( itest=0; itest<ntest; ++itest )
87          {
88              VTrack trk = gen.newTrack();
89              VTrack trk2 = gen2.newTrack();
90              if(debug) System.out.println( trk );
91              if(debug) System.out.println( "*****" );
92              if(debug) System.out.println( trk2 );
93              if(debug) System.out.println( "************" );
94              Assert.assertTrue( trk.equals(trk2) );
95          }
96          
97          //********************************************************************
98          
99          if(debug) System.out.println( ok_prefix + "Test copy constructor." );
100         VTrackGenerator gen3 = new VTrackGenerator(gen);
101         for ( itest=0; itest<ntest; ++itest )
102         {
103             VTrack trk = gen.newTrack();
104             VTrack trk2 = gen3.newTrack();
105             if(debug) System.out.println( trk );
106             if(debug) System.out.println( "*****" );
107             if(debug) System.out.println( trk2 );
108             if(debug) System.out.println( "************" );
109             Assert.assertTrue( trk.equals(trk2) );
110         }
111         
112         //********************************************************************
113         
114         if(debug) System.out.println( ok_prefix
115                 + "------------- All tests passed. -------------" );
116         
117         //********************************************************************
118     }
119     
120 }