protected void runTestStr(String date1, String date2, Double expDiff, GenericUDFMonthsBetween udf) throws HiveException { DeferredJavaObject valueObj1 = new DeferredJavaObject(date1 == null ? null : new Text(date1)); DeferredJavaObject valueObj2 = new DeferredJavaObject(date2 == null ? null : new Text(date2)); DeferredObject[] args = new DeferredObject[] { valueObj1, valueObj2 }; DoubleWritable output = (DoubleWritable) udf.evaluate(args); if (expDiff == null) { assertNull("months_between() test for NULL STRING failed", output); } else { assertNotNull("months_between() test for NOT NULL STRING failed", output); assertEquals("months_between() test for STRING failed", expDiff, output.get(), 0.00000001D); } }
protected void runTestTs(String ts1, String ts2, Double expDiff, GenericUDFMonthsBetween udf) throws HiveException { TimestampWritableV2 tsWr1 = ts1 == null ? null : new TimestampWritableV2(Timestamp.valueOf(ts1)); TimestampWritableV2 tsWr2 = ts2 == null ? null : new TimestampWritableV2(Timestamp.valueOf(ts2)); DeferredJavaObject valueObj1 = new DeferredJavaObject(tsWr1); DeferredJavaObject valueObj2 = new DeferredJavaObject(tsWr2); DeferredObject[] args = new DeferredObject[] { valueObj1, valueObj2 }; DoubleWritable output = (DoubleWritable) udf.evaluate(args); if (expDiff == null) { assertNull("months_between() test for NULL TIMESTAMP failed", output); } else { assertNotNull("months_between() test for NOT NULL TIMESTAMP failed", output); assertEquals("months_between() test for TIMESTAMP failed", expDiff, output.get(), 0.00000001D); } }
protected void runTestDt(String dt1, String dt2, Double expDiff, GenericUDFMonthsBetween udf) throws HiveException { DateWritableV2 dtWr1 = dt1 == null ? null : new DateWritableV2(Date.valueOf(dt1)); DateWritableV2 dtWr2 = dt2 == null ? null : new DateWritableV2(Date.valueOf(dt2)); DeferredJavaObject valueObj1 = new DeferredJavaObject(dtWr1); DeferredJavaObject valueObj2 = new DeferredJavaObject(dtWr2); DeferredObject[] args = new DeferredObject[] { valueObj1, valueObj2 }; DoubleWritable output = (DoubleWritable) udf.evaluate(args); if (expDiff == null) { assertNull("months_between() test for NULL DATE failed", output); } else { assertNotNull("months_between() test for NOT NULL DATE failed", output); assertEquals("months_between() test for DATE failed", expDiff, output.get(), 0.00000001D); } } }