「モジュール:Citation/CS-ja/testcases」の版間の差分
表示
< モジュール:Citation | CS-ja
削除された内容 追加された内容
編集の要約なし |
m mw.loadData()を使用する |
||
(2人の利用者による、間の21版が非表示) | |||
1行目: | 1行目: | ||
local p = require('Module:UnitTests') |
local p = require('Module:UnitTests') |
||
local cfg = mw.loadData('Module:Citation/CS-ja/Configuration/sandbox') |
|||
function p:test_book() |
|||
local utilities = require('Module:Citation/CS1/Utilities/sandbox') |
|||
self:preprocess_equals_preprocess_many('{{利用者:本日晴天/sandbox/Template:Cite book ja|', '}}', '{{Cite book|和書|', '}}', { |
|||
local validation = require('Module:Citation/CS1/Date validation/sandbox') |
|||
{ |
|||
'last1=ミスナー |first1=C. W. |last2=ソーン |first2=K. S. |last3=ホイーラー |first3=J. A. |title=重力理論 |translator=若野省己 |publisher=丸善出版 |date=2011-04-07 |page=1300 |isbn=978-4621083277 |ref=harv' |
|||
}, { |
|||
'title=共産党宣言 |author1=カール・マルクス |authorlink=カール・マルクス |author2=フリードリヒ・エンゲルス |authorlink2=フリードリヒ・エンゲルス |year=1848' |
|||
}, { |
|||
'url=https://ndlonline.ndl.go.jp/#!/detail/R300000001-I000001792080-00 |title=二重らせん |author1=ジェームス・D・ワトソン |author-link=ジェームズ・ワトソン |translator1=江上不二夫 |translator2=中村桂子 |translator1-link=江上不二夫 |translator2-link=中村桂子 |publisher=講談社 |year=1986 |origyear=1968 |isbn=4-06-183715-X |id={{国立国会図書館書誌ID|000001792080}}' |
|||
}, { |
|||
'title=[[二重らせん]] |first1=ジェームス・D |last1=ワトソン |author-link=ジェームズ・ワトソン |translator1-last=江上 |translator1-first=不二夫 |translator2-last=中村 |translator2-first=桂子 |translator1-link=江上不二夫 |translator2-link=中村桂子 |publisher=講談社 |year=1986 |origyear=1968 |isbn=4-06-183715-X |id={{国立国会図書館書誌ID|000001792080}}' |
|||
}, { |
|||
'title=二重らせん |first1=James D. |last1=Watson |author-link=ジェームズ・ワトソン |translator1-last=江上 |translator1-first=不二夫 |translator2-last=中村 |translator2-first=桂子 |translator1-link=江上不二夫 |translator2-link=中村桂子 |publisher=講談社 |year=1986 |origyear=1968 |isbn=4-06-183715-X |id={{国立国会図書館書誌ID|000001792080}}' |
|||
}, { |
|||
'title=二重らせん |author1=ジェームス・D・ワトソン |author-link=ジェームズ・ワトソン |translator1=江上不二夫 |translator2=中村桂子 |translator1-link=江上不二夫 |translator2-link=中村桂子 |publisher=講談社 |series=[[ブルーバックス]] |year=2012 |origyear=1968 |isbn=978-4-06-257792-2' |
|||
}, { |
|||
'title=[[Wikipedia:井戸端/subj/間違ったISBN|ストラヴィンスキー自伝]] |author=イーゴリ・ストラヴィンスキー |author-link=イーゴリ・ストラヴィンスキー |translator=塚谷晃弘 |translator-link=塚谷晃弘 |publisher=全音楽譜出版社 |year=1981 |isbn=4-11-880050-X' |
|||
}, { |
|||
'title=[[:en:Help:Citation_Style_1#Accept-this-as-written_markup|ストラヴィンスキー自伝]] |author=イーゴリ・ストラヴィンスキー |author-link=イーゴリ・ストラヴィンスキー |translator=塚谷晃弘 |translator-link=塚谷晃弘 |publisher=全音楽譜出版社 |year=1981 |isbn=((4-11-880050-X))' |
|||
}, { |
|||
'title=書籍のタイトル |date=2011 |page=5 |quote=引用文' |
|||
}, { |
|||
'title=書籍のタイトル |date=2011-2012 |pages=5-6 |quote=引用文' |
|||
}, { |
|||
'title=書籍のタイトル |date=2011–2012 |pages=5–6 |quote=引用文' |
|||
}, { |
|||
'title=書籍のタイトル |date=2011年12月 |at=表紙裏 |quote=引用文' |
|||
} |
|||
}) |
|||
end |
|||
utilities.set_selected_modules(cfg) |
|||
function p:test_citation() |
|||
validation.set_selected_modules(cfg, utilities) |
|||
self:preprocess_equals_preprocess_many('{{利用者:本日晴天/sandbox/Template:Citation|和書|', '}}', '{{Citation|和書|', '}}', { |
|||
{ |
|||
'last1=ミスナー |first1=C. W. |last2=ソーン |first2=K. S. |last3=ホイーラー |first3=J. A. |title=重力理論 |translator=若野省己 |publisher=丸善出版 |date=2011-04-07 |page=1300 |isbn=978-4621083277 |ref=harv' |
|||
}, { |
|||
'title=共産党宣言 |author1=カール・マルクス |authorlink=カール・マルクス |author2=フリードリヒ・エンゲルス |authorlink2=フリードリヒ・エンゲルス |year=1848' |
|||
}, { |
|||
'url=https://www.saibanin.courts.go.jp/index.html |title=裁判員制度 |publisher=最高裁判所 |accessdate=2009-09-03' |
|||
} |
|||
}) |
|||
end |
|||
local lang = mw.language.getContentLanguage() |
|||
function p:test_conference() |
|||
local lang2 = mw.language.new('en') |
|||
self:preprocess_equals_preprocess_many('{{利用者:本日晴天/sandbox/Template:Cite conference|和書 |', '}}', '{{Cite conference|和書 |', '}}', { |
|||
{ |
|||
[==[ |
|||
url = https://kokkai.ndl.go.jp/#/detail?minId=115105254X02820010509 |
|||
| date = 2001-05-09 |
|||
| title = 衆議院本会議 |
|||
| volume = 28 |
|||
| conference = 第151回国会 |
|||
| quote = 私の内閣の方針に反対する勢力、これはすべて抵抗勢力であります。 |
|||
]==] |
|||
} |
|||
}) |
|||
end |
|||
local format_date_tests = { |
|||
function p:test_interview() |
|||
{ lang:formatDate('Y年Fj日'), ja = 'T', dmy = lang2:formatDate('j F Y'), mdy = lang2:formatDate('F j, Y'), ymd = lang2:formatDate('Y-m-d') }, |
|||
self:preprocess_equals_preprocess_many('{{利用者:本日晴天/sandbox/Template:Cite interview|和書 |', '}}', '{{Cite interview|和書 |', '}}', { |
|||
{ lang:formatDate('Y-m-d'), ja = 'T', dmy = lang2:formatDate('j F Y'), mdy = lang2:formatDate('F j, Y'), ymd = lang2:formatDate('Y-m-d') }, |
|||
{ |
|||
{ lang2:formatDate('F j, Y'), ja = 'T', dmy = lang2:formatDate('j F Y'), mdy = lang2:formatDate('F j, Y'), ymd = lang2:formatDate('Y-m-d') }, |
|||
'subject=米澤明 |year=2010 |interviewer=上野真理子 |url=http://job.rikunabi.com/2011/media/sj/work/business/business_vol10.html |title=社会現象化するアニメ『けいおん!』 |work=[[リクナビ]]就職ジャーナル |publisher=[[リクルートホールディングス|リクルート]] |program=ビジネスパーソン研究FILE |access-date=2010-05-01 |archive-url=https://web.archive.org/web/20100220144202/http://job.rikunabi.com/2011/media/sj/work/business/business_vol10.html |archive-date=2010-02-20' |
|||
{ lang2:formatDate('M j, Y'), ja = 'T', dmy = lang2:formatDate('j F Y'), mdy = lang2:formatDate('F j, Y'), ymd = lang2:formatDate('Y-m-d') }, |
|||
}, { |
|||
{ lang2:formatDate('j F Y'), ja = 'T', dmy = lang2:formatDate('j F Y'), mdy = lang2:formatDate('F j, Y'), ymd = lang2:formatDate('Y-m-d') }, |
|||
'subject=竹内薫 |subjectlink=竹内薫 |subject2=藤井かおり |date=2009-05-08 |title=波とツブツブとミミズと輪ゴム!?最新の「量子論」 物語性とビジュアル化でわかりやすく |url=http://www.zakzak.co.jp/gei/200905/g2009050818_all.html |work=[[夕刊フジ|ZAKZAK]] |publisher=[[産業経済新聞社]] |program=芸能 |access-date=2010-08-21 |archive-url=https://web.archive.org/web/20160305043339/http://www.zakzak.co.jp/gei/200905/g2009050818_all.html |archive-date=2016-03-05' |
|||
{ lang2:formatDate('j M Y'), ja = 'T', dmy = lang2:formatDate('j F Y'), mdy = lang2:formatDate('F j, Y'), ymd = lang2:formatDate('Y-m-d') }, |
|||
{ '2023年12月15日', ja = 'T', dmy = '15 December 2023', mdy = 'December 15, 2023', ymd = '2023-12-15' }, |
|||
{ '2023-12-15', ja = 'T', dmy = '15 December 2023', mdy = 'December 15, 2023', ymd = '2023-12-15' }, |
|||
{ '2023年9月1日', ja = 'T', dmy = '1 September 2023', mdy = 'September 1, 2023', ymd = '2023-09-01' }, |
|||
{ '2023年09月1日', ja = 'T', dmy = '1 September 2023', mdy = 'September 1, 2023', ymd = '2023-09-01' }, |
|||
{ '2023年9月01日', ja = 'T', dmy = '1 September 2023', mdy = 'September 1, 2023', ymd = '2023-09-01' }, |
|||
{ '2023年09月01日', ja = 'T', dmy = '1 September 2023', mdy = 'September 1, 2023', ymd = '2023-09-01' }, |
|||
{ '2023-09-01', ja = 'T', dmy = '1 September 2023', mdy = 'September 1, 2023', ymd = '2023-09-01' }, |
|||
{ '2023-09-1', ja = 'T', dmy = '1 September 2023', mdy = 'September 1, 2023', ymd = '2023-09-01' }, |
|||
{ '2023-9-01', ja = 'T', dmy = '1 September 2023', mdy = 'September 1, 2023', ymd = '2023-09-01' }, |
|||
{ '2023-9-1', ja = 'T', dmy = '1 September 2023', mdy = 'September 1, 2023', ymd = '2023-09-01' }, |
|||
{ '2023年9月', ja = 'T', dmy = 'September 2023', mdy = 'September 2023' }, |
|||
{ '2023年09月', ja = 'T', dmy = 'September 2023', mdy = 'September 2023' }, |
|||
{ '2023-09', ja = 'T', dmy = 'September 2023', mdy = 'September 2023' }, |
|||
{ '2023-9', ja = 'T', dmy = 'September 2023', mdy = 'September 2023' }, |
|||
{ 'September 2023', ja = 'T', dmy = 'September 2023', mdy = 'September 2023' }, |
|||
{ '2023年', ja = 'T', dmy = '2023', mdy = '2023', ymd = '2023' }, |
|||
{ '2023', ja = 'T', dmy = '2023', mdy = '2023' }, |
|||
{ |
|||
lang:formatDate('Y年12月31日', '+1 years'), |
|||
ja = 'T', |
|||
dmy = '31 December ' .. lang2:formatDate('Y', '+1 years'), |
|||
mdy = 'December 31, ' .. lang2:formatDate('Y', '+1 years'), |
|||
ymd = lang2:formatDate('Y-12-31', '+1 years') |
|||
}, { |
|||
lang:formatDate('Y-12-31', '+1 years'), |
|||
ja = 'T', |
|||
dmy = '31 December ' .. lang2:formatDate('Y', '+1 years'), |
|||
mdy = 'December 31, ' .. lang2:formatDate('Y', '+1 years'), |
|||
ymd = lang2:formatDate('Y-12-31', '+1 years') |
|||
}, |
|||
{ '2023-2024', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' }, |
|||
{ '2023–2024', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' }, |
|||
{ '2023年-2024年', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' }, |
|||
{ '2023年–2024年', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' }, |
|||
{ '2023-2024年', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' }, |
|||
{ '2023 – 2024年', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' }, |
|||
{ '2023年 - 2024年', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' }, |
|||
{ '2023年 – 2024年', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' }, |
|||
{ '2023 - 2024年', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' }, |
|||
{ '2023 – 2024年', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' }, |
|||
{ |
|||
'2023年9月-2024年1月', |
|||
dmy = 'September 2023 – January 2024', |
|||
mdy = 'September 2023 – January 2024', |
|||
ja = '2023年9月 - 2024年1月' |
|||
}, { |
|||
'2023年9月-10月', |
|||
dmy = 'September–October 2023', |
|||
mdy = 'September–October 2023', |
|||
ja = '2023年9月 - 10月' |
|||
}, { |
|||
'2023年9月5日-2024年1月1日', |
|||
dmy = '5 September 2023 – 1 January 2024', |
|||
mdy = 'September 5, 2023 – January 1, 2024', |
|||
ja = '2023年9月5日 - 2024年1月1日' |
|||
}, { |
|||
'2023年9月5日-10月1日', |
|||
dmy = '5 September – 1 October 2023', |
|||
mdy = 'September 5 – October 1, 2023', |
|||
ja = '2023年9月5日 - 10月1日' |
|||
}, { |
|||
'2023年9月5日-10日', |
|||
dmy = '5–10 September 2023', |
|||
mdy = 'September 5–10, 2023', |
|||
ja = '2023年9月5日 - 10日' |
|||
}, |
|||
{ '2012–13', ja = '2012年 - 2013年', dmy = '2012–2013', mdy = '2012–2013' }, |
|||
{ '2010-11', ja = '2010年11月', dmy = 'November 2010', mdy = 'November 2010' }, |
|||
} |
} |
||
}) |
|||
end |
|||
function |
local function format_date(value, date_format) |
||
local date_parameters_list = { ['date'] = {val = value} } |
|||
self:preprocess_equals_preprocess_many('{{利用者:本日晴天/sandbox/Template:Cite journal|和書|', '}}', '{{Cite journal|和書|', '}}', { |
|||
local error_list = {} |
|||
{ |
|||
validation.dates(date_parameters_list, {}, error_list) |
|||
'author=伊藤一夫 |author2=植村泰忠 |authorlink2=植村泰忠 |author3=江崎玲於奈 |authorlink3=江崎玲於奈 |author4=金井英三 |author5=木下是雄 |authorlink5=木下是雄 |author6=小谷正雄 |authorlink6=小谷正雄 |author7=坂井光夫 |author8=柴田長吉郎 |author9=高橋秀俊 |authorlink9=高橋秀俊 |title=基礎と応用をつなぐもの |journal=日本物理學會誌 |volume=12 |issue=9 |date=1957-09-05 |naid=110002070066' |
|||
if #error_list > 0 then return 'invalid date' end |
|||
} |
|||
return validation.reformat_dates(date_parameters_list, date_format) and |
|||
}) |
|||
date_parameters_list['date'].val |
|||
end |
end |
||
function p: |
function p:test_format_dates_01_ja() |
||
for _, v in ipairs(format_date_tests) do |
|||
self:preprocess_equals_preprocess_many('{{利用者:本日晴天/sandbox/Template:Cite news ja|', '}}', '{{Cite news|和書|', '}}', { |
|||
local case, expected = v[1], v['ja'] |
|||
{ |
|||
if expected == 'T' then |
|||
'author=山川公生 |title=女流将棋、新棋戦花盛り - 予選方式や持ち時間に工夫 |date=2019-02-16 |newspaper=日本経済新聞 |issue = 47759 |edition= 土曜版、第13版 |page= 36' |
|||
local frame = mw.getCurrentFrame() |
|||
}, { |
|||
local iso_date = frame:expandTemplate{ title = 'ISO dateJA', args = { case } } |
|||
'title=女流将棋、新棋戦花盛り - 予選方式や持ち時間に工夫 |date=2019-02-16 |newspaper=日本経済新聞 |issue = 47759 |edition= 土曜版、第13版 |page= 36' |
|||
local args = { case, isodate = iso_date, defaultdate= case } |
|||
} |
|||
expected = frame:expandTemplate{ title = 'Citation/showdate', args = args } |
|||
}) |
|||
end |
|||
self:equals(case, format_date(case, 'ja'), expected or false) |
|||
end |
|||
end |
end |
||
function p: |
function p:test_format_dates_02_dmy() |
||
for _, v in ipairs(format_date_tests) do |
|||
self:preprocess_equals_preprocess_many('{{利用者:本日晴天/sandbox/Template:Cite press release|和書|', '}}', '{{Cite press release|和書|', '}}', { |
|||
local case, expected = v[1], v['dmy'] |
|||
{ |
|||
self:equals(case, format_date(case, 'dmy'), expected or false) |
|||
'title=4/23日(水)「ロックタウン東大阪」の開店について |publisher=[[ロック開発]]株式会社・[[イオン (企業)|イオン]]株式会社 |date=2008-04-16 |language=ja |url=http://www.aeon.info/export/sites/aeon/ICSFiles/afieldfile/2008/04/16/080416R.pdf ' |
|||
end |
|||
} |
|||
}) |
|||
end |
end |
||
function p: |
function p:test_format_dates_03_mdy() |
||
for _, v in ipairs(format_date_tests) do |
|||
self:preprocess_equals_preprocess_many('{{利用者:本日晴天/sandbox/Template:Cite report|和書 |', '}}', '{{Cite report|和書 |', '}}', { |
|||
local case, expected = v[1], v['mdy'] |
|||
{ |
|||
self:equals(case, format_date(case, 'mdy'), expected or false) |
|||
'language=ja |author=張田吉昭 |author2=畑村洋太郎 |authorlink2=畑村洋太郎 |title=福知山線脱線事故 |series=失敗知識データベース |publisher=畑村創造工学研究所 |url=http://www.sozogaku.com/fkd/cf/CZ0200711.html |id=事例ID:CZ0200711' |
|||
end |
|||
}, { |
|||
'language=ja |author=前田弘毅 |editor=帯谷知可、林忠行編 |chapter=グルジア・ナショナリズムの源流 - 17世紀叙事詩『テイムラズとルスタヴェリの対話』の意味すること |title=スラブ・ユーラシア世界における国家とエスシニティ |volume=II |series=JCAS Occasional Paper no. 20, 2003 <JCAC-SRC Series ii> |publisher=国立民族学博物館 地域研究企画交流センター |year=2003 |pages=37-44' |
|||
} |
|||
}) |
|||
end |
end |
||
function p: |
function p:test_format_dates_04_ymd() |
||
for _, v in ipairs(format_date_tests) do |
|||
self:preprocess_equals_preprocess_many('{{利用者:本日晴天/sandbox/Template:Cite thesis|和書 |', '}}', '{{Cite thesis|和書 |', '}}', { |
|||
local case, expected = v[1], v['ymd'] |
|||
{ |
|||
self:equals(case, format_date(case, 'ymd'), expected or false) |
|||
'degree= 博士(学術)|title= 地域主義運動における言語と知識人 - エストニア南部ヴォル地方の事例から|author= 寒水明子|year= 1998|publisher= 総合研究大学院大学|major= 文化科学研究科地域文化学|doi= 10.11501/3157023|id= 学位授与番号: 甲第358号' |
|||
end |
|||
} |
|||
}) |
|||
end |
end |
||
function p: |
function p:test_invalid_dates() |
||
local function test(case) |
|||
self:preprocess_equals_preprocess_many('{{利用者:本日晴天/sandbox/Template:Cite web ja|', '}}', '{{Cite web|', '}}', { |
|||
self:equals(case, format_date(case, 'mdy'), 'invalid date') |
|||
{ |
|||
end |
|||
'url=https://www.saibanin.courts.go.jp/index.html |title=裁判員制度 |publisher=最高裁判所 |accessdate=2009-09-03' |
|||
}, { |
|||
test('9月15日') |
|||
'author=山田花子 |author2=鈴木太郎 |url=https://somewhere.example.net/~yamada/doc1 |title=文章のタイトル |date=1999-12-31 |accessdate=2007-06-15', |
|||
test('09月15日') |
|||
'author=山田花子 |coauthors=鈴木太郎 |url=https://somewhere.example.net/~yamada/doc1 |title=文章のタイトル |date=1999-12-31 |accessdate=2007-06-15' |
|||
test('09-15') |
|||
}, { |
|||
test('9-15') |
|||
'last=山田 |first=花子 |url=https://somewhere.example.net/~yamada/doc1 |title=文章のタイトル |date=1999-12-31 |accessdate=2007-06-15' |
|||
test('2023年9月32日') |
|||
}, { |
|||
test('2023年09月32日') |
|||
'url=https://www.adobe.com/jp/aboutadobe/pressroom/pressreleases/pdfs/20080603_acrobat9pro.pdf |title=アドビシステムズ社、PDFによるコミュニケーションを革新するAdobe Acrobat 9を発表 |format=PDF |publisher=アドビシステムズ |date=2008-06-03 |accessdate=2009-06-10' |
|||
test('2023-09-32') |
|||
}, { |
|||
test('2023-9-32') |
|||
'url=https://www.adobe.com/jp/aboutadobe/pressroom/pressreleases/pdfs/20080603_acrobat9pro.pdf |title=アドビシステムズ社、PDFによるコミュニケーションを革新するAdobe Acrobat 9を発表 |publisher=アドビシステムズ |date=2008-06-03 |accessdate=2009-06-10' |
|||
test('2023年13月1日') |
|||
}, { |
|||
test('2023年13月01日') |
|||
'url=http://www.japanpost.jp/whatsnew/oshirase/53.html |title=新潟県中越沖地震関連情報 |publisher=日本郵政公社 |accessdate=2012-02-02 |archiveurl=https://warp.da.ndl.go.jp/info:ndljp/pid/260426/www.japanpost.jp/whatsnew/oshirase/53.html |archivedate=2007-08-30 |url-status-date= 2012-10-31', |
|||
test('2023-13-01') |
|||
'url=http://www.japanpost.jp/whatsnew/oshirase/53.html |title=新潟県中越沖地震関連情報 |publisher=日本郵政公社 |accessdate=2012-02-02 |archiveurl=https://warp.da.ndl.go.jp/info:ndljp/pid/260426/www.japanpost.jp/whatsnew/oshirase/53.html |archivedate=2007-08-30 |deadlinkdate= 2012-10-31' |
|||
test('2023-13-1') |
|||
}, { |
|||
test('2023年2月29日') |
|||
'url=http://www.japanpost.jp/whatsnew/oshirase/53.html |title=新潟県中越沖地震関連情報 |publisher=日本郵政公社 |accessdate=2012-02-02 |url-status-date= 2012-10-31', |
|||
test('2023-02-29') |
|||
'url=http://www.japanpost.jp/whatsnew/oshirase/53.html |title=新潟県中越沖地震関連情報 |publisher=日本郵政公社 |accessdate=2012-02-02 |deadlinkdate= 2012-10-31' |
|||
test('2023年9月15日') |
|||
}, { |
|||
test('2023年0月15日') |
|||
'url=http://www.japanpost.jp/whatsnew/oshirase/53.html |title=新潟県中越沖地震関連情報 |publisher=日本郵政公社 |accessdate=2012-02-02 |archiveurl=https://warp.da.ndl.go.jp/info:ndljp/pid/260426/www.japanpost.jp/whatsnew/oshirase/53.html |archivedate=2007-08-30 |url-status=live' |
|||
test('2023年00月15日') |
|||
}, { |
|||
test('2023-00-15') |
|||
'url=http://www.japanpost.jp/whatsnew/oshirase/53.html |title=新潟県中越沖地震関連情報 |publisher=日本郵政公社 |accessdate=2012-02-02 |archiveurl=https://warp.da.ndl.go.jp/info:ndljp/pid/260426/www.japanpost.jp/whatsnew/oshirase/53.html |archivedate=2007-08-30 |url-status=unfit' |
|||
test('2023-0-15') |
|||
}, { |
|||
test('2023年9月0日') |
|||
'url=//example.com |title=文書のタイトル |work=WORK |website=WEBSITE |accessdate=2021-12-28 ' |
|||
test('2023年09月00日') |
|||
}, { |
|||
test('2023-09-0') |
|||
'url=//example.com |title=文書のタイトル |accessdate=2021-12-28 |quote=引用文' |
|||
test('2023-9-0') |
|||
}, { |
|||
test(lang:formatDate('Y年1月1日', '+2 years')) |
|||
'url=//example.com |title=文書のタイトル |work=WORK |website=WEBSITE |accessdate=2021-12-28 |quote=引用文 |quote-page=5' |
|||
test(lang:formatDate('Y-01-01', '+2 years')) |
|||
} |
|||
test('2024-2023') |
|||
}) |
|||
test('2024–2023') |
|||
test('2024年-2023年') |
|||
test('2024年–2023年') |
|||
test('2024-2023年') |
|||
test('2024–2023年') |
|||
test('2024–23') |
|||
test('2010–11') |
|||
end |
end |
||
2024年12月9日 (月) 13:29時点における最新版
これはモジュール「モジュール:Citation/CS-ja」のテストケースページです。テストケースの結果を参照してください。 |
local p = require('Module:UnitTests')
local cfg = mw.loadData('Module:Citation/CS-ja/Configuration/sandbox')
local utilities = require('Module:Citation/CS1/Utilities/sandbox')
local validation = require('Module:Citation/CS1/Date validation/sandbox')
utilities.set_selected_modules(cfg)
validation.set_selected_modules(cfg, utilities)
local lang = mw.language.getContentLanguage()
local lang2 = mw.language.new('en')
local format_date_tests = {
{ lang:formatDate('Y年Fj日'), ja = 'T', dmy = lang2:formatDate('j F Y'), mdy = lang2:formatDate('F j, Y'), ymd = lang2:formatDate('Y-m-d') },
{ lang:formatDate('Y-m-d'), ja = 'T', dmy = lang2:formatDate('j F Y'), mdy = lang2:formatDate('F j, Y'), ymd = lang2:formatDate('Y-m-d') },
{ lang2:formatDate('F j, Y'), ja = 'T', dmy = lang2:formatDate('j F Y'), mdy = lang2:formatDate('F j, Y'), ymd = lang2:formatDate('Y-m-d') },
{ lang2:formatDate('M j, Y'), ja = 'T', dmy = lang2:formatDate('j F Y'), mdy = lang2:formatDate('F j, Y'), ymd = lang2:formatDate('Y-m-d') },
{ lang2:formatDate('j F Y'), ja = 'T', dmy = lang2:formatDate('j F Y'), mdy = lang2:formatDate('F j, Y'), ymd = lang2:formatDate('Y-m-d') },
{ lang2:formatDate('j M Y'), ja = 'T', dmy = lang2:formatDate('j F Y'), mdy = lang2:formatDate('F j, Y'), ymd = lang2:formatDate('Y-m-d') },
{ '2023年12月15日', ja = 'T', dmy = '15 December 2023', mdy = 'December 15, 2023', ymd = '2023-12-15' },
{ '2023-12-15', ja = 'T', dmy = '15 December 2023', mdy = 'December 15, 2023', ymd = '2023-12-15' },
{ '2023年9月1日', ja = 'T', dmy = '1 September 2023', mdy = 'September 1, 2023', ymd = '2023-09-01' },
{ '2023年09月1日', ja = 'T', dmy = '1 September 2023', mdy = 'September 1, 2023', ymd = '2023-09-01' },
{ '2023年9月01日', ja = 'T', dmy = '1 September 2023', mdy = 'September 1, 2023', ymd = '2023-09-01' },
{ '2023年09月01日', ja = 'T', dmy = '1 September 2023', mdy = 'September 1, 2023', ymd = '2023-09-01' },
{ '2023-09-01', ja = 'T', dmy = '1 September 2023', mdy = 'September 1, 2023', ymd = '2023-09-01' },
{ '2023-09-1', ja = 'T', dmy = '1 September 2023', mdy = 'September 1, 2023', ymd = '2023-09-01' },
{ '2023-9-01', ja = 'T', dmy = '1 September 2023', mdy = 'September 1, 2023', ymd = '2023-09-01' },
{ '2023-9-1', ja = 'T', dmy = '1 September 2023', mdy = 'September 1, 2023', ymd = '2023-09-01' },
{ '2023年9月', ja = 'T', dmy = 'September 2023', mdy = 'September 2023' },
{ '2023年09月', ja = 'T', dmy = 'September 2023', mdy = 'September 2023' },
{ '2023-09', ja = 'T', dmy = 'September 2023', mdy = 'September 2023' },
{ '2023-9', ja = 'T', dmy = 'September 2023', mdy = 'September 2023' },
{ 'September 2023', ja = 'T', dmy = 'September 2023', mdy = 'September 2023' },
{ '2023年', ja = 'T', dmy = '2023', mdy = '2023', ymd = '2023' },
{ '2023', ja = 'T', dmy = '2023', mdy = '2023' },
{
lang:formatDate('Y年12月31日', '+1 years'),
ja = 'T',
dmy = '31 December ' .. lang2:formatDate('Y', '+1 years'),
mdy = 'December 31, ' .. lang2:formatDate('Y', '+1 years'),
ymd = lang2:formatDate('Y-12-31', '+1 years')
}, {
lang:formatDate('Y-12-31', '+1 years'),
ja = 'T',
dmy = '31 December ' .. lang2:formatDate('Y', '+1 years'),
mdy = 'December 31, ' .. lang2:formatDate('Y', '+1 years'),
ymd = lang2:formatDate('Y-12-31', '+1 years')
},
{ '2023-2024', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' },
{ '2023–2024', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' },
{ '2023年-2024年', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' },
{ '2023年–2024年', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' },
{ '2023-2024年', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' },
{ '2023 – 2024年', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' },
{ '2023年 - 2024年', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' },
{ '2023年 – 2024年', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' },
{ '2023 - 2024年', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' },
{ '2023 – 2024年', ja = '2023年 - 2024年', dmy = '2023–2024', mdy = '2023–2024' },
{
'2023年9月-2024年1月',
dmy = 'September 2023 – January 2024',
mdy = 'September 2023 – January 2024',
ja = '2023年9月 - 2024年1月'
}, {
'2023年9月-10月',
dmy = 'September–October 2023',
mdy = 'September–October 2023',
ja = '2023年9月 - 10月'
}, {
'2023年9月5日-2024年1月1日',
dmy = '5 September 2023 – 1 January 2024',
mdy = 'September 5, 2023 – January 1, 2024',
ja = '2023年9月5日 - 2024年1月1日'
}, {
'2023年9月5日-10月1日',
dmy = '5 September – 1 October 2023',
mdy = 'September 5 – October 1, 2023',
ja = '2023年9月5日 - 10月1日'
}, {
'2023年9月5日-10日',
dmy = '5–10 September 2023',
mdy = 'September 5–10, 2023',
ja = '2023年9月5日 - 10日'
},
{ '2012–13', ja = '2012年 - 2013年', dmy = '2012–2013', mdy = '2012–2013' },
{ '2010-11', ja = '2010年11月', dmy = 'November 2010', mdy = 'November 2010' },
}
local function format_date(value, date_format)
local date_parameters_list = { ['date'] = {val = value} }
local error_list = {}
validation.dates(date_parameters_list, {}, error_list)
if #error_list > 0 then return 'invalid date' end
return validation.reformat_dates(date_parameters_list, date_format) and
date_parameters_list['date'].val
end
function p:test_format_dates_01_ja()
for _, v in ipairs(format_date_tests) do
local case, expected = v[1], v['ja']
if expected == 'T' then
local frame = mw.getCurrentFrame()
local iso_date = frame:expandTemplate{ title = 'ISO dateJA', args = { case } }
local args = { case, isodate = iso_date, defaultdate= case }
expected = frame:expandTemplate{ title = 'Citation/showdate', args = args }
end
self:equals(case, format_date(case, 'ja'), expected or false)
end
end
function p:test_format_dates_02_dmy()
for _, v in ipairs(format_date_tests) do
local case, expected = v[1], v['dmy']
self:equals(case, format_date(case, 'dmy'), expected or false)
end
end
function p:test_format_dates_03_mdy()
for _, v in ipairs(format_date_tests) do
local case, expected = v[1], v['mdy']
self:equals(case, format_date(case, 'mdy'), expected or false)
end
end
function p:test_format_dates_04_ymd()
for _, v in ipairs(format_date_tests) do
local case, expected = v[1], v['ymd']
self:equals(case, format_date(case, 'ymd'), expected or false)
end
end
function p:test_invalid_dates()
local function test(case)
self:equals(case, format_date(case, 'mdy'), 'invalid date')
end
test('9月15日')
test('09月15日')
test('09-15')
test('9-15')
test('2023年9月32日')
test('2023年09月32日')
test('2023-09-32')
test('2023-9-32')
test('2023年13月1日')
test('2023年13月01日')
test('2023-13-01')
test('2023-13-1')
test('2023年2月29日')
test('2023-02-29')
test('2023年9月15日')
test('2023年0月15日')
test('2023年00月15日')
test('2023-00-15')
test('2023-0-15')
test('2023年9月0日')
test('2023年09月00日')
test('2023-09-0')
test('2023-9-0')
test(lang:formatDate('Y年1月1日', '+2 years'))
test(lang:formatDate('Y-01-01', '+2 years'))
test('2024-2023')
test('2024–2023')
test('2024年-2023年')
test('2024年–2023年')
test('2024-2023年')
test('2024–2023年')
test('2024–23')
test('2010–11')
end
return p