Difference between revisions of "Module:Date table sorting/testcases"

From blackwiki
Jump to navigation Jump to search
blackwiki>Mr. Stradivarius
(use dts:makeDisplay to find the display value, rather than searching the final output)
m (113 revisions imported)
 
(48 intermediate revisions by 6 users not shown)
Line 1: Line 1:
local mDts = require('Module:Dts') -- the module to be tested
+
local mDts = require('Module:Date table sorting/sandbox') -- the module to be tested
 
local Dts = mDts._exportClasses().Dts -- the Dts class
 
local Dts = mDts._exportClasses().Dts -- the Dts class
local mTemplateInvocation = require('Module:Template invocation')
 
 
local ScribuntoUnit = require('Module:ScribuntoUnit')
 
local ScribuntoUnit = require('Module:ScribuntoUnit')
 
local suite = ScribuntoUnit:new()
 
local suite = ScribuntoUnit:new()
  
 
-------------------------------------------------------------------------------
 
-------------------------------------------------------------------------------
-- Brute force tests
+
-- Helper functions and values
--
 
-- These need to be rewritten into a more managable format.
 
 
-------------------------------------------------------------------------------
 
-------------------------------------------------------------------------------
  
local tests = {
+
suite.currentYear = os.date('*t').year
{
+
suite.nowrapPattern = '^<span data%-sort%-value="[^"<>]-" style="white%-space:nowrap">[^<>]-</span>$'
{abbr = 'on', 'February 1418'},
 
{sort = '01418-02-01-0000', display = 'Feb 1418'},
 
},
 
{
 
{abbr = 'on', 'February 1418', format = 'dmy'},
 
{sort = '01418-02-01-0000', display = 'Feb 1418'},
 
},
 
{
 
{abbr = 'on', 'February 1418', format = 'mdy'},
 
{sort = '01418-02-01-0000', display = 'Feb 1418'},
 
},
 
{
 
{abbr = 'on', 'February 1418', format = 'dm'},
 
{sort = '01418-02-01-0000', display = 'Feb'},
 
},
 
{
 
{abbr = 'on', 'February 1418', format = 'md'},
 
{sort = '01418-02-01-0000', display = 'Feb'},
 
},
 
{
 
{abbr = 'on', 'February 1418', format = 'my'},
 
{sort = '01418-02-01-0000', display = 'Feb 1418'},
 
},
 
{
 
{abbr = 'on', 'February 1418', format = 'y'},
 
{sort = '01418-02-01-0000', display = '1418'},
 
},
 
{
 
{abbr = 'on', 'February 1418', format = 'm'},
 
{sort = '01418-02-01-0000', display = 'Feb'},
 
},
 
{
 
{abbr = 'on', 'February 1418', format = 'd'},
 
{sort = '01418-02-01-0000', display = ''},
 
},
 
{
 
{abbr = 'on', 'February 1418', format = 'hide'},
 
{sort = '01418-02-01-0000', display = ''},
 
},
 
{
 
{abbr = 'on', '24 April 1975'},
 
{sort = '01975-04-24-0000', display = '24 Apr 1975'},
 
},
 
{
 
{abbr = 'on', '24 April 1975', format = 'dmy'},
 
{sort = '01975-04-24-0000', display = '24 Apr 1975'},
 
},
 
{
 
{abbr = 'on', '24 April 1975', format = 'mdy'},
 
{sort = '01975-04-24-0000', display = 'Apr 24, 1975'},
 
},
 
{
 
{abbr = 'on', '24 April 1975', format = 'dm'},
 
{sort = '01975-04-24-0000', display = '24 Apr'},
 
},
 
{
 
{abbr = 'on', '24 April 1975', format = 'md'},
 
{sort = '01975-04-24-0000', display = 'Apr 24'},
 
},
 
{
 
{abbr = 'on', '24 April 1975', format = 'my'},
 
{sort = '01975-04-24-0000', display = 'Apr 1975'},
 
},
 
{
 
{abbr = 'on', '24 April 1975', format = 'y'},
 
{sort = '01975-04-24-0000', display = '1975'},
 
},
 
{
 
{abbr = 'on', '24 April 1975', format = 'm'},
 
{sort = '01975-04-24-0000', display = 'Apr'},
 
},
 
{
 
{abbr = 'on', '24 April 1975', format = 'd'},
 
{sort = '01975-04-24-0000', display = '24'},
 
},
 
{
 
{abbr = 'on', '24 April 1975', format = 'hide'},
 
{sort = '01975-04-24-0000', display = ''},
 
},
 
{
 
{abbr = 'on', 'July 19, 1877'},
 
{sort = '01877-07-19-0000', display = 'Jul 19, 1877'},
 
},
 
{
 
{abbr = 'on', 'July 19, 1877', format = 'dmy'},
 
{sort = '01877-07-19-0000', display = '19 Jul 1877'},
 
},
 
{
 
{abbr = 'on', 'July 19, 1877', format = 'mdy'},
 
{sort = '01877-07-19-0000', display = 'Jul 19, 1877'},
 
},
 
{
 
{abbr = 'on', 'July 19, 1877', format = 'dm'},
 
{sort = '01877-07-19-0000', display = '19 Jul'},
 
},
 
{
 
{abbr = 'on', 'July 19, 1877', format = 'md'},
 
{sort = '01877-07-19-0000', display = 'Jul 19'},
 
},
 
{
 
{abbr = 'on', 'July 19, 1877', format = 'my'},
 
{sort = '01877-07-19-0000', display = 'Jul 1877'},
 
},
 
{
 
{abbr = 'on', 'July 19, 1877', format = 'y'},
 
{sort = '01877-07-19-0000', display = '1877'},
 
},
 
{
 
{abbr = 'on', 'July 19, 1877', format = 'm'},
 
{sort = '01877-07-19-0000', display = 'Jul'},
 
},
 
{
 
{abbr = 'on', 'July 19, 1877', format = 'd'},
 
{sort = '01877-07-19-0000', display = '19'},
 
},
 
{
 
{abbr = 'on', 'July 19, 1877', format = 'hide'},
 
{sort = '01877-07-19-0000', display = ''},
 
},
 
{
 
{abbr = 'on', 'December'},
 
{sort = '02015-12-01-0000', display = 'Dec'},
 
},
 
{
 
{abbr = 'on', 'December', format = 'dmy'},
 
{sort = '02015-12-01-0000', display = 'Dec'},
 
},
 
{
 
{abbr = 'on', 'December', format = 'mdy'},
 
{sort = '02015-12-01-0000', display = 'Dec'},
 
},
 
{
 
{abbr = 'on', 'December', format = 'dm'},
 
{sort = '02015-12-01-0000', display = 'Dec'},
 
},
 
{
 
{abbr = 'on', 'December', format = 'md'},
 
{sort = '02015-12-01-0000', display = 'Dec'},
 
},
 
{
 
{abbr = 'on', 'December', format = 'my'},
 
{sort = '02015-12-01-0000', display = 'Dec'},
 
},
 
{
 
{abbr = 'on', 'December', format = 'y'},
 
{sort = '02015-12-01-0000', display = ''},
 
},
 
{
 
{abbr = 'on', 'December', format = 'm'},
 
{sort = '02015-12-01-0000', display = 'Dec'},
 
},
 
{
 
{abbr = 'on', 'December', format = 'd'},
 
{sort = '02015-12-01-0000', display = ''},
 
},
 
{
 
{abbr = 'on', 'December', format = 'hide'},
 
{sort = '02015-12-01-0000', display = ''},
 
},
 
{
 
{abbr = 'on', '11 November'},
 
{sort = '02015-11-11-0000', display = '11 Nov'},
 
},
 
{
 
{abbr = 'on', '11 November', format = 'dmy'},
 
{sort = '02015-11-11-0000', display = '11 Nov'},
 
},
 
{
 
{abbr = 'on', '11 November', format = 'mdy'},
 
{sort = '02015-11-11-0000', display = 'Nov 11'},
 
},
 
{
 
{abbr = 'on', '11 November', format = 'dm'},
 
{sort = '02015-11-11-0000', display = '11 Nov'},
 
},
 
{
 
{abbr = 'on', '11 November', format = 'md'},
 
{sort = '02015-11-11-0000', display = 'Nov 11'},
 
},
 
{
 
{abbr = 'on', '11 November', format = 'my'},
 
{sort = '02015-11-11-0000', display = 'Nov'},
 
},
 
{
 
{abbr = 'on', '11 November', format = 'y'},
 
{sort = '02015-11-11-0000', display = ''},
 
},
 
{
 
{abbr = 'on', '11 November', format = 'm'},
 
{sort = '02015-11-11-0000', display = 'Nov'},
 
},
 
{
 
{abbr = 'on', '11 November', format = 'd'},
 
{sort = '02015-11-11-0000', display = '11'},
 
},
 
{
 
{abbr = 'on', '11 November', format = 'hide'},
 
{sort = '02015-11-11-0000', display = ''},
 
},
 
{
 
{abbr = 'on', 'January 27'},
 
{sort = '02015-01-27-0000', display = 'Jan 27'},
 
},
 
{
 
{abbr = 'on', 'January 27', format = 'dmy'},
 
{sort = '02015-01-27-0000', display = '27 Jan'},
 
},
 
{
 
{abbr = 'on', 'January 27', format = 'mdy'},
 
{sort = '02015-01-27-0000', display = 'Jan 27'},
 
},
 
{
 
{abbr = 'on', 'January 27', format = 'dm'},
 
{sort = '02015-01-27-0000', display = '27 Jan'},
 
},
 
{
 
{abbr = 'on', 'January 27', format = 'md'},
 
{sort = '02015-01-27-0000', display = 'Jan 27'},
 
},
 
{
 
{abbr = 'on', 'January 27', format = 'my'},
 
{sort = '02015-01-27-0000', display = 'Jan'},
 
},
 
{
 
{abbr = 'on', 'January 27', format = 'y'},
 
{sort = '02015-01-27-0000', display = ''},
 
},
 
{
 
{abbr = 'on', 'January 27', format = 'm'},
 
{sort = '02015-01-27-0000', display = 'Jan'},
 
},
 
{
 
{abbr = 'on', 'January 27', format = 'd'},
 
{sort = '02015-01-27-0000', display = '27'},
 
},
 
{
 
{abbr = 'on', 'January 27', format = 'hide'},
 
{sort = '02015-01-27-0000', display = ''},
 
},
 
{
 
{abbr = 'on', '1972-01-01'},
 
{sort = '01972-01-01-0000', display = 'Jan 1, 1972'},
 
},
 
{
 
{abbr = 'on', '1972-01-01', format = 'dmy'},
 
{sort = '01972-01-01-0000', display = '1 Jan 1972'},
 
},
 
{
 
{abbr = 'on', '1972-01-01', format = 'mdy'},
 
{sort = '01972-01-01-0000', display = 'Jan 1, 1972'},
 
},
 
{
 
{abbr = 'on', '1972-01-01', format = 'dm'},
 
{sort = '01972-01-01-0000', display = '1 Jan'},
 
},
 
{
 
{abbr = 'on', '1972-01-01', format = 'md'},
 
{sort = '01972-01-01-0000', display = 'Jan 1'},
 
},
 
{
 
{abbr = 'on', '1972-01-01', format = 'my'},
 
{sort = '01972-01-01-0000', display = 'Jan 1972'},
 
},
 
{
 
{abbr = 'on', '1972-01-01', format = 'y'},
 
{sort = '01972-01-01-0000', display = '1972'},
 
},
 
{
 
{abbr = 'on', '1972-01-01', format = 'm'},
 
{sort = '01972-01-01-0000', display = 'Jan'},
 
},
 
{
 
{abbr = 'on', '1972-01-01', format = 'd'},
 
{sort = '01972-01-01-0000', display = '1'},
 
},
 
{
 
{abbr = 'on', '1972-01-01', format = 'hide'},
 
{sort = '01972-01-01-0000', display = ''},
 
},
 
{
 
{abbr = 'on', '2043-07'},
 
{sort = '02043-07-01-0000', display = 'Jul 2043'},
 
},
 
{
 
{abbr = 'on', '2043-07', format = 'dmy'},
 
{sort = '02043-07-01-0000', display = 'Jul 2043'},
 
},
 
{
 
{abbr = 'on', '2043-07', format = 'mdy'},
 
{sort = '02043-07-01-0000', display = 'Jul 2043'},
 
},
 
{
 
{abbr = 'on', '2043-07', format = 'dm'},
 
{sort = '02043-07-01-0000', display = 'Jul'},
 
},
 
{
 
{abbr = 'on', '2043-07', format = 'md'},
 
{sort = '02043-07-01-0000', display = 'Jul'},
 
},
 
{
 
{abbr = 'on', '2043-07', format = 'my'},
 
{sort = '02043-07-01-0000', display = 'Jul 2043'},
 
},
 
{
 
{abbr = 'on', '2043-07', format = 'y'},
 
{sort = '02043-07-01-0000', display = '2043'},
 
},
 
{
 
{abbr = 'on', '2043-07', format = 'm'},
 
{sort = '02043-07-01-0000', display = 'Jul'},
 
},
 
{
 
{abbr = 'on', '2043-07', format = 'd'},
 
{sort = '02043-07-01-0000', display = ''},
 
},
 
{
 
{abbr = 'on', '2043-07', format = 'hide'},
 
{sort = '02043-07-01-0000', display = ''},
 
},
 
{
 
{abbr = 'on', 1766, 09},
 
{sort = '01766-09-01-0000', display = 'Sep 1766'},
 
},
 
{
 
{abbr = 'on', 1766, 09, format = 'dmy'},
 
{sort = '01766-09-01-0000', display = 'Sep 1766'},
 
},
 
{
 
{abbr = 'on', 1766, 09, format = 'mdy'},
 
{sort = '01766-09-01-0000', display = 'Sep 1766'},
 
},
 
{
 
{abbr = 'on', 1766, 09, format = 'dm'},
 
{sort = '01766-09-01-0000', display = 'Sep'},
 
},
 
{
 
{abbr = 'on', 1766, 09, format = 'md'},
 
{sort = '01766-09-01-0000', display = 'Sep'},
 
},
 
{
 
{abbr = 'on', 1766, 09, format = 'my'},
 
{sort = '01766-09-01-0000', display = 'Sep 1766'},
 
},
 
{
 
{abbr = 'on', 1766, 09, format = 'y'},
 
{sort = '01766-09-01-0000', display = '1766'},
 
},
 
{
 
{abbr = 'on', 1766, 09, format = 'm'},
 
{sort = '01766-09-01-0000', display = 'Sep'},
 
},
 
{
 
{abbr = 'on', 1766, 09, format = 'd'},
 
{sort = '01766-09-01-0000', display = ''},
 
},
 
{
 
{abbr = 'on', 1766, 09, format = 'hide'},
 
{sort = '01766-09-01-0000', display = ''},
 
},
 
{
 
{abbr = 'on', 1634, 'March'},
 
{sort = '01634-03-01-0000', display = 'Mar 1634'},
 
},
 
{
 
{abbr = 'on', 1634, 'March', format = 'dmy'},
 
{sort = '01634-03-01-0000', display = 'Mar 1634'},
 
},
 
{
 
{abbr = 'on', 1634, 'March', format = 'mdy'},
 
{sort = '01634-03-01-0000', display = 'Mar 1634'},
 
},
 
{
 
{abbr = 'on', 1634, 'March', format = 'dm'},
 
{sort = '01634-03-01-0000', display = 'Mar'},
 
},
 
{
 
{abbr = 'on', 1634, 'March', format = 'md'},
 
{sort = '01634-03-01-0000', display = 'Mar'},
 
},
 
{
 
{abbr = 'on', 1634, 'March', format = 'my'},
 
{sort = '01634-03-01-0000', display = 'Mar 1634'},
 
},
 
{
 
{abbr = 'on', 1634, 'March', format = 'y'},
 
{sort = '01634-03-01-0000', display = '1634'},
 
},
 
{
 
{abbr = 'on', 1634, 'March', format = 'm'},
 
{sort = '01634-03-01-0000', display = 'Mar'},
 
},
 
{
 
{abbr = 'on', 1634, 'March', format = 'd'},
 
{sort = '01634-03-01-0000', display = ''},
 
},
 
{
 
{abbr = 'on', 1634, 'March', format = 'hide'},
 
{sort = '01634-03-01-0000', display = ''},
 
},
 
{
 
{abbr = 'on', 858, 'June', 5},
 
{sort = '00858-06-05-0000', display = 'Jun 5, 858'},
 
},
 
{
 
{abbr = 'on', 858, 'June', 5, format = 'dmy'},
 
{sort = '00858-06-05-0000', display = '5 Jun 858'},
 
},
 
{
 
{abbr = 'on', 858, 'June', 5, format = 'mdy'},
 
{sort = '00858-06-05-0000', display = 'Jun 5, 858'},
 
},
 
{
 
{abbr = 'on', 858, 'June', 5, format = 'dm'},
 
{sort = '00858-06-05-0000', display = '5 Jun'},
 
},
 
{
 
{abbr = 'on', 858, 'June', 5, format = 'md'},
 
{sort = '00858-06-05-0000', display = 'Jun 5'},
 
},
 
{
 
{abbr = 'on', 858, 'June', 5, format = 'my'},
 
{sort = '00858-06-05-0000', display = 'Jun 858'},
 
},
 
{
 
{abbr = 'on', 858, 'June', 5, format = 'y'},
 
{sort = '00858-06-05-0000', display = '858'},
 
},
 
{
 
{abbr = 'on', 858, 'June', 5, format = 'm'},
 
{sort = '00858-06-05-0000', display = 'Jun'},
 
},
 
{
 
{abbr = 'on', 858, 'June', 5, format = 'd'},
 
{sort = '00858-06-05-0000', display = '5'},
 
},
 
{
 
{abbr = 'on', 858, 'June', 5, format = 'hide'},
 
{sort = '00858-06-05-0000', display = ''},
 
},
 
{
 
{320},
 
{sort = '00320-01-01-0000', display = '320'},
 
},
 
{
 
{320, format = 'dmy'},
 
{sort = '00320-01-01-0000', display = '320'},
 
},
 
{
 
{320, format = 'mdy'},
 
{sort = '00320-01-01-0000', display = '320'},
 
},
 
{
 
{320, format = 'dm'},
 
{sort = '00320-01-01-0000', display = ''},
 
},
 
{
 
{320, format = 'md'},
 
{sort = '00320-01-01-0000', display = ''},
 
},
 
{
 
{320, format = 'my'},
 
{sort = '00320-01-01-0000', display = '320'},
 
},
 
{
 
{320, format = 'y'},
 
{sort = '00320-01-01-0000', display = '320'},
 
},
 
{
 
{320, format = 'm'},
 
{sort = '00320-01-01-0000', display = ''},
 
},
 
{
 
{320, format = 'd'},
 
{sort = '00320-01-01-0000', display = ''},
 
},
 
{
 
{320, format = 'hide'},
 
{sort = '00320-01-01-0000', display = ''},
 
},
 
{
 
{-250},
 
{sort = '-9750-01-01-0000', display = '250&nbsp;BC'},
 
},
 
{
 
{-250, format = 'dmy'},
 
{sort = '-9750-01-01-0000', display = '250&nbsp;BC'},
 
},
 
{
 
{-250, format = 'mdy'},
 
{sort = '-9750-01-01-0000', display = '250&nbsp;BC'},
 
},
 
{
 
{-250, format = 'dm'},
 
{sort = '-9750-01-01-0000', display = ''},
 
},
 
{
 
{-250, format = 'md'},
 
{sort = '-9750-01-01-0000', display = ''},
 
},
 
{
 
{-250, format = 'my'},
 
{sort = '-9750-01-01-0000', display = '250&nbsp;BC'},
 
},
 
{
 
{-250, format = 'y'},
 
{sort = '-9750-01-01-0000', display = '250&nbsp;BC'},
 
},
 
{
 
{-250, format = 'm'},
 
{sort = '-9750-01-01-0000', display = ''},
 
},
 
{
 
{-250, format = 'd'},
 
{sort = '-9750-01-01-0000', display = ''},
 
},
 
{
 
{-250, format = 'hide'},
 
{sort = '-9750-01-01-0000', display = ''},
 
},
 
{
 
{'31 Mar 2030'},
 
{sort = '02030-03-31-0000', display = '31 Mar 2030'},
 
},
 
{
 
{'31 Mar 2030', format = 'dmy'},
 
{sort = '02030-03-31-0000', display = '31 Mar 2030'},
 
},
 
{
 
{'31 Mar 2030', format = 'mdy'},
 
{sort = '02030-03-31-0000', display = 'Mar 31, 2030'},
 
},
 
{
 
{'31 Mar 2030', format = 'dm'},
 
{sort = '02030-03-31-0000', display = '31 Mar'},
 
},
 
{
 
{'31 Mar 2030', format = 'md'},
 
{sort = '02030-03-31-0000', display = 'Mar 31'},
 
},
 
{
 
{'31 Mar 2030', format = 'my'},
 
{sort = '02030-03-31-0000', display = 'Mar 2030'},
 
},
 
{
 
{'31 Mar 2030', format = 'y'},
 
{sort = '02030-03-31-0000', display = '2030'},
 
},
 
{
 
{'31 Mar 2030', format = 'm'},
 
{sort = '02030-03-31-0000', display = 'Mar'},
 
},
 
{
 
{'31 Mar 2030', format = 'd'},
 
{sort = '02030-03-31-0000', display = '31'},
 
},
 
{
 
{'31 Mar 2030', format = 'hide'},
 
{sort = '02030-03-31-0000', display = ''},
 
},
 
{
 
{'4 April 1976'},
 
{sort = '01976-04-04-0000', display = '4 April 1976'},
 
},
 
{
 
{'4 April 1976', format = 'dmy'},
 
{sort = '01976-04-04-0000', display = '4 April 1976'},
 
},
 
{
 
{'4 April 1976', format = 'mdy'},
 
{sort = '01976-04-04-0000', display = 'April 4, 1976'},
 
},
 
{
 
{'4 April 1976', format = 'dm'},
 
{sort = '01976-04-04-0000', display = '4 April'},
 
},
 
{
 
{'4 April 1976', format = 'md'},
 
{sort = '01976-04-04-0000', display = 'April 4'},
 
},
 
{
 
{'4 April 1976', format = 'my'},
 
{sort = '01976-04-04-0000', display = 'April 1976'},
 
},
 
{
 
{'4 April 1976', format = 'y'},
 
{sort = '01976-04-04-0000', display = '1976'},
 
},
 
{
 
{'4 April 1976', format = 'm'},
 
{sort = '01976-04-04-0000', display = 'April'},
 
},
 
{
 
{'4 April 1976', format = 'd'},
 
{sort = '01976-04-04-0000', display = '4'},
 
},
 
{
 
{'4 April 1976', format = 'hide'},
 
{sort = '01976-04-04-0000', display = ''},
 
},
 
{
 
{'Jun 15, 1987'},
 
{sort = '01987-06-15-0000', display = 'Jun 15, 1987'},
 
},
 
{
 
{'Jun 15, 1987', format = 'dmy'},
 
{sort = '01987-06-15-0000', display = '15 Jun 1987'},
 
},
 
{
 
{'Jun 15, 1987', format = 'mdy'},
 
{sort = '01987-06-15-0000', display = 'Jun 15, 1987'},
 
},
 
{
 
{'Jun 15, 1987', format = 'dm'},
 
{sort = '01987-06-15-0000', display = '15 Jun'},
 
},
 
{
 
{'Jun 15, 1987', format = 'md'},
 
{sort = '01987-06-15-0000', display = 'Jun 15'},
 
},
 
{
 
{'Jun 15, 1987', format = 'my'},
 
{sort = '01987-06-15-0000', display = 'Jun 1987'},
 
},
 
{
 
{'Jun 15, 1987', format = 'y'},
 
{sort = '01987-06-15-0000', display = '1987'},
 
},
 
{
 
{'Jun 15, 1987', format = 'm'},
 
{sort = '01987-06-15-0000', display = 'Jun'},
 
},
 
{
 
{'Jun 15, 1987', format = 'd'},
 
{sort = '01987-06-15-0000', display = '15'},
 
},
 
{
 
{'Jun 15, 1987', format = 'hide'},
 
{sort = '01987-06-15-0000', display = ''},
 
},
 
{
 
{'July 29, 1777'},
 
{sort = '01777-07-29-0000', display = 'July 29, 1777'},
 
},
 
{
 
{'July 29, 1777', format = 'dmy'},
 
{sort = '01777-07-29-0000', display = '29 July 1777'},
 
},
 
{
 
{'July 29, 1777', format = 'mdy'},
 
{sort = '01777-07-29-0000', display = 'July 29, 1777'},
 
},
 
{
 
{'July 29, 1777', format = 'dm'},
 
{sort = '01777-07-29-0000', display = '29 July'},
 
},
 
{
 
{'July 29, 1777', format = 'md'},
 
{sort = '01777-07-29-0000', display = 'July 29'},
 
},
 
{
 
{'July 29, 1777', format = 'my'},
 
{sort = '01777-07-29-0000', display = 'July 1777'},
 
},
 
{
 
{'July 29, 1777', format = 'y'},
 
{sort = '01777-07-29-0000', display = '1777'},
 
},
 
{
 
{'July 29, 1777', format = 'm'},
 
{sort = '01777-07-29-0000', display = 'July'},
 
},
 
{
 
{'July 29, 1777', format = 'd'},
 
{sort = '01777-07-29-0000', display = '29'},
 
},
 
{
 
{'July 29, 1777', format = 'hide'},
 
{sort = '01777-07-29-0000', display = ''},
 
},
 
{
 
{'Jan 2031'},
 
{sort = '02031-01-01-0000', display = 'Jan 2031'},
 
},
 
{
 
{'Jan 2031', format = 'dmy'},
 
{sort = '02031-01-01-0000', display = 'Jan 2031'},
 
},
 
{
 
{'Jan 2031', format = 'mdy'},
 
{sort = '02031-01-01-0000', display = 'Jan 2031'},
 
},
 
{
 
{'Jan 2031', format = 'dm'},
 
{sort = '02031-01-01-0000', display = 'Jan'},
 
},
 
{
 
{'Jan 2031', format = 'md'},
 
{sort = '02031-01-01-0000', display = 'Jan'},
 
},
 
{
 
{'Jan 2031', format = 'my'},
 
{sort = '02031-01-01-0000', display = 'Jan 2031'},
 
},
 
{
 
{'Jan 2031', format = 'y'},
 
{sort = '02031-01-01-0000', display = '2031'},
 
},
 
{
 
{'Jan 2031', format = 'm'},
 
{sort = '02031-01-01-0000', display = 'Jan'},
 
},
 
{
 
{'Jan 2031', format = 'd'},
 
{sort = '02031-01-01-0000', display = ''},
 
},
 
{
 
{'Jan 2031', format = 'hide'},
 
{sort = '02031-01-01-0000', display = ''},
 
},
 
{
 
{'February 1418'},
 
{sort = '01418-02-01-0000', display = 'February 1418'},
 
},
 
{
 
{'February 1418', format = 'dmy'},
 
{sort = '01418-02-01-0000', display = 'February 1418'},
 
},
 
{
 
{'February 1418', format = 'mdy'},
 
{sort = '01418-02-01-0000', display = 'February 1418'},
 
},
 
{
 
{'February 1418', format = 'dm'},
 
{sort = '01418-02-01-0000', display = 'February'},
 
},
 
{
 
{'February 1418', format = 'md'},
 
{sort = '01418-02-01-0000', display = 'February'},
 
},
 
{
 
{'February 1418', format = 'my'},
 
{sort = '01418-02-01-0000', display = 'February 1418'},
 
},
 
{
 
{'February 1418', format = 'y'},
 
{sort = '01418-02-01-0000', display = '1418'},
 
},
 
{
 
{'February 1418', format = 'm'},
 
{sort = '01418-02-01-0000', display = 'February'},
 
},
 
{
 
{'February 1418', format = 'd'},
 
{sort = '01418-02-01-0000', display = ''},
 
},
 
{
 
{'February 1418', format = 'hide'},
 
{sort = '01418-02-01-0000', display = ''},
 
},
 
{
 
{'Oct'},
 
{sort = '02015-10-01-0000', display = 'Oct'},
 
},
 
{
 
{'Oct', format = 'dmy'},
 
{sort = '02015-10-01-0000', display = 'Oct'},
 
},
 
{
 
{'Oct', format = 'mdy'},
 
{sort = '02015-10-01-0000', display = 'Oct'},
 
},
 
{
 
{'Oct', format = 'dm'},
 
{sort = '02015-10-01-0000', display = 'Oct'},
 
},
 
{
 
{'Oct', format = 'md'},
 
{sort = '02015-10-01-0000', display = 'Oct'},
 
},
 
{
 
{'Oct', format = 'my'},
 
{sort = '02015-10-01-0000', display = 'Oct'},
 
},
 
{
 
{'Oct', format = 'y'},
 
{sort = '02015-10-01-0000', display = ''},
 
},
 
{
 
{'Oct', format = 'm'},
 
{sort = '02015-10-01-0000', display = 'Oct'},
 
},
 
{
 
{'Oct', format = 'd'},
 
{sort = '02015-10-01-0000', display = ''},
 
},
 
{
 
{'Oct', format = 'hide'},
 
{sort = '02015-10-01-0000', display = ''},
 
},
 
{
 
{'November'},
 
{sort = '02015-11-01-0000', display = 'November'},
 
},
 
{
 
{'November', format = 'dmy'},
 
{sort = '02015-11-01-0000', display = 'November'},
 
},
 
{
 
{'November', format = 'mdy'},
 
{sort = '02015-11-01-0000', display = 'November'},
 
},
 
{
 
{'November', format = 'dm'},
 
{sort = '02015-11-01-0000', display = 'November'},
 
},
 
{
 
{'November', format = 'md'},
 
{sort = '02015-11-01-0000', display = 'November'},
 
},
 
{
 
{'November', format = 'my'},
 
{sort = '02015-11-01-0000', display = 'November'},
 
},
 
{
 
{'November', format = 'y'},
 
{sort = '02015-11-01-0000', display = ''},
 
},
 
{
 
{'November', format = 'm'},
 
{sort = '02015-11-01-0000', display = 'November'},
 
},
 
{
 
{'November', format = 'd'},
 
{sort = '02015-11-01-0000', display = ''},
 
},
 
{
 
{'November', format = 'hide'},
 
{sort = '02015-11-01-0000', display = ''},
 
},
 
{
 
{'13 Oct'},
 
{sort = '02015-10-13-0000', display = '13 Oct'},
 
},
 
{
 
{'13 Oct', format = 'dmy'},
 
{sort = '02015-10-13-0000', display = '13 Oct'},
 
},
 
{
 
{'13 Oct', format = 'mdy'},
 
{sort = '02015-10-13-0000', display = 'Oct 13'},
 
},
 
{
 
{'13 Oct', format = 'dm'},
 
{sort = '02015-10-13-0000', display = '13 Oct'},
 
},
 
{
 
{'13 Oct', format = 'md'},
 
{sort = '02015-10-13-0000', display = 'Oct 13'},
 
},
 
{
 
{'13 Oct', format = 'my'},
 
{sort = '02015-10-13-0000', display = 'Oct'},
 
},
 
{
 
{'13 Oct', format = 'y'},
 
{sort = '02015-10-13-0000', display = ''},
 
},
 
{
 
{'13 Oct', format = 'm'},
 
{sort = '02015-10-13-0000', display = 'Oct'},
 
},
 
{
 
{'13 Oct', format = 'd'},
 
{sort = '02015-10-13-0000', display = '13'},
 
},
 
{
 
{'13 Oct', format = 'hide'},
 
{sort = '02015-10-13-0000', display = ''},
 
},
 
{
 
{'21 November'},
 
{sort = '02015-11-21-0000', display = '21 November'},
 
},
 
{
 
{'21 November', format = 'dmy'},
 
{sort = '02015-11-21-0000', display = '21 November'},
 
},
 
{
 
{'21 November', format = 'mdy'},
 
{sort = '02015-11-21-0000', display = 'November 21'},
 
},
 
{
 
{'21 November', format = 'dm'},
 
{sort = '02015-11-21-0000', display = '21 November'},
 
},
 
{
 
{'21 November', format = 'md'},
 
{sort = '02015-11-21-0000', display = 'November 21'},
 
},
 
{
 
{'21 November', format = 'my'},
 
{sort = '02015-11-21-0000', display = 'November'},
 
},
 
{
 
{'21 November', format = 'y'},
 
{sort = '02015-11-21-0000', display = ''},
 
},
 
{
 
{'21 November', format = 'm'},
 
{sort = '02015-11-21-0000', display = 'November'},
 
},
 
{
 
{'21 November', format = 'd'},
 
{sort = '02015-11-21-0000', display = '21'},
 
},
 
{
 
{'21 November', format = 'hide'},
 
{sort = '02015-11-21-0000', display = ''},
 
},
 
{
 
{'Dec 21'},
 
{sort = '02015-12-21-0000', display = 'Dec 21'},
 
},
 
{
 
{'Dec 21', format = 'dmy'},
 
{sort = '02015-12-21-0000', display = '21 Dec'},
 
},
 
{
 
{'Dec 21', format = 'mdy'},
 
{sort = '02015-12-21-0000', display = 'Dec 21'},
 
},
 
{
 
{'Dec 21', format = 'dm'},
 
{sort = '02015-12-21-0000', display = '21 Dec'},
 
},
 
{
 
{'Dec 21', format = 'md'},
 
{sort = '02015-12-21-0000', display = 'Dec 21'},
 
},
 
{
 
{'Dec 21', format = 'my'},
 
{sort = '02015-12-21-0000', display = 'Dec'},
 
},
 
{
 
{'Dec 21', format = 'y'},
 
{sort = '02015-12-21-0000', display = ''},
 
},
 
{
 
{'Dec 21', format = 'm'},
 
{sort = '02015-12-21-0000', display = 'Dec'},
 
},
 
{
 
{'Dec 21', format = 'd'},
 
{sort = '02015-12-21-0000', display = '21'},
 
},
 
{
 
{'Dec 21', format = 'hide'},
 
{sort = '02015-12-21-0000', display = ''},
 
},
 
{
 
{'January 17'},
 
{sort = '02015-01-17-0000', display = 'January 17'},
 
},
 
{
 
{'January 17', format = 'dmy'},
 
{sort = '02015-01-17-0000', display = '17 January'},
 
},
 
{
 
{'January 17', format = 'mdy'},
 
{sort = '02015-01-17-0000', display = 'January 17'},
 
},
 
{
 
{'January 17', format = 'dm'},
 
{sort = '02015-01-17-0000', display = '17 January'},
 
},
 
{
 
{'January 17', format = 'md'},
 
{sort = '02015-01-17-0000', display = 'January 17'},
 
},
 
{
 
{'January 17', format = 'my'},
 
{sort = '02015-01-17-0000', display = 'January'},
 
},
 
{
 
{'January 17', format = 'y'},
 
{sort = '02015-01-17-0000', display = ''},
 
},
 
{
 
{'January 17', format = 'm'},
 
{sort = '02015-01-17-0000', display = 'January'},
 
},
 
{
 
{'January 17', format = 'd'},
 
{sort = '02015-01-17-0000', display = '17'},
 
},
 
{
 
{'January 17', format = 'hide'},
 
{sort = '02015-01-17-0000', display = ''},
 
},
 
{
 
{'2000-01-01'},
 
{sort = '02000-01-01-0000', display = 'January 1, 2000'},
 
},
 
{
 
{'2000-01-01', format = 'dmy'},
 
{sort = '02000-01-01-0000', display = '1 January 2000'},
 
},
 
{
 
{'2000-01-01', format = 'mdy'},
 
{sort = '02000-01-01-0000', display = 'January 1, 2000'},
 
},
 
{
 
{'2000-01-01', format = 'dm'},
 
{sort = '02000-01-01-0000', display = '1 January'},
 
},
 
{
 
{'2000-01-01', format = 'md'},
 
{sort = '02000-01-01-0000', display = 'January 1'},
 
},
 
{
 
{'2000-01-01', format = 'my'},
 
{sort = '02000-01-01-0000', display = 'January 2000'},
 
},
 
{
 
{'2000-01-01', format = 'y'},
 
{sort = '02000-01-01-0000', display = '2000'},
 
},
 
{
 
{'2000-01-01', format = 'm'},
 
{sort = '02000-01-01-0000', display = 'January'},
 
},
 
{
 
{'2000-01-01', format = 'd'},
 
{sort = '02000-01-01-0000', display = '1'},
 
},
 
{
 
{'2000-01-01', format = 'hide'},
 
{sort = '02000-01-01-0000', display = ''},
 
},
 
{
 
{'2020-07'},
 
{sort = '02020-07-01-0000', display = 'July 2020'},
 
},
 
{
 
{'2020-07', format = 'dmy'},
 
{sort = '02020-07-01-0000', display = 'July 2020'},
 
},
 
{
 
{'2020-07', format = 'mdy'},
 
{sort = '02020-07-01-0000', display = 'July 2020'},
 
},
 
{
 
{'2020-07', format = 'dm'},
 
{sort = '02020-07-01-0000', display = 'July'},
 
},
 
{
 
{'2020-07', format = 'md'},
 
{sort = '02020-07-01-0000', display = 'July'},
 
},
 
{
 
{'2020-07', format = 'my'},
 
{sort = '02020-07-01-0000', display = 'July 2020'},
 
},
 
{
 
{'2020-07', format = 'y'},
 
{sort = '02020-07-01-0000', display = '2020'},
 
},
 
{
 
{'2020-07', format = 'm'},
 
{sort = '02020-07-01-0000', display = 'July'},
 
},
 
{
 
{'2020-07', format = 'd'},
 
{sort = '02020-07-01-0000', display = ''},
 
},
 
{
 
{'2020-07', format = 'hide'},
 
{sort = '02020-07-01-0000', display = ''},
 
},
 
{
 
{1686, 09},
 
{sort = '01686-09-01-0000', display = 'September 1686'},
 
},
 
{
 
{1686, 09, format = 'dmy'},
 
{sort = '01686-09-01-0000', display = 'September 1686'},
 
},
 
{
 
{1686, 09, format = 'mdy'},
 
{sort = '01686-09-01-0000', display = 'September 1686'},
 
},
 
{
 
{1686, 09, format = 'dm'},
 
{sort = '01686-09-01-0000', display = 'September'},
 
},
 
{
 
{1686, 09, format = 'md'},
 
{sort = '01686-09-01-0000', display = 'September'},
 
},
 
{
 
{1686, 09, format = 'my'},
 
{sort = '01686-09-01-0000', display = 'September 1686'},
 
},
 
{
 
{1686, 09, format = 'y'},
 
{sort = '01686-09-01-0000', display = '1686'},
 
},
 
{
 
{1686, 09, format = 'm'},
 
{sort = '01686-09-01-0000', display = 'September'},
 
},
 
{
 
{1686, 09, format = 'd'},
 
{sort = '01686-09-01-0000', display = ''},
 
},
 
{
 
{1686, 09, format = 'hide'},
 
{sort = '01686-09-01-0000', display = ''},
 
},
 
{
 
{1764, 'Jan'},
 
{sort = '01764-01-01-0000', display = 'Jan 1764'},
 
},
 
{
 
{1764, 'Jan', format = 'dmy'},
 
{sort = '01764-01-01-0000', display = 'Jan 1764'},
 
},
 
{
 
{1764, 'Jan', format = 'mdy'},
 
{sort = '01764-01-01-0000', display = 'Jan 1764'},
 
},
 
{
 
{1764, 'Jan', format = 'dm'},
 
{sort = '01764-01-01-0000', display = 'Jan'},
 
},
 
{
 
{1764, 'Jan', format = 'md'},
 
{sort = '01764-01-01-0000', display = 'Jan'},
 
},
 
{
 
{1764, 'Jan', format = 'my'},
 
{sort = '01764-01-01-0000', display = 'Jan 1764'},
 
},
 
{
 
{1764, 'Jan', format = 'y'},
 
{sort = '01764-01-01-0000', display = '1764'},
 
},
 
{
 
{1764, 'Jan', format = 'm'},
 
{sort = '01764-01-01-0000', display = 'Jan'},
 
},
 
{
 
{1764, 'Jan', format = 'd'},
 
{sort = '01764-01-01-0000', display = ''},
 
},
 
{
 
{1764, 'Jan', format = 'hide'},
 
{sort = '01764-01-01-0000', display = ''},
 
},
 
{
 
{1934, 'March'},
 
{sort = '01934-03-01-0000', display = 'March 1934'},
 
},
 
{
 
{1934, 'March', format = 'dmy'},
 
{sort = '01934-03-01-0000', display = 'March 1934'},
 
},
 
{
 
{1934, 'March', format = 'mdy'},
 
{sort = '01934-03-01-0000', display = 'March 1934'},
 
},
 
{
 
{1934, 'March', format = 'dm'},
 
{sort = '01934-03-01-0000', display = 'March'},
 
},
 
{
 
{1934, 'March', format = 'md'},
 
{sort = '01934-03-01-0000', display = 'March'},
 
},
 
{
 
{1934, 'March', format = 'my'},
 
{sort = '01934-03-01-0000', display = 'March 1934'},
 
},
 
{
 
{1934, 'March', format = 'y'},
 
{sort = '01934-03-01-0000', display = '1934'},
 
},
 
{
 
{1934, 'March', format = 'm'},
 
{sort = '01934-03-01-0000', display = 'March'},
 
},
 
{
 
{1934, 'March', format = 'd'},
 
{sort = '01934-03-01-0000', display = ''},
 
},
 
{
 
{1934, 'March', format = 'hide'},
 
{sort = '01934-03-01-0000', display = ''},
 
},
 
{
 
{nil, 2},
 
{sort = '02015-02-01-0000', display = 'February'},
 
},
 
{
 
{nil, 2, format = 'dmy'},
 
{sort = '02015-02-01-0000', display = 'February'},
 
},
 
{
 
{nil, 2, format = 'mdy'},
 
{sort = '02015-02-01-0000', display = 'February'},
 
},
 
{
 
{nil, 2, format = 'dm'},
 
{sort = '02015-02-01-0000', display = 'February'},
 
},
 
{
 
{nil, 2, format = 'md'},
 
{sort = '02015-02-01-0000', display = 'February'},
 
},
 
{
 
{nil, 2, format = 'my'},
 
{sort = '02015-02-01-0000', display = 'February'},
 
},
 
{
 
{nil, 2, format = 'y'},
 
{sort = '02015-02-01-0000', display = ''},
 
},
 
{
 
{nil, 2, format = 'm'},
 
{sort = '02015-02-01-0000', display = 'February'},
 
},
 
{
 
{nil, 2, format = 'd'},
 
{sort = '02015-02-01-0000', display = ''},
 
},
 
{
 
{nil, 2, format = 'hide'},
 
{sort = '02015-02-01-0000', display = ''},
 
},
 
{
 
{nil, 11},
 
{sort = '02015-11-01-0000', display = 'November'},
 
},
 
{
 
{nil, 11, format = 'dmy'},
 
{sort = '02015-11-01-0000', display = 'November'},
 
},
 
{
 
{nil, 11, format = 'mdy'},
 
{sort = '02015-11-01-0000', display = 'November'},
 
},
 
{
 
{nil, 11, format = 'dm'},
 
{sort = '02015-11-01-0000', display = 'November'},
 
},
 
{
 
{nil, 11, format = 'md'},
 
{sort = '02015-11-01-0000', display = 'November'},
 
},
 
{
 
{nil, 11, format = 'my'},
 
{sort = '02015-11-01-0000', display = 'November'},
 
},
 
{
 
{nil, 11, format = 'y'},
 
{sort = '02015-11-01-0000', display = ''},
 
},
 
{
 
{nil, 11, format = 'm'},
 
{sort = '02015-11-01-0000', display = 'November'},
 
},
 
{
 
{nil, 11, format = 'd'},
 
{sort = '02015-11-01-0000', display = ''},
 
},
 
{
 
{nil, 11, format = 'hide'},
 
{sort = '02015-11-01-0000', display = ''},
 
},
 
{
 
{1878, 07, 05},
 
{sort = '01878-07-05-0000', display = 'July 5, 1878'},
 
},
 
{
 
{1878, 07, 05, format = 'dmy'},
 
{sort = '01878-07-05-0000', display = '5 July 1878'},
 
},
 
{
 
{1878, 07, 05, format = 'mdy'},
 
{sort = '01878-07-05-0000', display = 'July 5, 1878'},
 
},
 
{
 
{1878, 07, 05, format = 'dm'},
 
{sort = '01878-07-05-0000', display = '5 July'},
 
},
 
{
 
{1878, 07, 05, format = 'md'},
 
{sort = '01878-07-05-0000', display = 'July 5'},
 
},
 
{
 
{1878, 07, 05, format = 'my'},
 
{sort = '01878-07-05-0000', display = 'July 1878'},
 
},
 
{
 
{1878, 07, 05, format = 'y'},
 
{sort = '01878-07-05-0000', display = '1878'},
 
},
 
{
 
{1878, 07, 05, format = 'm'},
 
{sort = '01878-07-05-0000', display = 'July'},
 
},
 
{
 
{1878, 07, 05, format = 'd'},
 
{sort = '01878-07-05-0000', display = '5'},
 
},
 
{
 
{1878, 07, 05, format = 'hide'},
 
{sort = '01878-07-05-0000', display = ''},
 
},
 
{
 
{1918, 'Dec', 25},
 
{sort = '01918-12-25-0000', display = 'Dec 25, 1918'},
 
},
 
{
 
{1918, 'Dec', 25, format = 'dmy'},
 
{sort = '01918-12-25-0000', display = '25 Dec 1918'},
 
},
 
{
 
{1918, 'Dec', 25, format = 'mdy'},
 
{sort = '01918-12-25-0000', display = 'Dec 25, 1918'},
 
},
 
{
 
{1918, 'Dec', 25, format = 'dm'},
 
{sort = '01918-12-25-0000', display = '25 Dec'},
 
},
 
{
 
{1918, 'Dec', 25, format = 'md'},
 
{sort = '01918-12-25-0000', display = 'Dec 25'},
 
},
 
{
 
{1918, 'Dec', 25, format = 'my'},
 
{sort = '01918-12-25-0000', display = 'Dec 1918'},
 
},
 
{
 
{1918, 'Dec', 25, format = 'y'},
 
{sort = '01918-12-25-0000', display = '1918'},
 
},
 
{
 
{1918, 'Dec', 25, format = 'm'},
 
{sort = '01918-12-25-0000', display = 'Dec'},
 
},
 
{
 
{1918, 'Dec', 25, format = 'd'},
 
{sort = '01918-12-25-0000', display = '25'},
 
},
 
{
 
{1918, 'Dec', 25, format = 'hide'},
 
{sort = '01918-12-25-0000', display = ''},
 
},
 
{
 
{1858, 'June', 15},
 
{sort = '01858-06-15-0000', display = 'June 15, 1858'},
 
},
 
{
 
{1858, 'June', 15, format = 'dmy'},
 
{sort = '01858-06-15-0000', display = '15 June 1858'},
 
},
 
{
 
{1858, 'June', 15, format = 'mdy'},
 
{sort = '01858-06-15-0000', display = 'June 15, 1858'},
 
},
 
{
 
{1858, 'June', 15, format = 'dm'},
 
{sort = '01858-06-15-0000', display = '15 June'},
 
},
 
{
 
{1858, 'June', 15, format = 'md'},
 
{sort = '01858-06-15-0000', display = 'June 15'},
 
},
 
{
 
{1858, 'June', 15, format = 'my'},
 
{sort = '01858-06-15-0000', display = 'June 1858'},
 
},
 
{
 
{1858, 'June', 15, format = 'y'},
 
{sort = '01858-06-15-0000', display = '1858'},
 
},
 
{
 
{1858, 'June', 15, format = 'm'},
 
{sort = '01858-06-15-0000', display = 'June'},
 
},
 
{
 
{1858, 'June', 15, format = 'd'},
 
{sort = '01858-06-15-0000', display = '15'},
 
},
 
{
 
{1858, 'June', 15, format = 'hide'},
 
{sort = '01858-06-15-0000', display = ''},
 
},
 
{
 
{-773, 2, 7},
 
{sort = '-9227-02-07-0000', display = 'February 7, 773&nbsp;BC'},
 
},
 
{
 
{-773, 2, 7, format = 'dmy'},
 
{sort = '-9227-02-07-0000', display = '7 February 773&nbsp;BC'},
 
},
 
{
 
{-773, 2, 7, format = 'mdy'},
 
{sort = '-9227-02-07-0000', display = 'February 7, 773&nbsp;BC'},
 
},
 
{
 
{-773, 2, 7, format = 'dm'},
 
{sort = '-9227-02-07-0000', display = '7 February'},
 
},
 
{
 
{-773, 2, 7, format = 'md'},
 
{sort = '-9227-02-07-0000', display = 'February 7'},
 
},
 
{
 
{-773, 2, 7, format = 'my'},
 
{sort = '-9227-02-07-0000', display = 'February 773&nbsp;BC'},
 
},
 
{
 
{-773, 2, 7, format = 'y'},
 
{sort = '-9227-02-07-0000', display = '773&nbsp;BC'},
 
},
 
{
 
{-773, 2, 7, format = 'm'},
 
{sort = '-9227-02-07-0000', display = 'February'},
 
},
 
{
 
{-773, 2, 7, format = 'd'},
 
{sort = '-9227-02-07-0000', display = '7'},
 
},
 
{
 
{-773, 2, 7, format = 'hide'},
 
{sort = '-9227-02-07-0000', display = ''},
 
},
 
{
 
{-45, 'Mar', 25},
 
{sort = '-9955-03-25-0000', display = 'Mar 25, 45&nbsp;BC'},
 
},
 
{
 
{-45, 'Mar', 25, format = 'dmy'},
 
{sort = '-9955-03-25-0000', display = '25 Mar 45&nbsp;BC'},
 
},
 
{
 
{-45, 'Mar', 25, format = 'mdy'},
 
{sort = '-9955-03-25-0000', display = 'Mar 25, 45&nbsp;BC'},
 
},
 
{
 
{-45, 'Mar', 25, format = 'dm'},
 
{sort = '-9955-03-25-0000', display = '25 Mar'},
 
},
 
{
 
{-45, 'Mar', 25, format = 'md'},
 
{sort = '-9955-03-25-0000', display = 'Mar 25'},
 
},
 
{
 
{-45, 'Mar', 25, format = 'my'},
 
{sort = '-9955-03-25-0000', display = 'Mar 45&nbsp;BC'},
 
},
 
{
 
{-45, 'Mar', 25, format = 'y'},
 
{sort = '-9955-03-25-0000', display = '45&nbsp;BC'},
 
},
 
{
 
{-45, 'Mar', 25, format = 'm'},
 
{sort = '-9955-03-25-0000', display = 'Mar'},
 
},
 
{
 
{-45, 'Mar', 25, format = 'd'},
 
{sort = '-9955-03-25-0000', display = '25'},
 
},
 
{
 
{-45, 'Mar', 25, format = 'hide'},
 
{sort = '-9955-03-25-0000', display = ''},
 
},
 
{
 
{-1244, 'October', 30},
 
{sort = '-8756-10-30-0000', display = 'October 30, 1244&nbsp;BC'},
 
},
 
{
 
{-1244, 'October', 30, format = 'dmy'},
 
{sort = '-8756-10-30-0000', display = '30 October 1244&nbsp;BC'},
 
},
 
{
 
{-1244, 'October', 30, format = 'mdy'},
 
{sort = '-8756-10-30-0000', display = 'October 30, 1244&nbsp;BC'},
 
},
 
{
 
{-1244, 'October', 30, format = 'dm'},
 
{sort = '-8756-10-30-0000', display = '30 October'},
 
},
 
{
 
{-1244, 'October', 30, format = 'md'},
 
{sort = '-8756-10-30-0000', display = 'October 30'},
 
},
 
{
 
{-1244, 'October', 30, format = 'my'},
 
{sort = '-8756-10-30-0000', display = 'October 1244&nbsp;BC'},
 
},
 
{
 
{-1244, 'October', 30, format = 'y'},
 
{sort = '-8756-10-30-0000', display = '1244&nbsp;BC'},
 
},
 
{
 
{-1244, 'October', 30, format = 'm'},
 
{sort = '-8756-10-30-0000', display = 'October'},
 
},
 
{
 
{-1244, 'October', 30, format = 'd'},
 
{sort = '-8756-10-30-0000', display = '30'},
 
},
 
{
 
{-1244, 'October', 30, format = 'hide'},
 
{sort = '-8756-10-30-0000', display = ''},
 
},
 
{
 
{nil, 11, 9},
 
{sort = '02015-11-09-0000', display = 'November 9'},
 
},
 
{
 
{nil, 11, 9, format = 'dmy'},
 
{sort = '02015-11-09-0000', display = '9 November'},
 
},
 
{
 
{nil, 11, 9, format = 'mdy'},
 
{sort = '02015-11-09-0000', display = 'November 9'},
 
},
 
{
 
{nil, 11, 9, format = 'dm'},
 
{sort = '02015-11-09-0000', display = '9 November'},
 
},
 
{
 
{nil, 11, 9, format = 'md'},
 
{sort = '02015-11-09-0000', display = 'November 9'},
 
},
 
{
 
{nil, 11, 9, format = 'my'},
 
{sort = '02015-11-09-0000', display = 'November'},
 
},
 
{
 
{nil, 11, 9, format = 'y'},
 
{sort = '02015-11-09-0000', display = ''},
 
},
 
{
 
{nil, 11, 9, format = 'm'},
 
{sort = '02015-11-09-0000', display = 'November'},
 
},
 
{
 
{nil, 11, 9, format = 'd'},
 
{sort = '02015-11-09-0000', display = '9'},
 
},
 
{
 
{nil, 11, 9, format = 'hide'},
 
{sort = '02015-11-09-0000', display = ''},
 
},
 
{
 
{2234, 4, 6, 'BC'},
 
{sort = '-7766-04-06-0000', display = 'April 6, 2234&nbsp;BC'},
 
},
 
{
 
{2234, 4, 6, 'BC', format = 'dmy'},
 
{sort = '-7766-04-06-0000', display = '6 April 2234&nbsp;BC'},
 
},
 
{
 
{2234, 4, 6, 'BC', format = 'mdy'},
 
{sort = '-7766-04-06-0000', display = 'April 6, 2234&nbsp;BC'},
 
},
 
{
 
{2234, 4, 6, 'BC', format = 'dm'},
 
{sort = '-7766-04-06-0000', display = '6 April'},
 
},
 
{
 
{2234, 4, 6, 'BC', format = 'md'},
 
{sort = '-7766-04-06-0000', display = 'April 6'},
 
},
 
{
 
{2234, 4, 6, 'BC', format = 'my'},
 
{sort = '-7766-04-06-0000', display = 'April 2234&nbsp;BC'},
 
},
 
{
 
{2234, 4, 6, 'BC', format = 'y'},
 
{sort = '-7766-04-06-0000', display = '2234&nbsp;BC'},
 
},
 
{
 
{2234, 4, 6, 'BC', format = 'm'},
 
{sort = '-7766-04-06-0000', display = 'April'},
 
},
 
{
 
{2234, 4, 6, 'BC', format = 'd'},
 
{sort = '-7766-04-06-0000', display = '6'},
 
},
 
{
 
{2234, 4, 6, 'BC', format = 'hide'},
 
{sort = '-7766-04-06-0000', display = ''},
 
},
 
{
 
{142, 4, nil, 'BC'},
 
{sort = '-9858-04-01-0000', display = 'April 142&nbsp;BC'},
 
},
 
{
 
{142, 4, nil, 'BC', format = 'dmy'},
 
{sort = '-9858-04-01-0000', display = 'April 142&nbsp;BC'},
 
},
 
{
 
{142, 4, nil, 'BC', format = 'mdy'},
 
{sort = '-9858-04-01-0000', display = 'April 142&nbsp;BC'},
 
},
 
{
 
{142, 4, nil, 'BC', format = 'dm'},
 
{sort = '-9858-04-01-0000', display = 'April'},
 
},
 
{
 
{142, 4, nil, 'BC', format = 'md'},
 
{sort = '-9858-04-01-0000', display = 'April'},
 
},
 
{
 
{142, 4, nil, 'BC', format = 'my'},
 
{sort = '-9858-04-01-0000', display = 'April 142&nbsp;BC'},
 
},
 
{
 
{142, 4, nil, 'BC', format = 'y'},
 
{sort = '-9858-04-01-0000', display = '142&nbsp;BC'},
 
},
 
{
 
{142, 4, nil, 'BC', format = 'm'},
 
{sort = '-9858-04-01-0000', display = 'April'},
 
},
 
{
 
{142, 4, nil, 'BC', format = 'd'},
 
{sort = '-9858-04-01-0000', display = ''},
 
},
 
{
 
{142, 4, nil, 'BC', format = 'hide'},
 
{sort = '-9858-04-01-0000', display = ''},
 
},
 
{
 
{405, nil, nil, 'BC'},
 
{sort = '-9595-01-01-0000', display = '405&nbsp;BC'},
 
},
 
{
 
{405, nil, nil, 'BC', format = 'dmy'},
 
{sort = '-9595-01-01-0000', display = '405&nbsp;BC'},
 
},
 
{
 
{405, nil, nil, 'BC', format = 'mdy'},
 
{sort = '-9595-01-01-0000', display = '405&nbsp;BC'},
 
},
 
{
 
{405, nil, nil, 'BC', format = 'dm'},
 
{sort = '-9595-01-01-0000', display = ''},
 
},
 
{
 
{405, nil, nil, 'BC', format = 'md'},
 
{sort = '-9595-01-01-0000', display = ''},
 
},
 
{
 
{405, nil, nil, 'BC', format = 'my'},
 
{sort = '-9595-01-01-0000', display = '405&nbsp;BC'},
 
},
 
{
 
{405, nil, nil, 'BC', format = 'y'},
 
{sort = '-9595-01-01-0000', display = '405&nbsp;BC'},
 
},
 
{
 
{405, nil, nil, 'BC', format = 'm'},
 
{sort = '-9595-01-01-0000', display = ''},
 
},
 
{
 
{405, nil, nil, 'BC', format = 'd'},
 
{sort = '-9595-01-01-0000', display = ''},
 
},
 
{
 
{405, nil, nil, 'BC', format = 'hide'},
 
{sort = '-9595-01-01-0000', display = ''},
 
},
 
{
 
{2001},
 
{sort = '02001-01-01-0000', display = '2001'},
 
},
 
{
 
{2001, format = 'dmy'},
 
{sort = '02001-01-01-0000', display = '2001'},
 
},
 
{
 
{2001, format = 'mdy'},
 
{sort = '02001-01-01-0000', display = '2001'},
 
},
 
{
 
{2001, format = 'dm'},
 
{sort = '02001-01-01-0000', display = ''},
 
},
 
{
 
{2001, format = 'md'},
 
{sort = '02001-01-01-0000', display = ''},
 
},
 
{
 
{2001, format = 'my'},
 
{sort = '02001-01-01-0000', display = '2001'},
 
},
 
{
 
{2001, format = 'y'},
 
{sort = '02001-01-01-0000', display = '2001'},
 
},
 
{
 
{2001, format = 'm'},
 
{sort = '02001-01-01-0000', display = ''},
 
},
 
{
 
{2001, format = 'd'},
 
{sort = '02001-01-01-0000', display = ''},
 
},
 
{
 
{2001, format = 'hide'},
 
{sort = '02001-01-01-0000', display = ''},
 
},
 
{
 
{20},
 
{sort = '00020-01-01-0000', display = '20'},
 
},
 
{
 
{20, format = 'dmy'},
 
{sort = '00020-01-01-0000', display = '20'},
 
},
 
{
 
{20, format = 'mdy'},
 
{sort = '00020-01-01-0000', display = '20'},
 
},
 
{
 
{20, format = 'dm'},
 
{sort = '00020-01-01-0000', display = ''},
 
},
 
{
 
{20, format = 'md'},
 
{sort = '00020-01-01-0000', display = ''},
 
},
 
{
 
{20, format = 'my'},
 
{sort = '00020-01-01-0000', display = '20'},
 
},
 
{
 
{20, format = 'y'},
 
{sort = '00020-01-01-0000', display = '20'},
 
},
 
{
 
{20, format = 'm'},
 
{sort = '00020-01-01-0000', display = ''},
 
},
 
{
 
{20, format = 'd'},
 
{sort = '00020-01-01-0000', display = ''},
 
},
 
{
 
{20, format = 'hide'},
 
{sort = '00020-01-01-0000', display = ''},
 
},
 
{
 
{-200},
 
{sort = '-9800-01-01-0000', display = '200&nbsp;BC'},
 
},
 
{
 
{-200, format = 'dmy'},
 
{sort = '-9800-01-01-0000', display = '200&nbsp;BC'},
 
},
 
{
 
{-200, format = 'mdy'},
 
{sort = '-9800-01-01-0000', display = '200&nbsp;BC'},
 
},
 
{
 
{-200, format = 'dm'},
 
{sort = '-9800-01-01-0000', display = ''},
 
},
 
{
 
{-200, format = 'md'},
 
{sort = '-9800-01-01-0000', display = ''},
 
},
 
{
 
{-200, format = 'my'},
 
{sort = '-9800-01-01-0000', display = '200&nbsp;BC'},
 
},
 
{
 
{-200, format = 'y'},
 
{sort = '-9800-01-01-0000', display = '200&nbsp;BC'},
 
},
 
{
 
{-200, format = 'm'},
 
{sort = '-9800-01-01-0000', display = ''},
 
},
 
{
 
{-200, format = 'd'},
 
{sort = '-9800-01-01-0000', display = ''},
 
},
 
{
 
{-200, format = 'hide'},
 
{sort = '-9800-01-01-0000', display = ''},
 
},
 
{
 
{'2001-01-01'},
 
{sort = '02001-01-01-0000', display = 'January 1, 2001'},
 
},
 
{
 
{'2001-01-01', format = 'dmy'},
 
{sort = '02001-01-01-0000', display = '1 January 2001'},
 
},
 
{
 
{'2001-01-01', format = 'mdy'},
 
{sort = '02001-01-01-0000', display = 'January 1, 2001'},
 
},
 
{
 
{'2001-01-01', format = 'dm'},
 
{sort = '02001-01-01-0000', display = '1 January'},
 
},
 
{
 
{'2001-01-01', format = 'md'},
 
{sort = '02001-01-01-0000', display = 'January 1'},
 
},
 
{
 
{'2001-01-01', format = 'my'},
 
{sort = '02001-01-01-0000', display = 'January 2001'},
 
},
 
{
 
{'2001-01-01', format = 'y'},
 
{sort = '02001-01-01-0000', display = '2001'},
 
},
 
{
 
{'2001-01-01', format = 'm'},
 
{sort = '02001-01-01-0000', display = 'January'},
 
},
 
{
 
{'2001-01-01', format = 'd'},
 
{sort = '02001-01-01-0000', display = '1'},
 
},
 
{
 
{'2001-01-01', format = 'hide'},
 
{sort = '02001-01-01-0000', display = ''},
 
},
 
{
 
{'2020-03'},
 
{sort = '02020-03-01-0000', display = 'March 2020'},
 
},
 
{
 
{'2020-03', format = 'dmy'},
 
{sort = '02020-03-01-0000', display = 'March 2020'},
 
},
 
{
 
{'2020-03', format = 'mdy'},
 
{sort = '02020-03-01-0000', display = 'March 2020'},
 
},
 
{
 
{'2020-03', format = 'dm'},
 
{sort = '02020-03-01-0000', display = 'March'},
 
},
 
{
 
{'2020-03', format = 'md'},
 
{sort = '02020-03-01-0000', display = 'March'},
 
},
 
{
 
{'2020-03', format = 'my'},
 
{sort = '02020-03-01-0000', display = 'March 2020'},
 
},
 
{
 
{'2020-03', format = 'y'},
 
{sort = '02020-03-01-0000', display = '2020'},
 
},
 
{
 
{'2020-03', format = 'm'},
 
{sort = '02020-03-01-0000', display = 'March'},
 
},
 
{
 
{'2020-03', format = 'd'},
 
{sort = '02020-03-01-0000', display = ''},
 
},
 
{
 
{'2020-03', format = 'hide'},
 
{sort = '02020-03-01-0000', display = ''},
 
},
 
{
 
{1564, 3},
 
{sort = '01564-03-01-0000', display = 'March 1564'},
 
},
 
{
 
{1564, 3, format = 'dmy'},
 
{sort = '01564-03-01-0000', display = 'March 1564'},
 
},
 
{
 
{1564, 3, format = 'mdy'},
 
{sort = '01564-03-01-0000', display = 'March 1564'},
 
},
 
{
 
{1564, 3, format = 'dm'},
 
{sort = '01564-03-01-0000', display = 'March'},
 
},
 
{
 
{1564, 3, format = 'md'},
 
{sort = '01564-03-01-0000', display = 'March'},
 
},
 
{
 
{1564, 3, format = 'my'},
 
{sort = '01564-03-01-0000', display = 'March 1564'},
 
},
 
{
 
{1564, 3, format = 'y'},
 
{sort = '01564-03-01-0000', display = '1564'},
 
},
 
{
 
{1564, 3, format = 'm'},
 
{sort = '01564-03-01-0000', display = 'March'},
 
},
 
{
 
{1564, 3, format = 'd'},
 
{sort = '01564-03-01-0000', display = ''},
 
},
 
{
 
{1564, 3, format = 'hide'},
 
{sort = '01564-03-01-0000', display = ''},
 
},
 
{
 
{1764, 'Jan'},
 
{sort = '01764-01-01-0000', display = 'Jan 1764'},
 
},
 
{
 
{1764, 'Jan', format = 'dmy'},
 
{sort = '01764-01-01-0000', display = 'Jan 1764'},
 
},
 
{
 
{1764, 'Jan', format = 'mdy'},
 
{sort = '01764-01-01-0000', display = 'Jan 1764'},
 
},
 
{
 
{1764, 'Jan', format = 'dm'},
 
{sort = '01764-01-01-0000', display = 'Jan'},
 
},
 
{
 
{1764, 'Jan', format = 'md'},
 
{sort = '01764-01-01-0000', display = 'Jan'},
 
},
 
{
 
{1764, 'Jan', format = 'my'},
 
{sort = '01764-01-01-0000', display = 'Jan 1764'},
 
},
 
{
 
{1764, 'Jan', format = 'y'},
 
{sort = '01764-01-01-0000', display = '1764'},
 
},
 
{
 
{1764, 'Jan', format = 'm'},
 
{sort = '01764-01-01-0000', display = 'Jan'},
 
},
 
{
 
{1764, 'Jan', format = 'd'},
 
{sort = '01764-01-01-0000', display = ''},
 
},
 
{
 
{1764, 'Jan', format = 'hide'},
 
{sort = '01764-01-01-0000', display = ''},
 
},
 
{
 
{1964, 'March'},
 
{sort = '01964-03-01-0000', display = 'March 1964'},
 
},
 
{
 
{1964, 'March', format = 'dmy'},
 
{sort = '01964-03-01-0000', display = 'March 1964'},
 
},
 
{
 
{1964, 'March', format = 'mdy'},
 
{sort = '01964-03-01-0000', display = 'March 1964'},
 
},
 
{
 
{1964, 'March', format = 'dm'},
 
{sort = '01964-03-01-0000', display = 'March'},
 
},
 
{
 
{1964, 'March', format = 'md'},
 
{sort = '01964-03-01-0000', display = 'March'},
 
},
 
{
 
{1964, 'March', format = 'my'},
 
{sort = '01964-03-01-0000', display = 'March 1964'},
 
},
 
{
 
{1964, 'March', format = 'y'},
 
{sort = '01964-03-01-0000', display = '1964'},
 
},
 
{
 
{1964, 'March', format = 'm'},
 
{sort = '01964-03-01-0000', display = 'March'},
 
},
 
{
 
{1964, 'March', format = 'd'},
 
{sort = '01964-03-01-0000', display = ''},
 
},
 
{
 
{1964, 'March', format = 'hide'},
 
{sort = '01964-03-01-0000', display = ''},
 
},
 
{
 
{-564, 12},
 
{sort = '-9436-12-01-0000', display = 'December 564&nbsp;BC'},
 
},
 
{
 
{-564, 12, format = 'dmy'},
 
{sort = '-9436-12-01-0000', display = 'December 564&nbsp;BC'},
 
},
 
{
 
{-564, 12, format = 'mdy'},
 
{sort = '-9436-12-01-0000', display = 'December 564&nbsp;BC'},
 
},
 
{
 
{-564, 12, format = 'dm'},
 
{sort = '-9436-12-01-0000', display = 'December'},
 
},
 
{
 
{-564, 12, format = 'md'},
 
{sort = '-9436-12-01-0000', display = 'December'},
 
},
 
{
 
{-564, 12, format = 'my'},
 
{sort = '-9436-12-01-0000', display = 'December 564&nbsp;BC'},
 
},
 
{
 
{-564, 12, format = 'y'},
 
{sort = '-9436-12-01-0000', display = '564&nbsp;BC'},
 
},
 
{
 
{-564, 12, format = 'm'},
 
{sort = '-9436-12-01-0000', display = 'December'},
 
},
 
{
 
{-564, 12, format = 'd'},
 
{sort = '-9436-12-01-0000', display = ''},
 
},
 
{
 
{-564, 12, format = 'hide'},
 
{sort = '-9436-12-01-0000', display = ''},
 
},
 
{
 
{nil, 5},
 
{sort = '02015-05-01-0000', display = 'May'},
 
},
 
{
 
{nil, 5, format = 'dmy'},
 
{sort = '02015-05-01-0000', display = 'May'},
 
},
 
{
 
{nil, 5, format = 'mdy'},
 
{sort = '02015-05-01-0000', display = 'May'},
 
},
 
{
 
{nil, 5, format = 'dm'},
 
{sort = '02015-05-01-0000', display = 'May'},
 
},
 
{
 
{nil, 5, format = 'md'},
 
{sort = '02015-05-01-0000', display = 'May'},
 
},
 
{
 
{nil, 5, format = 'my'},
 
{sort = '02015-05-01-0000', display = 'May'},
 
},
 
{
 
{nil, 5, format = 'y'},
 
{sort = '02015-05-01-0000', display = ''},
 
},
 
{
 
{nil, 5, format = 'm'},
 
{sort = '02015-05-01-0000', display = 'May'},
 
},
 
{
 
{nil, 5, format = 'd'},
 
{sort = '02015-05-01-0000', display = ''},
 
},
 
{
 
{nil, 5, format = 'hide'},
 
{sort = '02015-05-01-0000', display = ''},
 
},
 
{
 
{nil, 08},
 
{sort = '02015-08-01-0000', display = 'August'},
 
},
 
{
 
{nil, 08, format = 'dmy'},
 
{sort = '02015-08-01-0000', display = 'August'},
 
},
 
{
 
{nil, 08, format = 'mdy'},
 
{sort = '02015-08-01-0000', display = 'August'},
 
},
 
{
 
{nil, 08, format = 'dm'},
 
{sort = '02015-08-01-0000', display = 'August'},
 
},
 
{
 
{nil, 08, format = 'md'},
 
{sort = '02015-08-01-0000', display = 'August'},
 
},
 
{
 
{nil, 08, format = 'my'},
 
{sort = '02015-08-01-0000', display = 'August'},
 
},
 
{
 
{nil, 08, format = 'y'},
 
{sort = '02015-08-01-0000', display = ''},
 
},
 
{
 
{nil, 08, format = 'm'},
 
{sort = '02015-08-01-0000', display = 'August'},
 
},
 
{
 
{nil, 08, format = 'd'},
 
{sort = '02015-08-01-0000', display = ''},
 
},
 
{
 
{nil, 08, format = 'hide'},
 
{sort = '02015-08-01-0000', display = ''},
 
},
 
{
 
{1999, 4, 6},
 
{sort = '01999-04-06-0000', display = 'April 6, 1999'},
 
},
 
{
 
{1999, 4, 6, format = 'dmy'},
 
{sort = '01999-04-06-0000', display = '6 April 1999'},
 
},
 
{
 
{1999, 4, 6, format = 'mdy'},
 
{sort = '01999-04-06-0000', display = 'April 6, 1999'},
 
},
 
{
 
{1999, 4, 6, format = 'dm'},
 
{sort = '01999-04-06-0000', display = '6 April'},
 
},
 
{
 
{1999, 4, 6, format = 'md'},
 
{sort = '01999-04-06-0000', display = 'April 6'},
 
},
 
{
 
{1999, 4, 6, format = 'my'},
 
{sort = '01999-04-06-0000', display = 'April 1999'},
 
},
 
{
 
{1999, 4, 6, format = 'y'},
 
{sort = '01999-04-06-0000', display = '1999'},
 
},
 
{
 
{1999, 4, 6, format = 'm'},
 
{sort = '01999-04-06-0000', display = 'April'},
 
},
 
{
 
{1999, 4, 6, format = 'd'},
 
{sort = '01999-04-06-0000', display = '6'},
 
},
 
{
 
{1999, 4, 6, format = 'hide'},
 
{sort = '01999-04-06-0000', display = ''},
 
},
 
{
 
{1858, 'Dec', 25},
 
{sort = '01858-12-25-0000', display = 'Dec 25, 1858'},
 
},
 
{
 
{1858, 'Dec', 25, format = 'dmy'},
 
{sort = '01858-12-25-0000', display = '25 Dec 1858'},
 
},
 
{
 
{1858, 'Dec', 25, format = 'mdy'},
 
{sort = '01858-12-25-0000', display = 'Dec 25, 1858'},
 
},
 
{
 
{1858, 'Dec', 25, format = 'dm'},
 
{sort = '01858-12-25-0000', display = '25 Dec'},
 
},
 
{
 
{1858, 'Dec', 25, format = 'md'},
 
{sort = '01858-12-25-0000', display = 'Dec 25'},
 
},
 
{
 
{1858, 'Dec', 25, format = 'my'},
 
{sort = '01858-12-25-0000', display = 'Dec 1858'},
 
},
 
{
 
{1858, 'Dec', 25, format = 'y'},
 
{sort = '01858-12-25-0000', display = '1858'},
 
},
 
{
 
{1858, 'Dec', 25, format = 'm'},
 
{sort = '01858-12-25-0000', display = 'Dec'},
 
},
 
{
 
{1858, 'Dec', 25, format = 'd'},
 
{sort = '01858-12-25-0000', display = '25'},
 
},
 
{
 
{1858, 'Dec', 25, format = 'hide'},
 
{sort = '01858-12-25-0000', display = ''},
 
},
 
{
 
{1958, 'June', 15},
 
{sort = '01958-06-15-0000', display = 'June 15, 1958'},
 
},
 
{
 
{1958, 'June', 15, format = 'dmy'},
 
{sort = '01958-06-15-0000', display = '15 June 1958'},
 
},
 
{
 
{1958, 'June', 15, format = 'mdy'},
 
{sort = '01958-06-15-0000', display = 'June 15, 1958'},
 
},
 
{
 
{1958, 'June', 15, format = 'dm'},
 
{sort = '01958-06-15-0000', display = '15 June'},
 
},
 
{
 
{1958, 'June', 15, format = 'md'},
 
{sort = '01958-06-15-0000', display = 'June 15'},
 
},
 
{
 
{1958, 'June', 15, format = 'my'},
 
{sort = '01958-06-15-0000', display = 'June 1958'},
 
},
 
{
 
{1958, 'June', 15, format = 'y'},
 
{sort = '01958-06-15-0000', display = '1958'},
 
},
 
{
 
{1958, 'June', 15, format = 'm'},
 
{sort = '01958-06-15-0000', display = 'June'},
 
},
 
{
 
{1958, 'June', 15, format = 'd'},
 
{sort = '01958-06-15-0000', display = '15'},
 
},
 
{
 
{1958, 'June', 15, format = 'hide'},
 
{sort = '01958-06-15-0000', display = ''},
 
},
 
{
 
{-1773, 2, 7},
 
{sort = '-8227-02-07-0000', display = 'February 7, 1773&nbsp;BC'},
 
},
 
{
 
{-1773, 2, 7, format = 'dmy'},
 
{sort = '-8227-02-07-0000', display = '7 February 1773&nbsp;BC'},
 
},
 
{
 
{-1773, 2, 7, format = 'mdy'},
 
{sort = '-8227-02-07-0000', display = 'February 7, 1773&nbsp;BC'},
 
},
 
{
 
{-1773, 2, 7, format = 'dm'},
 
{sort = '-8227-02-07-0000', display = '7 February'},
 
},
 
{
 
{-1773, 2, 7, format = 'md'},
 
{sort = '-8227-02-07-0000', display = 'February 7'},
 
},
 
{
 
{-1773, 2, 7, format = 'my'},
 
{sort = '-8227-02-07-0000', display = 'February 1773&nbsp;BC'},
 
},
 
{
 
{-1773, 2, 7, format = 'y'},
 
{sort = '-8227-02-07-0000', display = '1773&nbsp;BC'},
 
},
 
{
 
{-1773, 2, 7, format = 'm'},
 
{sort = '-8227-02-07-0000', display = 'February'},
 
},
 
{
 
{-1773, 2, 7, format = 'd'},
 
{sort = '-8227-02-07-0000', display = '7'},
 
},
 
{
 
{-1773, 2, 7, format = 'hide'},
 
{sort = '-8227-02-07-0000', display = ''},
 
},
 
{
 
{-44, 'Mar', 15},
 
{sort = '-9956-03-15-0000', display = 'Mar 15, 44&nbsp;BC'},
 
},
 
{
 
{-44, 'Mar', 15, format = 'dmy'},
 
{sort = '-9956-03-15-0000', display = '15 Mar 44&nbsp;BC'},
 
},
 
{
 
{-44, 'Mar', 15, format = 'mdy'},
 
{sort = '-9956-03-15-0000', display = 'Mar 15, 44&nbsp;BC'},
 
},
 
{
 
{-44, 'Mar', 15, format = 'dm'},
 
{sort = '-9956-03-15-0000', display = '15 Mar'},
 
},
 
{
 
{-44, 'Mar', 15, format = 'md'},
 
{sort = '-9956-03-15-0000', display = 'Mar 15'},
 
},
 
{
 
{-44, 'Mar', 15, format = 'my'},
 
{sort = '-9956-03-15-0000', display = 'Mar 44&nbsp;BC'},
 
},
 
{
 
{-44, 'Mar', 15, format = 'y'},
 
{sort = '-9956-03-15-0000', display = '44&nbsp;BC'},
 
},
 
{
 
{-44, 'Mar', 15, format = 'm'},
 
{sort = '-9956-03-15-0000', display = 'Mar'},
 
},
 
{
 
{-44, 'Mar', 15, format = 'd'},
 
{sort = '-9956-03-15-0000', display = '15'},
 
},
 
{
 
{-44, 'Mar', 15, format = 'hide'},
 
{sort = '-9956-03-15-0000', display = ''},
 
},
 
{
 
{-344, 'October', 30},
 
{sort = '-9656-10-30-0000', display = 'October 30, 344&nbsp;BC'},
 
},
 
{
 
{-344, 'October', 30, format = 'dmy'},
 
{sort = '-9656-10-30-0000', display = '30 October 344&nbsp;BC'},
 
},
 
{
 
{-344, 'October', 30, format = 'mdy'},
 
{sort = '-9656-10-30-0000', display = 'October 30, 344&nbsp;BC'},
 
},
 
{
 
{-344, 'October', 30, format = 'dm'},
 
{sort = '-9656-10-30-0000', display = '30 October'},
 
},
 
{
 
{-344, 'October', 30, format = 'md'},
 
{sort = '-9656-10-30-0000', display = 'October 30'},
 
},
 
{
 
{-344, 'October', 30, format = 'my'},
 
{sort = '-9656-10-30-0000', display = 'October 344&nbsp;BC'},
 
},
 
{
 
{-344, 'October', 30, format = 'y'},
 
{sort = '-9656-10-30-0000', display = '344&nbsp;BC'},
 
},
 
{
 
{-344, 'October', 30, format = 'm'},
 
{sort = '-9656-10-30-0000', display = 'October'},
 
},
 
{
 
{-344, 'October', 30, format = 'd'},
 
{sort = '-9656-10-30-0000', display = '30'},
 
},
 
{
 
{-344, 'October', 30, format = 'hide'},
 
{sort = '-9656-10-30-0000', display = ''},
 
},
 
{
 
{nil, 12, 4},
 
{sort = '02015-12-04-0000', display = 'December 4'},
 
},
 
{
 
{nil, 12, 4, format = 'dmy'},
 
{sort = '02015-12-04-0000', display = '4 December'},
 
},
 
{
 
{nil, 12, 4, format = 'mdy'},
 
{sort = '02015-12-04-0000', display = 'December 4'},
 
},
 
{
 
{nil, 12, 4, format = 'dm'},
 
{sort = '02015-12-04-0000', display = '4 December'},
 
},
 
{
 
{nil, 12, 4, format = 'md'},
 
{sort = '02015-12-04-0000', display = 'December 4'},
 
},
 
{
 
{nil, 12, 4, format = 'my'},
 
{sort = '02015-12-04-0000', display = 'December'},
 
},
 
{
 
{nil, 12, 4, format = 'y'},
 
{sort = '02015-12-04-0000', display = ''},
 
},
 
{
 
{nil, 12, 4, format = 'm'},
 
{sort = '02015-12-04-0000', display = 'December'},
 
},
 
{
 
{nil, 12, 4, format = 'd'},
 
{sort = '02015-12-04-0000', display = '4'},
 
},
 
{
 
{nil, 12, 4, format = 'hide'},
 
{sort = '02015-12-04-0000', display = ''},
 
},
 
{
 
{12, 4, nil, 'BC'},
 
{sort = '-9988-04-01-0000', display = 'April 12&nbsp;BC'},
 
},
 
{
 
{12, 4, nil, 'BC', format = 'dmy'},
 
{sort = '-9988-04-01-0000', display = 'April 12&nbsp;BC'},
 
},
 
{
 
{12, 4, nil, 'BC', format = 'mdy'},
 
{sort = '-9988-04-01-0000', display = 'April 12&nbsp;BC'},
 
},
 
{
 
{12, 4, nil, 'BC', format = 'dm'},
 
{sort = '-9988-04-01-0000', display = 'April'},
 
},
 
{
 
{12, 4, nil, 'BC', format = 'md'},
 
{sort = '-9988-04-01-0000', display = 'April'},
 
},
 
{
 
{12, 4, nil, 'BC', format = 'my'},
 
{sort = '-9988-04-01-0000', display = 'April 12&nbsp;BC'},
 
},
 
{
 
{12, 4, nil, 'BC', format = 'y'},
 
{sort = '-9988-04-01-0000', display = '12&nbsp;BC'},
 
},
 
{
 
{12, 4, nil, 'BC', format = 'm'},
 
{sort = '-9988-04-01-0000', display = 'April'},
 
},
 
{
 
{12, 4, nil, 'BC', format = 'd'},
 
{sort = '-9988-04-01-0000', display = ''},
 
},
 
{
 
{12, 4, nil, 'BC', format = 'hide'},
 
{sort = '-9988-04-01-0000', display = ''},
 
},
 
{
 
{45, nil, nil, 'BC'},
 
{sort = '-9955-01-01-0000', display = '45&nbsp;BC'},
 
},
 
{
 
{45, nil, nil, 'BC', format = 'dmy'},
 
{sort = '-9955-01-01-0000', display = '45&nbsp;BC'},
 
},
 
{
 
{45, nil, nil, 'BC', format = 'mdy'},
 
{sort = '-9955-01-01-0000', display = '45&nbsp;BC'},
 
},
 
{
 
{45, nil, nil, 'BC', format = 'dm'},
 
{sort = '-9955-01-01-0000', display = ''},
 
},
 
{
 
{45, nil, nil, 'BC', format = 'md'},
 
{sort = '-9955-01-01-0000', display = ''},
 
},
 
{
 
{45, nil, nil, 'BC', format = 'my'},
 
{sort = '-9955-01-01-0000', display = '45&nbsp;BC'},
 
},
 
{
 
{45, nil, nil, 'BC', format = 'y'},
 
{sort = '-9955-01-01-0000', display = '45&nbsp;BC'},
 
},
 
{
 
{45, nil, nil, 'BC', format = 'm'},
 
{sort = '-9955-01-01-0000', display = ''},
 
},
 
{
 
{45, nil, nil, 'BC', format = 'd'},
 
{sort = '-9955-01-01-0000', display = ''},
 
},
 
{
 
{45, nil, nil, 'BC', format = 'hide'},
 
{sort = '-9955-01-01-0000', display = ''},
 
},
 
{
 
{nil, 1, 1},
 
{sort = '02015-01-01-0000', display = 'January 1'},
 
},
 
{
 
{nil, 1, 1, format = 'dmy'},
 
{sort = '02015-01-01-0000', display = '1 January'},
 
},
 
{
 
{nil, 1, 1, format = 'mdy'},
 
{sort = '02015-01-01-0000', display = 'January 1'},
 
},
 
{
 
{nil, 1, 1, format = 'dm'},
 
{sort = '02015-01-01-0000', display = '1 January'},
 
},
 
{
 
{nil, 1, 1, format = 'md'},
 
{sort = '02015-01-01-0000', display = 'January 1'},
 
},
 
{
 
{nil, 1, 1, format = 'my'},
 
{sort = '02015-01-01-0000', display = 'January'},
 
},
 
{
 
{nil, 1, 1, format = 'y'},
 
{sort = '02015-01-01-0000', display = ''},
 
},
 
{
 
{nil, 1, 1, format = 'm'},
 
{sort = '02015-01-01-0000', display = 'January'},
 
},
 
{
 
{nil, 1, 1, format = 'd'},
 
{sort = '02015-01-01-0000', display = '1'},
 
},
 
{
 
{nil, 1, 1, format = 'hide'},
 
{sort = '02015-01-01-0000', display = ''},
 
},
 
{
 
{50, 'July'},
 
{sort = '00050-07-01-0000', display = 'July 50'},
 
},
 
{
 
{50, 'July', format = 'dmy'},
 
{sort = '00050-07-01-0000', display = 'July 50'},
 
},
 
{
 
{50, 'July', format = 'mdy'},
 
{sort = '00050-07-01-0000', display = 'July 50'},
 
},
 
{
 
{50, 'July', format = 'dm'},
 
{sort = '00050-07-01-0000', display = 'July'},
 
},
 
{
 
{50, 'July', format = 'md'},
 
{sort = '00050-07-01-0000', display = 'July'},
 
},
 
{
 
{50, 'July', format = 'my'},
 
{sort = '00050-07-01-0000', display = 'July 50'},
 
},
 
{
 
{50, 'July', format = 'y'},
 
{sort = '00050-07-01-0000', display = '50'},
 
},
 
{
 
{50, 'July', format = 'm'},
 
{sort = '00050-07-01-0000', display = 'July'},
 
},
 
{
 
{50, 'July', format = 'd'},
 
{sort = '00050-07-01-0000', display = ''},
 
},
 
{
 
{50, 'July', format = 'hide'},
 
{sort = '00050-07-01-0000', display = ''},
 
},
 
{
 
{2007, 7, 11},
 
{sort = '02007-07-11-0000', display = 'July 11, 2007'},
 
},
 
{
 
{2007, 7, 11, format = 'dmy'},
 
{sort = '02007-07-11-0000', display = '11 July 2007'},
 
},
 
{
 
{2007, 7, 11, format = 'mdy'},
 
{sort = '02007-07-11-0000', display = 'July 11, 2007'},
 
},
 
{
 
{2007, 7, 11, format = 'dm'},
 
{sort = '02007-07-11-0000', display = '11 July'},
 
},
 
{
 
{2007, 7, 11, format = 'md'},
 
{sort = '02007-07-11-0000', display = 'July 11'},
 
},
 
{
 
{2007, 7, 11, format = 'my'},
 
{sort = '02007-07-11-0000', display = 'July 2007'},
 
},
 
{
 
{2007, 7, 11, format = 'y'},
 
{sort = '02007-07-11-0000', display = '2007'},
 
},
 
{
 
{2007, 7, 11, format = 'm'},
 
{sort = '02007-07-11-0000', display = 'July'},
 
},
 
{
 
{2007, 7, 11, format = 'd'},
 
{sort = '02007-07-11-0000', display = '11'},
 
},
 
{
 
{2007, 7, 11, format = 'hide'},
 
{sort = '02007-07-11-0000', display = ''},
 
},
 
{
 
{50, 'July'},
 
{sort = '00050-07-01-0000', display = 'July 50'},
 
},
 
{
 
{50, 'July', format = 'dmy'},
 
{sort = '00050-07-01-0000', display = 'July 50'},
 
},
 
{
 
{50, 'July', format = 'mdy'},
 
{sort = '00050-07-01-0000', display = 'July 50'},
 
},
 
{
 
{50, 'July', format = 'dm'},
 
{sort = '00050-07-01-0000', display = 'July'},
 
},
 
{
 
{50, 'July', format = 'md'},
 
{sort = '00050-07-01-0000', display = 'July'},
 
},
 
{
 
{50, 'July', format = 'my'},
 
{sort = '00050-07-01-0000', display = 'July 50'},
 
},
 
{
 
{50, 'July', format = 'y'},
 
{sort = '00050-07-01-0000', display = '50'},
 
},
 
{
 
{50, 'July', format = 'm'},
 
{sort = '00050-07-01-0000', display = 'July'},
 
},
 
{
 
{50, 'July', format = 'd'},
 
{sort = '00050-07-01-0000', display = ''},
 
},
 
{
 
{50, 'July', format = 'hide'},
 
{sort = '00050-07-01-0000', display = ''},
 
},
 
{
 
{nil, 'July'},
 
{sort = '02015-07-01-0000', display = 'July'},
 
},
 
{
 
{nil, 'July', format = 'dmy'},
 
{sort = '02015-07-01-0000', display = 'July'},
 
},
 
{
 
{nil, 'July', format = 'mdy'},
 
{sort = '02015-07-01-0000', display = 'July'},
 
},
 
{
 
{nil, 'July', format = 'dm'},
 
{sort = '02015-07-01-0000', display = 'July'},
 
},
 
{
 
{nil, 'July', format = 'md'},
 
{sort = '02015-07-01-0000', display = 'July'},
 
},
 
{
 
{nil, 'July', format = 'my'},
 
{sort = '02015-07-01-0000', display = 'July'},
 
},
 
{
 
{nil, 'July', format = 'y'},
 
{sort = '02015-07-01-0000', display = ''},
 
},
 
{
 
{nil, 'July', format = 'm'},
 
{sort = '02015-07-01-0000', display = 'July'},
 
},
 
{
 
{nil, 'July', format = 'd'},
 
{sort = '02015-07-01-0000', display = ''},
 
},
 
{
 
{nil, 'July', format = 'hide'},
 
{sort = '02015-07-01-0000', display = ''},
 
},
 
{
 
{'Jun 19, 1947'},
 
{sort = '01947-06-19-0000', display = 'Jun 19, 1947'},
 
},
 
{
 
{'Jun 19, 1947', format = 'dmy'},
 
{sort = '01947-06-19-0000', display = '19 Jun 1947'},
 
},
 
{
 
{'Jun 19, 1947', format = 'mdy'},
 
{sort = '01947-06-19-0000', display = 'Jun 19, 1947'},
 
},
 
{
 
{'Jun 19, 1947', format = 'dm'},
 
{sort = '01947-06-19-0000', display = '19 Jun'},
 
},
 
{
 
{'Jun 19, 1947', format = 'md'},
 
{sort = '01947-06-19-0000', display = 'Jun 19'},
 
},
 
{
 
{'Jun 19, 1947', format = 'my'},
 
{sort = '01947-06-19-0000', display = 'Jun 1947'},
 
},
 
{
 
{'Jun 19, 1947', format = 'y'},
 
{sort = '01947-06-19-0000', display = '1947'},
 
},
 
{
 
{'Jun 19, 1947', format = 'm'},
 
{sort = '01947-06-19-0000', display = 'Jun'},
 
},
 
{
 
{'Jun 19, 1947', format = 'd'},
 
{sort = '01947-06-19-0000', display = '19'},
 
},
 
{
 
{'Jun 19, 1947', format = 'hide'},
 
{sort = '01947-06-19-0000', display = ''},
 
},
 
{
 
{'July 19, 1877'},
 
{sort = '01877-07-19-0000', display = 'July 19, 1877'},
 
},
 
{
 
{'July 19, 1877', format = 'dmy'},
 
{sort = '01877-07-19-0000', display = '19 July 1877'},
 
},
 
{
 
{'July 19, 1877', format = 'mdy'},
 
{sort = '01877-07-19-0000', display = 'July 19, 1877'},
 
},
 
{
 
{'July 19, 1877', format = 'dm'},
 
{sort = '01877-07-19-0000', display = '19 July'},
 
},
 
{
 
{'July 19, 1877', format = 'md'},
 
{sort = '01877-07-19-0000', display = 'July 19'},
 
},
 
{
 
{'July 19, 1877', format = 'my'},
 
{sort = '01877-07-19-0000', display = 'July 1877'},
 
},
 
{
 
{'July 19, 1877', format = 'y'},
 
{sort = '01877-07-19-0000', display = '1877'},
 
},
 
{
 
{'July 19, 1877', format = 'm'},
 
{sort = '01877-07-19-0000', display = 'July'},
 
},
 
{
 
{'July 19, 1877', format = 'd'},
 
{sort = '01877-07-19-0000', display = '19'},
 
},
 
{
 
{'July 19, 1877', format = 'hide'},
 
{sort = '01877-07-19-0000', display = ''},
 
},
 
{
 
{-74, 12},
 
{sort = '-9926-12-01-0000', display = 'December 74&nbsp;BC'},
 
},
 
{
 
{-74, 12, format = 'dmy'},
 
{sort = '-9926-12-01-0000', display = 'December 74&nbsp;BC'},
 
},
 
{
 
{-74, 12, format = 'mdy'},
 
{sort = '-9926-12-01-0000', display = 'December 74&nbsp;BC'},
 
},
 
{
 
{-74, 12, format = 'dm'},
 
{sort = '-9926-12-01-0000', display = 'December'},
 
},
 
{
 
{-74, 12, format = 'md'},
 
{sort = '-9926-12-01-0000', display = 'December'},
 
},
 
{
 
{-74, 12, format = 'my'},
 
{sort = '-9926-12-01-0000', display = 'December 74&nbsp;BC'},
 
},
 
{
 
{-74, 12, format = 'y'},
 
{sort = '-9926-12-01-0000', display = '74&nbsp;BC'},
 
},
 
{
 
{-74, 12, format = 'm'},
 
{sort = '-9926-12-01-0000', display = 'December'},
 
},
 
{
 
{-74, 12, format = 'd'},
 
{sort = '-9926-12-01-0000', display = ''},
 
},
 
{
 
{-74, 12, format = 'hide'},
 
{sort = '-9926-12-01-0000', display = ''},
 
},
 
{
 
{nil, 8},
 
{sort = '02015-08-01-0000', display = 'August'},
 
},
 
{
 
{nil, 8, format = 'dmy'},
 
{sort = '02015-08-01-0000', display = 'August'},
 
},
 
{
 
{nil, 8, format = 'mdy'},
 
{sort = '02015-08-01-0000', display = 'August'},
 
},
 
{
 
{nil, 8, format = 'dm'},
 
{sort = '02015-08-01-0000', display = 'August'},
 
},
 
{
 
{nil, 8, format = 'md'},
 
{sort = '02015-08-01-0000', display = 'August'},
 
},
 
{
 
{nil, 8, format = 'my'},
 
{sort = '02015-08-01-0000', display = 'August'},
 
},
 
{
 
{nil, 8, format = 'y'},
 
{sort = '02015-08-01-0000', display = ''},
 
},
 
{
 
{nil, 8, format = 'm'},
 
{sort = '02015-08-01-0000', display = 'August'},
 
},
 
{
 
{nil, 8, format = 'd'},
 
{sort = '02015-08-01-0000', display = ''},
 
},
 
{
 
{nil, 8, format = 'hide'},
 
{sort = '02015-08-01-0000', display = ''},
 
},
 
{
 
{1218, 'Dec', 25},
 
{sort = '01218-12-25-0000', display = 'Dec 25, 1218'},
 
},
 
{
 
{1218, 'Dec', 25, format = 'dmy'},
 
{sort = '01218-12-25-0000', display = '25 Dec 1218'},
 
},
 
{
 
{1218, 'Dec', 25, format = 'mdy'},
 
{sort = '01218-12-25-0000', display = 'Dec 25, 1218'},
 
},
 
{
 
{1218, 'Dec', 25, format = 'dm'},
 
{sort = '01218-12-25-0000', display = '25 Dec'},
 
},
 
{
 
{1218, 'Dec', 25, format = 'md'},
 
{sort = '01218-12-25-0000', display = 'Dec 25'},
 
},
 
{
 
{1218, 'Dec', 25, format = 'my'},
 
{sort = '01218-12-25-0000', display = 'Dec 1218'},
 
},
 
{
 
{1218, 'Dec', 25, format = 'y'},
 
{sort = '01218-12-25-0000', display = '1218'},
 
},
 
{
 
{1218, 'Dec', 25, format = 'm'},
 
{sort = '01218-12-25-0000', display = 'Dec'},
 
},
 
{
 
{1218, 'Dec', 25, format = 'd'},
 
{sort = '01218-12-25-0000', display = '25'},
 
},
 
{
 
{1218, 'Dec', 25, format = 'hide'},
 
{sort = '01218-12-25-0000', display = ''},
 
},
 
{
 
{-77, 2, 6},
 
{sort = '-9923-02-06-0000', display = 'February 6, 77&nbsp;BC'},
 
},
 
{
 
{-77, 2, 6, format = 'dmy'},
 
{sort = '-9923-02-06-0000', display = '6 February 77&nbsp;BC'},
 
},
 
{
 
{-77, 2, 6, format = 'mdy'},
 
{sort = '-9923-02-06-0000', display = 'February 6, 77&nbsp;BC'},
 
},
 
{
 
{-77, 2, 6, format = 'dm'},
 
{sort = '-9923-02-06-0000', display = '6 February'},
 
},
 
{
 
{-77, 2, 6, format = 'md'},
 
{sort = '-9923-02-06-0000', display = 'February 6'},
 
},
 
{
 
{-77, 2, 6, format = 'my'},
 
{sort = '-9923-02-06-0000', display = 'February 77&nbsp;BC'},
 
},
 
{
 
{-77, 2, 6, format = 'y'},
 
{sort = '-9923-02-06-0000', display = '77&nbsp;BC'},
 
},
 
{
 
{-77, 2, 6, format = 'm'},
 
{sort = '-9923-02-06-0000', display = 'February'},
 
},
 
{
 
{-77, 2, 6, format = 'd'},
 
{sort = '-9923-02-06-0000', display = '6'},
 
},
 
{
 
{-77, 2, 6, format = 'hide'},
 
{sort = '-9923-02-06-0000', display = ''},
 
},
 
{
 
{nil, 11, 23},
 
{sort = '02015-11-23-0000', display = 'November 23'},
 
},
 
{
 
{nil, 11, 23, format = 'dmy'},
 
{sort = '02015-11-23-0000', display = '23 November'},
 
},
 
{
 
{nil, 11, 23, format = 'mdy'},
 
{sort = '02015-11-23-0000', display = 'November 23'},
 
},
 
{
 
{nil, 11, 23, format = 'dm'},
 
{sort = '02015-11-23-0000', display = '23 November'},
 
},
 
{
 
{nil, 11, 23, format = 'md'},
 
{sort = '02015-11-23-0000', display = 'November 23'},
 
},
 
{
 
{nil, 11, 23, format = 'my'},
 
{sort = '02015-11-23-0000', display = 'November'},
 
},
 
{
 
{nil, 11, 23, format = 'y'},
 
{sort = '02015-11-23-0000', display = ''},
 
},
 
{
 
{nil, 11, 23, format = 'm'},
 
{sort = '02015-11-23-0000', display = 'November'},
 
},
 
{
 
{nil, 11, 23, format = 'd'},
 
{sort = '02015-11-23-0000', display = '23'},
 
},
 
{
 
{nil, 11, 23, format = 'hide'},
 
{sort = '02015-11-23-0000', display = ''},
 
},
 
{
 
{223, 4, 6, 'BC'},
 
{sort = '-9777-04-06-0000', display = 'April 6, 223&nbsp;BC'},
 
},
 
{
 
{223, 4, 6, 'BC', format = 'dmy'},
 
{sort = '-9777-04-06-0000', display = '6 April 223&nbsp;BC'},
 
},
 
{
 
{223, 4, 6, 'BC', format = 'mdy'},
 
{sort = '-9777-04-06-0000', display = 'April 6, 223&nbsp;BC'},
 
},
 
{
 
{223, 4, 6, 'BC', format = 'dm'},
 
{sort = '-9777-04-06-0000', display = '6 April'},
 
},
 
{
 
{223, 4, 6, 'BC', format = 'md'},
 
{sort = '-9777-04-06-0000', display = 'April 6'},
 
},
 
{
 
{223, 4, 6, 'BC', format = 'my'},
 
{sort = '-9777-04-06-0000', display = 'April 223&nbsp;BC'},
 
},
 
{
 
{223, 4, 6, 'BC', format = 'y'},
 
{sort = '-9777-04-06-0000', display = '223&nbsp;BC'},
 
},
 
{
 
{223, 4, 6, 'BC', format = 'm'},
 
{sort = '-9777-04-06-0000', display = 'April'},
 
},
 
{
 
{223, 4, 6, 'BC', format = 'd'},
 
{sort = '-9777-04-06-0000', display = '6'},
 
},
 
{
 
{223, 4, 6, 'BC', format = 'hide'},
 
{sort = '-9777-04-06-0000', display = ''},
 
},
 
{
 
{936, 11, nil, 'BC'},
 
{sort = '-9064-11-01-0000', display = 'November 936&nbsp;BC'},
 
},
 
{
 
{936, 11, nil, 'BC', format = 'dmy'},
 
{sort = '-9064-11-01-0000', display = 'November 936&nbsp;BC'},
 
},
 
{
 
{936, 11, nil, 'BC', format = 'mdy'},
 
{sort = '-9064-11-01-0000', display = 'November 936&nbsp;BC'},
 
},
 
{
 
{936, 11, nil, 'BC', format = 'dm'},
 
{sort = '-9064-11-01-0000', display = 'November'},
 
},
 
{
 
{936, 11, nil, 'BC', format = 'md'},
 
{sort = '-9064-11-01-0000', display = 'November'},
 
},
 
{
 
{936, 11, nil, 'BC', format = 'my'},
 
{sort = '-9064-11-01-0000', display = 'November 936&nbsp;BC'},
 
},
 
{
 
{936, 11, nil, 'BC', format = 'y'},
 
{sort = '-9064-11-01-0000', display = '936&nbsp;BC'},
 
},
 
{
 
{936, 11, nil, 'BC', format = 'm'},
 
{sort = '-9064-11-01-0000', display = 'November'},
 
},
 
{
 
{936, 11, nil, 'BC', format = 'd'},
 
{sort = '-9064-11-01-0000', display = ''},
 
},
 
{
 
{936, 11, nil, 'BC', format = 'hide'},
 
{sort = '-9064-11-01-0000', display = ''},
 
},
 
{
 
{addkey = 1, '12 Dec 1978'},
 
{sort = '01978-12-12-0001', display = '12 Dec 1978'},
 
},
 
{
 
{addkey = 1, '12 Dec 1978', format = 'dmy'},
 
{sort = '01978-12-12-0001', display = '12 Dec 1978'},
 
},
 
{
 
{addkey = 1, '12 Dec 1978', format = 'mdy'},
 
{sort = '01978-12-12-0001', display = 'Dec 12, 1978'},
 
},
 
{
 
{addkey = 1, '12 Dec 1978', format = 'dm'},
 
{sort = '01978-12-12-0001', display = '12 Dec'},
 
},
 
{
 
{addkey = 1, '12 Dec 1978', format = 'md'},
 
{sort = '01978-12-12-0001', display = 'Dec 12'},
 
},
 
{
 
{addkey = 1, '12 Dec 1978', format = 'my'},
 
{sort = '01978-12-12-0001', display = 'Dec 1978'},
 
},
 
{
 
{addkey = 1, '12 Dec 1978', format = 'y'},
 
{sort = '01978-12-12-0001', display = '1978'},
 
},
 
{
 
{addkey = 1, '12 Dec 1978', format = 'm'},
 
{sort = '01978-12-12-0001', display = 'Dec'},
 
},
 
{
 
{addkey = 1, '12 Dec 1978', format = 'd'},
 
{sort = '01978-12-12-0001', display = '12'},
 
},
 
{
 
{addkey = 1, '12 Dec 1978', format = 'hide'},
 
{sort = '01978-12-12-0001', display = ''},
 
},
 
{
 
{addkey = 1, 3000, 'May', 19},
 
{sort = '03000-05-19-0001', display = 'May 19, 3000'},
 
},
 
{
 
{addkey = 1, 3000, 'May', 19, format = 'dmy'},
 
{sort = '03000-05-19-0001', display = '19 May 3000'},
 
},
 
{
 
{addkey = 1, 3000, 'May', 19, format = 'mdy'},
 
{sort = '03000-05-19-0001', display = 'May 19, 3000'},
 
},
 
{
 
{addkey = 1, 3000, 'May', 19, format = 'dm'},
 
{sort = '03000-05-19-0001', display = '19 May'},
 
},
 
{
 
{addkey = 1, 3000, 'May', 19, format = 'md'},
 
{sort = '03000-05-19-0001', display = 'May 19'},
 
},
 
{
 
{addkey = 1, 3000, 'May', 19, format = 'my'},
 
{sort = '03000-05-19-0001', display = 'May 3000'},
 
},
 
{
 
{addkey = 1, 3000, 'May', 19, format = 'y'},
 
{sort = '03000-05-19-0001', display = '3000'},
 
},
 
{
 
{addkey = 1, 3000, 'May', 19, format = 'm'},
 
{sort = '03000-05-19-0001', display = 'May'},
 
},
 
{
 
{addkey = 1, 3000, 'May', 19, format = 'd'},
 
{sort = '03000-05-19-0001', display = '19'},
 
},
 
{
 
{addkey = 1, 3000, 'May', 19, format = 'hide'},
 
{sort = '03000-05-19-0001', display = ''},
 
},
 
{
 
{addkey = 1, 2500, 8, 7, 'BC'},
 
{sort = '-7500-08-07-0001', display = 'August 7, 2500&nbsp;BC'},
 
},
 
{
 
{addkey = 1, 2500, 8, 7, 'BC', format = 'dmy'},
 
{sort = '-7500-08-07-0001', display = '7 August 2500&nbsp;BC'},
 
},
 
{
 
{addkey = 1, 2500, 8, 7, 'BC', format = 'mdy'},
 
{sort = '-7500-08-07-0001', display = 'August 7, 2500&nbsp;BC'},
 
},
 
{
 
{addkey = 1, 2500, 8, 7, 'BC', format = 'dm'},
 
{sort = '-7500-08-07-0001', display = '7 August'},
 
},
 
{
 
{addkey = 1, 2500, 8, 7, 'BC', format = 'md'},
 
{sort = '-7500-08-07-0001', display = 'August 7'},
 
},
 
{
 
{addkey = 1, 2500, 8, 7, 'BC', format = 'my'},
 
{sort = '-7500-08-07-0001', display = 'August 2500&nbsp;BC'},
 
},
 
{
 
{addkey = 1, 2500, 8, 7, 'BC', format = 'y'},
 
{sort = '-7500-08-07-0001', display = '2500&nbsp;BC'},
 
},
 
{
 
{addkey = 1, 2500, 8, 7, 'BC', format = 'm'},
 
{sort = '-7500-08-07-0001', display = 'August'},
 
},
 
{
 
{addkey = 1, 2500, 8, 7, 'BC', format = 'd'},
 
{sort = '-7500-08-07-0001', display = '7'},
 
},
 
{
 
{addkey = 1, 2500, 8, 7, 'BC', format = 'hide'},
 
{sort = '-7500-08-07-0001', display = ''},
 
},
 
{
 
{addkey = 1, '2000-05-07'},
 
{sort = '02000-05-07-0001', display = 'May 7, 2000'},
 
},
 
{
 
{addkey = 1, '2000-05-07', format = 'dmy'},
 
{sort = '02000-05-07-0001', display = '7 May 2000'},
 
},
 
{
 
{addkey = 1, '2000-05-07', format = 'mdy'},
 
{sort = '02000-05-07-0001', display = 'May 7, 2000'},
 
},
 
{
 
{addkey = 1, '2000-05-07', format = 'dm'},
 
{sort = '02000-05-07-0001', display = '7 May'},
 
},
 
{
 
{addkey = 1, '2000-05-07', format = 'md'},
 
{sort = '02000-05-07-0001', display = 'May 7'},
 
},
 
{
 
{addkey = 1, '2000-05-07', format = 'my'},
 
{sort = '02000-05-07-0001', display = 'May 2000'},
 
},
 
{
 
{addkey = 1, '2000-05-07', format = 'y'},
 
{sort = '02000-05-07-0001', display = '2000'},
 
},
 
{
 
{addkey = 1, '2000-05-07', format = 'm'},
 
{sort = '02000-05-07-0001', display = 'May'},
 
},
 
{
 
{addkey = 1, '2000-05-07', format = 'd'},
 
{sort = '02000-05-07-0001', display = '7'},
 
},
 
{
 
{addkey = 1, '2000-05-07', format = 'hide'},
 
{sort = '02000-05-07-0001', display = ''},
 
},
 
{
 
{addkey = 2, '12 Dec 1978'},
 
{sort = '01978-12-12-0002', display = '12 Dec 1978'},
 
},
 
{
 
{addkey = 2, '12 Dec 1978', format = 'dmy'},
 
{sort = '01978-12-12-0002', display = '12 Dec 1978'},
 
},
 
{
 
{addkey = 2, '12 Dec 1978', format = 'mdy'},
 
{sort = '01978-12-12-0002', display = 'Dec 12, 1978'},
 
},
 
{
 
{addkey = 2, '12 Dec 1978', format = 'dm'},
 
{sort = '01978-12-12-0002', display = '12 Dec'},
 
},
 
{
 
{addkey = 2, '12 Dec 1978', format = 'md'},
 
{sort = '01978-12-12-0002', display = 'Dec 12'},
 
},
 
{
 
{addkey = 2, '12 Dec 1978', format = 'my'},
 
{sort = '01978-12-12-0002', display = 'Dec 1978'},
 
},
 
{
 
{addkey = 2, '12 Dec 1978', format = 'y'},
 
{sort = '01978-12-12-0002', display = '1978'},
 
},
 
{
 
{addkey = 2, '12 Dec 1978', format = 'm'},
 
{sort = '01978-12-12-0002', display = 'Dec'},
 
},
 
{
 
{addkey = 2, '12 Dec 1978', format = 'd'},
 
{sort = '01978-12-12-0002', display = '12'},
 
},
 
{
 
{addkey = 2, '12 Dec 1978', format = 'hide'},
 
{sort = '01978-12-12-0002', display = ''},
 
},
 
{
 
{addkey = 2, 3000, 'May', 19},
 
{sort = '03000-05-19-0002', display = 'May 19, 3000'},
 
},
 
{
 
{addkey = 2, 3000, 'May', 19, format = 'dmy'},
 
{sort = '03000-05-19-0002', display = '19 May 3000'},
 
},
 
{
 
{addkey = 2, 3000, 'May', 19, format = 'mdy'},
 
{sort = '03000-05-19-0002', display = 'May 19, 3000'},
 
},
 
{
 
{addkey = 2, 3000, 'May', 19, format = 'dm'},
 
{sort = '03000-05-19-0002', display = '19 May'},
 
},
 
{
 
{addkey = 2, 3000, 'May', 19, format = 'md'},
 
{sort = '03000-05-19-0002', display = 'May 19'},
 
},
 
{
 
{addkey = 2, 3000, 'May', 19, format = 'my'},
 
{sort = '03000-05-19-0002', display = 'May 3000'},
 
},
 
{
 
{addkey = 2, 3000, 'May', 19, format = 'y'},
 
{sort = '03000-05-19-0002', display = '3000'},
 
},
 
{
 
{addkey = 2, 3000, 'May', 19, format = 'm'},
 
{sort = '03000-05-19-0002', display = 'May'},
 
},
 
{
 
{addkey = 2, 3000, 'May', 19, format = 'd'},
 
{sort = '03000-05-19-0002', display = '19'},
 
},
 
{
 
{addkey = 2, 3000, 'May', 19, format = 'hide'},
 
{sort = '03000-05-19-0002', display = ''},
 
},
 
{
 
{addkey = 2, 2500, 8, 7, 'BC'},
 
{sort = '-7500-08-07-0002', display = 'August 7, 2500&nbsp;BC'},
 
},
 
{
 
{addkey = 2, 2500, 8, 7, 'BC', format = 'dmy'},
 
{sort = '-7500-08-07-0002', display = '7 August 2500&nbsp;BC'},
 
},
 
{
 
{addkey = 2, 2500, 8, 7, 'BC', format = 'mdy'},
 
{sort = '-7500-08-07-0002', display = 'August 7, 2500&nbsp;BC'},
 
},
 
{
 
{addkey = 2, 2500, 8, 7, 'BC', format = 'dm'},
 
{sort = '-7500-08-07-0002', display = '7 August'},
 
},
 
{
 
{addkey = 2, 2500, 8, 7, 'BC', format = 'md'},
 
{sort = '-7500-08-07-0002', display = 'August 7'},
 
},
 
{
 
{addkey = 2, 2500, 8, 7, 'BC', format = 'my'},
 
{sort = '-7500-08-07-0002', display = 'August 2500&nbsp;BC'},
 
},
 
{
 
{addkey = 2, 2500, 8, 7, 'BC', format = 'y'},
 
{sort = '-7500-08-07-0002', display = '2500&nbsp;BC'},
 
},
 
{
 
{addkey = 2, 2500, 8, 7, 'BC', format = 'm'},
 
{sort = '-7500-08-07-0002', display = 'August'},
 
},
 
{
 
{addkey = 2, 2500, 8, 7, 'BC', format = 'd'},
 
{sort = '-7500-08-07-0002', display = '7'},
 
},
 
{
 
{addkey = 2, 2500, 8, 7, 'BC', format = 'hide'},
 
{sort = '-7500-08-07-0002', display = ''},
 
},
 
{
 
{addkey = 2, '2000-05-07'},
 
{sort = '02000-05-07-0002', display = 'May 7, 2000'},
 
},
 
{
 
{addkey = 2, '2000-05-07', format = 'dmy'},
 
{sort = '02000-05-07-0002', display = '7 May 2000'},
 
},
 
{
 
{addkey = 2, '2000-05-07', format = 'mdy'},
 
{sort = '02000-05-07-0002', display = 'May 7, 2000'},
 
},
 
{
 
{addkey = 2, '2000-05-07', format = 'dm'},
 
{sort = '02000-05-07-0002', display = '7 May'},
 
},
 
{
 
{addkey = 2, '2000-05-07', format = 'md'},
 
{sort = '02000-05-07-0002', display = 'May 7'},
 
},
 
{
 
{addkey = 2, '2000-05-07', format = 'my'},
 
{sort = '02000-05-07-0002', display = 'May 2000'},
 
},
 
{
 
{addkey = 2, '2000-05-07', format = 'y'},
 
{sort = '02000-05-07-0002', display = '2000'},
 
},
 
{
 
{addkey = 2, '2000-05-07', format = 'm'},
 
{sort = '02000-05-07-0002', display = 'May'},
 
},
 
{
 
{addkey = 2, '2000-05-07', format = 'd'},
 
{sort = '02000-05-07-0002', display = '7'},
 
},
 
{
 
{addkey = 2, '2000-05-07', format = 'hide'},
 
{sort = '02000-05-07-0002', display = ''},
 
},
 
}
 
 
 
