Mô đun:Author/kiểm thử

Văn thư lưu trữ mở Wikisource
Tài liệu mô đun[tạo]
-- Unit tests for [[Module:Author]]. Click talk page to run tests.
local p = require('Module:UnitTests')

function p:test_dates_supplied()
	local out

	-- Không ghi năm.
	out = '[[Thể loại:Tác gia thiếu năm mất]][[Thể loại:Tác gia thiếu năm sinh]]'
    self:preprocess_equals('{{#invoke:Author|dates}}', out, {nowiki=1})

	-- Ngày nhập bằng tay.
	out = '<br />(Ngày nhập tay)[[Thể loại:Tác gia có năm bị ghi đè]][[Thể loại:Tác gia thiếu năm mất]][[Thể loại:Tác gia thiếu năm sinh]]'
    self:preprocess_equals('{{#invoke:Author|dates|dates=Ngày nhập tay}}', out, {nowiki=1})

	-- Ngày nhập tay, năm sinh năm mất cũng nhập tay (để ghi thể loại).
	out = '<br />(Ngày nhập tay)[[Thể loại:Tác gia có năm bị ghi đè]][[Thể loại:Tác gia có năm mất bị ghi đè]][[Thể loại:Tác gia có năm mất không phải số]][[Thể loại:Tác gia có năm sinh bị ghi đè]][[Thể loại:Tác gia hiện đại]][[Thể loại:mất thập niên 1960]][[Thể loại:sinh 1904]]'
    self:preprocess_equals('{{#invoke:Author|dates|dates=Ngày nhập tay|birthyear=1904|deathyear=thập niên 1960}}', out, {nowiki=1})

	-- Exact years (both)
	out = '<br />(1810–1890)[[Thể loại:Tác gia có năm mất bị ghi đè]][[Thể loại:Tác gia có năm sinh bị ghi đè]][[Thể loại:Tác gia cận đại]][[Thể loại:mất 1890]][[Thể loại:sinh 1810]]'
    self:preprocess_equals('{{#invoke:Author|dates|dates=|birthyear=1810|deathyear=1890}}', out, {nowiki=1})

	-- Exact birth year and approximate death year
	out = '<br />(1810 – khoảng 1890)[[Thể loại:Tác gia có năm mất bị ghi đè]][[Thể loại:Tác gia có năm mất xấp xỉ]][[Thể loại:Tác gia có năm sinh bị ghi đè]][[Thể loại:Tác gia cận đại]][[Thể loại:mất 1890]][[Thể loại:sinh 1810]]'
    self:preprocess_equals('{{#invoke:Author|dates|birthyear=1810|deathyear=k./1890}}', out, {nowiki=1})

	-- Approximate birth year and unknown death year
	out = '<br />(khoảng 1810 – ?)[[Thể loại:Tác gia có năm mất bị ghi đè]][[Thể loại:Tác gia có năm mất không phải số]][[Thể loại:Tác gia có năm sinh bị ghi đè]][[Thể loại:Tác gia có năm sinh xấp xỉ]][[Thể loại:Tác gia cận đại]][[Thể loại:mất ?]][[Thể loại:sinh 1810]]'
    self:preprocess_equals('{{#invoke:Author|dates|birthyear=kh/1810|deathyear=?}}', out, {nowiki=1})

	-- Multiple birth dates.
	out = '<br />(1932/1933–)[[Thể loại:Tác gia có năm sinh bị ghi đè]][[Thể loại:Tác gia có năm sinh xấp xỉ]][[Thể loại:Tác gia hiện đại]][[Thể loại:Tác gia thiếu năm mất]][[Thể loại:sinh 1932]][[Thể loại:sinh 1933]]'
    self:preprocess_equals('{{#invoke:Author|dates|birthyear=1932/1933|deathyear=|wikidata_id=}}', out, {nowiki=1})

end

