@@ -0,0 +1,1943 @@
+package com.cronutils;%0A%0Aimport java.time.DayOfWeek;%0Aimport java.time.ZoneId;%0Aimport java.time.ZonedDateTime;%0A%0Aimport org.junit.Test;%0Aimport org.junit.runner.RunWith;%0Aimport org.junit.runners.Parameterized;%0A%0Aimport com.cronutils.model.Cron;%0Aimport com.cronutils.model.CronType;%0Aimport com.cronutils.model.definition.CronDefinition;%0Aimport com.cronutils.model.definition.CronDefinitionBuilder;%0Aimport com.cronutils.model.time.ExecutionTime;%0Aimport com.cronutils.parser.CronParser;%0A%0Aimport static org.junit.Assert.assertEquals;%0A%0A// https://github.com/jmrozanec/cron-utils/issues/293%0A@RunWith(Parameterized.class)%0Apublic class Issue293Test %7B%0A    private static final ZoneId ZONE = ZoneId.systemDefault();%0A%0A    @Parameterized.Parameters(name=%22%7B0%7D%22)%0A    public static String%5B%5D data() %7B%0A        return new String%5B%5D %7B%0A            %2215 18 * 1-11 *%22,       // DateTimeException - Invalid date - Nov 31%0A            %2215 18 * 1-11 0-5%22,     // DateTimeException - Invalid date - Nov 31%0A            %2215 18 * 1-11 4-5%22,     // Actual is 11/24%0A            %2215 18 * 1-11 1-5%22      // Actual is 11/29%0A        %7D;%0A    %7D%0A%0A    private final String cronText;%0A%0A    public Issue293Test(String cronText) %7B%0A        this.cronText = cronText;%0A    %7D%0A%0A    @Test%0A    public void test() %7B%0A        CronDefinition def = CronDefinitionBuilder.instanceDefinitionFor(CronType.UNIX);%0A        CronParser parser = new CronParser(def);%0A%0A        Cron cron = parser.parse(cronText);%0A        ExecutionTime et = ExecutionTime.forCron(cron);%0A%0A        ZonedDateTime vs = ZonedDateTime.of(2017, 12, 1, 9, 30, 0, 0, ZONE);%0A        assertEquals(DayOfWeek.FRIDAY, vs.getDayOfWeek());%0A%0A        // Last match prior to our reference time%0A        ZonedDateTime expected = ZonedDateTime.of(2017, 11, 30, 18, 15, 0, 0, ZONE);%0A        assertEquals(DayOfWeek.THURSDAY, expected.getDayOfWeek());%0A%0A        ZonedDateTime actual = et.lastExecution(vs).get();%0A%0A        assertEquals(expected, actual);%0A    %7D%0A%7D%0A

Add unit test demonstrating #293