for i, testData in ipairs(tests) do
 
suite['test' .. string.format('%03d', i)] = function (suite)
 
suite:assertEquals(
 
string.format(
 
'<span class="sortkey" style="display:none;speak:none">%s</span><span style="white-space:nowrap">%s</span>',
 
testData[2].sort,
 
testData[2].display
 
),
 
mDts._main(testData[1]),
 
mTemplateInvocation.invocation('dts', testData[1])
 
)
 
end
 
end
 
 
 
-------------------------------------------------------------------------------
 
-- Helper functions and values
 
-------------------------------------------------------------------------------
 
  
suite.nowrapPattern = '<span style="white%-space:nowrap">[^<>]-</span>$'
 
 
suite.offValues = {'off', 'no', 'NO', 'n', 'false', false}
 
suite.offValues = {'off', 'no', 'NO', 'n', 'false', false}
 
suite.onValues = {'on', 'yes', 'YES', 'y', 'true', true}
 
suite.onValues = {'on', 'yes', 'YES', 'y', 'true', true}
suite.methodFragments = {'Equals', 'StringContains', 'NotStringContains'}
+
local function makeOnOffAsserts(fragment)
 
 
for i, fragment in ipairs(suite.methodFragments) do
 
 
suite['assert' .. fragment .. 'WhenOn'] = function (self, first, func, ...)
 
