rwaldhoff 2003/02/26 07:45:19
Modified: collections/src/java/org/apache/commons/collections/primitives
ArrayIntList.java
collections/src/test/org/apache/commons/collections/primitives
TestArrayIntList.java
TestArrayUnsignedShortList.java TestIntList.java
Log:
make ArrayIntList serializable
add additional tests
Revision Changes Path
1.6 +24 -3
jakarta-commons/collections/src/java/org/apache/commons/collections/primitives/ArrayIntList.java
Index: ArrayIntList.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/primitives/ArrayIntList.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ArrayIntList.java 13 Jan 2003 21:52:28 -0000 1.5
+++ ArrayIntList.java 26 Feb 2003 15:45:19 -0000 1.6
@@ -57,6 +57,11 @@
package org.apache.commons.collections.primitives;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+
/**
* An [EMAIL PROTECTED] IntList} backed by an array of <code>int</code>s.
* This implementation supports all optional methods.
@@ -66,7 +71,7 @@
*
* @author Rodney Waldhoff
*/
-public class ArrayIntList extends AbstractRandomAccessIntList implements IntList {
+public class ArrayIntList extends AbstractRandomAccessIntList implements IntList,
Serializable {
// constructors
//-------------------------------------------------------------------------
@@ -222,6 +227,22 @@
// private methods
//-------------------------------------------------------------------------
+
+ private void writeObject(ObjectOutputStream out) throws IOException{
+ out.defaultWriteObject();
+ out.writeInt(_data.length);
+ for(int i=0;i<_size;i++) {
+ out.writeInt(_data[i]);
+ }
+ }
+
+ private void readObject(ObjectInputStream in) throws IOException,
ClassNotFoundException {
+ in.defaultReadObject();
+ _data = new int[in.readInt()];
+ for(int i=0;i<_size;i++) {
+ _data[i] = in.readInt();
+ }
+ }
private final void checkRange(int index) {
if(index < 0 || index >= _size) {
1.7 +79 -2
jakarta-commons/collections/src/test/org/apache/commons/collections/primitives/TestArrayIntList.java
Index: TestArrayIntList.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/primitives/TestArrayIntList.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TestArrayIntList.java 12 Jan 2003 15:23:20 -0000 1.6
+++ TestArrayIntList.java 26 Feb 2003 15:45:19 -0000 1.7
@@ -127,4 +127,81 @@
public void testZeroInitialCapacityIsValid() {
ArrayIntList list = new ArrayIntList(0);
}
+
+ public void testNegativeInitialCapacityIsInvalid() {
+ try {
+ ArrayIntList list = new ArrayIntList(-1);
+ fail("Expected IllegalArgumentException");
+ } catch(IllegalArgumentException e) {
+ // expected
+ }
+ }
+
+ public void testCopyConstructor() {
+ ArrayIntList expected = new ArrayIntList();
+ for(int i=0;i<10;i++) {
+ expected.add(i);
+ }
+ ArrayIntList list = new ArrayIntList(expected);
+ assertEquals(10,list.size());
+ assertEquals(expected,list);
+ }
+
+ public void testCopyConstructorWithNull() {
+ try {
+ ArrayIntList list = new ArrayIntList(null);
+ fail("Expected NullPointerException");
+ } catch(NullPointerException e) {
+ // expected
+ }
+ }
+
+
+ public void testTrimToSize() {
+ ArrayIntList list = new ArrayIntList();
+ for(int j=0;j<3;j++) {
+ assertTrue(list.isEmpty());
+
+ list.trimToSize();
+
+ assertTrue(list.isEmpty());
+
+ for(int i=0;i<10;i++) {
+ list.add(i);
+ }
+
+ for(int i=0;i<10;i++) {
+ assertEquals(i,list.get(i));
+ }
+
+ list.trimToSize();
+
+ for(int i=0;i<10;i++) {
+ assertEquals(i,list.get(i));
+ }
+
+ for(int i=0;i<10;i+=2) {
+ list.removeElement(i);
+ }
+
+ for(int i=0;i<5;i++) {
+ assertEquals((2*i)+1,list.get(i));
+ }
+
+ list.trimToSize();
+
+ for(int i=0;i<5;i++) {
+ assertEquals((2*i)+1,list.get(i));
+ }
+
+ list.trimToSize();
+
+ for(int i=0;i<5;i++) {
+ assertEquals((2*i)+1,list.get(i));
+ }
+
+ list.clear();
+ }
+ }
+
}
1.7 +78 -2
jakarta-commons/collections/src/test/org/apache/commons/collections/primitives/TestArrayUnsignedShortList.java
Index: TestArrayUnsignedShortList.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/primitives/TestArrayUnsignedShortList.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TestArrayUnsignedShortList.java 13 Jan 2003 21:52:28 -0000 1.6
+++ TestArrayUnsignedShortList.java 26 Feb 2003 15:45:19 -0000 1.7
@@ -132,4 +132,80 @@
}
}
+ public void testNegativeInitialCapacityIsInvalid() {
+ try {
+ ArrayUnsignedShortList list = new ArrayUnsignedShortList(-1);
+ fail("Expected IllegalArgumentException");
+ } catch(IllegalArgumentException e) {
+ // expected
+ }
+ }
+
+ public void testCopyConstructor() {
+ ArrayUnsignedShortList expected = new ArrayUnsignedShortList();
+ for(int i=0;i<10;i++) {
+ expected.add(i);
+ }
+ ArrayUnsignedShortList list = new ArrayUnsignedShortList(expected);
+ assertEquals(10,list.size());
+ assertEquals(expected,list);
+ }
+
+ public void testCopyConstructorWithNull() {
+ try {
+ ArrayUnsignedShortList list = new ArrayUnsignedShortList(null);
+ fail("Expected NullPointerException");
+ } catch(NullPointerException e) {
+ // expected
+ }
+ }
+
+
+ public void testTrimToSize() {
+ ArrayUnsignedShortList list = new ArrayUnsignedShortList();
+ for(int j=0;j<3;j++) {
+ assertTrue(list.isEmpty());
+
+ list.trimToSize();
+
+ assertTrue(list.isEmpty());
+
+ for(int i=0;i<10;i++) {
+ list.add(i);
+ }
+
+ for(int i=0;i<10;i++) {
+ assertEquals(i,list.get(i));
+ }
+
+ list.trimToSize();
+
+ for(int i=0;i<10;i++) {
+ assertEquals(i,list.get(i));
+ }
+
+ for(int i=0;i<10;i+=2) {
+ list.removeElement(i);
+ }
+
+ for(int i=0;i<5;i++) {
+ assertEquals((2*i)+1,list.get(i));
+ }
+
+ list.trimToSize();
+
+ for(int i=0;i<5;i++) {
+ assertEquals((2*i)+1,list.get(i));
+ }
+
+ list.trimToSize();
+
+ for(int i=0;i<5;i++) {
+ assertEquals((2*i)+1,list.get(i));
+ }
+
+ list.clear();
+ }
+ }
+
}
1.4 +13 -2
jakarta-commons/collections/src/test/org/apache/commons/collections/primitives/TestIntList.java
Index: TestIntList.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/primitives/TestIntList.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TestIntList.java 12 Jan 2003 15:23:20 -0000 1.3
+++ TestIntList.java 26 Feb 2003 15:45:19 -0000 1.4
@@ -57,6 +57,7 @@
package org.apache.commons.collections.primitives;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@@ -279,5 +280,15 @@
assertEquals("Should get entry back", i, list.get(i));
}
}
+
+ public void testIsSerializable() throws Exception {
+ IntList list = makeFullIntList();
+ assertTrue(list instanceof Serializable);
+ byte[] ser = writeExternalFormToBytes((Serializable)list);
+ IntList deser = (IntList)(readExternalFormFromBytes(ser));
+ assertEquals(list,deser);
+ assertEquals(deser,list);
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]