@Test public void testMoreThanEightProps() { List<Field> fields = new ArrayList<Field>(30); for (int i = 0; i < 30; i++) { fields.add(Field.create("field" + i, Type.STRING)); } Schema schema = new Schema("bigmammaschema", fields); ITuple tuple = new Tuple(schema); for (int i = 0; i < 30; i++) { // Fill in with some default values tuple.set("field" + i, "defaultValue" + i); } NullableTuple nullableTuple = new NullableTuple(tuple); for (int i = 0; i < 30; i++) { // Assert the default values assertEquals("defaultValue" + i, nullableTuple.get("field" + i)); } // Set fields to null one by one and assert that things go well for (int i = 0; i < 30; i++) { nullableTuple.set("field" + i, null); assertEquals(null, nullableTuple.getNullable("field" + i)); nullableTuple.set("field" + i, "defaultValue" + i); assertEquals("defaultValue" + i, nullableTuple.getNullable("field" + i)); } }
@Test public void testDirectUseNoWrapper() { Schema schema = new Schema("testSchema", Fields.parse("a:string, b:int, c:double")); NullableTuple nullableTuple = new NullableTuple(schema); nullableTuple.set(0, "foo"); nullableTuple.set("b", null); nullableTuple.set("c", 20d); assertEquals("foo", nullableTuple.getNullable("a").toString()); assertEquals(null, nullableTuple.getNullable(1)); assertEquals(20d, nullableTuple.getNullable(2)); }
@Test public void testNullableOfNullable() { Schema schema = new Schema("testSchema", Fields.parse("a:string, b:int, c:double")); NullableTuple nullableTuple = new NullableTuple(schema); nullableTuple.set(0, "foo"); nullableTuple.set("b", null); nullableTuple.set("c", 20d); NullableTuple tuple2 = new NullableTuple(nullableTuple); assertEquals("foo", tuple2.getNullable("a").toString()); assertEquals(null, tuple2.getNullable(1)); assertEquals(20d, tuple2.getNullable(2)); assertEquals( nullableTuple.getSchema().getFields().size(), tuple2.getSchema().getFields().size()); }
@Test public void testNoNullableWrapperWithNulls() { Schema schema = new Schema( "testSchema", Fields.parse("a:string, b:int, c:double, d:float, e:boolean, f:long")); ITuple tuple = new Tuple(schema); tuple.set(0, "foo"); tuple.set(1, null); tuple.set(2, 20d); tuple.set(3, null); tuple.set(4, false); tuple.set(5, null); NullableTuple nullableTuple = new NullableTuple(tuple); assertEquals("foo", nullableTuple.getNullable(0).toString()); assertEquals(null, nullableTuple.getNullable(1)); assertEquals(20d, nullableTuple.getNullable(2)); assertEquals(null, nullableTuple.getNullable(3)); assertEquals(false, nullableTuple.getNullable(4)); assertEquals(null, nullableTuple.getNullable(5)); }