function p:test_dates_wikidata()
	local out

	-- Both dates exact to the day.
	local janeAusten = 'Q36322'
	out = '<br />(1775–1817)[[Thể loại:Tác gia cận đại]][[Thể loại:mất 1817]][[Thể loại:sinh 1775]]'
    self:preprocess_equals('{{#invoke:Author|dates|wikidata_id=' .. janeAusten .. '|birthyear=|deathyear=|dates=}}', out, {nowiki=1})
	-- Dates not matching.
	out = '<br />(1900–1817)[[Thể loại:Tác gia có năm sinh bị ghi đè]][[Thể loại:Tác gia có năm sinh khác với Wikidata]][[Thể loại:Tác gia cận đại]][[Thể loại:Tác gia hiện đại]][[Thể loại:mất 1817]][[Thể loại:sinh 1775]][[Thể loại:sinh 1900]]'
    self:preprocess_equals('{{#invoke:Author|dates|wikidata_id=' .. janeAusten .. '|birthyear=1900}}', out, {nowiki=1})
	out = '<br />(1775–1817)[[Thể loại:Tác gia có tiêu đề năm không khớp]][[Thể loại:Tác gia cận đại]][[Thể loại:mất 1817]][[Thể loại:sinh 1775]]'
    self:preprocess_equals('{{#invoke:Author|dates|wikidata_id=' .. janeAusten .. '|pagetitle=Jane Austen (1770-1817)}}', out, {nowiki=1})
	out = '<br />(1775–1817)[[Thể loại:Tác gia cận đại]][[Thể loại:mất 1817]][[Thể loại:sinh 1775]]'
    self:preprocess_equals('{{#invoke:Author|dates|wikidata_id=' .. janeAusten .. '|pagetitle=Jane Austen (mechanic)}}', out, {nowiki=1})

	-- Exact birth, century-only death.
	local helenaFenwickDale = 'Q20204408'
	out = '<br />(1854 – 20th century)[[Thể loại:1854 births]][[Thể loại:20th century deaths]][[Thể loại:Authors with approximate death dates]][[Thể loại:Early modern authors]][[Thể loại:Modern authors]]'
    self:preprocess_equals('{{#invoke:Author|dates|wikidata_id=' .. helenaFenwickDale .. '}}', out, {nowiki=1})

	-- Unknown birth, century-only death.
	local johnBarr = 'Q16004141'
	out = '<br />(? – 20th century)[[Thể loại:20th century deaths]][[Thể loại:Authors with approximate death dates]][[Thể loại:Authors with unknown birth dates]][[Thể loại:Modern authors]]'
    self:preprocess_equals('{{#invoke:Author|dates|wikidata_id=' .. johnBarr .. '}}', out, {nowiki=1})

	-- Multiple dates of birth. [[Author:David]]
	out = '<br />(1040 BCE/1039 BCE – 970 BCE/969 BCE)[[Thể loại:1039 BCE births]][[Thể loại:1040 BCE births]][[Thể loại:969 BCE deaths]][[Thể loại:970 BCE deaths]][[Thể loại:Ancient authors]]'
    self:preprocess_equals( '{{#invoke:Author|dates|wikidata_id=Q41370}}', out, {nowiki=1} )
    local johnKnox = 'Q189937' -- Multiple death dates in the same year
	out = '<br />(c. 1514 – 1572)[[Thể loại:1514 births]][[Thể loại:1572 deaths]][[Thể loại:Authors with approximate birth dates]][[Thể loại:Renaissance authors]]'
    self:preprocess_equals( '{{#invoke:Author|dates|wikidata_id='.. johnKnox .. '}}', out, {nowiki=1} )

	-- Living person.
	out = '<br />(1942–)[[Thể loại:1942 births]][[Thể loại:Authors with missing death dates]][[Thể loại:Living authors]][[Thể loại:Modern authors]]'
    self:preprocess_equals('{{#invoke:Author|dates|wikidata_id=Q6279}}', out, {nowiki=1})

	-- No dates provided.  Manu (Q178744, first human being in Hindu tradition). Only humans are called 'living' by default.
	out = '[[Thể loại:Authors with missing birth dates]][[Thể loại:Authors with missing death dates]]'
    self:preprocess_equals('{{#invoke:Author|dates|wikidata_id=Q178744}}', out, {nowiki=1})

	-- 4th century dates, where birth and death are the same.
	out = '<br />(4th century)[[Thể loại:4th century births]][[Thể loại:4th century deaths]][[Thể loại:Ancient authors]][[Thể loại:Authors with approximate birth dates]][[Thể loại:Authors with approximate death dates]]'
    self:preprocess_equals('{{#invoke:Author|dates|wikidata_id=Q782401}}', out, {nowiki=1})

	-- Floruit (with birth and death dates = 'unknown').
	out = '<br />(fl. 1735)[[Thể loại:Authors with floruit dates]][[Thể loại:Authors with unknown birth dates]][[Thể loại:Authors with unknown death dates]][[Thể loại:Early modern authors]]'
    self:preprocess_equals('{{#invoke:Author|dates|wikidata_id=Q28585286}}', out, {nowiki=1})

	-- Floruit with no death date.
	out = '<br />(fl. c. 509 BCE)[[Thể loại:Ancient authors]][[Thể loại:Authors with approximate floruit dates]][[Thể loại:Authors with floruit dates]][[Thể loại:Authors with missing birth dates]][[Thể loại:Authors with missing death dates]]'
    self:preprocess_equals('{{#invoke:Author|dates|wikidata_id=Q241132}}', out, {nowiki=1})

   -- First century BCE, where birth and death are the same.
	out = '<br />(1st century BCE)[[Thể loại:1st century BCE births]][[Thể loại:1st century BCE deaths]][[Thể loại:Ancient authors]][[Thể loại:Authors with approximate birth dates]][[Thể loại:Authors with approximate death dates]]'
    self:preprocess_equals('{{#invoke:Author|dates|wikidata_id=Q670317}}', out, {nowiki=1})

	out = '<br />(fl. 1900s)[[Thể loại:Authors with approximate floruit dates]][[Thể loại:Authors with floruit dates]][[Thể loại:Authors with unknown birth dates]][[Thể loại:Authors with unknown death dates]][[Thể loại:Modern authors]]'
    self:preprocess_equals('{{#invoke:Author|dates|wikidata_id=Q28811762}}', out, {nowiki=1})
    
    -- Multiple floruit dates.
	out = '<br />(fl. 1875–1915)[[Thể loại:Authors with approximate floruit dates]][[Thể loại:Authors with floruit dates]][[Thể loại:Authors with unknown birth dates]][[Thể loại:Authors with unknown death dates]][[Thể loại:Modern authors]]'
    self:preprocess_equals('{{#invoke:Author|dates|wikidata_id=Q55222075}}', out, {nowiki=1})
    
    -- Floruit date more than 110 years ago and no death date.
    out = '<br />(fl. 1521)[[Thể loại:Authors with floruit dates]][[Thể loại:Authors with missing birth dates]][[Thể loại:Authors with missing death dates]][[Thể loại:Renaissance authors]]'
    self:preprocess_equals('{{#invoke:Author|dates|wikidata_id=Q56438002}}', out, {nowiki=1})

    out = '<br />(1852–)[[Thể loại:1852 births]][[Thể loại:Authors with missing death dates]][[Thể loại:Early modern authors]]'
    self:preprocess_equals('{{#invoke:Author|dates|wikidata_id=Q16909806}}', out, {nowiki=1})

