static Result coerceUserList(
      final Collection<Expression> expressions,
      final ExpressionTypeManager typeManager
  ) {
    return coerceUserList(expressions, typeManager, Collections.emptyMap());
  }
@Test
  public void shouldCoerceToDecimals() {
    // Given:
    final ImmutableList<Expression> expressions = ImmutableList.of(
        new IntegerLiteral(10),
        new LongLiteral(1234567890),
        new StringLiteral("\t -100.010 \t"),
        BIGINT_EXPRESSION,
        DECIMAL_EXPRESSION,
        INT_EXPRESSION
    );

    // When:
    final Result result = CoercionUtil.coerceUserList(expressions, typeManager);

    // Then:
    final SqlDecimal decimalType = SqlTypes.decimal(22, 3);
    assertThat(result.commonType(), is(Optional.of(decimalType)));
    assertThat(result.expressions(), is(ImmutableList.of(
        new DecimalLiteral(new BigDecimal("10.000")),
        new DecimalLiteral(new BigDecimal("1234567890.000")),
        new DecimalLiteral(new BigDecimal("-100.010")),
        cast(BIGINT_EXPRESSION, decimalType),
        cast(DECIMAL_EXPRESSION, decimalType),
        cast(INT_EXPRESSION, decimalType)
    )));
  }