001: package test.prefuse.data.io;
002:
003: import java.io.ByteArrayInputStream;
004: import java.io.InputStream;
005:
006: import junit.framework.TestCase;
007: import prefuse.data.Table;
008: import prefuse.data.io.CSVTableReader;
009: import prefuse.data.io.DataIOException;
010: import test.prefuse.TestConfig;
011: import test.prefuse.data.TableTestData;
012:
013: public class CSVTableReaderTest extends TestCase implements
014: TableTestData {
015:
016: // public void testReadTableString() {
017: // String datasrc = "/congressional_elections.csv";
018: // CSVTableReader ctr = new CSVTableReader();
019: // try {
020: // URL dataurl = CSVTableReader.class.getResource(datasrc);
021: // Table t = ctr.readTable(dataurl);
022: // assertTrue(t.getRowCount() > 9000);
023: // } catch ( Exception e ) {
024: // fail("Error occurred: " +e);
025: // }
026: // }
027:
028: /*
029: * Test method for 'edu.berkeley.guir.prefuse.data.io.CSVTableReader.readTable(InputStream)'
030: */
031: public void testReadTableInputStream() {
032: // prepare data
033: byte[] data = CSV_DATA.getBytes();
034: InputStream is = new ByteArrayInputStream(data);
035:
036: // parse data
037: CSVTableReader ctr = new CSVTableReader();
038: Table t = null;
039: try {
040: t = ctr.readTable(is);
041: } catch (DataIOException e) {
042: e.printStackTrace();
043: fail("Data Read Exception");
044: }
045:
046: boolean verbose = TestConfig.verbose();
047:
048: // text-dump
049: if (verbose)
050: System.out.println("-- Data Types -------------");
051: for (int c = 0, idx = -1; c < t.getColumnCount(); ++c) {
052: String name = t.getColumnType(c).getName();
053: if ((idx = name.lastIndexOf('.')) >= 0)
054: name = name.substring(idx + 1);
055: assertEquals(t.getColumnType(c), TYPES[c]);
056: if (verbose)
057: System.out.print(name + "\t");
058: }
059: if (verbose)
060: System.out.println();
061:
062: if (verbose)
063: System.out.println();
064:
065: if (verbose)
066: System.out.println("-- Table Data -------------");
067: for (int c = 0; c < t.getColumnCount(); ++c) {
068: if (verbose)
069: System.out.print(t.getColumnName(c) + "\t");
070: assertEquals(t.getColumnName(c), HEADERS[c]);
071: }
072: if (verbose)
073: System.out.println();
074: for (int r = 0; r < t.getRowCount(); ++r) {
075: for (int c = 0; c < t.getColumnCount(); ++c) {
076: Object o = t.get(r, c);
077: if (verbose)
078: System.out.print(o + "\t");
079: assertEquals(TABLE[c][r], o);
080: }
081: if (verbose)
082: System.out.println();
083: }
084: if (verbose)
085: System.out.println();
086:
087: // // interface
088: // JFrame f = new JFrame("CSV Loader Test");
089: // f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
090: // JTable jt = new JTable(t) {
091: // TableCellRenderer defr = new DefaultTableCellRenderer();
092: // public TableCellRenderer getCellRenderer(int r, int c) {
093: // return defr;
094: // }
095: // };
096: // JScrollPane jsp = new JScrollPane(jt);
097: // f.getContentPane().add(jsp);
098: // f.pack();
099: // f.setVisible(true);
100: }
101:
102: }
|