end

function p:test_date()
	-- Supplied years.
	self:preprocess_equals('{{#invoke:Author|date|year=1820}}', '1820')
	self:preprocess_equals('{{#invoke:Author|date|year=k./1820}}', 'khoảng 1820')
	self:preprocess_equals('{{#invoke:Author|date|year=thập niên 1820}}', 'thập niên 1820')
	self:preprocess_equals('{{#invoke:Author|date|year=1820?}}', '1820?')
	self:preprocess_equals('{{#invoke:Author|date|year=1820/?}}', '1820?')
	self:preprocess_equals('{{#invoke:Author|date|year=1932/1933}}', '1932/1933')

	-- Approximate birth date.
    self:preprocess_equals('{{#invoke:Author|date|type=sinh|wikidata_id=Q15963321}}', 'thế kỷ 19')
    self:preprocess_equals('{{#invoke:Author|date|type=sinh|wikidata_id=Q9181}}', '1813 TCN')

	-- Multiple dates of birth, [[Author:David]].
	self:preprocess_equals('{{#invoke:Author|date|wikidata_id=Q41370|type=sinh}}', '1040 TCN/1039 TCN/907 TCN')

	-- Exact death date, [[Author:Jane Austen]].
	self:preprocess_equals('{{#invoke:Author|date|wikidata_id=Q36322|type=mất}}', '1817')

end

return p