suite['assert' .. fragment .. 'WhenOn'] = function (self, first, func, ...)
 
for i, on in ipairs(suite.onValues) do
 
for i, on in ipairs(suite.onValues) do
Line 3,403: Line 19:
 
end
 
end
 
end
 
end
 
 
suite['assert' .. fragment .. 'WhenOff'] = function (self, first, func, ...)
 
suite['assert' .. fragment .. 'WhenOff'] = function (self, first, func, ...)
 
for i, off in ipairs(suite.offValues) do
 
for i, off in ipairs(suite.offValues) do
Line 3,409: Line 24:
 
end
 
end
 
end
 
end
 +
end
 +
makeOnOffAsserts('Equals')
 +
makeOnOffAsserts('StringContains')
 +
makeOnOffAsserts('NotStringContains')
 +
 +
function suite:assertErrorContains(pattern, func, plain)
 +
local success, msg = pcall(func)
 +
self:assertFalse(success)
 +
self:assertStringContains(pattern, msg, plain)
 +
end
 +
 +
function suite:assertDateEquals(year, month, day, args)
 +
local dtsObj = Dts.new(args)
 +
self:assertEquals(year, dtsObj.year)
 +
self:assertEquals(month, dtsObj.month)
 +
self:assertEquals(day, dtsObj.day)
 +
