View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.collections.primitives;
18  
19  import junit.framework.Test;
20  import junit.framework.TestSuite;
21  
22  import org.apache.commons.collections.BulkTest;
23  
24  /**
25   * @version $Revision: 480451 $ $Date: 2006-11-29 02:45:08 -0500 (Wed, 29 Nov 2006) $
26   * @author Rodney Waldhoff
27   */
28  public class TestArrayCharList extends TestCharList {
29  
30      // conventional
31      // ------------------------------------------------------------------------
32  
33      public TestArrayCharList(String testName) {
34          super(testName);
35      }
36  
37      public static Test suite() {
38          TestSuite suite = BulkTest.makeSuite(TestArrayCharList.class);
39          return suite;
40      }
41  
42      // collections testing framework
43      // ------------------------------------------------------------------------
44  
45      protected CharList makeEmptyCharList() {
46          return new ArrayCharList();
47      }
48  
49      public String[] ignoredTests() {
50          // sublists are not serializable
51          return new String[] { 
52              "TestArrayCharList.bulkTestSubList.testFullListSerialization",
53              "TestArrayCharList.bulkTestSubList.testEmptyListSerialization",
54              "TestArrayCharList.bulkTestSubList.testCanonicalEmptyCollectionExists",
55              "TestArrayCharList.bulkTestSubList.testCanonicalFullCollectionExists",
56              "TestArrayCharList.bulkTestSubList.testEmptyListCompatibility",
57              "TestArrayCharList.bulkTestSubList.testFullListCompatibility",
58              "TestArrayCharList.bulkTestSubList.testSerializeDeserializeThenCompare",
59              "TestArrayCharList.bulkTestSubList.testSimpleSerialization"
60          };
61      }
62  
63      // tests
64      // ------------------------------------------------------------------------
65  
66      /** @TODO need to add serialized form to cvs */
67      public void testCanonicalEmptyCollectionExists() {
68          // XXX FIX ME XXX
69          // need to add a serialized form to cvs
70      }
71  
72      public void testCanonicalFullCollectionExists() {
73          // XXX FIX ME XXX
74          // need to add a serialized form to cvs
75      }
76  
77      public void testEmptyListCompatibility() {
78          // XXX FIX ME XXX
79          // need to add a serialized form to cvs
80      }
81  
82      public void testFullListCompatibility() {
83          // XXX FIX ME XXX
84          // need to add a serialized form to cvs
85      }
86  
87      public void testAddGetLargeValues() {
88          CharList list = new ArrayCharList();
89          for (int i = 0; i < 1000; i++) {
90              char value = ((char) (Character.MAX_VALUE));
91              value -= i;
92              list.add(value);
93          }
94          for (int i = 0; i < 1000; i++) {
95              char value = ((char) (Character.MAX_VALUE));
96              value -= i;
97              assertEquals(value, list.get(i));
98          }
99      }
100 
101     public void testZeroInitialCapacityIsValid() {
102         assertNotNull(new ArrayCharList(0));
103     }
104 
105     public void testNegativeInitialCapacityIsInvalid() {
106         try {
107             new ArrayCharList(-1);
108             fail("Expected IllegalArgumentException");
109         } catch(IllegalArgumentException e) {
110             // expected
111         }
112     }
113 
114     public void testCopyConstructor() {
115         ArrayCharList expected = new ArrayCharList();
116         for(int i=0;i<10;i++) {
117             expected.add((char)i);
118         }
119         ArrayCharList list = new ArrayCharList(expected);
120         assertEquals(10,list.size());
121         assertEquals(expected,list);
122     }
123 
124     public void testCopyConstructorWithNull() {
125         try {
126             new ArrayCharList((CharCollection) null);
127             fail("Expected NullPointerException");
128         } catch(NullPointerException e) {
129             // expected
130         }
131     }
132 
133     public void testArrayConstructor() {
134         ArrayCharList expected = new ArrayCharList();
135         for (int i = 0; i < 10; i++) {
136             expected.add((char) i);
137         }
138         ArrayCharList list = new ArrayCharList(expected.toArray());
139         assertEquals(10, list.size());
140         assertEquals(expected, list);
141     }
142 
143     public void testArrayConstructorWithNull() {
144         try {
145             new ArrayCharList((char[]) null);
146             fail("Expected NullPointerException");
147         } catch (NullPointerException e) {
148             // expected
149         }
150     }
151 
152 
153     public void testTrimToSize() {
154         ArrayCharList list = new ArrayCharList();
155         for(int j=0;j<3;j++) {
156             assertTrue(list.isEmpty());
157     
158             list.trimToSize();
159     
160             assertTrue(list.isEmpty());
161             
162             for(int i=0;i<10;i++) {
163                 list.add((char)i);
164             }
165             
166             for(int i=0;i<10;i++) {
167                 assertEquals((char)i,list.get(i), 0f);
168             }
169             
170             list.trimToSize();
171     
172             for(int i=0;i<10;i++) {
173                 assertEquals((char)i,list.get(i), 0f);
174             }
175     
176             for(int i=0;i<10;i+=2) {
177                 list.removeElement((char)i);
178             }
179             
180             for(int i=0;i<5;i++) {
181                 assertEquals((char)(2*i)+1,list.get(i), 0f);
182             }
183     
184             list.trimToSize();
185                     
186             for(int i=0;i<5;i++) {
187                 assertEquals((char)(2*i)+1,list.get(i), 0f);
188             }
189 
190             list.trimToSize();
191                     
192             for(int i=0;i<5;i++) {
193                 assertEquals((char)(2*i)+1,list.get(i), 0f);
194             }
195     
196             list.clear();
197         }
198     }
199 
200 }