@Override
  public TransformResultMetadata getResultMetadata() {
    return _resultMetadata;
  }
@Test
  public void testCaseTransformFunctionWithoutCastForFloatValues() {
    boolean[] predicateResults = new boolean[1];
    Arrays.fill(predicateResults, true);
    int[] expectedValues = new int[1];
    int index = -1;
    for (int i = 0; i < NUM_ROWS; i++) {
      if (Double.compare(_floatSVValues[i], Double.parseDouble(String.format("%f", _floatSVValues[i]))) != 0) {
        index = i;
        expectedValues[0] = predicateResults[0] ? _intSVValues[i] : 10;
        break;
      }
    }

    if (index != -1) {
      String predicate = String.format("%s(%s, %s)", TransformFunctionType.EQUALS, FLOAT_SV_COLUMN,
          String.format("%f", _floatSVValues[index]));
      String expression = String.format("CASE WHEN %s THEN %s ELSE 10 END", predicate, INT_SV_COLUMN);
      ExpressionContext expressionContext = RequestContextUtils.getExpression(expression);
      TransformFunction transformFunction = TransformFunctionFactory.get(expressionContext, _dataSourceMap);
      Assert.assertTrue(transformFunction instanceof CaseTransformFunction);
      assertEquals(transformFunction.getResultMetadata().getDataType(), DataType.INT);
      int[] intValues = transformFunction.transformToIntValuesSV(_projectionBlock);
      assertNotEquals(intValues[index], expectedValues[0]);
    }
  }