View Javadoc

1   package org.lcsim.detector.identifier;
2   
3   import java.util.ArrayList;
4   import java.util.List;
5   
6   import junit.framework.TestCase;
7   import junit.framework.TestSuite;
8   
9   /**
10   * 
11   * This is an an integration test for the {@link org.lcsim.detector.identifier} 
12   * package using methods in {@link IIdentifierHelper}.
13   * 
14   * @author Jeremy McCormick
15   * @version $Id: IdentifierHelperTest.java,v 1.11 2011/02/25 03:09:38 jeremy Exp $
16   */
17  
18  public class IdentifierHelperTest extends TestCase
19  {
20      public IdentifierHelperTest(String name)
21      {
22          super(name);
23      }
24  
25      public static junit.framework.Test suite()
26      {
27          return new TestSuite(IdentifierHelperTest.class);
28      }
29  
30      public void testFieldPack() throws Exception
31      {
32          List<IIdentifierField> fields = new ArrayList<IIdentifierField>();
33          fields.add(new IdentifierField("field1", 16, 0, false));
34          IIdentifierDictionary iddict = new IdentifierDictionary("test3", fields);
35          IdentifierHelper helper = new IdentifierHelper(iddict);
36          IIdentifier check = helper.pack(new ExpandedIdentifier("/10"));
37  
38          IIdentifier id = new Identifier();
39          iddict.getField(0).pack(10, id);
40  
41          assertEquals("Field packed id does not match compact!", id, check);
42      }
43  
44      public void testIdContext()
45      {
46          int i1[] = new int[3];
47          i1[0] = 2;
48          i1[1] = 3;
49          i1[2] = 4;
50  
51          IdentifierContext c1 = new IdentifierContext(i1);
52          assertTrue(c1.isRange());
53          assertTrue(c1.getStartIndex() == 2);
54          assertTrue(c1.getEndIndex() == 4);
55          assertTrue(c1.isValidIndex(2));
56          assertTrue(c1.isValidIndex(3));
57          assertTrue(c1.isValidIndex(4));
58          assertTrue(!c1.isValidIndex(0));
59          assertTrue(!c1.isValidIndex(5));
60          assertTrue(c1.getNumberOfIndices() == 3);
61  
62          IdentifierContext c2 = new IdentifierContext(2, 4);
63          assertTrue(c2.isRange());
64          assertTrue(c2.getStartIndex() == 2);
65          assertTrue(c2.getEndIndex() == 4);
66          assertTrue(c2.isValidIndex(2));
67          assertTrue(c2.isValidIndex(3));
68          assertTrue(c2.isValidIndex(4));
69          assertTrue(!c2.isValidIndex(0));
70          assertTrue(!c2.isValidIndex(5));
71          assertTrue(c2.getNumberOfIndices() == 3);
72  
73          int i2[] = new int[3];
74          i2[0] = 0;
75          i2[1] = 2;
76          i2[2] = 4;
77          IdentifierContext c3 = new IdentifierContext(i2);
78          assertTrue(!c3.isRange());
79          assertTrue(c3.getStartIndex() == 0);
80          assertTrue(c3.getEndIndex() == 4);
81          assertTrue(c3.isValidIndex(0));
82          assertTrue(c3.isValidIndex(2));
83          assertTrue(c3.isValidIndex(4));
84          assertTrue(!c3.isValidIndex(5));
85          assertTrue(!c3.isValidIndex(1));
86          assertTrue(!c3.isValidIndex(3));
87          assertTrue(c3.getNumberOfIndices() == 3);
88      }
89  
90      public void testUnpack() throws Exception
91      {
92          List<IIdentifierField> fields = new ArrayList<IIdentifierField>();
93          fields.add(new IdentifierField("field1", 8, 0, false));
94          fields.add(new IdentifierField("field2", 8, 8, true));
95          fields.add(new IdentifierField("field3", 8, 16, false));
96          IIdentifierDictionary iddict = new IdentifierDictionary("test2", fields);
97          IdentifierHelper helper = new IdentifierHelper(iddict);
98  
99          IExpandedIdentifier expId = new ExpandedIdentifier();
100         expId.addValue(1);
101         expId.addValue(-1);
102         expId.addValue(2);
103 
104         IIdentifier id = helper.pack(expId);
105 
106         IExpandedIdentifier expIdCheck1 = helper.unpack(id);
107         assertTrue(expIdCheck1.toString().equals("/1/-1/2"));
108 
109         /*
110         IExpandedIdentifier expIdCheck2 = helper.getIdentifierDictionary().unpack(id, 1);
111         assertTrue(expIdCheck2.toString().equals("/0/-1/2"));
112 
113         IExpandedIdentifier expIdCheck3 = helper.getIdentifierDictionary().unpack(id, 0, 1);
114         assertTrue(expIdCheck3.toString().equals("/1/-1/0"));
115         */
116     }
117 
118     public void testPack() throws Exception
119     {
120         List<IIdentifierField> fields = new ArrayList<IIdentifierField>();
121         fields.add(new IdentifierField("field1", 8, 0, false));
122         fields.add(new IdentifierField("field2", 8, 8, true));
123         IIdentifierDictionary iddict = new IdentifierDictionary("test3", fields);
124         IIdentifierHelper helper = new IdentifierHelper(iddict);
125 
126         IExpandedIdentifier expId = new ExpandedIdentifier();
127         expId.addValue(10);
128         expId.addValue(-11);
129 
130         IIdentifier compactId = helper.pack(expId);
131 
132         IExpandedIdentifier expIdCheck = helper.unpack(compactId);
133 
134         assertTrue("ExpandedIdentifiers do not match!", expId.equals(expIdCheck));
135 
136         expId.clear();
137         expId.addValue(10);
138         expId.addValue(11);
139 
140         compactId = helper.pack(expId);
141         expIdCheck = helper.unpack(compactId);
142 
143         assertTrue("ExpandedIdentifiers do not match!", expId.equals(expIdCheck));
144     }
145 }