From b14efe5a8a15e776aa6523923506885981340376 Mon Sep 17 00:00:00 2001 From: Vasyl Khrystiuk Date: Thu, 2 Jan 2025 02:43:55 +0200 Subject: [PATCH] [WIP] --- .../liqp/filters/date/fuzzy/FuzzyDateParser.java | 2 ++ .../FuzzyDateParserParametrizedErrorsTest.java | 5 +++-- .../date/fuzzy/FuzzyDateParserParametrizedTest.java | 13 +++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/liqp/filters/date/fuzzy/FuzzyDateParser.java b/src/main/java/liqp/filters/date/fuzzy/FuzzyDateParser.java index 1f49759e..2114919c 100644 --- a/src/main/java/liqp/filters/date/fuzzy/FuzzyDateParser.java +++ b/src/main/java/liqp/filters/date/fuzzy/FuzzyDateParser.java @@ -40,6 +40,8 @@ * https://en.wikipedia.org/wiki/Date_format_by_country * https://en.wikipedia.org/wiki/Date_and_time_notation_in_Germany * https://en.wikipedia.org/wiki/Date_and_time_representation_by_country + * + * author: Vasyl Khrystiuk */ public class FuzzyDateParser extends BasicDateParser { diff --git a/src/test/java/liqp/filters/date/fuzzy/FuzzyDateParserParametrizedErrorsTest.java b/src/test/java/liqp/filters/date/fuzzy/FuzzyDateParserParametrizedErrorsTest.java index 0c307a58..9c478c24 100644 --- a/src/test/java/liqp/filters/date/fuzzy/FuzzyDateParserParametrizedErrorsTest.java +++ b/src/test/java/liqp/filters/date/fuzzy/FuzzyDateParserParametrizedErrorsTest.java @@ -24,6 +24,7 @@ public static Collection data() { return Arrays.asList(new Object[][]{ {null, " 11 december 11", RuntimeException.class}, {null, " 11 -december- 11", RuntimeException.class}, + {null, "december - monday 11 2024", RuntimeException.class}, // numbers should not be leftover }); } @@ -37,8 +38,8 @@ public FuzzyDateParserParametrizedErrorsTest(Locale locale, String input, Class public void shouldParse() { try { final FuzzyDateParser parser = new FuzzyDateParser(); - parser.guessPattern(input, locale, null); - fail(String.format("input is: [%s] and should be wrong", input)); + String pattern = parser.guessPattern(input, locale, null).pattern; + fail(String.format("input is: [%s] and should be wrong but was recognized as [%s]", input, pattern)); } catch (Exception e) { if (!exceptionClass.isInstance(e)) { fail(String.format("for input %s exception class should be %s, but it was %s instead", input, exceptionClass, e.getClass())); diff --git a/src/test/java/liqp/filters/date/fuzzy/FuzzyDateParserParametrizedTest.java b/src/test/java/liqp/filters/date/fuzzy/FuzzyDateParserParametrizedTest.java index 990e04b3..c3a9123b 100644 --- a/src/test/java/liqp/filters/date/fuzzy/FuzzyDateParserParametrizedTest.java +++ b/src/test/java/liqp/filters/date/fuzzy/FuzzyDateParserParametrizedTest.java @@ -113,6 +113,19 @@ public static Collection data() { {null, "december.31st", "MMMM.dd"}, {null, " 11 december, 11 ", " dd MMMM, '11' "}, {null, " 11, december 11 ", " '11', MMMM dd "}, + {null, " 11 december - 11 ", " dd MMMM - '11' "}, + {null, " 11 - december 11 ", " '11' - MMMM dd "}, + {null, " 11 , december - 11 ", " '11' , MMMM - dd "}, + {null, " 11 - december , 11 ", " dd - MMMM , '11' "}, + {null, "11 december, 11", "dd MMMM, '11'"}, + {null, "11, december 11", "'11', MMMM dd"}, + {null, "11 december - 11", "dd MMMM - '11'"}, + {null, "11 - december 11", "'11' - MMMM dd"}, + {null, "11 , december - 11", "'11' , MMMM - dd"}, + {null, "11 - december , 11", "dd - MMMM , '11'"}, + + {null, "december - 11", "MMMM - dd"} + }); }