Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /usr/local/lib/node_modules/rtail/node_modules/chrono-node/test/en/ drwxr-xr-x | |
| Viewing file: Select action/file-type: import * as chrono from '../../src/chrono';
import { testSingleCase, testWithExpectedDate, testUnexpectedResult} from '../test_util';
test("Test - Single Expression", function() {
testSingleCase(chrono, 'She is getting married soon (July 2017).', (result) => {
expect(result.start).not.toBeNull();
expect(result.start.get('year')).toBe(2017);
expect(result.start.get('month')).toBe(7);
expect(result.start.get('day')).toBe(1);
expect(result.index).toBe(29);
expect(result.text).toBe('July 2017');
var resultDate = result.start.date();
var expectDate = new Date(2017, 7-1, 1, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
});
testSingleCase(chrono, 'She is leaving in August.', new Date(2012,7,10), (result) => {
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(1);
expect(result.index).toBe(18);
expect(result.text).toBe('August');
var resultDate = result.start.date();
var expectDate = new Date(2012, 8-1, 1, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
});
testSingleCase(chrono, 'I am arriving sometime in August, 2012, probably.', new Date(2012,7,10), (result) => {
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(1);
expect(result.index).toBe(26);
expect(result.text).toBe('August, 2012');
var resultDate = result.start.date();
var expectDate = new Date(2012, 8-1, 1, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
});
testSingleCase(chrono, 'August 10, 2012', new Date(2012,7,10), (result) => {
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.index).toBe(0);
expect(result.text).toBe('August 10, 2012');
var resultDate = result.start.date();
var expectDate = new Date(2012, 8-1, 10, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
});
testSingleCase(chrono, 'Nov 12, 2011', new Date(2012,7,10), (result) => {
expect(result.start).not.toBeNull();
expect(result.start.get('year')).toBe(2011);
expect(result.start.get('month')).toBe(11);
expect(result.start.get('day')).toBe(12);
expect(result.index).toBe(0);
expect(result.text).toBe('Nov 12, 2011');
var resultDate = result.start.date();
var expectDate = new Date(2011, 11-1, 12, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
});
testSingleCase(chrono, 'The Deadline is August 10', new Date(2012,7,10), (result) => {
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.index).toBe(16);
expect(result.text).toBe('August 10');
var resultDate = result.start.date();
var expectDate = new Date(2012, 8-1, 10, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
});
testSingleCase(chrono, 'The Deadline is August 10 2555 BE', new Date(2012,7,10), (result) => {
expect(result.index).toBe(16);
expect(result.text).toBe('August 10 2555 BE');
var resultDate = result.start.date();
var expectDate = new Date(2012, 8-1, 10, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
});
testSingleCase(chrono, 'The Deadline is August 10, 345 BC', new Date(2012,7,10), (result) => {
expect(result.index).toBe(16);
expect(result.text).toBe('August 10, 345 BC');
var resultDate = result.start.date();
var expectDate = new Date(-345, 8-1, 10, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
});
testSingleCase(chrono, 'The Deadline is August 10, 8 AD', new Date(2012,7,10), (result) => {
expect(result.index).toBe(16);
expect(result.text).toBe('August 10, 8 AD');
var resultDate = result.start.date();
var expectDate = new Date(8, 8-1, 10, 12);
expectDate.setFullYear(8);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
});
testSingleCase(chrono, 'The Deadline is Tuesday, January 10', new Date(2012,7,10), (result) => {
expect(result.text).toBe('Tuesday, January 10');
expect(result.start).not.toBeNull();
expect(result.start.get('year')).toBe(2013);
expect(result.start.get('month')).toBe(1);
expect(result.start.get('day')).toBe(10);
expect(result.start.get('weekday')).toBe(2);
var resultDate = result.start.date();
var expectDate = new Date(2013, 1-1, 10, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
});
testSingleCase(chrono, 'Sun, Mar. 6, 2016', new Date(2012,7,10), (result) => {
expect(result.start).not.toBeNull();
expect(result.start.get('year')).toBe(2016);
expect(result.start.get('month')).toBe(3);
expect(result.start.get('day')).toBe(6);
});
testSingleCase(chrono, 'Sun, March 6, 2016', new Date(2012,7,10), (result) => {
expect(result.start).not.toBeNull();
expect(result.start.get('year')).toBe(2016);
expect(result.start.get('month')).toBe(3);
expect(result.start.get('day')).toBe(6);
});
testSingleCase(chrono, 'Sun., March 6, 2016', new Date(2012,7,10), (result) => {
expect(result.start).not.toBeNull();
expect(result.start.get('year')).toBe(2016);
expect(result.start.get('month')).toBe(3);
expect(result.start.get('day')).toBe(6);
});
testSingleCase(chrono, 'Sunday, March 6, 2016', new Date(2012,7,10), (result) => {
expect(result.start).not.toBeNull();
expect(result.start.get('year')).toBe(2016);
expect(result.start.get('month')).toBe(3);
expect(result.start.get('day')).toBe(6);
});
testSingleCase(chrono, 'Sunday, March 6, 2016', new Date(2012,7,10), (result) => {
expect(result.start).not.toBeNull();
expect(result.start.get('year')).toBe(2016);
expect(result.start.get('month')).toBe(3);
expect(result.start.get('day')).toBe(6);
});
testSingleCase(chrono, 'Sunday, March, 6th 2016', new Date(2012,7,10), (result) => {
expect(result.text).toBe('Sunday, March, 6th 2016');
expect(result.start).not.toBeNull();
expect(result.start.get('year')).toBe(2016);
expect(result.start.get('month')).toBe(3);
expect(result.start.get('day')).toBe(6);
});
});
test("Test - Single expression with separators", function() {
testWithExpectedDate(chrono, 'August-10, 2012',
new Date(2012, 8-1, 10, 12, 0));
testWithExpectedDate(chrono, 'August/10, 2012',
new Date(2012, 8-1, 10, 12, 0));
testWithExpectedDate(chrono, 'August/10/2012',
new Date(2012, 8-1, 10, 12, 0));
testWithExpectedDate(chrono, 'August-10-2012',
new Date(2012, 8-1, 10, 12, 0));
});
test("Test - Range expression", function() {
testSingleCase(chrono, 'August 10 - 22, 2012', new Date(2012,7,10), (result) => {
expect(result.index).toBe(0);
expect(result.text).toBe('August 10 - 22, 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);
var resultDate = result.start.date();
var expectDate = new Date(2012, 8-1, 10, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
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);
var resultDate = result.end.date();
var expectDate = new Date(2012, 8-1, 22, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
});
testSingleCase(chrono, 'August 10 to 22, 2012', new Date(2012,7,10), (result) => {
expect(result.index).toBe(0);
expect(result.text).toBe('August 10 to 22, 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);
var resultDate = result.start.date();
var expectDate = new Date(2012, 8-1, 10, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
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);
var resultDate = result.end.date();
var expectDate = new Date(2012, 8-1, 22, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
});
testSingleCase(chrono, 'August 10 - November 12', new Date(2012,7,10), (result) => {
expect(result.index).toBe(0);
expect(result.text).toBe('August 10 - November 12');
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);
var resultDate = result.start.date();
var expectDate = new Date(2012, 8-1, 10, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
expect(result.end).not.toBeNull();
expect(result.end.get('year')).toBe(2012);
expect(result.end.get('month')).toBe(11);
expect(result.end.get('day')).toBe(12);
var resultDate = result.end.date();
var expectDate = new Date(2012, 11-1, 12, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
});
testSingleCase(chrono, 'Aug 10 to Nov 12', new Date(2012,7,10), (result) => {
expect(result.index).toBe(0);
expect(result.text).toBe('Aug 10 to Nov 12');
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);
var resultDate = result.start.date();
var expectDate = new Date(2012, 8-1, 10, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
expect(result.end).not.toBeNull();
expect(result.end.get('year')).toBe(2012);
expect(result.end.get('month')).toBe(11);
expect(result.end.get('day')).toBe(12);
var resultDate = result.end.date();
var expectDate = new Date(2012, 11-1, 12, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
});
testSingleCase(chrono, 'Aug 10 - Nov 12, 2013', new Date(2012,7,10), (result) => {
expect(result.index).toBe(0);
expect(result.text).toBe('Aug 10 - Nov 12, 2013');
expect(result.start).not.toBeNull();
expect(result.start.get('year')).toBe(2013);
expect(result.start.get('month')).toBe(8);
expect(result.start.get('day')).toBe(10);
var resultDate = result.start.date();
var expectDate = new Date(2013, 8-1, 10, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
expect(result.end).not.toBeNull();
expect(result.end.get('year')).toBe(2013);
expect(result.end.get('month')).toBe(11);
expect(result.end.get('day')).toBe(12);
var resultDate = result.end.date();
var expectDate = new Date(2013, 11-1, 12, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
});
testSingleCase(chrono, 'Aug 10 - Nov 12, 2011', new Date(2012,7,10), (result) => {
expect(result.index).toBe(0);
expect(result.text).toBe('Aug 10 - Nov 12, 2011');
expect(result.start).not.toBeNull();
expect(result.start.get('year')).toBe(2011);
expect(result.start.get('month')).toBe(8);
expect(result.start.get('day')).toBe(10);
var resultDate = result.start.date();
var expectDate = new Date(2011, 8-1, 10, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
expect(result.end).not.toBeNull();
expect(result.end.get('year')).toBe(2011);
expect(result.end.get('month')).toBe(11);
expect(result.end.get('day')).toBe(12);
var resultDate = result.end.date();
var expectDate = new Date(2011, 11-1, 12, 12);
expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
});
});
test("Test - Ordinal Words", function () {
testSingleCase(chrono, 'May eighth, 2010', new Date(2012,7,10), (result) => {
expect(result.index).toBe(0);
expect(result.text).toBe('May eighth, 2010');
expect(result.start).not.toBeNull();
expect(result.start.get('year')).toBe(2010);
expect(result.start.get('month')).toBe(5);
expect(result.start.get('day')).toBe(8);
});
testSingleCase(chrono, 'May twenty-fourth', new Date(2012,7,10), (result) => {
expect(result.index).toBe(0);
expect(result.text).toBe('May twenty-fourth');
expect(result.start).not.toBeNull();
expect(result.start.get('year')).toBe(2012);
expect(result.start.get('month')).toBe(5);
expect(result.start.get('day')).toBe(24);
});
testSingleCase(chrono, 'May eighth - tenth, 2010', new Date(2012,7,10), (result) => {
expect(result.index).toBe(0);
expect(result.text).toBe('May eighth - tenth, 2010');
expect(result.start).not.toBeNull();
expect(result.start.get('year')).toBe(2010);
expect(result.start.get('month')).toBe(5);
expect(result.start.get('day')).toBe(8);
expect(result.end).not.toBeNull();
expect(result.end.get('year')).toBe(2010);
expect(result.end.get('month')).toBe(5);
expect(result.end.get('day')).toBe(10);
});
});
test("Test - Impossible Dates (Strict Mode)", function() {
testUnexpectedResult(chrono.strict, 'August 32, 2014');
testUnexpectedResult(chrono.strict, 'February 29, 2014');
testUnexpectedResult(chrono.strict, 'August 32', new Date(2012,7,10));
testUnexpectedResult(chrono.strict, 'February 29', new Date(2014,7,10));
});
test("Test - Impossible Dates (Casual Mode)", function() {
testWithExpectedDate(chrono, 'August 32, 2015', new Date(2015, 9 - 1, 1, 12, 0));
});
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0055 ]-- |