@Override
  public TransformResultMetadata getResultMetadata() {
    return _resultMetadata;
  }
@Test
  public void testArrayElementAtInt() {
    Random rand = new Random();
    int index = rand.nextInt(MAX_NUM_MULTI_VALUES);
    ExpressionContext expression =
        RequestContextUtils.getExpression(String.format("array_element_at_int(%s, %d)", INT_MV_COLUMN, index + 1));
    TransformFunction transformFunction = TransformFunctionFactory.get(expression, _dataSourceMap);
    assertTrue(transformFunction instanceof ScalarTransformFunctionWrapper);
    assertEquals(transformFunction.getResultMetadata().getDataType(), DataType.INT);
    assertTrue(transformFunction.getResultMetadata().isSingleValue());
    int[] expectedValues = new int[NUM_ROWS];
    for (int i = 0; i < NUM_ROWS; i++) {
      expectedValues[i] = _intMVValues[i].length > index ? _intMVValues[i][index] : NullValuePlaceHolder.INT;
    }
    testTransformFunction(transformFunction, expectedValues);
  }