static MinMax findMinMax(MinMax minMax, List<Statement> statements, EncodedValueLookup lookup) {
        List<List<Statement>> groups = CustomModelParser.splitIntoGroup(statements);
        for (List<Statement> group : groups) findMinMaxForGroup(minMax, group, lookup);
        return minMax;
    }
@Test
    public void testBlock() {
        List<Statement> statements = Arrays.asList(
                If("road_class == TERTIARY",
                        List.of(If("max_speed > 100", LIMIT, "100"),
                                Else(LIMIT, "30"))),
                ElseIf("road_class == SECONDARY", LIMIT, "25"),
                Else(MULTIPLY, "0.8")
        );
        assertEquals(100, findMinMax(new MinMax(0, 120), statements, lookup).max);

        statements = Arrays.asList(
                If("road_class == TERTIARY",
                        List.of(If("max_speed > 100", LIMIT, "90"),
                                Else(LIMIT, "30"))),
                ElseIf("road_class == SECONDARY", LIMIT, "25"),
                Else(MULTIPLY, "0.8")
        );
        assertEquals(96, findMinMax(new MinMax(0, 120), statements, lookup).max);
    }