@Override
    public Object evaluate(final ProcessingDTO processingDTO) {
        Map<String, Object> columnPairsMap = new HashMap<>();
        for (KiePMMLFieldColumnPair kiePMMLFieldColumnPair : fieldColumnPairs) {
            Optional<Object> value = getFromPossibleSources(kiePMMLFieldColumnPair.getName(), processingDTO);
            if (value.isPresent()) {
                columnPairsMap.put(kiePMMLFieldColumnPair.getColumn(), value.get());
            } else {
                return mapMissingTo;
            }
        }
        Optional<Object> retrieved = Optional.empty();
        if (inlineTable != null) {
            retrieved = inlineTable.evaluate(columnPairsMap, outputColumn, null);
        }
        return retrieved.orElse(defaultValue);
    }
@Test
    void evaluateKeyFoundMatching() {
        KiePMMLMapValues kiePMMLMapValues = getKiePMMLMapValues();
        List<KiePMMLNameValue> kiePMMLNameValues = IntStream.range(0, 2)
                .mapToObj(i -> new KiePMMLNameValue("FIELD-" + i, "VALUE-1-" + i))
                .collect(Collectors.toList());
        ProcessingDTO processingDTO = getProcessingDTO(kiePMMLNameValues);
        Object retrieved = kiePMMLMapValues.evaluate(processingDTO);
        assertThat(retrieved).isNotNull();
    }