@Override
    public Object evaluate(final ProcessingDTO processingDTO) {
        return getFromPossibleSources(name, processingDTO)
                .orElse(mapMissingTo);
    }
@Test
    void evaluateFromDerivedFields() {
        final Object value = 234.45;
        final KiePMMLConstant kiePMMLConstant = new KiePMMLConstant("NAME", Collections.emptyList(), value, null);
        final KiePMMLDerivedField kiePMMLDerivedField = KiePMMLDerivedField.builder(FIELD_NAME,
                                                                                    Collections.emptyList(),
                                                                                    DATA_TYPE.DOUBLE,
                                                                                    OP_TYPE.CONTINUOUS,
                                                                                    kiePMMLConstant)
                .build();
        final List<KiePMMLDerivedField> derivedFields = Collections.singletonList(kiePMMLDerivedField);
        final List<KiePMMLNameValue> kiePMMLNameValues = Collections.singletonList(new KiePMMLNameValue("UNKNOWN",
                                                                                                        "WRONG"));
        final KiePMMLFieldRef kiePMMLFieldRef = new KiePMMLFieldRef(FIELD_NAME, Collections.emptyList(), null);
        ProcessingDTO processingDTO = getProcessingDTO(derivedFields, kiePMMLNameValues);
        final Object retrieved = kiePMMLFieldRef.evaluate(processingDTO);
        assertThat(retrieved).isEqualTo(value);
    }