public static Optional<EfestoOutputPMML> executeEfestoInputPMML(EfestoInputPMML toEvaluate,
                                                                    EfestoRuntimeContext runtimeContext) {
        PMMLRuntimeContext pmmlContext;
        if (runtimeContext instanceof PMMLRuntimeContext) {
            pmmlContext = (PMMLRuntimeContext) runtimeContext;
        } else {
            pmmlContext = getPMMLRuntimeContext(toEvaluate.getInputData().getRequestData(),
                                                runtimeContext.getGeneratedResourcesMap());
        }
        KiePMMLModelFactory kiePMMLModelFactory;
        try {
            kiePMMLModelFactory = loadKiePMMLModelFactory(toEvaluate.getModelLocalUriId(), pmmlContext);
        } catch (Exception e) {
            logger.warn("{} can not execute {}",
                        PMMLRuntimeHelper.class.getName(),
                        toEvaluate.getModelLocalUriId());
            return Optional.empty();
        }
        try {
            return Optional.of(getEfestoOutput(kiePMMLModelFactory, toEvaluate));
        } catch (KiePMMLException e) {
            throw e;
        } catch (Exception e) {
            throw new KieRuntimeServiceException(String.format("%s failed to execute %s",
                    PMMLRuntimeHelper.class.getName(),
                    toEvaluate.getModelLocalUriId()), e);
        }
    }
@Test
    void executeEfestoInputPMML() {
        modelLocalUriId = getModelLocalUriIdFromPmmlIdFactory(FILE_NAME, MODEL_NAME);
        EfestoInputPMML darInputPMML = new EfestoInputPMML(modelLocalUriId, getPMMLContext(FILE_NAME, MODEL_NAME,
                                                                                           memoryCompilerClassLoader));
        Optional<EfestoOutputPMML> retrieved = PMMLRuntimeHelper.executeEfestoInputPMML(darInputPMML,
                                                                                        getPMMLContext(FILE_NAME,
                                                                                                       MODEL_NAME,
                                                                                                       memoryCompilerClassLoader));
        assertThat(retrieved).isNotNull().isPresent();
        commonEvaluateEfestoOutputPMML(retrieved.get(), darInputPMML);
    }