@Override
    public Object evaluate(final ProcessingDTO processingDTO) {
        Number input = (Number) getFromPossibleSources(name, processingDTO)
                .orElse(mapMissingTo);
        if (input == null) {
            throw new KiePMMLException("Failed to retrieve input number for " + name);
        }
        return evaluate(input);
    }
@Test
    void evaluateInputAndLimitLinearNorms() {
        double startOrig = 2.1;
        double startNorm = 2.6;
        double endOrig = 7.4;
        double endNorm = 6.9;
        KiePMMLLinearNorm startLinearNorm = new KiePMMLLinearNorm("start",
                                                                  Collections.emptyList(),
                                                                  startOrig,
                                                                  startNorm);
        KiePMMLLinearNorm endLinearNorm = new KiePMMLLinearNorm("end",
                                                                Collections.emptyList(),
                                                                endOrig,
                                                                endNorm);
        KiePMMLLinearNorm[] limitLinearNorms = {startLinearNorm, endLinearNorm};
        Number input = 3.5;
        Number retrieved = KiePMMLNormContinuous.evaluate(input, limitLinearNorms);
        assertThat(retrieved).isNotNull();
        Number expected =
                startNorm + ((input.doubleValue() - startOrig) / (endOrig - startOrig)) * (endNorm - startNorm);
        assertThat(retrieved).isEqualTo(expected);
    }