@Nonnull
    @Override
    public Optional<? extends PseudorandomNumberGenerator> parse(
            @Nullable String str, @Nonnull DetectionLocation detectionLocation) {
        if (str == null) {
            return Optional.empty();
        }

        if (str.toUpperCase().contains("SHA1")) {
            return Optional.of(
                    new SHA(PseudorandomNumberGenerator.class, new SHA(detectionLocation)));
        }

        return switch (str.toUpperCase().trim()) {
            case "NATIVEPRNG",
                            "DRBG",
                            "NATIVEPRNGBLOCKING",
                            "NATIVEPRNGNONBLOCKING",
                            "WINDOWS-PRNG" ->
                    Optional.empty(); // todo
            default -> Optional.empty();
        };
    }
@Test
    void base() {
        DetectionLocation testDetectionLocation =
                new DetectionLocation("testfile", 1, 1, List.of("test"), () -> "SSL");

        JcaPRNGMapper jcaPRNGMapper = new JcaPRNGMapper();
        Optional<? extends PseudorandomNumberGenerator> prngOptional =
                jcaPRNGMapper.parse("NativePRNGBlocking", testDetectionLocation);
        assertThat(prngOptional).isPresent();
        assertThat(prngOptional.get()).isInstanceOf(PseudorandomNumberGenerator.class);
        assertThat(prngOptional.get().getName()).isEqualTo("PRNG");
        assertThat(prngOptional.get().hasChildren()).isFalse();
    }