mdiggory    2003/11/19 05:26:42

  Modified:    math/src/test/org/apache/commons/math TestUtils.java
               math/src/test/org/apache/commons/math/stat
                        DescriptiveStatisticsTest.java
  Log:
  Additional tooling for simple JUnit testing of serialization.
  
  Revision  Changes    Path
  1.8       +37 -1     
jakarta-commons/math/src/test/org/apache/commons/math/TestUtils.java
  
  Index: TestUtils.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/math/src/test/org/apache/commons/math/TestUtils.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- TestUtils.java    15 Nov 2003 18:52:31 -0000      1.7
  +++ TestUtils.java    19 Nov 2003 13:26:42 -0000      1.8
  @@ -54,6 +54,13 @@
   
   package org.apache.commons.math;
   
  +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 org.apache.commons.math.complex.Complex;
   
   import junit.framework.Assert;
  @@ -84,5 +91,34 @@
       public static void assertEquals(Complex expected, Complex actual, double delta) 
{
           assertEquals(expected.getReal(), actual.getReal(), delta);
           assertEquals(expected.getImaginary(), actual.getImaginary(), delta);
  +    }
  +    
  +    public static Object serializeAndRecover(Object o){
  +        
  +        Object result = null;
  +        
  +        File tmp = null;
  +        
  +        try {
  +            
  +            // serialize the Object
  +            tmp = File.createTempFile("test",".ser");
  +            FileOutputStream fo = new FileOutputStream(tmp);
  +            ObjectOutputStream so = new ObjectOutputStream(fo);
  +            so.writeObject(o);
  +            so.flush();
  +
  +            // deserialize the Book
  +            FileInputStream fi = new FileInputStream(tmp);
  +            ObjectInputStream si = new ObjectInputStream(fi);  
  +            result = si.readObject();
  +            
  +        }catch (Exception e) {
  +            e.printStackTrace();
  +        }finally{
  +            if(tmp != null) tmp.delete();
  +        }
  +        
  +        return result;
       }
   }
  
  
  
  1.2       +28 -2     
jakarta-commons/math/src/test/org/apache/commons/math/stat/DescriptiveStatisticsTest.java
  
  Index: DescriptiveStatisticsTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/math/src/test/org/apache/commons/math/stat/DescriptiveStatisticsTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DescriptiveStatisticsTest.java    15 Nov 2003 16:01:41 -0000      1.1
  +++ DescriptiveStatisticsTest.java    19 Nov 2003 13:26:42 -0000      1.2
  @@ -57,6 +57,7 @@
   import junit.framework.TestCase;
   import junit.framework.TestSuite;
   
  +import org.apache.commons.math.TestUtils;
   import org.apache.commons.math.random.RandomData;
   import org.apache.commons.math.random.RandomDataImpl;
   
  @@ -340,6 +341,31 @@
           assertTrue("empty value set should return NaN",
               Double.isNaN(u.getPercentile(50)));
       }
  -                                     
  +                      
  +    /** test stats */
  +    public void testSerialization() {
  +        DescriptiveStatistics u = DescriptiveStatistics.newInstance(); 
  +        assertEquals("total count",0,u.getN(),tolerance);
  +        u.addValue(one);
  +        u.addValue(two);
  +        
  +        DescriptiveStatistics u2 = 
(DescriptiveStatistics)TestUtils.serializeAndRecover(u); 
  + 
  +        u2.addValue(two);
  +        u2.addValue(three);
  +        
  +        assertEquals("N",n,u2.getN(),tolerance);
  +        assertEquals("sum",sum,u2.getSum(),tolerance);
  +        assertEquals("sumsq",sumSq,u2.getSumsq(),tolerance);
  +        assertEquals("var",var,u2.getVariance(),tolerance);
  +        assertEquals("std",std,u2.getStandardDeviation(),tolerance);
  +        assertEquals("mean",mean,u2.getMean(),tolerance);
  +        assertEquals("min",min,u2.getMin(),tolerance);
  +        assertEquals("max",max,u2.getMax(),tolerance);
  +
  +        u2.clear();
  +        assertEquals("total count",0,u2.getN(),tolerance);    
  +    }       
  +                                   
   }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to