end
 +
 +
function suite:assertSortKeyEquals(expected, args)
 +
local dtsObj = Dts.new(args)
 +
self:assertEquals(expected, dtsObj:makeSortKey())
 
end
 
end
  
Line 3,417: Line 53:
  
 
-------------------------------------------------------------------------------
 
-------------------------------------------------------------------------------
-- Format tests
+
-- Date parameter tests
 +
-------------------------------------------------------------------------------
 +
 
 +
function suite:testDateYMD()
 +
self:assertDateEquals(2000, 1, 27, {2000, 1, 27})
 +
end
 +
 
 +
function suite:testDateYMonthD()
 +
self:assertDateEquals(2000, 1, 27, {2000, 'January', 27})
 +
self:assertDateEquals(2000, 1, 27, {2000, 'january', 27})
 +
end
 +
 
 +
function suite:testDateYMonD()
 +
self:assertDateEquals(2000, 1, 27, {2000, 'Jan', 27})
 +
self:assertDateEquals(2000, 1, 27, {2000, 'jan', 27})
 +
end
 +
 
 +
function suite:testDateYM()
 +
self:assertDateEquals(2000, 1, nil, {2000, 1})
 +
end
 +
 
 +
function suite:testDateYD()
 +
self:assertDateEquals(2000, nil, 27, {2000, nil, 27})
 +
