@Test
  public void testRegisterTemporaryFunctions() throws Exception {
    FunctionResource[] emptyResources = new FunctionResource[] {};

    // UDF
    FunctionRegistry.registerTemporaryUDF("tmp_ln", UDFLn.class, emptyResources);
    FunctionInfo functionInfo = FunctionRegistry.getFunctionInfo("tmp_ln");
    assertFalse(functionInfo.isNative());

    // GenericUDF
    FunctionRegistry.registerTemporaryUDF("tmp_concat", GenericUDFConcat.class, emptyResources);
    functionInfo = FunctionRegistry.getFunctionInfo("tmp_concat");
    assertFalse(functionInfo.isNative());

    // GenericUDAF
    FunctionRegistry.registerTemporaryUDF("tmp_max", GenericUDAFMax.class, emptyResources);
    functionInfo = FunctionRegistry.getFunctionInfo("tmp_max");
    assertFalse(functionInfo.isNative());
    functionInfo = FunctionRegistry.getWindowFunctionInfo("tmp_max");
    assertFalse(functionInfo.isNative());

    // UDTF
    FunctionRegistry.registerTemporaryUDF("tmp_explode", GenericUDTFExplode.class, emptyResources);
    functionInfo = FunctionRegistry.getFunctionInfo("tmp_explode");
    assertFalse(functionInfo.isNative());
  }
Method to print out the comparison/conversion behavior for data types.
ql/src/test/org/apache/hadoop/hive/ql/exec/TestFunctionRegistry.java