package joinery;
import static org.junit.Assert.assertArrayEquals;
import java.util.Arrays;
import java.util.List;
import joinery.DataFrame.Function;
import joinery.DataFrame.RowFunction;
import org.junit.Before;
import org.junit.Test;
public class DataFrameViewsTest {
private DataFrame<Object> df;
@Before
public void setUp()
throws Exception {
df = new DataFrame<Object>("one", "two", "three")
.append(Arrays.asList("a", null, "c"))
.append(Arrays.asList("aa", "bb", "cc"));
}
@Test
public void testApply() {
assertArrayEquals(
new Object[] { 1, 2, 0, 2, 1, 2 },
df.apply(new Function<Object, Integer>() {
@Override
public Integer apply(final Object value) {
return value == null ? 0 : value.toString().length();
}
}).toArray()
);
}
@Test
public void testTransform() {
assertArrayEquals(
new Object[] {
"a", "a", "aa", "aa",
null, null, "bb", "bb",
"c", "c", "cc", "cc"
},
df.transform(new RowFunction<Object, Object>() {
@Override
public List<List<Object>> apply(final List<Object> values) {
return Arrays.asList(values, values);
}
}).toArray()
);
}
@Test
public void testFillNa() {
assertArrayEquals(
new Object[] { "a", "aa", "b", "bb", "c", "cc" },
df.fillna("b").toArray()
);
}
}