end
 +
 
 +
function suite:testDateMD()
 +
self:assertDateEquals(nil, 1, 27, {nil, 1, 27})
 +
end
 +
 
 +
function suite:testDateY()
 +
self:assertDateEquals(2000, nil, nil, {2000})
 +
end
 +
 
 +
function suite:testDateM()
 +
self:assertDateEquals(nil, 1, nil, {nil, 1})
 +
end
 +
 
 +
function suite:testDateD()
 +
self:assertDateEquals(nil, nil, 27, {nil, nil, 27})
 +
end
 +
 
 +
function suite:testDateNegativeYear()
 +
self:assertDateEquals(-2000, 1, 27, {-2000, 1, 27})
 +
end
 +
 
 +
function suite:testDateString()
 +
self:assertDateEquals(2000, 1, 27, {'2000', '1', '27'})
 +
end
 +
 
 +
function suite:testDateAllMonths()
 +
self:assertDateEquals(nil, 1, nil, {nil, 'January', nil})
 +
self:assertDateEquals(nil, 2, nil, {nil, 'February', nil})
 +
self:assertDateEquals(nil, 3, nil, {nil, 'March', nil})
 +
self:assertDateEquals(nil, 4, nil, {nil, 'April', nil})
 +
self:assertDateEquals(nil, 5, nil, {nil, 'May', nil})
 +
