public static Function getFunctionOfRound(FunctionCallExpr node, Function fn, List<Type> argumentTypes) {
        return getFunctionOfRound(node.getParams(), fn, argumentTypes);
    }
@Test
    public void testGetFnOfTruncateForDouble() throws AnalysisException {
        List<Expr> params = Lists.newArrayList();
        params.add(new FloatLiteral(18450.76));
        params.add(new IntLiteral(1));
        FunctionCallExpr node = new FunctionCallExpr(FunctionSet.TRUNCATE, params);

        List<Type> paramTypes = Lists.newArrayList();
        paramTypes.add(ScalarType.DOUBLE);
        paramTypes.add(Type.TINYINT);

        Function function = Expr.getBuiltinFunction(FunctionSet.TRUNCATE, paramTypes.toArray(new Type[0]),
                Function.CompareMode.IS_NONSTRICT_SUPERTYPE_OF);
        Assert.assertNotNull(function);
        Function newFn = DecimalV3FunctionAnalyzer.getFunctionOfRound(node, function, paramTypes);
        Type returnType = newFn.getReturnType();
        Assert.assertTrue(returnType.isDouble());
    }