1   package baseCode.io.reader;
2   
3   import java.io.IOException;
4   import java.io.InputStream;
5   
6   import junit.framework.TestCase;
7   import baseCode.dataStructure.matrix.DenseDoubleMatrix2DNamed;
8   import baseCode.io.reader.DoubleMatrixReader;
9   
10  /***
11   * 
12   * <p>
13   * Copyright (c) 2004 Columbia University
14   * 
15   * @author pavlidis
16   * @version $Id: TestDoubleMatrixReader.java,v 1.2 2004/06/24 17:48:03 pavlidis
17   *          Exp $
18   */
19  public class TestDoubleMatrixReader extends TestCase {
20  
21     DenseDoubleMatrix2DNamed matrix = null;
22     InputStream is = null;
23     DoubleMatrixReader reader = null;
24     InputStream ism = null;
25     InputStream ismb = null; // missing, with bad rows.
26     InputStream isbig = null; // missing, with bad rows.
27     /*
28      * @see TestCase#setUp()
29      */
30     protected void setUp() throws Exception {
31        super.setUp();
32        reader = new DoubleMatrixReader();
33        is = TestStringMatrixReader.class
34              .getResourceAsStream( "/data/testdata.txt" );
35  
36        ism = TestStringMatrixReader.class
37              .getResourceAsStream( "/data/testdatamissing.txt" );
38  
39        ismb = TestStringMatrixReader.class
40              .getResourceAsStream( "/data/testdatamissing-badrows.txt" );
41        
42        isbig = TestStringMatrixReader.class
43        .getResourceAsStream( "/data/melanoma_and_sarcomaMAS5.txt" );
44     }
45  
46     /*
47      * @see TestCase#tearDown()
48      */
49     protected void tearDown() throws Exception {
50        super.tearDown();
51        is.close();
52        ism.close();
53        ismb.close();
54        isbig.close();
55        matrix = null;
56     }
57  
58     public void testReadInputStreamMissing() {
59        try {
60           matrix = ( DenseDoubleMatrix2DNamed ) reader.read( ism );
61           int actualReturn = matrix.rows();
62           int expectedReturn = 30;
63           assertEquals( "return value", expectedReturn, actualReturn );
64        } catch ( IOException e ) {
65           e.printStackTrace();
66        }
67     }
68  
69     public void testReadInputStreamMissingBad() {
70        try {
71           matrix = ( DenseDoubleMatrix2DNamed ) reader.read( ismb );
72           fail( "Should have gotten an IO error" );
73        } catch ( IOException e ) {
74        }
75     }
76  
77     /*
78      * Class under test for NamedMatrix read(InputStream)
79      */
80     public void testReadInputStreamRowCount() {
81        try {
82           matrix = ( DenseDoubleMatrix2DNamed ) reader.read( is );
83           int actualReturn = matrix.rows();
84           int expectedReturn = 30;
85           assertEquals( "return value", expectedReturn, actualReturn );
86        } catch ( IOException e ) {
87           e.printStackTrace();
88        }
89     }
90  
91     public void testReadInputStreamColumnCount() {
92        try {
93           matrix = ( DenseDoubleMatrix2DNamed ) reader.read( is );
94           int actualReturn = matrix.columns();
95           int expectedReturn = 12;
96           assertEquals( "return value", expectedReturn, actualReturn );
97        } catch ( IOException e ) {
98           e.printStackTrace();
99        }
100    }
101 
102    public void testReadInputStreamGotRowName() {
103       try {
104          matrix = ( DenseDoubleMatrix2DNamed ) reader.read( is );
105          boolean actualReturn = matrix.containsRowName( "gene1_at" )
106                && matrix.containsRowName( "AFFXgene30_at" );
107          boolean expectedReturn = true;
108          assertEquals( "return value", expectedReturn, actualReturn );
109       } catch ( IOException e ) {
110          e.printStackTrace();
111       }
112    }
113 
114    public void testReadInputStreamGotColName() {
115       try {
116          matrix = ( DenseDoubleMatrix2DNamed ) reader.read( is );
117          boolean actualReturn = matrix.containsColumnName( "sample1" )
118                && matrix.containsColumnName( "sample12" );
119          boolean expectedReturn = true;
120          assertEquals( "return value (for sample1 and sample12)",
121                expectedReturn, actualReturn );
122       } catch ( IOException e ) {
123          e.printStackTrace();
124       }
125    }
126    
127 //   public void testReadInputStreamBig() {
128 //      try {
129 //         matrix = ( DenseDoubleMatrix2DNamed ) reader.read( isbig );
130 //         int actualReturn = matrix.rows();
131 //         int expectedReturn = 12533;
132 //         assertEquals( "return value ",
133 //               expectedReturn, actualReturn );
134 //      } catch ( IOException e ) {
135 //         e.printStackTrace();
136 //      } catch ( OutOfMemoryError e) {
137 //         e.printStackTrace();
138 //      }
139 //   }
140 
141 }