self:assertDateEquals(nil, 6, nil, {nil, 'June', nil})
 +
self:assertDateEquals(nil, 7, nil, {nil, 'July', nil})
 +
self:assertDateEquals(nil, 8, nil, {nil, 'August', nil})
 +
self:assertDateEquals(nil, 9, nil, {nil, 'September', nil})
 +
self:assertDateEquals(nil, 10, nil, {nil, 'October', nil})
 +
self:assertDateEquals(nil, 11, nil, {nil, 'November', nil})
 +
self:assertDateEquals(nil, 12, nil, {nil, 'December', nil})
 +
end
 +
 
 +
function suite:testDateAllMons()
 +
self:assertDateEquals(nil, 1, nil, {nil, 'Jan', nil})
 +
self:assertDateEquals(nil, 2, nil, {nil, 'Feb', nil})
 +
self:assertDateEquals(nil, 3, nil, {nil, 'Mar', nil})
 +
self:assertDateEquals(nil, 4, nil, {nil, 'Apr', nil})
 +
self:assertDateEquals(nil, 5, nil, {nil, 'May', nil})
 +
self:assertDateEquals(nil, 6, nil, {nil, 'Jun', nil})
 +
self:assertDateEquals(nil, 7, nil, {nil, 'Jul', nil})
 +
