package water.fvec;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import water.H2O;
import water.Key;
import water.Scope;
import water.TestUtil;
import java.util.HashSet;
import java.util.Set;
import static org.junit.Assert.*;
import static org.junit.Assert.assertTrue;
/**
* Tests for Frame.java
*/
public class FrameTest extends TestUtil {
@BeforeClass
public static void setup() {
stall_till_cloudsize(1);
}
@Test
public void testRemoveColumn() {
Scope.enter();
Frame testData = parse_test_file(Key.make("test_deep_select_1"), "smalldata/sparse/created_frame_binomial.svm.zip");
Set<Vec> removedVecs = new HashSet<>();
try {
// dataset to split
int initialSize = testData.numCols();
removedVecs.add(testData.remove(-1));
assertEquals(initialSize, testData.numCols());
removedVecs.add(testData.remove(0));
assertEquals(initialSize - 1, testData.numCols());
assertEquals("C2", testData._names[0]);
removedVecs.add(testData.remove(initialSize - 2));
assertEquals(initialSize - 2, testData.numCols());
assertEquals("C" + (initialSize - 1), testData._names[initialSize - 3]);
removedVecs.add(testData.remove(42));
assertEquals(initialSize - 3, testData.numCols());
assertEquals("C43", testData._names[41]);
assertEquals("C45", testData._names[42]);
} finally {
Scope.exit();
for (Vec v : removedVecs) if (v != null) v.remove();
testData.delete();
H2O.STORE.clear();
}
}
// _names=C1,... - C10001
@Ignore
@Test public void testDeepSelectSparse() {
Scope.enter();
// dataset to split
Frame testData = parse_test_file(Key.make("test_deep_select_1"), "smalldata/sparse/created_frame_binomial.svm.zip");
// premade splits from R
Frame subset1 = parse_test_file(Key.make("test_deep_select_2"), "smalldata/sparse/data_split_1.svm.zip");
// subset2 commented out to save time
// Frame subset2 = parse_test_file(Key.make("test_deep_select_3"),"smalldata/sparse/data_split_2.svm");
// predicates (0: runif 1:runif < .5 2: runif >= .5
Frame rnd = parse_test_file(Key.make("test_deep_select_4"), "smalldata/sparse/rnd_r.csv");
Frame x = null;
Frame y = null;
try {
x = testData.deepSlice(new Frame(rnd.vec(1)), null);
// y = testData.deepSlice(new Frame(rnd.vec(2)),null);
assertTrue(TestUtil.isBitIdentical(subset1, x));
// assertTrue(isBitIdentical(subset2,y));
} finally {
Scope.exit();
testData.delete();
rnd.delete();
subset1.delete();
// subset2.delete();
if (x != null) x.delete();
if (y != null) y.delete();
}
}
}