Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/locales/nl/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,8 @@ export const TIME_UNIT_DICTIONARY: { [word: string]: Timeunit } = {
weken: "week",
maand: "month",
maanden: "month",
kwartaal: "quarter",
kwartalen: "quarter",
jaar: "year",
jr: "year",
jaren: "year",
Expand Down
3 changes: 2 additions & 1 deletion src/locales/nl/parsers/NLCasualDateParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import * as references from "../../../common/casualReferences";

export default class NLCasualDateParser extends AbstractParserWithWordBoundaryChecking {
innerPattern(context: ParsingContext): RegExp {
return /(nu|vandaag|morgen|morgend|gisteren)(?=\W|$)/i;
return /(nu|vandaag|morgen|morgend|gisteren|gister)(?=\W|$)/i;
}

innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents | ParsingResult {
Expand All @@ -24,6 +24,7 @@ export default class NLCasualDateParser extends AbstractParserWithWordBoundaryCh
return references.tomorrow(context.reference);

case "gisteren":
case "gister":
return references.yesterday(context.reference);
}

Expand Down
2 changes: 1 addition & 1 deletion src/locales/nl/parsers/NLMonthNameMiddleEndianParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const PATTERN = new RegExp(
"(?:on\\s*?)?" +
`(${ORDINAL_NUMBER_PATTERN})` +
"(?:\\s*" +
"(?:tot|\\-|\\–|until|through|till|\\s)\\s*" +
"(?:tot en met|t\\/m|tot|\\-|\\–|until|through|till|\\s)\\s*" +
`(${ORDINAL_NUMBER_PATTERN})` +
")?" +
"(?:-|/|\\s*(?:of)?\\s*)" +
Expand Down
4 changes: 3 additions & 1 deletion src/locales/nl/refiners/NLMergeDateRangeRefiner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@ import AbstractMergeDateRangeRefiner from "../../../common/refiners/AbstractMerg
* Merging before and after results (see. AbstractMergeDateRangeRefiner)
* This implementation should provide Dutch connecting phases
* - 2020-02-13 [tot] 2020-02-13
* - 2020-02-13 [t/m] 2020-02-13
* - 2020-02-13 [tot en met] 2020-02-13
* - Wednesday [-] Friday
*/
export default class NLMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner {
patternBetween(): RegExp {
return /^\s*(tot|-)\s*$/i;
return /^\s*(tot en met|t\/m|tot|-)\s*$/i;
}
}
12 changes: 12 additions & 0 deletions test/nl/nl_casual.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,18 @@ test("Test - Single Expression", () => {
expect(result.start).toBeDate(new Date(2012, 7, 9, 12));
});

testSingleCase(chrono.nl, "De deadline was gister", new Date(2012, 7, 10, 12), (result) => {
expect(result.index).toBe(16);
expect(result.text).toBe("gister");

expect(result.start).not.toBeNull();
expect(result.start.get("year")).toBe(2012);
expect(result.start.get("month")).toBe(8);
expect(result.start.get("day")).toBe(9);

expect(result.start).toBeDate(new Date(2012, 7, 9, 12));
});

testSingleCase(chrono.nl, "De Deadline was deze ochtend", new Date(2012, 7, 10, 12), (result) => {
expect(result.index).toBe(16);
expect(result.text).toBe("deze ochtend");
Expand Down
76 changes: 76 additions & 0 deletions test/nl/nl_month_name_little_endian.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,82 @@ test("Test - Range expression", () => {
expect(result.end).toBeDate(new Date(2012, 8 - 1, 22, 12));
});

testSingleCase(chrono.nl, "10 t/m 22 augustus 2012", new Date(2012, 7, 10), (result) => {
expect(result.index).toBe(0);
expect(result.text).toBe("10 t/m 22 augustus 2012");

expect(result.start).not.toBeNull();
expect(result.start.get("year")).toBe(2012);
expect(result.start.get("month")).toBe(8);
expect(result.start.get("day")).toBe(10);

expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));

expect(result.end).not.toBeNull();
expect(result.end.get("year")).toBe(2012);
expect(result.end.get("month")).toBe(8);
expect(result.end.get("day")).toBe(22);

expect(result.end).toBeDate(new Date(2012, 8 - 1, 22, 12));
});

testSingleCase(chrono.nl, "10 tot en met 22 augustus 2012", new Date(2012, 7, 10), (result) => {
expect(result.index).toBe(0);
expect(result.text).toBe("10 tot en met 22 augustus 2012");

expect(result.start).not.toBeNull();
expect(result.start.get("year")).toBe(2012);
expect(result.start.get("month")).toBe(8);
expect(result.start.get("day")).toBe(10);

expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));

expect(result.end).not.toBeNull();
expect(result.end.get("year")).toBe(2012);
expect(result.end.get("month")).toBe(8);
expect(result.end.get("day")).toBe(22);

expect(result.end).toBeDate(new Date(2012, 8 - 1, 22, 12));
});

testSingleCase(chrono.nl, "10 augustus t/m 12 september", new Date(2012, 7, 10), (result) => {
expect(result.index).toBe(0);
expect(result.text).toBe("10 augustus t/m 12 september");

expect(result.start).not.toBeNull();
expect(result.start.get("year")).toBe(2012);
expect(result.start.get("month")).toBe(8);
expect(result.start.get("day")).toBe(10);

expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));

expect(result.end).not.toBeNull();
expect(result.end.get("year")).toBe(2012);
expect(result.end.get("month")).toBe(9);
expect(result.end.get("day")).toBe(12);

expect(result.end).toBeDate(new Date(2012, 9 - 1, 12, 12));
});