self:assertDateEquals(nil, 8, nil, {nil, 'Aug', nil})
 +
self:assertDateEquals(nil, 9, nil, {nil, 'Sep', nil})
 +
self:assertDateEquals(nil, 10, nil, {nil, 'Oct', nil})
 +
self:assertDateEquals(nil, 11, nil, {nil, 'Nov', nil})
 +
self:assertDateEquals(nil, 12, nil, {nil, 'Dec', nil})
 +
end
 +
 
 +
-------------------------------------------------------------------------------
 +
-- parseDate tests
 +
-------------------------------------------------------------------------------
 +
 
 +
function suite:testParseYear()
 +
self:assertDateEquals(2000, nil, nil, {'2000'})
 +
end
 +
 
 +
function suite:testParseNegativeYear()
 +
self:assertDateEquals(-2000, nil, nil, {'-2000'})
 +
end
 +
 
 +
function suite:testParseSmallYear()
 +
self:assertDateEquals(12, nil, nil, {'12'})
 +
end
 +
 
 +
function suite:testParseYYYYMMDD()
 +
self:assertDateEquals(2000, 1, 27, {'2000-01-27'})
 +
self:assertDateEquals(2000, 1, 27, {'2000-1-27'})
 +
self:assertDateEquals(2000, 1, 6, {'2000-01-06'})
 +
self:assertDateEquals(2000, 1, 6, {'2000-01-06'})
 +
end
 +
 
 +
function suite:testParseDDMMYYYY()
 +
self:assertDateEquals(2000, 1, 27, {'27-01-2000'})
 +
self:assertDateEquals(2000, 1, 27, {'27-1-2000'})
 +
self:assertDateEquals(2000, 1, 6, {'06-01-2000'})
 +
end
 +
 
 +
function suite:testParseYYYYMM()
 +
self:assertDateEquals(2000, 1, nil, {'2000-01'})
 +
self:assertDateEquals(2000, 1, nil, {'2000-1'})
 +
end
 +
 
 +
function suite:testParseMonthYYYY()
 +
self:assertDateEquals(1418, 2, nil, {'February 1418'})
 +
end
 +
 
 +
function suite:testParseMonYYYY()
 +
self:assertDateEquals(1418, 2, nil, {'Feb 1418'})
 +
end
 +
 
 +
function suite:testParseDDMonthYYYY()
 +
self:assertDateEquals(1975, 4, 24, {'24 April 1975'})
 +
end
 +
 
 +
function suite:testParseDDMonYYYY()
 +
self:assertDateEquals(1975, 4, 24, {'24 Apr 1975'})
 +
end
 +
 
 +
function suite:testParseMonthDDYYYY()
 +
self:assertDateEquals(1975, 4, 24, {'April 24, 1975'})
 +
self:assertDateEquals(1975, 4, 24, {'April 24 1975'})
 +
end
 +
 
 +
function suite:testParseMonDDYYYY()
 +
self:assertDateEquals(1975, 4, 24, {'Apr 24, 1975'})
 +
self:assertDateEquals(1975, 4, 24, {'Apr 24 1975'})
 +
end
 +
 
 +
function suite:testParseMonth()
 +
self:assertDateEquals(nil, 4, nil, {'April'})
 +
self:assertDateEquals(nil, 4, nil, {'april'})
 +
end
 +
 
 +
function suite:testParseMon()
 +
self:assertDateEquals(nil, 4, nil, {'Apr'})
 +
self:assertDateEquals(nil, 4, nil, {'apr'})
 +
end
 +
 
 +
function suite:testParseDDMonth()
 +
self:assertDateEquals(nil, 11, 12, {'12 November'})
 +
end
 +
 
 +
function suite:testParseDDMon()
 +
self:assertDateEquals(nil, 11, 12, {'12 Nov'})
 +
end
 +
 
 +
function suite:testParseMonthDD()
 +
self:assertDateEquals(nil, 11, 12, {'November 12'})
 +
end
 +
 
 +
function suite:testParseMonDD()
 +
self:assertDateEquals(nil, 11, 12, {'Nov 12'})
 +
end
 +
 
 +
function suite:testParseDDMonthYYY()
 +
self:assertDateEquals(100, 1, 27, {'27 January 100'})
 +
end
 +
 
 +
function suite:testParseDDMonth0YYY()
 +
self:assertDateEquals(100, 1, 27, {'27 January 0100'})
 +
end
 +
 
 +
function suite:testParseDDMonth000Y()
 +
self:assertDateEquals(3, 1, 27, {'27 January 0003'})
 +
end
 +
 
 +
function suite:testParseAllMonths()
 +
self:assertDateEquals(nil, 1, nil, {'January'})
 +
self:assertDateEquals(nil, 2, nil, {'February'})
 +
self:assertDateEquals(nil, 3, nil, {'March'})
 +
self:assertDateEquals(nil, 4, nil, {'April'})
 +
self:assertDateEquals(nil, 5, nil, {'May'})
 +
self:assertDateEquals(nil, 6, nil, {'June'})
 +
self:assertDateEquals(nil, 7, nil, {'July'})
 +
self:assertDateEquals(nil, 8, nil, {'August'})
 +
self:assertDateEquals(nil, 9, nil, {'September'})
 +
self:assertDateEquals(nil, 10, nil, {'October'})
 +
self:assertDateEquals(nil, 11, nil, {'November'})
 +
self:assertDateEquals(nil, 12, nil, {'December'})
 +
end
 +
 
 +
function suite:testParseAllMons()
 +
self:assertDateEquals(nil, 1, nil, {'Jan'})
 +
self:assertDateEquals(nil, 2, nil, {'Feb'})
 +
self:assertDateEquals(nil, 3, nil, {'Mar'})
 +
self:assertDateEquals(nil, 4, nil, {'Apr'})
 +
self:assertDateEquals(nil, 5, nil, {'May'})
 +
self:assertDateEquals(nil, 6, nil, {'Jun'})
 +
self:assertDateEquals(nil, 7, nil, {'Jul'})
 +
self:assertDateEquals(nil, 8, nil, {'Aug'})
 +
self:assertDateEquals(nil, 9, nil, {'Sep'})
 +
self:assertDateEquals(nil, 10, nil, {'Oct'})
 +
self:assertDateEquals(nil, 11, nil, {'Nov'})
 +
self:assertDateEquals(nil, 12, nil, {'Dec'})
 +
end
 +
 
 +
function suite:testParseSept()
 +
self:assertDateEquals(nil, 9, nil, {'Sept'})
 +
self:assertDateEquals(nil, 9, nil, {'sept'})
 +
self:assertDateEquals(2012, 9, 1, {'1 Sept 2012'})
 +
self:assertDateEquals(2012, 9, 1, {2012, 'Sept', 1})
 +
end
 +
 
 +
-------------------------------------------------------------------------------
 +
-- Date error tests
 +
-------------------------------------------------------------------------------
 +
 
 +
function suite:testInvalidDateError()
 +
self:assertErrorContains("'foo' is an invalid date", function ()
 +
Dts.new{'foo'}
 +
end)
 +
end
 +
 
 +
function suite:testZeroYearError()
 +
self:assertErrorContains('years cannot be zero', function ()
 +
Dts.new{0}
 +
end)
 +
end
 +
 
 +
function suite:testYearNonIntegerError()
 +
self:assertErrorContains('years must be an integer', function ()
 +
Dts.new{2015.5}
 +
end)
 +
end
 +
 
 +
function suite:testYearLowRangeError()
 +
self:assertErrorContains(
 +
'years cannot be less than -999,999,999,999',
 +
function ()
 +
Dts.new{-1000000000000}
 +
end,
 +
true -- plain match
 +
)
 +
end
 +
 
 +
function suite:testYearHighRangeError()
 +
self:assertErrorContains('years cannot be greater than 999,999,999,999', function ()
 +
Dts.new{1000000000000}
 +
end)
 +
end
 +
 
 +
function suite:testMonthError()
 +
self:assertErrorContains('months must be an integer between 1 and 12', function ()
 +
Dts.new{2000, 0}
 +
end)
 +
self:assertErrorContains('months must be an integer between 1 and 12', function ()
 +
Dts.new{2000, 13}
 +
end)
 +
end
 +
 
 +
function suite:testDayError()
 +
self:assertErrorContains('days must be an integer between 1 and 31', function ()
 +
Dts.new{2000, 1, 0}
 +
end)
 +
self:assertErrorContains('days must be an integer between 1 and 31', function ()
 +
Dts.new{2000, 1, 32}
 +
end)
 +
end
 +
 
 +
function suite:testBCError()
 +
self:assertErrorContains(
 +
"'foo' is not a valid era code (expected 'BC', 'BCE', 'AD' or 'CE')",
 +
function ()
 +
Dts.new{2000, 1, 27, 'foo'}
 +
end,
 +
true -- plain match
 +
)
 +
end
 +
 
 +
-------------------------------------------------------------------------------
 +
-- Sort key tests
 +
-------------------------------------------------------------------------------
 +
 
 +
function suite:testSortKeyYMD()
 +
suite:assertSortKeyEquals('000000002000-05-27-0000', {2000, 5, 27})
 +
suite:assertSortKeyEquals('000000002000-01-27-0000', {2000, 1, 27})
 +
suite:assertSortKeyEquals('000000002000-01-01-0000', {2000, 1, 1})
 +
suite:assertSortKeyEquals('000000000001-01-01-0000', {1, 1, 1})
 +
end
 +
 
 +
function suite:testSortKeyYM()
 +
suite:assertSortKeyEquals('000000002000-05-01-0000', {2000, 5, nil})
 +
end
 +
 
 +
function suite:testSortKeyYD()
 +
suite:assertSortKeyEquals('000000002000-01-27-0000', {2000, nil, 27})
 +
end
 +
 
 +
function suite:testSortKeyMD()
 +
suite:assertSortKeyEquals('00000000' .. suite.currentYear .. '-05-27-0000', {nil, 5, 27})
 +
end
 +
 
 +
function suite:testSortKeyY()
 +
suite:assertSortKeyEquals('000000002000-01-01-0000', {2000, nil, nil})
 +
end
 +
 
 +
function suite:testSortKeyM()
 +
suite:assertSortKeyEquals('00000000' .. suite.currentYear .. '-05-01-0000', {nil, 5, nil})
 +
end
 +
 
 +
function suite:testSortKeyD()
 +
suite:assertSortKeyEquals('00000000' .. suite.currentYear .. '-01-27-0000', {nil, nil, 27})
 +
end
 +
 
 +
function suite:testSortKeyNegative()
 +
suite:assertSortKeyEquals('-999999999955-05-27-0000', {-45, 5, 27})
 +
end
 +
 
 +
function suite:testSortKeyMaxYear()
 +
suite:assertSortKeyEquals('999999999999-01-01-0000', {999999999999})
 +
end
 +
 
 +
function suite:testSortKeyMinYear()
 +
suite:assertSortKeyEquals('-000000000001-01-01-0000', {-999999999999})
 +
end
 +
 
 +
function suite:testSortKeyBlank()
 +
suite:assertSortKeyEquals('999999999999-99-99-0000', {})
 +
end
 +
 
 +
-------------------------------------------------------------------------------
 +
-- addkey tests
 +
-------------------------------------------------------------------------------
 +
 
 +
function suite:testAddkey()
 +
suite:assertSortKeyEquals('000000002000-05-27-0003', {2000, 5, 27, addkey = 3})
 +
suite:assertSortKeyEquals('000000002000-05-27-0003', {2000, 5, 27, addkey = '3'})
 +
end
 +
 
 +
function suite:testAddkeyError()
 +
local msg = "the 'addkey' parameter must be an integer between 0 and 9999"
 +
self:assertErrorContains(msg, function ()
 +
Dts.new{2000, 5, 27, addkey = 3.5}
 +
end)
 +
self:assertErrorContains(msg, function ()
 +
Dts.new{2000, 5, 27, addkey = -1}
 +
end)
 +
self:assertErrorContains(msg, function ()
 +
Dts.new{2000, 5, 27, addkey = 10000}
 +
end)
 +
end
 +
 
 +
-------------------------------------------------------------------------------
 +
-- Display tests
 
-------------------------------------------------------------------------------
 
-------------------------------------------------------------------------------
  
Line 3,458: Line 448:
 
function suite:testFormatHide()
 
function suite:testFormatHide()
 
suite:assertDisplayEquals('', {2000, 1, 27, format = 'hide'})
 
suite:assertDisplayEquals('', {2000, 1, 27, format = 'hide'})
 +
end
 +
 +
function suite:testBCParam()
 +
local result = 'January 27, 2000&nbsp;BC'
 +
suite:assertDisplayEquals(result, {2000, 1, 27, 'BC'})
 +
suite:assertDisplayEquals(result, {2000, 1, 27, 'BCE'})
 +
suite:assertDisplayEquals(result, {2000, 1, 27, 'bc'})
 +
suite:assertDisplayEquals(result, {2000, 1, 27, 'bce'})
 +
end
 +
 +
function suite:testBCNegativeYear()
 +
suite:assertDisplayEquals('January 27, 2000&nbsp;BC', {-2000, 1, 27})
 +
end
 +
 +
function suite:testLargeYearDisplay()
 +
suite:assertDisplayEquals('1,000,000', {1000000})
 +
end
 +
 +
function suite:testLargeNegativeYearDisplay()
 +
suite:assertDisplayEquals('1,000,000&nbsp;BC', {-1000000})
 +
end
 +
 +
-------------------------------------------------------------------------------
 +
-- Blank tests
 +
-------------------------------------------------------------------------------
 +
 +
function suite:testBlank()
 +
self:assertStringContains(
 +
'^<span data%-sort%-value="[^"<>]-"></span>$',
 +
mDts._main{}
 +
)
 
end
 
end
  
Line 3,473: Line 494:
 
function suite:testNoWrapOff()
 
function suite:testNoWrapOff()
 
