@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 evaluate() {
        String fieldName = "fieldName";
        Number input = 24;
        KiePMMLNormContinuous kiePMMLNormContinuous = getKiePMMLNormContinuous(fieldName, null, null);
        ProcessingDTO processingDTO = new ProcessingDTO(Collections.emptyList(),
                                                        Collections.emptyList(),
                                                        Collections.emptyList(),
                                                        Collections.emptyList(),
                                                        Collections.singletonList(new KiePMMLNameValue(fieldName,
                                                                                                       input)),
                                                        Collections.emptyList(),
                                                        Collections.emptyList());
        Number retrieved = (Number) kiePMMLNormContinuous.evaluate(processingDTO);
        Number expected =
                kiePMMLNormContinuous.linearNorms.get(0).getNorm() +
                        ((input.doubleValue() - kiePMMLNormContinuous.linearNorms.get(0).getOrig()) / (kiePMMLNormContinuous.linearNorms.get(1).getOrig() - kiePMMLNormContinuous.linearNorms.get(0).getOrig()))
                                * (kiePMMLNormContinuous.linearNorms.get(1).getNorm() - kiePMMLNormContinuous.linearNorms.get(0).getNorm());
        assertThat(retrieved).isEqualTo(expected);
    }