testSingleCase(chrono.nl, "10 augustus tot en met 12 september", new Date(2012, 7, 10), (result) => {
expect(result.index).toBe(0);
expect(result.text).toBe("10 augustus tot en met 12 september");

expect(result.start).not.toBeNull();
expect(result.start.get("year")).toBe(2012);
expect(result.start.get("month")).toBe(8);
expect(result.start.get("day")).toBe(10);

expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));

expect(result.end).not.toBeNull();
expect(result.end.get("year")).toBe(2012);
expect(result.end.get("month")).toBe(9);
expect(result.end.get("day")).toBe(12);

expect(result.end).toBeDate(new Date(2012, 9 - 1, 12, 12));
});

testSingleCase(chrono.nl, "10 augustus - 12 september", new Date(2012, 7, 10), (result) => {
expect(result.index).toBe(0);
expect(result.text).toBe("10 augustus - 12 september");
Expand Down
18 changes: 18 additions & 0 deletions test/nl/nl_relative.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,15 @@ test("Test - Past relative expressions", () => {
expect(result.start.get("day")).toBe(24);
expect(result.start.get("hour")).toBe(12);
});

// last quarter
testSingleCase(chrono.nl, "afgelopen kwartaal", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2016);
expect(result.start.get("month")).toBe(7);
expect(result.start.get("day")).toBe(1);
expect(result.start.get("hour")).toBe(12);
});
});

test("Test - Future relative expressions", () => {
Expand Down Expand Up @@ -125,6 +134,15 @@ test("Test - Future relative expressions", () => {
expect(result.start.isCertain("hour")).toBe(false);
});

// next quarter
testSingleCase(chrono.nl, "volgend kwartaal", new Date(2016, 10 - 1, 1, 12), (result, text) => {
expect(result.text).toBe(text);
expect(result.start.get("year")).toBe(2017);
expect(result.start.get("month")).toBe(1);
expect(result.start.get("day")).toBe(1);
expect(result.start.get("hour")).toBe(12);
});

// next year
testSingleCase(chrono.nl, "volgend jaar", new Date(2020, 11 - 1, 22, 12, 11, 32, 6), (result, text) => {
expect(result.text).toBe(text);
Expand Down
13 changes: 13 additions & 0 deletions test/nl/nl_time_units_later.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,19 @@ test("Test - From now Expression", () => {
expect(result.start).toBeDate(new Date(2012, 8 - 1, 15));
});

// 2 Quarters from now, we did something
testSingleCase(chrono.nl, "Over 2 kwartalen hebben we iets gedaan", new Date(2012, 7, 10), (result) => {
expect(result.start).not.toBeNull();
expect(result.start.get("year")).toBe(2013);
expect(result.start.get("month")).toBe(2);
expect(result.start.get("day")).toBe(10);

expect(result.index).toBe(0);
expect(result.text).toBe("Over 2 kwartalen");

expect(result.start).toBeDate(new Date(2013, 2 - 1, 10));
});

// half An hour from now
testSingleCase(chrono.nl, " half uur vanaf nu", new Date(2012, 7, 10, 12, 14), (result) => {
expect(result.index).toBe(3);
Expand Down