self:assertStringContainsWhenOff(
 
self:assertStringContainsWhenOff(
'^<span class="sortkey" style="display:none;speak:none">.-</span>[^<]*$',
+
'^<span data%-sort%-value="[^"<>]-">[^>]-</span>$',
 
function (off)
 
function (off)
 
return mDts._main{2000, 1, 1, nowrap = off}
 
return mDts._main{2000, 1, 1, nowrap = off}
Line 3,500: Line 521:
  
 
function suite:testAbbrDefault()
 
function suite:testAbbrDefault()
suite:assertStringContains(
+
self:assertStringContains(
 
'January 1, 2000',
 
'January 1, 2000',
 
mDts._main{2000, 1, 1}
 
mDts._main{2000, 1, 1}
Line 3,507: Line 528:
  
 
function suite:testAbbrOn()
 
function suite:testAbbrOn()
suite:assertStringContainsWhenOn(
+
self:assertStringContainsWhenOn(
 
'Jan 1, 2000',
 
'Jan 1, 2000',
 
function (on)
 
function (on)
Line 3,516: Line 537:
  
 
function suite:testAbbrOff()
 
function suite:testAbbrOff()
suite:assertStringContainsWhenOff(
+
self:assertStringContainsWhenOff(
 
'January 1, 2000',
 
'January 1, 2000',
 
function (off)
 
function (off)
Line 3,522: Line 543:
 
end
 
end
 
)
 
)
 +
end
 +
 +
-------------------------------------------------------------------------------
 +
-- Tracking category tests
 +
-------------------------------------------------------------------------------
 +
 +
function suite:testTrackingCategory()
 +
self:assertStringContains(
 +
'[[Category:Date table sorting templates with deprecated parameters]]',
 +
mDts._main{2000, 1, 1, link = 'off'},
 +
true -- plain match
 +
)
 +
end
 +
 +
-------------------------------------------------------------------------------
 +
-- Main tests
 +
-------------------------------------------------------------------------------
 +
 +
function suite:testMain()
 +
local errorPattern = '^<strong class="error">Error in %[%[Template:Date table sorting%]%]: .-</strong>'
 +
self:assertStringContains(errorPattern, mDts.main{'foo'})
 +
self:assertNotStringContains(errorPattern, mDts.main{2000})
 +
self:assertStringContains(errorPattern, mDts._main{'foo'})
 +
self:assertNotStringContains(errorPattern, mDts._main{2000})
 
end
 
end
  
 
return suite
 
return suite

Latest revision as of 16:02, 26 September 2020

Documentation for this module may be created at Module:Date table sorting/testcases/doc

local mDts = require('Module:Date table sorting/sandbox') -- the module to be tested
local Dts = mDts._exportClasses().Dts -- the Dts class
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()

-------------------------------------------------------------------------------
-- Helper functions and values
-------------------------------------------------------------------------------

suite.currentYear = os.date('*t').year
suite.nowrapPattern = '^<span data%-sort%-value="[^"<>]-" style="white%-space:nowrap">[^<>]-</span>$'

suite.offValues = {'off', 'no', 'NO', 'n', 'false', false}
suite.onValues = {'on', 'yes', 'YES', 'y', 'true', true}
local function makeOnOffAsserts(fragment)
	suite['assert' .. fragment .. 'WhenOn'] = function (self, first, func, ...)
		for i, on in ipairs(suite.onValues) do
			self['assert' .. fragment](self, first, func(on), ...)
		end
	end
	suite['assert' .. fragment .. 'WhenOff'] = function (self, first, func, ...)
		for i, off in ipairs(suite.offValues) do
			self['assert' .. fragment](self, first, func(off), ...)
		end
	end
end
makeOnOffAsserts('Equals')
makeOnOffAsserts('StringContains')
makeOnOffAsserts('NotStringContains')

function suite:assertErrorContains(pattern, func, plain)
	local success, msg = pcall(func)
	self:assertFalse(success)
	self:assertStringContains(pattern, msg, plain)
end

function suite:assertDateEquals(year, month, day, args)
	local dtsObj = Dts.new(args)
	self:assertEquals(year, dtsObj.year)
	self:assertEquals(month, dtsObj.month)
	self:assertEquals(day, dtsObj.day)
end

function suite:assertSortKeyEquals(expected, args)
	local dtsObj = Dts.new(args)
	self:assertEquals(expected, dtsObj:makeSortKey())
end

function suite:assertDisplayEquals(expected, args)
	local dtsObj = Dts.new(args)
	self:assertEquals(expected, dtsObj:makeDisplay())
end

-------------------------------------------------------------------------------
-- Date parameter tests
-------------------------------------------------------------------------------

function suite:testDateYMD()
	self:assertDateEquals(2000, 1, 27, {2000, 1, 27})
end

function suite:testDateYMonthD()
	self:assertDateEquals(2000, 1, 27, {2000, 'January', 27})
	self:assertDateEquals(2000, 1, 27, {2000, 'january', 27})
end

function suite:testDateYMonD()
	self:assertDateEquals(2000, 1, 27, {2000, 'Jan', 27})
	self:assertDateEquals(2000, 1, 27, {2000, 'jan', 27})
end

function suite:testDateYM()
	self:assertDateEquals(2000, 1, nil, {2000, 1})
end

function suite:testDateYD()
	self:assertDateEquals(2000, nil, 27, {2000, nil, 27})
end

function suite:testDateMD()
	self:assertDateEquals(nil, 1, 27, {nil, 1, 27})
end

function suite:testDateY()
	self:assertDateEquals(2000, nil, nil, {2000})
end

function suite:testDateM()
	self:assertDateEquals(nil, 1, nil, {nil, 1})
end

function suite:testDateD()
	self:assertDateEquals(nil, nil, 27, {nil, nil, 27})
end

function suite:testDateNegativeYear()
	self:assertDateEquals(-2000, 1, 27, {-2000, 1, 27})
end

function suite:testDateString()
	self:assertDateEquals(2000, 1, 27, {'2000', '1', '27'})
end

function suite:testDateAllMonths()
	self:assertDateEquals(nil, 1, nil, {nil, 'January', nil})
	self:assertDateEquals(nil, 2, nil, {nil, 'February', nil})
	self:assertDateEquals(nil, 3, nil, {nil, 'March', nil})
	self:assertDateEquals(nil, 4, nil, {nil, 'April', nil})
	self:assertDateEquals(nil, 5, nil, {nil, 'May', nil})
	self:assertDateEquals(nil, 6, nil, {nil, 'June', nil})
	self:assertDateEquals(nil, 7, nil, {nil, 'July', nil})
	self:assertDateEquals(nil, 8, nil, {nil, 'August', nil})
	self:assertDateEquals(nil, 9, nil, {nil, 'September', nil})
	self:assertDateEquals(nil, 10, nil, {nil, 'October', nil})
	self:assertDateEquals(nil, 11, nil, {nil, 'November', nil})
	self:assertDateEquals(nil, 12, nil, {nil, 'December', nil})
end

function suite:testDateAllMons()
	self:assertDateEquals(nil, 1, nil, {nil, 'Jan', nil})
	self:assertDateEquals(nil, 2, nil, {nil, 'Feb', nil})
	self:assertDateEquals(nil, 3, nil, {nil, 'Mar', nil})
	self:assertDateEquals(nil, 4, nil, {nil, 'Apr', nil})
	self:assertDateEquals(nil, 5, nil, {nil, 'May', nil})
	self:assertDateEquals(nil, 6, nil, {nil, 'Jun', nil})
	self:assertDateEquals(nil, 7, nil, {nil, 'Jul', nil})
	self:assertDateEquals(nil, 8, nil, {nil, 'Aug', nil})
	self:assertDateEquals(nil, 9, nil, {nil, 'Sep', nil})
	self:assertDateEquals(nil, 10, nil, {nil, 'Oct', nil})
	self:assertDateEquals(nil, 11, nil, {nil, 'Nov', nil})
	self:assertDateEquals(nil, 12, nil, {nil, 'Dec', nil})
end

-------------------------------------------------------------------------------
-- parseDate tests
-------------------------------------------------------------------------------

function suite:testParseYear()
	self:assertDateEquals(2000, nil, nil, {'2000'})
end

function suite:testParseNegativeYear()
	self:assertDateEquals(-2000, nil, nil, {'-2000'})
end

function suite:testParseSmallYear()
	self:assertDateEquals(12, nil, nil, {'12'})
end

function suite:testParseYYYYMMDD()
	self:assertDateEquals(2000, 1, 27, {'2000-01-27'})
	self:assertDateEquals(2000, 1, 27, {'2000-1-27'})
	self:assertDateEquals(2000, 1, 6, {'2000-01-06'})
	self:assertDateEquals(2000, 1, 6, {'2000-01-06'})
end

function suite:testParseDDMMYYYY()
	self:assertDateEquals(2000, 1, 27, {'27-01-2000'})
	self:assertDateEquals(2000, 1, 27, {'27-1-2000'})
	self:assertDateEquals(2000, 1, 6, {'06-01-2000'})
end

function suite:testParseYYYYMM()
	self:assertDateEquals(2000, 1, nil, {'2000-01'})
	self:assertDateEquals(2000, 1, nil, {'2000-1'})
end

function suite:testParseMonthYYYY()
	self:assertDateEquals(1418, 2, nil, {'February 1418'})
end

function suite:testParseMonYYYY()
	self:assertDateEquals(1418, 2, nil, {'Feb 1418'})
end

function suite:testParseDDMonthYYYY()
	self:assertDateEquals(1975, 4, 24, {'24 April 1975'})
end

function suite:testParseDDMonYYYY()
	self:assertDateEquals(1975, 4, 24, {'24 Apr 1975'})
end

function suite:testParseMonthDDYYYY()
	self:assertDateEquals(1975, 4, 24, {'April 24, 1975'})
	self:assertDateEquals(1975, 4, 24, {'April 24 1975'})
end

function suite:testParseMonDDYYYY()
	self:assertDateEquals(1975, 4, 24, {'Apr 24, 1975'})
	self:assertDateEquals(1975, 4, 24, {'Apr 24 1975'})
end

function suite:testParseMonth()
	self:assertDateEquals(nil, 4, nil, {'April'})
	self:assertDateEquals(nil, 4, nil, {'april'})
end

function suite:testParseMon()
	self:assertDateEquals(nil, 4, nil, {'Apr'})
	self:assertDateEquals(nil, 4, nil, {'apr'})
end

function suite:testParseDDMonth()
	self:assertDateEquals(nil, 11, 12, {'12 November'})
end

function suite:testParseDDMon()
	self:assertDateEquals(nil, 11, 12, {'12 Nov'})
end

function suite:testParseMonthDD()
	self:assertDateEquals(nil, 11, 12, {'November 12'})
end

function suite:testParseMonDD()
	self:assertDateEquals(nil, 11, 12, {'Nov 12'})
end

function suite:testParseDDMonthYYY()
	self:assertDateEquals(100, 1, 27, {'27 January 100'})
end

function suite:testParseDDMonth0YYY()
	self:assertDateEquals(100, 1, 27, {'27 January 0100'})
end

function suite:testParseDDMonth000Y()
	self:assertDateEquals(3, 1, 27, {'27 January 0003'})
end

function suite:testParseAllMonths()
	self:assertDateEquals(nil, 1, nil, {'January'})
	self:assertDateEquals(nil, 2, nil, {'February'})
	self:assertDateEquals(nil, 3, nil, {'March'})
	self:assertDateEquals(nil, 4, nil, {'April'})
	self:assertDateEquals(nil, 5, nil, {'May'})
	self:assertDateEquals(nil, 6, nil, {'June'})
	self:assertDateEquals(nil, 7, nil, {'July'})
	self:assertDateEquals(nil, 8, nil, {'August'})
	self:assertDateEquals(nil, 9, nil, {'September'})
	self:assertDateEquals(nil, 10, nil, {'October'})
	self:assertDateEquals(nil, 11, nil, {'November'})
	self:assertDateEquals(nil, 12, nil, {'December'})
end

function suite:testParseAllMons()
	self:assertDateEquals(nil, 1, nil, {'Jan'})
	self:assertDateEquals(nil, 2, nil, {'Feb'})
	self:assertDateEquals(nil, 3, nil, {'Mar'})
	self:assertDateEquals(nil, 4, nil, {'Apr'})
	self:assertDateEquals(nil, 5, nil, {'May'})
	self:assertDateEquals(nil, 6, nil, {'Jun'})
	self:assertDateEquals(nil, 7, nil, {'Jul'})
	self:assertDateEquals(nil, 8, nil, {'Aug'})
	self:assertDateEquals(nil, 9, nil, {'Sep'})
	self:assertDateEquals(nil, 10, nil, {'Oct'})
	self:assertDateEquals(nil, 11, nil, {'Nov'})
	self:assertDateEquals(nil, 12, nil, {'Dec'})
end

function suite:testParseSept()
	self:assertDateEquals(nil, 9, nil, {'Sept'})
	self:assertDateEquals(nil, 9, nil, {'sept'})
	self:assertDateEquals(2012, 9, 1, {'1 Sept 2012'})
	self:assertDateEquals(2012, 9, 1, {2012, 'Sept', 1})
end

-------------------------------------------------------------------------------
-- Date error tests
-------------------------------------------------------------------------------

function suite:testInvalidDateError()
	self:assertErrorContains("'foo' is an invalid date", function ()
		Dts.new{'foo'}
	end)
end

function suite:testZeroYearError()
	self:assertErrorContains('years cannot be zero', function ()
		Dts.new{0}
	end)
end

function suite:testYearNonIntegerError()
	self:assertErrorContains('years must be an integer', function ()
		Dts.new{2015.5}
	end)
end

function suite:testYearLowRangeError()
	self:assertErrorContains(
		'years cannot be less than -999,999,999,999',
		function ()
			Dts.new{-1000000000000}
		end,
		true -- plain match
	)
end

function suite:testYearHighRangeError()
	self:assertErrorContains('years cannot be greater than 999,999,999,999', function ()
		Dts.new{1000000000000}
	end)
end

function suite:testMonthError()
	self:assertErrorContains('months must be an integer between 1 and 12', function ()
		Dts.new{2000, 0}
	end)
	self:assertErrorContains('months must be an integer between 1 and 12', function ()
		Dts.new{2000, 13}
	end)
end

function suite:testDayError()
	self:assertErrorContains('days must be an integer between 1 and 31', function ()
		Dts.new{2000, 1, 0}
	end)
	self:assertErrorContains('days must be an integer between 1 and 31', function ()
		Dts.new{2000, 1, 32}
	end)
end

function suite:testBCError()
	self:assertErrorContains(
		"'foo' is not a valid era code (expected 'BC', 'BCE', 'AD' or 'CE')",
		function ()
			Dts.new{2000, 1, 27, 'foo'}
		end,
		true -- plain match
	)
end

-------------------------------------------------------------------------------
-- Sort key tests
-------------------------------------------------------------------------------

function suite:testSortKeyYMD()
	suite:assertSortKeyEquals('000000002000-05-27-0000', {2000, 5, 27})
	suite:assertSortKeyEquals('000000002000-01-27-0000', {2000, 1, 27})
	suite:assertSortKeyEquals('000000002000-01-01-0000', {2000, 1, 1})
	suite:assertSortKeyEquals('000000000001-01-01-0000', {1, 1, 1})
end

function suite:testSortKeyYM()
	suite:assertSortKeyEquals('000000002000-05-01-0000', {2000, 5, nil})
end

function suite:testSortKeyYD()
	suite:assertSortKeyEquals('000000002000-01-27-0000', {2000, nil, 27})
end

function suite:testSortKeyMD()
	suite:assertSortKeyEquals('00000000' .. suite.currentYear .. '-05-27-0000', {nil, 5, 27})
end

function suite:testSortKeyY()
	suite:assertSortKeyEquals('000000002000-01-01-0000', {2000, nil, nil})
end

function suite:testSortKeyM()
	suite:assertSortKeyEquals('00000000' .. suite.currentYear .. '-05-01-0000', {nil, 5, nil})
end

function suite:testSortKeyD()
	suite:assertSortKeyEquals('00000000' .. suite.currentYear .. '-01-27-0000', {nil, nil, 27})
end

function suite:testSortKeyNegative()
	suite:assertSortKeyEquals('-999999999955-05-27-0000', {-45, 5, 27})
end

function suite:testSortKeyMaxYear()
	suite:assertSortKeyEquals('999999999999-01-01-0000', {999999999999})
end

function suite:testSortKeyMinYear()
	suite:assertSortKeyEquals('-000000000001-01-01-0000', {-999999999999})
end

function suite:testSortKeyBlank()
	suite:assertSortKeyEquals('999999999999-99-99-0000', {})
end

-------------------------------------------------------------------------------
-- addkey tests
-------------------------------------------------------------------------------

function suite:testAddkey()
	suite:assertSortKeyEquals('000000002000-05-27-0003', {2000, 5, 27, addkey = 3})
	suite:assertSortKeyEquals('000000002000-05-27-0003', {2000, 5, 27, addkey = '3'})
end

function suite:testAddkeyError()
	local msg = "the 'addkey' parameter must be an integer between 0 and 9999"
	self:assertErrorContains(msg, function ()
		Dts.new{2000, 5, 27, addkey = 3.5}
	end)
	self:assertErrorContains(msg, function ()
		Dts.new{2000, 5, 27, addkey = -1}
	end)
	self:assertErrorContains(msg, function ()
		Dts.new{2000, 5, 27, addkey = 10000}
	end)
end

-------------------------------------------------------------------------------
-- Display tests
-------------------------------------------------------------------------------

function suite:testFormatDefault()
	suite:assertDisplayEquals('January 27, 2000', {2000, 1, 27})
end

function suite:testFormatDMY()
	suite:assertDisplayEquals('27 January 2000', {2000, 1, 27, format = 'dmy'})
end

function suite:testFormatMDY()
	suite:assertDisplayEquals('January 27, 2000', {2000, 1, 27, format = 'mdy'})
end

function suite:testFormatDM()
	suite:assertDisplayEquals('27 January', {2000, 1, 27, format = 'dm'})
end

function suite:testFormatMD()
	suite:assertDisplayEquals('January 27', {2000, 1, 27, format = 'md'})
end

function suite:testFormatMY()
	suite:assertDisplayEquals('January 2000', {2000, 1, 27, format = 'my'})
end

function suite:testFormatY()
	suite:assertDisplayEquals('2000', {2000, 1, 27, format = 'y'})
end

function suite:testFormatM()
	suite:assertDisplayEquals('January', {2000, 1, 27, format = 'm'})
end

function suite:testFormatD()
	suite:assertDisplayEquals('27', {2000, 1, 27, format = 'd'})
end

function suite:testFormatHide()
	suite:assertDisplayEquals('', {2000, 1, 27, format = 'hide'})
end

function suite:testBCParam()
	local result = 'January 27, 2000&nbsp;BC'
	suite:assertDisplayEquals(result, {2000, 1, 27, 'BC'})
	suite:assertDisplayEquals(result, {2000, 1, 27, 'BCE'})
	suite:assertDisplayEquals(result, {2000, 1, 27, 'bc'})
	suite:assertDisplayEquals(result, {2000, 1, 27, 'bce'})
end

function suite:testBCNegativeYear()
	suite:assertDisplayEquals('January 27, 2000&nbsp;BC', {-2000, 1, 27})
end

function suite:testLargeYearDisplay()
	suite:assertDisplayEquals('1,000,000', {1000000})
end

function suite:testLargeNegativeYearDisplay()
	suite:assertDisplayEquals('1,000,000&nbsp;BC', {-1000000})
end

-------------------------------------------------------------------------------
-- Blank tests
-------------------------------------------------------------------------------

function suite:testBlank()
	self:assertStringContains(
		'^<span data%-sort%-value="[^"<>]-"></span>$',
		mDts._main{}
	)
end

-------------------------------------------------------------------------------
-- Nowrap tests
-------------------------------------------------------------------------------

function suite:testNoWrapDefault()
	self:assertStringContains(
		self.nowrapPattern,		
		mDts._main{2000, 1, 1}
	)
end

function suite:testNoWrapOff()
	self:assertStringContainsWhenOff(
		'^<span data%-sort%-value="[^"<>]-">[^>]-</span>$',
		function (off)
			return mDts._main{2000, 1, 1, nowrap = off}
		end
	)
	self:assertNotStringContainsWhenOff(
		'white%-space%s*:%s*nowrap',
		function (off)
			return mDts._main{2000, 1, 1, nowrap = off}
		end
	)
end

function suite:testNoWrapOn()
	self:assertStringContainsWhenOn(
		self.nowrapPattern,
		function (on)
			return mDts._main{2000, 1, 1, nowrap = on}
		end
	)
end

-------------------------------------------------------------------------------
-- Abbr tests
-------------------------------------------------------------------------------

function suite:testAbbrDefault()
	self:assertStringContains(
		'January 1, 2000',
		mDts._main{2000, 1, 1}
	)
end

function suite:testAbbrOn()
	self:assertStringContainsWhenOn(
		'Jan 1, 2000',
		function (on)
			return mDts._main{2000, 1, 1, abbr = on}
		end
	)
end

function suite:testAbbrOff()
	self:assertStringContainsWhenOff(
		'January 1, 2000',
		function (off)
			return mDts._main{2000, 1, 1, abbr = off}
		end
	)
end

-------------------------------------------------------------------------------
-- Tracking category tests
-------------------------------------------------------------------------------

function suite:testTrackingCategory()
	self:assertStringContains(
		'[[Category:Date table sorting templates with deprecated parameters]]',
		mDts._main{2000, 1, 1, link = 'off'},
		true -- plain match
	)
end

-------------------------------------------------------------------------------
-- Main tests
-------------------------------------------------------------------------------

function suite:testMain()
	local errorPattern = '^<strong class="error">Error in %[%[Template:Date table sorting%]%]: .-</strong>'
	self:assertStringContains(errorPattern, mDts.main{'foo'})
	self:assertNotStringContains(errorPattern, mDts.main{2000})
	self:assertStringContains(errorPattern, mDts._main{'foo'})
	self:assertNotStringContains(errorPattern, mDts._main{2000})
end

return suite