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 }