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]

Reply via email to