Skip to content

Commit

Permalink
Fix: Incorrect deadline certainty
Browse files Browse the repository at this point in the history
  • Loading branch information
Wanasit Tanakitrungruang committed Aug 10, 2024
1 parent e6a8c98 commit b12f412
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 49 deletions.
18 changes: 9 additions & 9 deletions src/parsers/en/ENDeadlineFormatParser.js
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,9 @@ exports.Parser = function ENDeadlineFormatParser(){
date = date.add(num, 'year');
}

result.start.imply('year', date.year());
result.start.imply('month', date.month() + 1);
result.start.imply('day', date.date());
result.start.assign('year', date.year());
result.start.assign('month', date.month() + 1);
result.start.assign('day', date.date());
return result;
}

Expand All @@ -81,12 +81,12 @@ exports.Parser = function ENDeadlineFormatParser(){
date = date.add(num, 'second');
}

result.start.imply('year', date.year());
result.start.imply('month', date.month() + 1);
result.start.imply('day', date.date());
result.start.imply('hour', date.hour());
result.start.imply('minute', date.minute());
result.start.imply('second', date.second());
result.start.assign('year', date.year());
result.start.assign('month', date.month() + 1);
result.start.assign('day', date.date());
result.start.assign('hour', date.hour());
result.start.assign('minute', date.minute());
result.start.assign('second', date.second());
result.tags['ENDeadlineFormatParser'] = true;
return result;
};
Expand Down
65 changes: 25 additions & 40 deletions test/en/en_deadline.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -215,67 +215,52 @@ test("Test - Single Expression (Strict)", function() {
});


test("Test - Single Expression (Implied)", function() {
test("Test - Single Expression (Certainty)", function() {

var text = "within 30 days";

var text = "within 30 years";
var results = chrono.parse(text, new Date(2012,7,10,12,14));
expect(results.length).toBe(1);
expect(!results[0].start.isCertain('year')).not.toBeNull();
expect(!results[0].start.isCertain('month')).not.toBeNull();
expect(!results[0].start.isCertain('day')).not.toBeNull();
expect(!results[0].start.isCertain('hour')).not.toBeNull();
expect(!results[0].start.isCertain('minute')).not.toBeNull();
expect(!results[0].start.isCertain('second')).not.toBeNull();
expect(results[0].start.isCertain('year')).toBe(true);

var text = "within 30 months";
var results = chrono.parse(text, new Date(2012,7,10,12,14));
expect(results.length).toBe(1);
expect(!results[0].start.isCertain('year')).not.toBeNull();
expect(!results[0].start.isCertain('month')).not.toBeNull();
expect(!results[0].start.isCertain('day')).not.toBeNull();
expect(!results[0].start.isCertain('hour')).not.toBeNull();
expect(!results[0].start.isCertain('minute')).not.toBeNull();
expect(!results[0].start.isCertain('second')).not.toBeNull();
expect(results[0].start.isCertain('year')).toBe(true);
expect(results[0].start.isCertain('month')).toBe(true);

var text = "within 30 years";
var text = "within 30 days";
var results = chrono.parse(text, new Date(2012,7,10,12,14));
expect(results.length).toBe(1);
expect(!results[0].start.isCertain('year')).not.toBeNull();
expect(!results[0].start.isCertain('month')).not.toBeNull();
expect(!results[0].start.isCertain('day')).not.toBeNull();
expect(!results[0].start.isCertain('hour')).not.toBeNull();
expect(!results[0].start.isCertain('minute')).not.toBeNull();
expect(!results[0].start.isCertain('second')).not.toBeNull();
expect(results[0].start.isCertain('year')).toBe(true);
expect(results[0].start.isCertain('month')).toBe(true);
expect(results[0].start.isCertain('day')).toBe(true);

var text = "within 5 hours";
var results = chrono.parse(text, new Date(2012,7,10,12,14));
expect(results.length).toBe(1);
expect(!results[0].start.isCertain('year')).not.toBeNull();
expect(!results[0].start.isCertain('month')).not.toBeNull();
expect(!results[0].start.isCertain('day')).not.toBeNull();
expect(!results[0].start.isCertain('hour')).not.toBeNull();
expect(!results[0].start.isCertain('minute')).not.toBeNull();
expect(!results[0].start.isCertain('second')).not.toBeNull();
expect(results[0].start.isCertain('year')).toBe(true);
expect(results[0].start.isCertain('month')).toBe(true);
expect(results[0].start.isCertain('day')).toBe(true);
expect(results[0].start.isCertain('hour')).toBe(true);

var text = "within 5 minutes";
var results = chrono.parse(text, new Date(2012,7,10,12,14));
expect(results.length).toBe(1);
expect(!results[0].start.isCertain('year')).not.toBeNull();
expect(!results[0].start.isCertain('month')).not.toBeNull();
expect(!results[0].start.isCertain('day')).not.toBeNull();
expect(!results[0].start.isCertain('hour')).not.toBeNull();
expect(!results[0].start.isCertain('minute')).not.toBeNull();
expect(!results[0].start.isCertain('second')).not.toBeNull();
expect(results[0].start.isCertain('year')).toBe(true);
expect(results[0].start.isCertain('month')).toBe(true);
expect(results[0].start.isCertain('day')).toBe(true);
expect(results[0].start.isCertain('hour')).toBe(true);
expect(results[0].start.isCertain('minute')).toBe(true);

var text = "within 5 seconds";
var results = chrono.parse(text, new Date(2012,7,10,12,14));
expect(results.length).toBe(1);
expect(!results[0].start.isCertain('year')).not.toBeNull();
expect(!results[0].start.isCertain('month')).not.toBeNull();
expect(!results[0].start.isCertain('day')).not.toBeNull();
expect(!results[0].start.isCertain('hour')).not.toBeNull();
expect(!results[0].start.isCertain('minute')).not.toBeNull();
expect(!results[0].start.isCertain('second')).not.toBeNull();

expect(results[0].start.isCertain('year')).toBe(true);
expect(results[0].start.isCertain('month')).toBe(true);
expect(results[0].start.isCertain('day')).toBe(true);
expect(results[0].start.isCertain('hour')).toBe(true);
expect(results[0].start.isCertain('minute')).toBe(true);
expect(results[0].start.isCertain('second')).toBe(true);
});

0 comments on commit b12f412

Please sign in to comment.