@Test public void schema() throws Exception { EvalFunc<DataBag> func = new FrequentStringsSketchToEstimates(); Schema schema = func.outputSchema(null); Assert.assertNotNull(schema); Assert.assertEquals(schema.size(), 1); Assert.assertEquals(schema.getField(0).type, DataType.BAG); Assert.assertEquals(schema.getField(0).schema.size(), 1); Assert.assertEquals(schema.getField(0).schema.getField(0).type, DataType.TUPLE); Assert.assertEquals(schema.getField(0).schema.getField(0).schema.size(), 4); Assert.assertEquals( schema.getField(0).schema.getField(0).schema.getField(0).type, DataType.CHARARRAY); Assert.assertEquals( schema.getField(0).schema.getField(0).schema.getField(1).type, DataType.LONG); Assert.assertEquals( schema.getField(0).schema.getField(0).schema.getField(2).type, DataType.LONG); Assert.assertEquals( schema.getField(0).schema.getField(0).schema.getField(3).type, DataType.LONG); }
@SuppressWarnings("null") @Test public void outputSchemaTest() throws IOException { EvalFunc<String> udf = new SketchToString(); Schema inputSchema = null; Schema.FieldSchema inputFieldSchema = new Schema.FieldSchema("Sketch", DataType.BYTEARRAY); Schema nullOutputSchema = null; Schema outputSchema = null; Schema.FieldSchema outputOuterFs0 = null; Schema outputInnerSchema = null; Schema.FieldSchema outputInnerFs0 = null; inputSchema = new Schema(inputFieldSchema); nullOutputSchema = udf.outputSchema(null); outputSchema = udf.outputSchema(inputSchema); outputOuterFs0 = outputSchema.getField(0); outputInnerSchema = outputOuterFs0.schema; outputInnerFs0 = outputInnerSchema.getField(0); Assert.assertNull(nullOutputSchema, "Should be null"); Assert.assertNotNull(outputOuterFs0, "outputSchema.getField(0) schema may not be null"); String expected = "tuple"; String result = DataType.findTypeName(outputOuterFs0.type); Assert.assertEquals(result, expected); expected = "chararray"; Assert.assertNotNull(outputInnerFs0, "innerSchema.getField(0) schema may not be null"); result = DataType.findTypeName(outputInnerFs0.type); Assert.assertEquals(result, expected); // print schemas // @formatter:off StringBuilder sb = new StringBuilder(); sb.append("input schema: ") .append(inputSchema) .append(LS) .append("output schema: ") .append(outputSchema) .append(LS) .append("outputOuterFs: ") .append(outputOuterFs0) .append(", type: ") .append(DataType.findTypeName(outputOuterFs0.type)) .append(LS) .append("outputInnerSchema: ") .append(outputInnerSchema) .append(LS) .append("outputInnerFs0: ") .append(outputInnerFs0) .append(", type: ") .append(DataType.findTypeName(outputInnerFs0.type)) .append(LS); println(sb.toString()); // @formatter:on // end print schemas }