package water.parser; import static org.junit.Assert.*; import static water.parser.DefaultParserProviders.XLS_INFO; import org.junit.*; import java.io.File; import water.*; import water.fvec.Vec; import water.fvec.Frame; import water.fvec.NFSFileVec; import water.util.FileUtils; public class ParseCompressedAndXLSTest extends TestUtil { @BeforeClass static public void setup() { stall_till_cloudsize(5); } @Test public void testIris(){ Frame k1 = null,k2 = null,k3 = null, k4 = null; try { k1 = parse_test_file("smalldata/junit/iris.csv"); k2 = parse_test_file("smalldata/junit/iris.xls"); k3 = parse_test_file("smalldata/junit/iris.csv.gz"); k4 = parse_test_file("smalldata/junit/iris.csv.zip"); assertTrue(TestUtil.isBitIdentical(k1,k2)); assertTrue(TestUtil.isBitIdentical(k2,k3)); assertTrue(TestUtil.isBitIdentical(k3,k4)); } finally { if( k1 != null ) k1.delete(); if( k2 != null ) k2.delete(); if( k3 != null ) k3.delete(); if( k4 != null ) k4.delete(); } } @Test public void testXLS(){ Frame k1 = null; try { k1 = parse_test_file("smalldata/junit/benign.xls"); assertEquals( 14,k1.numCols()); assertEquals(203,k1.numRows()); k1.delete(); k1 = parse_test_file("smalldata/junit/pros.xls"); assertEquals( 9,k1.numCols()); assertEquals(380,k1.numRows()); } finally { if( k1 != null ) k1.delete(); } } @Test public void testXLSBadArgs(){ Frame k1 = null; try { NFSFileVec nfs = TestUtil.makeNfsFileVec("smalldata/airlines/AirlinesTest.csv.zip"); byte[] ctypes = new byte[12]; for(int i=0; i < 12; i++) ctypes[i] = Vec.T_NUM; ParseSetup setup = new ParseSetup(XLS_INFO, (byte) 52, // sep; ascii '4' true, // singleQuotes ParseSetup.NO_HEADER, // check header 12, // ncols new String[]{"fYear", "fMonth", "fDayofMonth", "fDayOfWeek", "DepTime", "ArrTime", "UniqueCarrier", "Origin", "Dest", "Distance", "IsDepDelayed", "IsDepDelayed_REC"}, ctypes, null, null, null); try { k1 = ParseDataset.parse(Key.make(), new Key[]{nfs._key}, true, setup, true)._job.get(); assertTrue("Should have thrown ParseException since file isn't XLS file",false); // fail - should've thrown k1.delete(); } catch (Throwable t) { assertTrue(t instanceof ParseDataset.H2OParseException || t.getCause() instanceof ParseDataset.H2OParseException); } } finally { if( k1 != null ) k1.delete(); } } }