Author: billbarker Date: Sat May 23 22:57:26 2009 New Revision: 778058 URL: http://svn.apache.org/viewvc?rev=778058&view=rev Log: Serializable changes for RealVector
Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/linear/OpenMapRealVector.java commons/proper/math/trunk/src/java/org/apache/commons/math/linear/RealVector.java commons/proper/math/trunk/src/test/org/apache/commons/math/linear/RealVectorImplTest.java commons/proper/math/trunk/src/test/org/apache/commons/math/linear/SparseRealVectorTest.java Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/linear/OpenMapRealVector.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/linear/OpenMapRealVector.java?rev=778058&r1=778057&r2=778058&view=diff ============================================================================== --- commons/proper/math/trunk/src/java/org/apache/commons/math/linear/OpenMapRealVector.java (original) +++ commons/proper/math/trunk/src/java/org/apache/commons/math/linear/OpenMapRealVector.java Sat May 23 22:57:26 2009 @@ -16,6 +16,8 @@ */ package org.apache.commons.math.linear; +import java.io.Serializable; + import org.apache.commons.math.MathRuntimeException; import org.apache.commons.math.util.OpenIntToDoubleHashMap; import org.apache.commons.math.util.OpenIntToDoubleHashMap.Iterator; @@ -25,7 +27,7 @@ * @version $Revision: 728186 $ $Date$ * @since 2.0 */ -public class OpenMapRealVector implements SparseRealVector { +public class OpenMapRealVector implements SparseRealVector, Serializable { /** Serializable version identifier. */ private static final long serialVersionUID = 8772222695580707260L; Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/linear/RealVector.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/linear/RealVector.java?rev=778058&r1=778057&r2=778058&view=diff ============================================================================== --- commons/proper/math/trunk/src/java/org/apache/commons/math/linear/RealVector.java (original) +++ commons/proper/math/trunk/src/java/org/apache/commons/math/linear/RealVector.java Sat May 23 22:57:26 2009 @@ -16,8 +16,6 @@ */ package org.apache.commons.math.linear; -import java.io.Serializable; - /** * Interface defining a real-valued vector with basic algebraic operations. * <p> @@ -41,7 +39,7 @@ * @version $Revision$ $Date$ * @since 2.0 */ -public interface RealVector extends Serializable { +public interface RealVector { /** * Returns a (deep) copy of this. Modified: commons/proper/math/trunk/src/test/org/apache/commons/math/linear/RealVectorImplTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/org/apache/commons/math/linear/RealVectorImplTest.java?rev=778058&r1=778057&r2=778058&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/org/apache/commons/math/linear/RealVectorImplTest.java (original) +++ commons/proper/math/trunk/src/test/org/apache/commons/math/linear/RealVectorImplTest.java Sat May 23 22:57:26 2009 @@ -16,6 +16,12 @@ */ package org.apache.commons.math.linear; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.io.Serializable; import junit.framework.Test; import junit.framework.TestCase; @@ -1169,6 +1175,27 @@ } + public void testSerial() { + try { + File test = File.createTempFile("RVI",".ser"); + ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(test)); + RealVectorImpl v = new RealVectorImpl(new double[] { 0, 1, 2 }); + out.writeObject(v); + out.close(); + ObjectInputStream in = new ObjectInputStream(new FileInputStream(test)); + RealVectorImpl nv = (RealVectorImpl)in.readObject(); + in.close(); + test.delete(); + assertEquals(v,nv); + + } catch (IOException e) { + fail("IOException: "+e); + } catch (ClassNotFoundException e) { + fail("Can't happen: "+e); + } + } + + /** verifies that two vectors are close (sup norm) */ protected void assertClose(String msg, double[] m, double[] n, double tolerance) { Modified: commons/proper/math/trunk/src/test/org/apache/commons/math/linear/SparseRealVectorTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/org/apache/commons/math/linear/SparseRealVectorTest.java?rev=778058&r1=778057&r2=778058&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/org/apache/commons/math/linear/SparseRealVectorTest.java (original) +++ commons/proper/math/trunk/src/test/org/apache/commons/math/linear/SparseRealVectorTest.java Sat May 23 22:57:26 2009 @@ -16,6 +16,12 @@ */ package org.apache.commons.math.linear; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.io.Serializable; import junit.framework.Test; import junit.framework.TestCase; @@ -1093,6 +1099,26 @@ } + public void testSerial() { + try { + File test = File.createTempFile("OMV",".ser"); + ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(test)); + OpenMapRealVector v = new OpenMapRealVector(new double[] { 0, 1, 2 }); + out.writeObject(v); + out.close(); + ObjectInputStream in = new ObjectInputStream(new FileInputStream(test)); + OpenMapRealVector nv = (OpenMapRealVector)in.readObject(); + in.close(); + test.delete(); + assertEquals(v,nv); + + } catch (IOException e) { + fail("IOException: "+e); + } catch (ClassNotFoundException e) { + fail("Can't happen: "+e); + } + } + /** verifies that two vectors are close (sup norm) */ protected void assertClose(String msg, double[] m, double[] n, double tolerance) {