<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://commons.islamical.org/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AISOdate%2Fsandbox%2Ftestcases</id>
	<title>Module:ISOdate/sandbox/testcases - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://commons.islamical.org/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AISOdate%2Fsandbox%2Ftestcases"/>
	<link rel="alternate" type="text/html" href="https://commons.islamical.org/w/index.php?title=Module:ISOdate/sandbox/testcases&amp;action=history"/>
	<updated>2026-09-26T15:53:00Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://commons.islamical.org/w/index.php?title=Module:ISOdate/sandbox/testcases&amp;diff=3966&amp;oldid=prev</id>
		<title>Shahroudi: Created page with &quot;require(&#039;strict&#039;) local TUT = mw.title.new(mw.getCurrentFrame():getTitle()).basePageTitle -- the title under test local p = require(TUT.prefixedText) -- the module to be tested local ScribuntoUnit = require(&#039;Module:ScribuntoUnit&#039;) local suite = ScribuntoUnit:new() local Date  = require(&#039;Module:DateI18n&#039;)._Date    local function ISOdate(datestr, lang, case, class, trim_year) 	local datestr, succeded = p._ISOdate(datestr, lang, case, class, trim_year) 	return datestr end...&quot;</title>
		<link rel="alternate" type="text/html" href="https://commons.islamical.org/w/index.php?title=Module:ISOdate/sandbox/testcases&amp;diff=3966&amp;oldid=prev"/>
		<updated>2026-09-25T08:51:21Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;require(&amp;#039;strict&amp;#039;) local TUT = mw.title.new(mw.getCurrentFrame():getTitle()).basePageTitle -- the title under test local p = require(TUT.prefixedText) -- the module to be tested local ScribuntoUnit = require(&amp;#039;Module:ScribuntoUnit&amp;#039;) local suite = ScribuntoUnit:new() local Date  = require(&amp;#039;Module:DateI18n&amp;#039;)._Date    local function ISOdate(datestr, lang, case, class, trim_year) 	local datestr, succeded = p._ISOdate(datestr, lang, case, class, trim_year) 	return datestr end...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require(&amp;#039;strict&amp;#039;)&lt;br /&gt;
local TUT = mw.title.new(mw.getCurrentFrame():getTitle()).basePageTitle -- the title under test&lt;br /&gt;
local p = require(TUT.prefixedText) -- the module to be tested&lt;br /&gt;
local ScribuntoUnit = require(&amp;#039;Module:ScribuntoUnit&amp;#039;)&lt;br /&gt;
local suite = ScribuntoUnit:new()&lt;br /&gt;
local Date  = require(&amp;#039;Module:DateI18n&amp;#039;)._Date &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function ISOdate(datestr, lang, case, class, trim_year)&lt;br /&gt;
	local datestr, succeded = p._ISOdate(datestr, lang, case, class, trim_year)&lt;br /&gt;
	return datestr&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function ISOdate_en(datestr)&lt;br /&gt;
	local datestr, succeded = p._ISOdate(datestr, &amp;#039;en&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;100-999&amp;#039;)&lt;br /&gt;
	return datestr&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:test_outer()&lt;br /&gt;
	local mod = &amp;#039;{{#invoke:&amp;#039; .. TUT.text .. &amp;#039;| &amp;#039;&lt;br /&gt;
	self:assertSameResult(p._ISOyear(&amp;#039;1999-08-18 08:15:30Z&amp;#039;),                                 mod..&amp;#039;ISOyear|1999-08-18 08:15:30Z}}&amp;#039;)&lt;br /&gt;
	self:assertSameResult(p._ISOdate(&amp;#039;1999-08-18 08:15:30Z&amp;#039;, &amp;#039;en&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;dtstart&amp;#039;, &amp;#039;100-999&amp;#039;), mod..&amp;#039;ISOdate|1999-08-18 08:15:30Z|lang=en}}&amp;#039;)&lt;br /&gt;
	self:assertSameResult(p._ISOdate(&amp;#039;1999-08-18 08:15:30Z&amp;#039;, &amp;#039;pl&amp;#039;, &amp;#039;gen&amp;#039;, &amp;#039;test&amp;#039;, true),      mod..&amp;#039;ISOdate|1999-08-18 08:15:30Z|lang=pl|case=gen|class=test|trim_year=t}}&amp;#039;)&lt;br /&gt;
end &lt;br /&gt;
 &lt;br /&gt;
function suite:test_1_ISOyear()&lt;br /&gt;
	self:assertEquals(&amp;#039;1999&amp;#039;, p._ISOyear(&amp;#039;1999-08-18 08:15:30Z&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;1999&amp;#039;, p._ISOyear(&amp;#039;1999-08-18 08:15:30&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;1999&amp;#039;, p._ISOyear(&amp;#039;1999-08-18 08:15&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;1999&amp;#039;, p._ISOyear(&amp;#039;1999-08-18&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;1999&amp;#039;, p._ISOyear(&amp;#039;1999-08&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;1999&amp;#039;, p._ISOyear(&amp;#039;1999&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;0099&amp;#039;, p._ISOyear(&amp;#039;99-09&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;0000&amp;#039;, p._ISOyear(&amp;#039;0&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;&amp;#039;    , p._ISOyear(&amp;#039;qwerty&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;&amp;#039;    , p._ISOyear(&amp;#039;&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;&amp;#039;    , p._ISOyear(&amp;#039;1999/09&amp;#039;))&lt;br /&gt;
end &lt;br /&gt;
&lt;br /&gt;
function suite:test_2_ISOdate_basic()&lt;br /&gt;
	self:assertEquals(&amp;#039;10 August 1999, 08:15:30&amp;#039;, ISOdate_en(&amp;#039;1999-08-10 08:15:30Z&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;11 August 1999, 08:15:30&amp;#039;, ISOdate_en(&amp;#039;1999-08-11 08:15:30&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;12 August 1999, 08:15&amp;#039;,    ISOdate_en(&amp;#039;1999-08-12 08:15&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;13 August 1999&amp;#039;,           ISOdate_en(&amp;#039;1999-08-13&amp;#039;))&lt;br /&gt;
	self:assertEquals(   &amp;#039;August 1999&amp;#039;,           ISOdate_en(&amp;#039;1999-08&amp;#039;))&lt;br /&gt;
	self:assertEquals(          &amp;#039;1999&amp;#039;,           ISOdate_en(&amp;#039;1999&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;14 May 999&amp;#039;,               ISOdate_en(&amp;#039;999-05-14&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;15 July 0099&amp;#039;,             ISOdate_en(&amp;#039;99-07-15&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;16 September 0009&amp;#039;,        ISOdate_en(&amp;#039;9-09-16&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;December 1969&amp;#039;,            ISOdate_en(&amp;#039;1969-12&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;February 999&amp;#039;,             ISOdate_en(&amp;#039;999-02&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;999&amp;#039;,                      ISOdate_en(&amp;#039;999&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;0099&amp;#039;,                     ISOdate_en(&amp;#039;99&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;0009&amp;#039;,                     ISOdate_en(&amp;#039;9&amp;#039;))&lt;br /&gt;
	self:assertEquals(&amp;#039;&amp;quot;2010&amp;quot;&amp;#039;,              &amp;#039;&amp;quot;&amp;#039;..ISOdate_en(&amp;#039; 2010	&amp;#039;)..&amp;#039;&amp;quot;&amp;#039;)&lt;br /&gt;
end &lt;br /&gt;
&lt;br /&gt;
function suite:test_3_ISOdate_odd_dates()&lt;br /&gt;
	self:assertEquals(&amp;#039;1 August 1999, 08:05:03&amp;#039;,   ISOdate_en(&amp;#039;1999-8-1 8:5:3&amp;#039;))         -- no 0s in front of dates or months&lt;br /&gt;
 	self:assertEquals(&amp;#039;10 August 2010, 18:15:30&amp;#039;,  ISOdate_en(&amp;#039; 2010-08-10 18:15:30Z&amp;#039;))  -- spaces in front of the date&lt;br /&gt;
	self:assertEquals(&amp;#039;11 August 1999, 08:15&amp;#039;,     ISOdate_en(&amp;#039;1999-08-11T08:15&amp;#039;))       -- dates with &amp;quot;T&amp;quot; separator&lt;br /&gt;
	self:assertEquals(&amp;#039;12 August 1999, 08:15:30&amp;#039;,  ISOdate_en(&amp;#039;1999-08-12T08:15:30&amp;#039;))    -- dates with &amp;quot;T&amp;quot; separator&lt;br /&gt;
	self:assertEquals(&amp;#039;13 August 1999, 08:15:30&amp;#039;,  ISOdate_en(&amp;#039;1999-08-13T08:15:30Z&amp;#039;))   -- parse YYYY-MM-DD HH:MM:SS format with &amp;quot;Z&amp;quot;&lt;br /&gt;
	self:assertEquals(&amp;#039;14 August 1999, 08:15:30 (qwerty)&amp;#039;, ISOdate_en(&amp;#039;1999-08-14T08:15:30Z (qwerty)&amp;#039;)) -- parse date with text behind it&lt;br /&gt;
	self:assertEquals(&amp;#039;15 August 1999, 08:15 (qwerty)&amp;#039;, ISOdate_en(&amp;#039;1999-08-15T08:15 (qwerty)&amp;#039;))&lt;br /&gt;
end &lt;br /&gt;
&lt;br /&gt;
function suite:test_4_ISOdate_not_dates()&lt;br /&gt;
	-- not proper dates will be returned as-is&lt;br /&gt;
	self:assertEquals(&amp;#039;qwerty&amp;#039;,      ISOdate_en(&amp;#039;qwerty&amp;#039;)) &lt;br /&gt;
	self:assertEquals(&amp;#039;&amp;#039;,            ISOdate_en(&amp;#039; &amp;#039;)) &lt;br /&gt;
	self:assertEquals(&amp;#039;-2009-09&amp;#039;,    ISOdate_en(&amp;#039;-2009-09&amp;#039;)) &lt;br /&gt;
	self:assertEquals(&amp;#039;15-12-2008&amp;#039;,  ISOdate_en(&amp;#039;15-12-2008&amp;#039;)) &lt;br /&gt;
	self:assertEquals(&amp;#039;15 May 1999&amp;#039;, ISOdate_en(&amp;#039;15 May 1999&amp;#039;)) &lt;br /&gt;
	self:assertEquals(&amp;#039;1999-08-18T08 (creation date)&amp;#039;, ISOdate_en(&amp;#039;1999-08-18T08 (creation date)&amp;#039;)) &lt;br /&gt;
	self:assertSameResult(&amp;#039;{{other date|ca|1999}}&amp;#039;, ISOdate_en(&amp;#039;{{other date|ca|1999}}&amp;#039;))&lt;br /&gt;
end &lt;br /&gt;
&lt;br /&gt;
function suite:test_5_ISOdate_out_or_range()&lt;br /&gt;
	self:assertEquals(&amp;#039;18 August 1999&amp;#039;,   ISOdate_en(&amp;#039;1999-08-18 08:90:30&amp;#039;)) -- minute out of range, keep only the valid date&lt;br /&gt;
	self:assertEquals(&amp;#039;1999&amp;#039;,             ISOdate_en(&amp;#039;1999-18-18 08:20:30&amp;#039;)) -- month out of range, keep only the valid year&lt;br /&gt;
	self:assertEquals(&amp;#039;2000&amp;#039;,             ISOdate_en(&amp;#039;2000-13-29&amp;#039;))          -- month out of range, keep only the valid year&lt;br /&gt;
	self:assertEquals(&amp;#039;September 2009&amp;#039;,   ISOdate_en(&amp;#039;+2009-09&amp;#039;))            -- a plus sign for the year is ignored&lt;br /&gt;
	self:assertEquals(&amp;#039;1 March 1567&amp;#039;,     ISOdate_en(&amp;#039;1567-02-29&amp;#039;))          -- leap day on non-leap year&lt;br /&gt;
	self:assertEquals(&amp;#039;29 February 2000&amp;#039;, ISOdate_en(&amp;#039;2000-02-29&amp;#039;))          -- leap day on leap year	&lt;br /&gt;
end &lt;br /&gt;
&lt;br /&gt;
function suite:test_6_ISOdate_arguments()&lt;br /&gt;
	-- many arguments are just passed into Module:DateI18n&lt;br /&gt;
	local datevec, datestr = {2010,1,9}, &amp;#039;2010-01-09&amp;#039;&lt;br /&gt;
	local case, class, trim_year = &amp;#039;&amp;#039;, &amp;#039;&amp;#039;, &lt;br /&gt;
	self:assertEquals( ISOdate(datestr, &amp;#039;pl&amp;#039;),       Date(datevec, &amp;#039;pl&amp;#039;))&lt;br /&gt;
	self:assertEquals( ISOdate(datestr, &amp;#039;he&amp;#039;),       Date(datevec, &amp;#039;he&amp;#039;))&lt;br /&gt;
	self:assertEquals( ISOdate(datestr, &amp;#039;pl&amp;#039;,&amp;#039;nom&amp;#039;), Date(datevec, &amp;#039;pl&amp;#039;,&amp;#039;nom&amp;#039;))&lt;br /&gt;
	self:assertEquals( ISOdate(datestr, &amp;#039;pl&amp;#039;,&amp;#039;gen&amp;#039;), Date(datevec, &amp;#039;pl&amp;#039;,&amp;#039;gen&amp;#039;))&lt;br /&gt;
	self:assertEquals( ISOdate(datestr, &amp;#039;ru&amp;#039;,&amp;#039;ins&amp;#039;), Date(datevec, &amp;#039;ru&amp;#039;,&amp;#039;ins&amp;#039;))&lt;br /&gt;
	self:assertEquals( ISOdate(datestr, &amp;#039;ru&amp;#039;,&amp;#039;ins&amp;#039;,&amp;#039;dtstart&amp;#039;), Date(datevec, &amp;#039;ru&amp;#039;,&amp;#039;ins&amp;#039;,&amp;#039;dtstart&amp;#039;))&lt;br /&gt;
&lt;br /&gt;
    datevec, datestr = {995,10,28}, &amp;#039;995-10-28&amp;#039;&lt;br /&gt;
	self:assertEquals( ISOdate(datestr, &amp;#039;fr&amp;#039;),                Date(datevec, &amp;#039;fr&amp;#039;))&lt;br /&gt;
	self:assertEquals( ISOdate(datestr, &amp;#039;fr&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;, true),      Date(datevec, &amp;#039;fr&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;, true))&lt;br /&gt;
	self:assertEquals( ISOdate(datestr, &amp;#039;fr&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;, false),     Date(datevec, &amp;#039;fr&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;, false))&lt;br /&gt;
	self:assertEquals( ISOdate(datestr, &amp;#039;fr&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;100-990&amp;#039;), Date(datevec, &amp;#039;fr&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;100-990&amp;#039;))&lt;br /&gt;
end &lt;br /&gt;
&lt;br /&gt;
return suite&lt;/div&gt;</summary>
		<author><name>Shahroudi</name></author>
	</entry>
</feed>