View Javadoc

1   /*
2    * LayerStackTest.java
3    *
4    * Created on June 6, 2005, 10:26 AM
5    */
6   
7   package org.lcsim.geometry.layer;
8   
9   import java.util.ArrayList;
10  import java.util.List;
11  
12  import junit.framework.TestCase;
13  
14  import org.lcsim.material.XMLMaterialManager;
15  
16  /**
17   * Tests that LayerStack's methods work correctly.
18   * @author jeremym
19   */
20  public class LayerStackTest extends TestCase
21  {
22   
23      private LayerStack layerStack;
24      private static final double layerThickness = 2.0;    
25      private static final int numLayers = 10;        
26      private static final double layerStackThickness = layerThickness * numLayers; 
27      
28      private static final double[] sliceThick = { 1.0, 0.5, 0.25, 0.25 };
29      private static final String[] sliceMat = { "Iron", "Silicon", "Chlorine", "Nitrogen"};
30          
31      /** 
32       * Creates a new instance of LayerStackTest 
33       **/
34      public LayerStackTest(String name)
35      {
36          super(name);
37      }
38      
39      protected void setUp() throws java.lang.Exception
40      {    
41          // Need to make sure static material classes are setup 
42          // before settings up layers.
43          XMLMaterialManager.setup();
44          XMLMaterialManager.getDefaultMaterialManager();
45          
46          layerStack = new LayerStack();
47          
48          LayerSlice s1 = new LayerSlice(sliceMat[0], sliceThick[0], false);
49          LayerSlice s2 = new LayerSlice(sliceMat[1], sliceThick[1], false);
50          LayerSlice s3 = new LayerSlice(sliceMat[2], sliceThick[2], true);
51          LayerSlice s4 = new LayerSlice(sliceMat[3], sliceThick[3], false);
52          
53          for ( int i = 0; i < numLayers; i++)
54          {                       
55          	List<LayerSlice> list = new ArrayList<LayerSlice>();
56              
57              list.add(s1);
58              list.add(s2);
59              list.add(s3);
60              list.add(s4);
61             
62              Layer l = new Layer(list);
63              
64              layerStack.addLayer(l);
65          }
66          
67          //System.out.println("layerStack.getTotalThickness = " + layerStack.getTotalThickness());
68      }
69              
70      public void testLayerStack()
71      {   
72          // Number of layers    	
73          assertEquals(layerStack.getNumberOfLayers(), numLayers);        
74          
75          // Total thickness. 
76          assertEquals(layerStack.getTotalThickness(), layerStackThickness);
77                  
78          // A single layer's total thickness.
79          assertEquals(layerStack.getLayer(0).getThickness(), layerThickness);                        
80          
81          // Section thickness.
82          assertEquals(layerStack.getSectionThickness(0,4), layerStackThickness/2);
83          
84          // Section thickness with same layer number.
85          assertEquals(layerStack.getSectionThickness(0,0), layerThickness);
86  
87          // Thickness to layer midpoint. 
88          assertEquals(layerStack.getThicknessToLayerMid(1), layerThickness + layerThickness/2);
89          
90          // Thickness to layer front face with layer number 0.
91          assertEquals(layerStack.getThicknessToLayerMid(0), layerThickness/2);
92          
93          // Thickness to layer back face.
94          assertEquals(layerStack.getThicknessToLayerBack(0), layerThickness);
95          
96          // Thickness to layer front face. 
97          assertEquals(layerStack.getThicknessToLayerFront(0), 0.0);                               
98      }
99  }