<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.stiles.casa/index.php?action=history&amp;feed=atom&amp;title=Module%3ATime_ago%2Ftestcases</id>
	<title>Module:Time ago/testcases - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stiles.casa/index.php?action=history&amp;feed=atom&amp;title=Module%3ATime_ago%2Ftestcases"/>
	<link rel="alternate" type="text/html" href="https://wiki.stiles.casa/index.php?title=Module:Time_ago/testcases&amp;action=history"/>
	<updated>2026-05-07T08:09:12Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.2</generator>
	<entry>
		<id>https://wiki.stiles.casa/index.php?title=Module:Time_ago/testcases&amp;diff=6757&amp;oldid=prev</id>
		<title>imported&gt;GreenC at 18:35, 2 February 2021</title>
		<link rel="alternate" type="text/html" href="https://wiki.stiles.casa/index.php?title=Module:Time_ago/testcases&amp;diff=6757&amp;oldid=prev"/>
		<updated>2021-02-02T18:35:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Unit tests for [[Module:Time ago]]. Click talk page to run tests.&lt;br /&gt;
local p = require(&amp;#039;Module:UnitTests&amp;#039;)&lt;br /&gt;
local Date = require(&amp;#039;Module:Date&amp;#039;)._Date&lt;br /&gt;
&lt;br /&gt;
local nowDateObj = Date(&amp;#039;currentdate&amp;#039;)&lt;br /&gt;
local dates = {&lt;br /&gt;
	nowDateObj - &amp;#039;18y&amp;#039;,&lt;br /&gt;
	Date(&amp;#039;July 1 2009&amp;#039;),&lt;br /&gt;
	nowDateObj - &amp;#039;4m&amp;#039; + &amp;#039;1d&amp;#039;,&lt;br /&gt;
	Date(&amp;#039;1 July 2049&amp;#039;),&lt;br /&gt;
}&lt;br /&gt;
local function checker(id, unit)&lt;br /&gt;
	-- id = 1, 2, ... : dates[id] is the wanted date&lt;br /&gt;
	-- unit = &amp;#039;date&amp;#039;, &amp;#039;y&amp;#039;, &amp;#039;m&amp;#039;, &amp;#039;w&amp;#039;, &amp;#039;d&amp;#039;, &amp;#039;h&amp;#039;&lt;br /&gt;
	local dateObj = dates[id] or error(&amp;#039;invalid id: &amp;#039; .. tostring(id))&lt;br /&gt;
	if unit == &amp;#039;date&amp;#039; then&lt;br /&gt;
		return dateObj:text()&lt;br /&gt;
	end&lt;br /&gt;
	local diff = nowDateObj - dateObj&lt;br /&gt;
	if unit == &amp;#039;h&amp;#039; then&lt;br /&gt;
		return math.floor(diff.days_ago * 24)&lt;br /&gt;
	end&lt;br /&gt;
	return tostring(math.abs(diff:age(unit)))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:test_main()&lt;br /&gt;
	local lang = mw.language.getContentLanguage()&lt;br /&gt;
&lt;br /&gt;
	-- Calculate the time since/until the test dates here, since the expected output is dependent on the current time in most cases.&lt;br /&gt;
	local currentTime = lang:formatDate( &amp;#039;U&amp;#039; )&lt;br /&gt;
	local jul09 = currentTime - lang:formatDate( &amp;#039;U&amp;#039;, &amp;#039;1 July 2009&amp;#039; )&lt;br /&gt;
	local secondssincejul09 = math.floor( jul09 )&lt;br /&gt;
	local minutessincejul09 = math.floor( jul09 / 60 )&lt;br /&gt;
	local yearsuntilaug57 = math.floor( ( lang:formatDate ( &amp;#039;U&amp;#039;, &amp;#039;4 August 2057&amp;#039; ) - currentTime ) / 31557600 )&lt;br /&gt;
&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|&amp;#039;..checker(3, &amp;#039;date&amp;#039;)..&amp;#039;}}&amp;#039;, checker(3, &amp;#039;m&amp;#039;) .. &amp;#039; months ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{CURRENTTIMESTAMP}}}}&amp;#039;, &amp;#039;0 seconds ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|&amp;#039;..checker(3, &amp;#039;date&amp;#039;)..&amp;#039;|purge=yes}}&amp;#039;, checker(3, &amp;#039;m&amp;#039;) .. &amp;#039; months ago &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;([//en.stiles.casa_wiki.org/w/index.php?title=Module_talk:Time ago/testcases&amp;amp;action=purge purge])&amp;lt;/span&amp;gt;&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{CURRENTTIMESTAMP}}|purge=yes}}&amp;#039;, &amp;#039;0 seconds ago &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;([//en.stiles.casa_wiki.org/w/index.php?title=Module_talk:Time ago/testcases&amp;amp;action=purge purge])&amp;lt;/span&amp;gt;&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|July 1 2009}}&amp;#039;, checker(2, &amp;#039;y&amp;#039;) .. &amp;#039; years ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|July 1 2009|magnitude=minutes}}&amp;#039;, minutessincejul09 .. &amp;#039; minutes ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|July 1 2009|magnitude=days}}&amp;#039;, checker(2, &amp;#039;d&amp;#039;) .. &amp;#039; days ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|July 1 2009|magnitude=weeks}}&amp;#039;, checker(2, &amp;#039;w&amp;#039;) .. &amp;#039; weeks ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|July 1 2009|magnitude=months}}&amp;#039;, checker(2, &amp;#039;m&amp;#039;) .. &amp;#039; months ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|July 1 2049|magnitude=months}}&amp;#039;, checker(4, &amp;#039;m&amp;#039;) .. &amp;#039; months\&amp;#039; time&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|Julio 1}}&amp;#039;, &amp;#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Error: first parameter cannot be parsed as a date or time.&amp;lt;/strong&amp;gt;&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|July 1 2009|magnitude=fruits}}&amp;#039;, secondssincejul09 .. &amp;#039; seconds ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main}}&amp;#039;, &amp;#039;0 seconds ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|July 1 2009|magnitude=HoUrS}}&amp;#039;, secondssincejul09 .. &amp;#039; seconds ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|4 August 2057}}&amp;#039;, yearsuntilaug57 .. &amp;#039; years\&amp;#039; time&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|&amp;#039;..checker(3, &amp;#039;date&amp;#039;)..&amp;#039;|ago=in the past}}&amp;#039;, checker(3, &amp;#039;m&amp;#039;) .. &amp;#039; months in the past&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{CURRENTTIMESTAMP}}|min_magnitude=weeks}}&amp;#039;, &amp;#039;0 weeks ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|&amp;#039;..checker(3, &amp;#039;date&amp;#039;)..&amp;#039;|ago=}}&amp;#039;, checker(3, &amp;#039;m&amp;#039;) .. &amp;#039; months&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -12 months -14 days}}|magnitude=months|spellout=yes}}&amp;#039;, &amp;#039;twelve months ago&amp;#039;) -- #time always gives one month too few&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -12 months -14 days}}|magnitude=months|spellout=y}}&amp;#039;, &amp;#039;twelve months ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -12 months -14 days}}|magnitude=months|spellout=y|spelloutmax=11}}&amp;#039;, &amp;#039;12 months ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -12 months -14 days}}|magnitude=months|spellout=auto}}&amp;#039;, &amp;#039;12 months ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -4 years -14 days}}|magnitude=years|spellout=auto}}&amp;#039;, &amp;#039;four years ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|July 1 2009|magnitude=weeks|spellout=yes}}&amp;#039;, checker(2, &amp;#039;w&amp;#039;) .. &amp;#039; weeks ago&amp;#039;) -- [[Module:NumberSpell]] can only spell numbers up to 100.&lt;br /&gt;
	self:preprocess_equals_preprocess(&amp;#039;{{#invoke:Time ago/sandbox|main|&amp;#039;..checker(1, &amp;#039;date&amp;#039;)..&amp;#039;|magnitude=days}}&amp;#039;  , checker(1, &amp;#039;d&amp;#039;)..&amp;#039; days ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals_preprocess(&amp;#039;{{#invoke:Time ago/sandbox|main|&amp;#039;..checker(1, &amp;#039;date&amp;#039;)..&amp;#039;|magnitude=weeks}}&amp;#039; , checker(1, &amp;#039;w&amp;#039;)..&amp;#039; weeks ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals_preprocess(&amp;#039;{{#invoke:Time ago/sandbox|main|&amp;#039;..checker(1, &amp;#039;date&amp;#039;)..&amp;#039;|magnitude=months}}&amp;#039;, checker(1, &amp;#039;m&amp;#039;)..&amp;#039; months ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals_preprocess(&amp;#039;{{#invoke:Time ago/sandbox|main|&amp;#039;..checker(1, &amp;#039;date&amp;#039;)..&amp;#039;|magnitude=years}}&amp;#039; , checker(1, &amp;#039;y&amp;#039;)..&amp;#039; years ago&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- Testing whether the module is accurate on the day&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -10 years }}}}&amp;#039;, &amp;#039;10 years ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -10 years -1 days}}}}&amp;#039;, &amp;#039;10 years ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -1 years }}}}&amp;#039;, &amp;#039;12 months ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -1 years -1 days}}}}&amp;#039;, &amp;#039;12 months ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -1 years -2 days}}}}&amp;#039;, &amp;#039;12 months ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -1 years -3 days}}}}&amp;#039;, &amp;#039;12 months ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -1 years -4 days}}}}&amp;#039;, &amp;#039;12 months ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -1 years -5 days}}}}&amp;#039;, &amp;#039;12 months ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -1 years -6 days}}}}&amp;#039;, &amp;#039;12 months ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -1 years -7 days}}}}&amp;#039;, &amp;#039;12 months ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -1 years -8 days}}}}&amp;#039;, &amp;#039;12 months ago&amp;#039;)&lt;br /&gt;
	self:preprocess_equals(&amp;#039;{{#invoke:Time ago/sandbox|main|{{#time: r | -1 years -8 days}}|numeric=y}}&amp;#039;, &amp;#039;12&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;GreenC</name></author>
	</entry>
</feed>