private void validateUDAF(Double expectedResult, GenericUDAFResolver2 udaf) throws Exception { ObjectInspector[] params = new ObjectInspector[] { javaDoubleObjectInspector, javaDoubleObjectInspector }; GenericUDAFParameterInfo gpi = new SimpleGenericUDAFParameterInfo(params, false, false, false); GenericUDAFExecutor executor = new GenericUDAFExecutor(udaf, gpi); List<Object> values = executor.run(rowSet); if (expectedResult == null) { for (Object v : values) { assertNull(v); } } else { for (Object v : values) { if (v instanceof DoubleWritable) { assertEquals(expectedResult, ((DoubleWritable) v).get(), 1e-10); } else { assertEquals(expectedResult, ((LongWritable) v).get(), 1e-10); } } } }