diff -Nru libdatetime-format-strptime-perl-1.7700/azure-pipelines.yml libdatetime-format-strptime-perl-1.7800/azure-pipelines.yml --- libdatetime-format-strptime-perl-1.7700/azure-pipelines.yml 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/azure-pipelines.yml 2020-12-15 20:20:14.000000000 +0000 @@ -3,7 +3,7 @@ - repository: ci-perl-helpers type: github name: houseabsolute/ci-perl-helpers - endpoint: houseabsolute/ci-perl-helpers + endpoint: houseabsolute stages: - template: templates/helpers/build.yml@ci-perl-helpers diff -Nru libdatetime-format-strptime-perl-1.7700/Changes libdatetime-format-strptime-perl-1.7800/Changes --- libdatetime-format-strptime-perl-1.7700/Changes 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/Changes 2020-12-15 20:20:14.000000000 +0000 @@ -1,3 +1,14 @@ +1.78 2020-12-15 + +* Fix tests for new failure caused by locale data changes in DateTime::Locale + 1.29. Reported by cthulhu8zombie. GH #28. + +* Added a warning about using locale-specific patterns. Some of these patterns + can change quite a bit as the locale data is updated, so using them for + parsing does not produce stable results across time. This is what caused the + test failures that this release fixes. + + 1.77 2020-02-29 * When the parsed string contained an invalid time zone offset (parsed with diff -Nru libdatetime-format-strptime-perl-1.7700/CONTRIBUTING.md libdatetime-format-strptime-perl-1.7800/CONTRIBUTING.md --- libdatetime-format-strptime-perl-1.7700/CONTRIBUTING.md 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/CONTRIBUTING.md 2020-12-15 20:20:14.000000000 +0000 @@ -104,4 +104,4 @@ ## Generated By This file was generated via Dist::Zilla::Plugin::GenerateFile::FromShareDir 0.014 from a -template file originating in Dist-Zilla-PluginBundle-DROLSKY-1.05. +template file originating in Dist-Zilla-PluginBundle-DROLSKY-1.09. diff -Nru libdatetime-format-strptime-perl-1.7700/cpanfile libdatetime-format-strptime-perl-1.7800/cpanfile --- libdatetime-format-strptime-perl-1.7700/cpanfile 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/cpanfile 2020-12-15 20:20:14.000000000 +0000 @@ -1,6 +1,9 @@ +# This file is generated by Dist::Zilla::Plugin::CPANFile v6.017 +# Do not edit this file directly. To change prereqs, edit the `dist.ini` file. + requires "Carp" => "0"; requires "DateTime" => "1.00"; -requires "DateTime::Locale" => "1.23"; +requires "DateTime::Locale" => "1.30"; requires "DateTime::Locale::Base" => "0"; requires "DateTime::Locale::FromData" => "0"; requires "DateTime::TimeZone" => "2.09"; @@ -46,7 +49,7 @@ requires "Code::TidyAll::Plugin::SortLines::Naturally" => "0.000003"; requires "Code::TidyAll::Plugin::Test::Vars" => "0.02"; requires "Cwd" => "0"; - requires "DateTime::Locale" => "1.23"; + requires "DateTime::Locale" => "1.30"; requires "File::Spec" => "0"; requires "IO::Handle" => "0"; requires "IPC::Open3" => "0"; diff -Nru libdatetime-format-strptime-perl-1.7700/debian/changelog libdatetime-format-strptime-perl-1.7800/debian/changelog --- libdatetime-format-strptime-perl-1.7700/debian/changelog 2020-03-07 18:01:17.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/debian/changelog 2020-12-18 16:26:06.000000000 +0000 @@ -1,3 +1,12 @@ +libdatetime-format-strptime-perl (1.7800-1) unstable; urgency=medium + + * Import upstream version 1.7800. + * Bump versioned (build) dependency on libdatetime-locale-perl. + * Declare compliance with Debian Policy 4.5.1. + * Bump debhelper-compat to 13. + + -- gregor herrmann Fri, 18 Dec 2020 17:26:06 +0100 + libdatetime-format-strptime-perl (1.7700-1) unstable; urgency=medium [ gregor herrmann ] diff -Nru libdatetime-format-strptime-perl-1.7700/debian/control libdatetime-format-strptime-perl-1.7800/debian/control --- libdatetime-format-strptime-perl-1.7700/debian/control 2020-03-07 18:01:17.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/debian/control 2020-12-18 16:26:06.000000000 +0000 @@ -8,8 +8,8 @@ Section: perl Testsuite: autopkgtest-pkg-perl Priority: optional -Build-Depends: debhelper-compat (= 12) -Build-Depends-Indep: libdatetime-locale-perl (>= 1:1.23) , +Build-Depends: debhelper-compat (= 13) +Build-Depends-Indep: libdatetime-locale-perl (>= 1:1.30) , libdatetime-perl , libdatetime-timezone-perl (>= 1:2.09) , libjson-pp-perl , @@ -19,7 +19,7 @@ libtest-warnings-perl , libtry-tiny-perl , perl -Standards-Version: 4.5.0 +Standards-Version: 4.5.1 Vcs-Browser: https://salsa.debian.org/perl-team/modules/packages/libdatetime-format-strptime-perl Vcs-Git: https://salsa.debian.org/perl-team/modules/packages/libdatetime-format-strptime-perl.git Homepage: http://datetime.perl.org/ @@ -29,7 +29,7 @@ Architecture: all Depends: ${misc:Depends}, ${perl:Depends}, - libdatetime-locale-perl (>= 1:1.23), + libdatetime-locale-perl (>= 1:1.30), libdatetime-perl, libdatetime-timezone-perl (>= 1:2.09), libparams-validationcompiler-perl, diff -Nru libdatetime-format-strptime-perl-1.7700/dist.ini libdatetime-format-strptime-perl-1.7800/dist.ini --- libdatetime-format-strptime-perl-1.7700/dist.ini 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/dist.ini 2020-12-15 20:20:14.000000000 +0000 @@ -30,8 +30,8 @@ [=inc::GenerateLocaleTests] -;authordep DateTime::Locale = 1.23 +;authordep DateTime::Locale = 1.30 [Prereqs / DevelopRequires] -DateTime::Locale = 1.23 +DateTime::Locale = 1.30 Test::Fatal = 0 Test::More = 0.96 diff -Nru libdatetime-format-strptime-perl-1.7700/lib/DateTime/Format/Strptime/Types.pm libdatetime-format-strptime-perl-1.7800/lib/DateTime/Format/Strptime/Types.pm --- libdatetime-format-strptime-perl-1.7700/lib/DateTime/Format/Strptime/Types.pm 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/lib/DateTime/Format/Strptime/Types.pm 2020-12-15 20:20:14.000000000 +0000 @@ -3,7 +3,7 @@ use strict; use warnings; -our $VERSION = '1.77'; +our $VERSION = '1.78'; use parent 'Specio::Exporter'; @@ -63,7 +63,7 @@ =head1 VERSION -version 1.77 +version 1.78 =head1 DESCRIPTION diff -Nru libdatetime-format-strptime-perl-1.7700/lib/DateTime/Format/Strptime.pm libdatetime-format-strptime-perl-1.7800/lib/DateTime/Format/Strptime.pm --- libdatetime-format-strptime-perl-1.7700/lib/DateTime/Format/Strptime.pm 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/lib/DateTime/Format/Strptime.pm 2020-12-15 20:20:14.000000000 +0000 @@ -3,11 +3,11 @@ use strict; use warnings; -our $VERSION = '1.77'; +our $VERSION = '1.78'; use Carp qw( carp croak ); use DateTime 1.00; -use DateTime::Locale 1.23; +use DateTime::Locale 1.30; use DateTime::Format::Strptime::Types; use DateTime::TimeZone 2.09; use Exporter (); @@ -978,7 +978,7 @@ =head1 VERSION -version 1.77 +version 1.78 =head1 SYNOPSIS @@ -1175,6 +1175,12 @@ The datetime format according to the given locale. +Note that this format can change without warning in new versions of +L. You should not use this pattern unless the string you are +parsing was generated by using this pattern with L B you are +sure that this string was generated with the same version of +L that the parser is using. + =item * %C The century number (0-99). @@ -1282,10 +1288,22 @@ The date format according to the given locale. +Note that this format can change without warning in new versions of +L. You should not use this pattern unless the string you are +parsing was generated by using this pattern with L B you are +sure that this string was generated with the same version of +L that the parser is using. + =item * %X The time format according to the given locale. +Note that this format can change without warning in new versions of +L. You should not use this pattern unless the string you are +parsing was generated by using this pattern with L B you are +sure that this string was generated with the same version of +L that the parser is using. + =item * %y The year within century (0-99). When a century is not otherwise specified @@ -1360,7 +1378,7 @@ on free software full time (let's all have a chuckle at that together). To donate, log into PayPal and send money to autarch@urth.org, or use the -button at L. +button at L. =head1 AUTHORS diff -Nru libdatetime-format-strptime-perl-1.7700/Makefile.PL libdatetime-format-strptime-perl-1.7800/Makefile.PL --- libdatetime-format-strptime-perl-1.7700/Makefile.PL 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/Makefile.PL 2020-12-15 20:20:14.000000000 +0000 @@ -1,5 +1,5 @@ # This Makefile.PL for DateTime-Format-Strptime was generated by -# Dist::Zilla::Plugin::DROLSKY::MakeMaker 1.05 +# Dist::Zilla::Plugin::DROLSKY::MakeMaker 1.09 # and Dist::Zilla::Plugin::MakeMaker::Awesome 0.48. # Don't edit it but the dist.ini and plugins used to construct it. @@ -20,7 +20,7 @@ "PREREQ_PM" => { "Carp" => 0, "DateTime" => "1.00", - "DateTime::Locale" => "1.23", + "DateTime::Locale" => "1.30", "DateTime::Locale::Base" => 0, "DateTime::Locale::FromData" => 0, "DateTime::TimeZone" => "2.09", @@ -48,7 +48,7 @@ "lib" => 0, "utf8" => 0 }, - "VERSION" => "1.77", + "VERSION" => "1.78", "test" => { "TESTS" => "t/*.t" } @@ -57,7 +57,7 @@ my %FallbackPrereqs = ( "Carp" => 0, "DateTime" => "1.00", - "DateTime::Locale" => "1.23", + "DateTime::Locale" => "1.30", "DateTime::Locale::Base" => 0, "DateTime::Locale::FromData" => 0, "DateTime::TimeZone" => "2.09", diff -Nru libdatetime-format-strptime-perl-1.7700/MANIFEST libdatetime-format-strptime-perl-1.7800/MANIFEST --- libdatetime-format-strptime-perl-1.7700/MANIFEST 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/MANIFEST 2020-12-15 20:20:14.000000000 +0000 @@ -1,4 +1,4 @@ -# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. +# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.017. CODE_OF_CONDUCT.md CONTRIBUTING.md Changes @@ -134,8 +134,6 @@ xt/author/locale-ckb.t xt/author/locale-cs-CZ.t xt/author/locale-cs.t -xt/author/locale-cu-RU.t -xt/author/locale-cu.t xt/author/locale-cy-GB.t xt/author/locale-cy.t xt/author/locale-da-DK.t @@ -152,6 +150,8 @@ xt/author/locale-de-LU.t xt/author/locale-dje-NE.t xt/author/locale-dje.t +xt/author/locale-doi-IN.t +xt/author/locale-doi.t xt/author/locale-dsb-DE.t xt/author/locale-dsb.t xt/author/locale-dua-CM.t @@ -314,6 +314,19 @@ xt/author/locale-fa-AF.t xt/author/locale-fa-IR.t xt/author/locale-fa.t +xt/author/locale-ff-Adlm-BF.t +xt/author/locale-ff-Adlm-CM.t +xt/author/locale-ff-Adlm-GH.t +xt/author/locale-ff-Adlm-GM.t +xt/author/locale-ff-Adlm-GN.t +xt/author/locale-ff-Adlm-GW.t +xt/author/locale-ff-Adlm-LR.t +xt/author/locale-ff-Adlm-MR.t +xt/author/locale-ff-Adlm-NE.t +xt/author/locale-ff-Adlm-NG.t +xt/author/locale-ff-Adlm-SL.t +xt/author/locale-ff-Adlm-SN.t +xt/author/locale-ff-Adlm.t xt/author/locale-ff-Latn-BF.t xt/author/locale-ff-Latn-CM.t xt/author/locale-ff-Latn-GH.t @@ -475,7 +488,8 @@ xt/author/locale-ko.t xt/author/locale-kok-IN.t xt/author/locale-kok.t -xt/author/locale-ks-IN.t +xt/author/locale-ks-Arab-IN.t +xt/author/locale-ks-Arab.t xt/author/locale-ks.t xt/author/locale-ksb-TZ.t xt/author/locale-ksb.t @@ -517,6 +531,8 @@ xt/author/locale-luy.t xt/author/locale-lv-LV.t xt/author/locale-lv.t +xt/author/locale-mai-IN.t +xt/author/locale-mai.t xt/author/locale-mas-KE.t xt/author/locale-mas-TZ.t xt/author/locale-mas.t @@ -538,9 +554,13 @@ xt/author/locale-ml.t xt/author/locale-mn-MN.t xt/author/locale-mn.t +xt/author/locale-mni-Beng-IN.t +xt/author/locale-mni-Beng.t +xt/author/locale-mni.t xt/author/locale-mr-IN.t xt/author/locale-mr.t xt/author/locale-ms-BN.t +xt/author/locale-ms-ID.t xt/author/locale-ms-MY.t xt/author/locale-ms-SG.t xt/author/locale-ms.t @@ -596,10 +616,10 @@ xt/author/locale-pa-Guru-IN.t xt/author/locale-pa-Guru.t xt/author/locale-pa.t +xt/author/locale-pcm-NG.t +xt/author/locale-pcm.t xt/author/locale-pl-PL.t xt/author/locale-pl.t -xt/author/locale-prg-001.t -xt/author/locale-prg.t xt/author/locale-ps-AF.t xt/author/locale-ps-PK.t xt/author/locale-ps.t @@ -640,13 +660,21 @@ xt/author/locale-rw.t xt/author/locale-rwk-TZ.t xt/author/locale-rwk.t +xt/author/locale-sa-IN.t +xt/author/locale-sa.t xt/author/locale-sah-RU.t xt/author/locale-sah.t xt/author/locale-saq-KE.t xt/author/locale-saq.t +xt/author/locale-sat-Olck-IN.t +xt/author/locale-sat-Olck.t +xt/author/locale-sat.t xt/author/locale-sbp-TZ.t xt/author/locale-sbp.t -xt/author/locale-sd-PK.t +xt/author/locale-sd-Arab-PK.t +xt/author/locale-sd-Arab.t +xt/author/locale-sd-Deva-IN.t +xt/author/locale-sd-Deva.t xt/author/locale-sd.t xt/author/locale-se-FI.t xt/author/locale-se-NO.t @@ -693,6 +721,9 @@ xt/author/locale-sr-Latn-XK.t xt/author/locale-sr-Latn.t xt/author/locale-sr.t +xt/author/locale-su-Latn-ID.t +xt/author/locale-su-Latn.t +xt/author/locale-su.t xt/author/locale-sv-AX.t xt/author/locale-sv-FI.t xt/author/locale-sv-SE.t @@ -753,8 +784,6 @@ xt/author/locale-vai.t xt/author/locale-vi-VN.t xt/author/locale-vi.t -xt/author/locale-vo-001.t -xt/author/locale-vo.t xt/author/locale-vun-TZ.t xt/author/locale-vun.t xt/author/locale-wae-CH.t diff -Nru libdatetime-format-strptime-perl-1.7700/META.json libdatetime-format-strptime-perl-1.7800/META.json --- libdatetime-format-strptime-perl-1.7700/META.json 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/META.json 2020-12-15 20:20:14.000000000 +0000 @@ -5,7 +5,7 @@ "Rick Measham " ], "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.150010", + "generated_by" : "Dist::Zilla version 6.017, CPAN::Meta::Converter version 2.150010", "license" : [ "artistic_2" ], @@ -29,7 +29,7 @@ "Code::TidyAll::Plugin::SortLines::Naturally" : "0.000003", "Code::TidyAll::Plugin::Test::Vars" : "0.02", "Cwd" : "0", - "DateTime::Locale" : "1.23", + "DateTime::Locale" : "1.30", "File::Spec" : "0", "IO::Handle" : "0", "IPC::Open3" : "0", @@ -59,7 +59,7 @@ "requires" : { "Carp" : "0", "DateTime" : "1.00", - "DateTime::Locale" : "1.23", + "DateTime::Locale" : "1.30", "DateTime::Locale::Base" : "0", "DateTime::Locale::FromData" : "0", "DateTime::TimeZone" : "2.09", @@ -97,11 +97,11 @@ "provides" : { "DateTime::Format::Strptime" : { "file" : "lib/DateTime/Format/Strptime.pm", - "version" : "1.77" + "version" : "1.78" }, "DateTime::Format::Strptime::Types" : { "file" : "lib/DateTime/Format/Strptime/Types.pm", - "version" : "1.77" + "version" : "1.78" } }, "release_status" : "stable", @@ -109,7 +109,7 @@ "bugtracker" : { "web" : "https://github.com/houseabsolute/DateTime-Format-Strptime/issues" }, - "homepage" : "http://metacpan.org/release/DateTime-Format-Strptime", + "homepage" : "https://metacpan.org/release/DateTime-Format-Strptime", "repository" : { "type" : "git", "url" : "git://github.com/houseabsolute/DateTime-Format-Strptime.git", @@ -117,7 +117,7 @@ }, "x_MailingList" : "datetime@perl.org" }, - "version" : "1.77", + "version" : "1.78", "x_Dist_Zilla" : { "perl" : { "version" : "5.030001" @@ -147,32 +147,32 @@ } }, "name" : "@DROLSKY/Git::GatherDir", - "version" : "2.046" + "version" : "2.047" }, { "class" : "Dist::Zilla::Plugin::ManifestSkip", "name" : "@DROLSKY/ManifestSkip", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::License", "name" : "@DROLSKY/License", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::ExecDir", "name" : "@DROLSKY/ExecDir", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::ShareDir", "name" : "@DROLSKY/ShareDir", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::Manifest", "name" : "@DROLSKY/Manifest", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::CheckVersionIncrement", @@ -182,17 +182,17 @@ { "class" : "Dist::Zilla::Plugin::TestRelease", "name" : "@DROLSKY/TestRelease", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::ConfirmRelease", "name" : "@DROLSKY/ConfirmRelease", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::UploadToCPAN", "name" : "@DROLSKY/UploadToCPAN", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::VersionFromMainModule", @@ -213,7 +213,7 @@ { "class" : "Dist::Zilla::Plugin::AutoPrereqs", "name" : "@DROLSKY/AutoPrereqs", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::CopyFilesFromBuild", @@ -238,7 +238,7 @@ { "class" : "Dist::Zilla::Plugin::MetaResources", "name" : "@DROLSKY/MetaResources", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::MetaProvides::Package", @@ -248,7 +248,7 @@ { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : "@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM", - "version" : "6.012" + "version" : "6.017" } ], "include_underscores" : 0 @@ -275,22 +275,22 @@ { "class" : "Dist::Zilla::Plugin::MetaConfig", "name" : "@DROLSKY/MetaConfig", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::MetaJSON", "name" : "@DROLSKY/MetaJSON", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::MetaYAML", "name" : "@DROLSKY/MetaYAML", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::NextRelease", "name" : "@DROLSKY/NextRelease", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::Prereqs", @@ -301,7 +301,7 @@ } }, "name" : "@DROLSKY/Test::More with subtest", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::Prereqs", @@ -312,7 +312,7 @@ } }, "name" : "@DROLSKY/Modules for use with tidyall", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::Prereqs", @@ -323,7 +323,7 @@ } }, "name" : "@DROLSKY/Test::Version which fixes https://github.com/plicease/Test-Version/issues/7", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::PromptIfStale", @@ -340,7 +340,7 @@ } }, "name" : "@DROLSKY/Dist::Zilla::PluginBundle::DROLSKY", - "version" : "0.055" + "version" : "0.057" }, { "class" : "Dist::Zilla::Plugin::PromptIfStale", @@ -362,7 +362,7 @@ } }, "name" : "@DROLSKY/PromptIfStale", - "version" : "0.055" + "version" : "0.057" }, { "class" : "Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable", @@ -404,7 +404,7 @@ { "class" : "Dist::Zilla::Plugin::PodSyntaxTests", "name" : "@DROLSKY/PodSyntaxTests", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::DROLSKY::RunExtraTests", @@ -414,7 +414,7 @@ } }, "name" : "@DROLSKY/DROLSKY::RunExtraTests", - "version" : "1.05" + "version" : "1.09" }, { "class" : "Dist::Zilla::Plugin::MojibakeTests", @@ -498,7 +498,7 @@ { "class" : "Dist::Zilla::Plugin::Test::ReportPrereqs", "name" : "@DROLSKY/Test::ReportPrereqs", - "version" : "0.027" + "version" : "0.028" }, { "class" : "Dist::Zilla::Plugin::Test::Version", @@ -508,7 +508,7 @@ { "class" : "Dist::Zilla::Plugin::DROLSKY::Contributors", "name" : "@DROLSKY/DROLSKY::Contributors", - "version" : "1.05" + "version" : "1.09" }, { "class" : "Dist::Zilla::Plugin::Git::Contributors", @@ -662,6 +662,11 @@ "version" : "4.015" }, { + "class" : "Pod::Weaver::Section::AllowOverride", + "name" : "@DROLSKY/allow override Legal", + "version" : "0.05" + }, + { "class" : "Pod::Weaver::Section::Region", "name" : "@DROLSKY/footer", "version" : "4.015" @@ -675,7 +680,7 @@ { "class" : "Dist::Zilla::Plugin::DROLSKY::WeaverConfig", "name" : "@DROLSKY/DROLSKY::WeaverConfig", - "version" : "1.05" + "version" : "1.09" }, { "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod", @@ -741,12 +746,12 @@ { "class" : "Dist::Zilla::Plugin::CPANFile", "name" : "@DROLSKY/CPANFile", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::DROLSKY::License", "name" : "@DROLSKY/DROLSKY::License", - "version" : "1.05" + "version" : "1.09" }, { "class" : "Dist::Zilla::Plugin::CheckStrictVersion", @@ -783,7 +788,7 @@ } }, "name" : "@DROLSKY/DROLSKY::Git::CheckFor::CorrectBranch", - "version" : "1.05" + "version" : "1.09" }, { "class" : "Dist::Zilla::Plugin::EnsureChangesHasContent", @@ -804,7 +809,7 @@ { "class" : "Dist::Zilla::Plugin::DROLSKY::TidyAll", "name" : "@DROLSKY/DROLSKY::TidyAll", - "version" : "1.05" + "version" : "1.09" }, { "class" : "Dist::Zilla::Plugin::Git::Check", @@ -832,14 +837,15 @@ } }, "name" : "@DROLSKY/Git::Check", - "version" : "2.046" + "version" : "2.047" }, { "class" : "Dist::Zilla::Plugin::Git::Commit", "config" : { "Dist::Zilla::Plugin::Git::Commit" : { "add_files_in" : [], - "commit_msg" : "v%V%n%n%c" + "commit_msg" : "v%V%n%n%c", + "signoff" : 0 }, "Dist::Zilla::Role::Git::DirtyFiles" : { "allow_dirty" : [ @@ -864,7 +870,7 @@ } }, "name" : "@DROLSKY/Commit generated files", - "version" : "2.046" + "version" : "2.047" }, { "class" : "Dist::Zilla::Plugin::Git::Tag", @@ -873,7 +879,7 @@ "branch" : null, "changelog" : "Changes", "signed" : 0, - "tag" : "v1.77", + "tag" : "v1.78", "tag_format" : "v%V", "tag_message" : "v%V" }, @@ -886,7 +892,7 @@ } }, "name" : "@DROLSKY/Git::Tag", - "version" : "2.046" + "version" : "2.047" }, { "class" : "Dist::Zilla::Plugin::Git::Push", @@ -903,7 +909,7 @@ } }, "name" : "@DROLSKY/Git::Push", - "version" : "2.046" + "version" : "2.047" }, { "class" : "Dist::Zilla::Plugin::BumpVersionAfterRelease", @@ -925,7 +931,8 @@ "config" : { "Dist::Zilla::Plugin::Git::Commit" : { "add_files_in" : [], - "commit_msg" : "Bump version after release" + "commit_msg" : "Bump version after release", + "signoff" : 0 }, "Dist::Zilla::Role::Git::DirtyFiles" : { "allow_dirty" : [ @@ -946,7 +953,7 @@ } }, "name" : "@DROLSKY/Commit version bump", - "version" : "2.046" + "version" : "2.047" }, { "class" : "Dist::Zilla::Plugin::Git::Push", @@ -963,30 +970,30 @@ } }, "name" : "@DROLSKY/Push version bump", - "version" : "2.046" + "version" : "2.047" }, { "class" : "Dist::Zilla::Plugin::DROLSKY::MakeMaker", "config" : { "Dist::Zilla::Plugin::MakeMaker" : { "make_path" : "make", - "version" : "6.012" + "version" : "6.017" }, "Dist::Zilla::Plugin::MakeMaker::Awesome" : { "version" : "0.48" }, "Dist::Zilla::Role::TestRunner" : { "default_jobs" : 24, - "version" : "6.012" + "version" : "6.017" } }, "name" : "@DROLSKY/DROLSKY::MakeMaker", - "version" : "1.05" + "version" : "1.09" }, { "class" : "Dist::Zilla::Plugin::MetaResources", "name" : "MetaResources", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::lib", @@ -1014,62 +1021,62 @@ } }, "name" : "DevelopRequires", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":InstallModules", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":IncModules", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":TestFiles", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":ExtraTestFiles", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":ExecFiles", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":PerlExecFiles", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":ShareFiles", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":MainModule", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":AllFiles", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":NoFiles", - "version" : "6.012" + "version" : "6.017" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : "@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM", - "version" : "6.012" + "version" : "6.017" } ], "zilla" : { @@ -1077,7 +1084,7 @@ "config" : { "is_trial" : 0 }, - "version" : "6.012" + "version" : "6.017" } }, "x_authority" : "cpan:DROLSKY", @@ -1089,6 +1096,7 @@ "Mohammad S Anwar " ], "x_generated_by_perl" : "v5.30.1", - "x_serialization_backend" : "Cpanel::JSON::XS version 4.17" + "x_serialization_backend" : "Cpanel::JSON::XS version 4.19", + "x_spdx_expression" : "Artistic-2.0" } diff -Nru libdatetime-format-strptime-perl-1.7700/META.yml libdatetime-format-strptime-perl-1.7800/META.yml --- libdatetime-format-strptime-perl-1.7700/META.yml 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/META.yml 2020-12-15 20:20:14.000000000 +0000 @@ -16,7 +16,7 @@ configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.150010' +generated_by: 'Dist::Zilla version 6.017, CPAN::Meta::Converter version 2.150010' license: artistic_2 meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -25,14 +25,14 @@ provides: DateTime::Format::Strptime: file: lib/DateTime/Format/Strptime.pm - version: '1.77' + version: '1.78' DateTime::Format::Strptime::Types: file: lib/DateTime/Format/Strptime/Types.pm - version: '1.77' + version: '1.78' requires: Carp: '0' DateTime: '1.00' - DateTime::Locale: '1.23' + DateTime::Locale: '1.30' DateTime::Locale::Base: '0' DateTime::Locale::FromData: '0' DateTime::TimeZone: '2.09' @@ -51,9 +51,9 @@ resources: MailingList: datetime@perl.org bugtracker: https://github.com/houseabsolute/DateTime-Format-Strptime/issues - homepage: http://metacpan.org/release/DateTime-Format-Strptime + homepage: https://metacpan.org/release/DateTime-Format-Strptime repository: git://github.com/houseabsolute/DateTime-Format-Strptime.git -version: '1.77' +version: '1.78' x_Dist_Zilla: perl: version: '5.030001' @@ -78,27 +78,27 @@ Dist::Zilla::Plugin::Git::GatherDir: include_untracked: 0 name: '@DROLSKY/Git::GatherDir' - version: '2.046' + version: '2.047' - class: Dist::Zilla::Plugin::ManifestSkip name: '@DROLSKY/ManifestSkip' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::License name: '@DROLSKY/License' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::ExecDir name: '@DROLSKY/ExecDir' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::ShareDir name: '@DROLSKY/ShareDir' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::Manifest name: '@DROLSKY/Manifest' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::CheckVersionIncrement name: '@DROLSKY/CheckVersionIncrement' @@ -106,15 +106,15 @@ - class: Dist::Zilla::Plugin::TestRelease name: '@DROLSKY/TestRelease' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::ConfirmRelease name: '@DROLSKY/ConfirmRelease' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::UploadToCPAN name: '@DROLSKY/UploadToCPAN' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::VersionFromMainModule config: @@ -130,7 +130,7 @@ - class: Dist::Zilla::Plugin::AutoPrereqs name: '@DROLSKY/AutoPrereqs' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::CopyFilesFromBuild name: '@DROLSKY/CopyFilesFromBuild' @@ -149,7 +149,7 @@ - class: Dist::Zilla::Plugin::MetaResources name: '@DROLSKY/MetaResources' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::MetaProvides::Package config: @@ -158,7 +158,7 @@ - class: Dist::Zilla::Plugin::FinderCode name: '@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM' - version: '6.012' + version: '6.017' include_underscores: 0 Dist::Zilla::Role::MetaProvider::Provider: $Dist::Zilla::Role::MetaProvider::Provider::VERSION: '2.002004' @@ -177,19 +177,19 @@ - class: Dist::Zilla::Plugin::MetaConfig name: '@DROLSKY/MetaConfig' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::MetaJSON name: '@DROLSKY/MetaJSON' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::MetaYAML name: '@DROLSKY/MetaYAML' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::NextRelease name: '@DROLSKY/NextRelease' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::Prereqs config: @@ -197,7 +197,7 @@ phase: test type: requires name: '@DROLSKY/Test::More with subtest' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::Prereqs config: @@ -205,7 +205,7 @@ phase: develop type: requires name: '@DROLSKY/Modules for use with tidyall' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::Prereqs config: @@ -213,7 +213,7 @@ phase: develop type: requires name: '@DROLSKY/Test::Version which fixes https://github.com/plicease/Test-Version/issues/7' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::PromptIfStale config: @@ -226,7 +226,7 @@ run_under_travis: 0 skip: [] name: '@DROLSKY/Dist::Zilla::PluginBundle::DROLSKY' - version: '0.055' + version: '0.057' - class: Dist::Zilla::Plugin::PromptIfStale config: @@ -244,7 +244,7 @@ - Dist::Zilla::Plugin::DROLSKY::WeaverConfig - Pod::Weaver::PluginBundle::DROLSKY name: '@DROLSKY/PromptIfStale' - version: '0.055' + version: '0.057' - class: Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable name: '@DROLSKY/Test::Pod::Coverage::Configurable' @@ -279,14 +279,14 @@ - class: Dist::Zilla::Plugin::PodSyntaxTests name: '@DROLSKY/PodSyntaxTests' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::DROLSKY::RunExtraTests config: Dist::Zilla::Role::TestRunner: default_jobs: 24 name: '@DROLSKY/DROLSKY::RunExtraTests' - version: '1.05' + version: '1.09' - class: Dist::Zilla::Plugin::MojibakeTests name: '@DROLSKY/MojibakeTests' @@ -350,7 +350,7 @@ - class: Dist::Zilla::Plugin::Test::ReportPrereqs name: '@DROLSKY/Test::ReportPrereqs' - version: '0.027' + version: '0.028' - class: Dist::Zilla::Plugin::Test::Version name: '@DROLSKY/Test::Version' @@ -358,7 +358,7 @@ - class: Dist::Zilla::Plugin::DROLSKY::Contributors name: '@DROLSKY/DROLSKY::Contributors' - version: '1.05' + version: '1.09' - class: Dist::Zilla::Plugin::Git::Contributors config: @@ -481,6 +481,10 @@ name: '@DROLSKY/Legal' version: '4.015' - + class: Pod::Weaver::Section::AllowOverride + name: '@DROLSKY/allow override Legal' + version: '0.05' + - class: Pod::Weaver::Section::Region name: '@DROLSKY/footer' version: '4.015' @@ -489,7 +493,7 @@ - class: Dist::Zilla::Plugin::DROLSKY::WeaverConfig name: '@DROLSKY/DROLSKY::WeaverConfig' - version: '1.05' + version: '1.09' - class: Dist::Zilla::Plugin::ReadmeAnyFromPod config: @@ -540,11 +544,11 @@ - class: Dist::Zilla::Plugin::CPANFile name: '@DROLSKY/CPANFile' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::DROLSKY::License name: '@DROLSKY/DROLSKY::License' - version: '1.05' + version: '1.09' - class: Dist::Zilla::Plugin::CheckStrictVersion name: '@DROLSKY/CheckStrictVersion' @@ -571,7 +575,7 @@ git_version: 2.20.1 repo_root: . name: '@DROLSKY/DROLSKY::Git::CheckFor::CorrectBranch' - version: '1.05' + version: '1.09' - class: Dist::Zilla::Plugin::EnsureChangesHasContent name: '@DROLSKY/EnsureChangesHasContent' @@ -587,7 +591,7 @@ - class: Dist::Zilla::Plugin::DROLSKY::TidyAll name: '@DROLSKY/DROLSKY::TidyAll' - version: '1.05' + version: '1.09' - class: Dist::Zilla::Plugin::Git::Check config: @@ -609,13 +613,14 @@ git_version: 2.20.1 repo_root: . name: '@DROLSKY/Git::Check' - version: '2.046' + version: '2.047' - class: Dist::Zilla::Plugin::Git::Commit config: Dist::Zilla::Plugin::Git::Commit: add_files_in: [] commit_msg: v%V%n%n%c + signoff: 0 Dist::Zilla::Role::Git::DirtyFiles: allow_dirty: - CODE_OF_CONDUCT.md @@ -634,7 +639,7 @@ Dist::Zilla::Role::Git::StringFormatter: time_zone: local name: '@DROLSKY/Commit generated files' - version: '2.046' + version: '2.047' - class: Dist::Zilla::Plugin::Git::Tag config: @@ -642,7 +647,7 @@ branch: ~ changelog: Changes signed: 0 - tag: v1.77 + tag: v1.78 tag_format: v%V tag_message: v%V Dist::Zilla::Role::Git::Repo: @@ -651,7 +656,7 @@ Dist::Zilla::Role::Git::StringFormatter: time_zone: local name: '@DROLSKY/Git::Tag' - version: '2.046' + version: '2.047' - class: Dist::Zilla::Plugin::Git::Push config: @@ -663,7 +668,7 @@ git_version: 2.20.1 repo_root: . name: '@DROLSKY/Git::Push' - version: '2.046' + version: '2.047' - class: Dist::Zilla::Plugin::BumpVersionAfterRelease config: @@ -681,6 +686,7 @@ Dist::Zilla::Plugin::Git::Commit: add_files_in: [] commit_msg: 'Bump version after release' + signoff: 0 Dist::Zilla::Role::Git::DirtyFiles: allow_dirty: - Changes @@ -694,7 +700,7 @@ Dist::Zilla::Role::Git::StringFormatter: time_zone: local name: '@DROLSKY/Commit version bump' - version: '2.046' + version: '2.047' - class: Dist::Zilla::Plugin::Git::Push config: @@ -706,24 +712,24 @@ git_version: 2.20.1 repo_root: . name: '@DROLSKY/Push version bump' - version: '2.046' + version: '2.047' - class: Dist::Zilla::Plugin::DROLSKY::MakeMaker config: Dist::Zilla::Plugin::MakeMaker: make_path: make - version: '6.012' + version: '6.017' Dist::Zilla::Plugin::MakeMaker::Awesome: version: '0.48' Dist::Zilla::Role::TestRunner: default_jobs: 24 - version: '6.012' + version: '6.017' name: '@DROLSKY/DROLSKY::MakeMaker' - version: '1.05' + version: '1.09' - class: Dist::Zilla::Plugin::MetaResources name: MetaResources - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::lib config: @@ -743,56 +749,56 @@ phase: develop type: requires name: DevelopRequires - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::FinderCode name: ':InstallModules' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::FinderCode name: ':IncModules' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::FinderCode name: ':TestFiles' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::FinderCode name: ':ExtraTestFiles' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::FinderCode name: ':ExecFiles' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::FinderCode name: ':PerlExecFiles' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::FinderCode name: ':ShareFiles' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::FinderCode name: ':MainModule' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::FinderCode name: ':AllFiles' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::FinderCode name: ':NoFiles' - version: '6.012' + version: '6.017' - class: Dist::Zilla::Plugin::FinderCode name: '@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM' - version: '6.012' + version: '6.017' zilla: class: Dist::Zilla::Dist::Builder config: is_trial: '0' - version: '6.012' + version: '6.017' x_authority: cpan:DROLSKY x_contributors: - 'Christian Hansen ' @@ -802,3 +808,4 @@ - 'Mohammad S Anwar ' x_generated_by_perl: v5.30.1 x_serialization_backend: 'YAML::Tiny version 1.73' +x_spdx_expression: Artistic-2.0 diff -Nru libdatetime-format-strptime-perl-1.7700/perltidyrc libdatetime-format-strptime-perl-1.7800/perltidyrc --- libdatetime-format-strptime-perl-1.7700/perltidyrc 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/perltidyrc 2020-12-15 20:20:14.000000000 +0000 @@ -20,3 +20,4 @@ --no-outdent-long-comments --iterations=2 -wbb="% + - * / x != == >= <= =~ !~ < > | & >= < = **= += *= &= <<= &&= -= /= |= >>= ||= .= %= ^= x=" +--character-encoding=none diff -Nru libdatetime-format-strptime-perl-1.7700/README.md libdatetime-format-strptime-perl-1.7800/README.md --- libdatetime-format-strptime-perl-1.7700/README.md 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/README.md 2020-12-15 20:20:14.000000000 +0000 @@ -4,7 +4,7 @@ # VERSION -version 1.77 +version 1.78 # SYNOPSIS @@ -189,6 +189,12 @@ The datetime format according to the given locale. + Note that this format can change without warning in new versions of + [DateTime::Locale](https://metacpan.org/pod/DateTime%3A%3ALocale). You should not use this pattern unless the string you are + parsing was generated by using this pattern with [DateTime](https://metacpan.org/pod/DateTime) **and** you are + sure that this string was generated with the same version of + [DateTime::Locale](https://metacpan.org/pod/DateTime%3A%3ALocale) that the parser is using. + - %C The century number (0-99). @@ -296,10 +302,22 @@ The date format according to the given locale. + Note that this format can change without warning in new versions of + [DateTime::Locale](https://metacpan.org/pod/DateTime%3A%3ALocale). You should not use this pattern unless the string you are + parsing was generated by using this pattern with [DateTime](https://metacpan.org/pod/DateTime) **and** you are + sure that this string was generated with the same version of + [DateTime::Locale](https://metacpan.org/pod/DateTime%3A%3ALocale) that the parser is using. + - %X The time format according to the given locale. + Note that this format can change without warning in new versions of + [DateTime::Locale](https://metacpan.org/pod/DateTime%3A%3ALocale). You should not use this pattern unless the string you are + parsing was generated by using this pattern with [DateTime](https://metacpan.org/pod/DateTime) **and** you are + sure that this string was generated with the same version of + [DateTime::Locale](https://metacpan.org/pod/DateTime%3A%3ALocale) that the parser is using. + - %y The year within century (0-99). When a century is not otherwise specified @@ -372,7 +390,7 @@ on free software full time (let's all have a chuckle at that together). To donate, log into PayPal and send money to autarch@urth.org, or use the -button at [http://www.urth.org/~autarch/fs-donation.html](http://www.urth.org/~autarch/fs-donation.html). +button at [https://www.urth.org/fs-donation.html](https://www.urth.org/fs-donation.html). # AUTHORS diff -Nru libdatetime-format-strptime-perl-1.7700/t/00-report-prereqs.dd libdatetime-format-strptime-perl-1.7800/t/00-report-prereqs.dd --- libdatetime-format-strptime-perl-1.7700/t/00-report-prereqs.dd 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/t/00-report-prereqs.dd 2020-12-15 20:20:14.000000000 +0000 @@ -13,7 +13,7 @@ 'Code::TidyAll::Plugin::SortLines::Naturally' => '0.000003', 'Code::TidyAll::Plugin::Test::Vars' => '0.02', 'Cwd' => '0', - 'DateTime::Locale' => '1.23', + 'DateTime::Locale' => '1.30', 'File::Spec' => '0', 'IO::Handle' => '0', 'IPC::Open3' => '0', @@ -43,7 +43,7 @@ 'requires' => { 'Carp' => '0', 'DateTime' => '1.00', - 'DateTime::Locale' => '1.23', + 'DateTime::Locale' => '1.30', 'DateTime::Locale::Base' => '0', 'DateTime::Locale::FromData' => '0', 'DateTime::TimeZone' => '2.09', diff -Nru libdatetime-format-strptime-perl-1.7700/t/00-report-prereqs.t libdatetime-format-strptime-perl-1.7800/t/00-report-prereqs.t --- libdatetime-format-strptime-perl-1.7700/t/00-report-prereqs.t 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/t/00-report-prereqs.t 2020-12-15 20:20:14.000000000 +0000 @@ -3,7 +3,7 @@ use strict; use warnings; -# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.027 +# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.028 use Test::More tests => 1; @@ -188,6 +188,6 @@ ); } -pass; +pass('Reported prereqs'); # vim: ts=4 sts=4 sw=4 et: diff -Nru libdatetime-format-strptime-perl-1.7700/t/basic.t libdatetime-format-strptime-perl-1.7800/t/basic.t --- libdatetime-format-strptime-perl-1.7700/t/basic.t 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/t/basic.t 2020-12-15 20:20:14.000000000 +0000 @@ -360,7 +360,7 @@ [Australian date/time] %c -AU_THU 31 AU_DEC 1998 13:34:56 AEDT +Thu 31 Dec 1998 13:34:56 locale = en-AU skip round trip year => 1998 @@ -369,7 +369,6 @@ hour => 13 minute => 34 second => 56 -offset => 39600 [US date] %x @@ -453,7 +452,7 @@ [French (France) date/time] %c -jeu. 31 Déc. 1998 13:34:56 CEST +jeu. 31 Déc. 1998 13:34:56 locale = fr-FR skip round trip year => 1998 @@ -462,7 +461,6 @@ hour => 13 minute => 34 second => 56 -offset => 7200 [French (Generic) date] %x diff -Nru libdatetime-format-strptime-perl-1.7700/t/errors.t libdatetime-format-strptime-perl-1.7800/t/errors.t --- libdatetime-format-strptime-perl-1.7700/t/errors.t 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/t/errors.t 2020-12-15 20:20:14.000000000 +0000 @@ -50,189 +50,189 @@ name => '12-hour time without meridian', pattern => '%Y-%m-%d %I:%M', input => '2015-01-02 11:15', - error => + error => qr{\QParsed a 12-hour based hour, "11", but the pattern does not include an AM/PM specifier}, }, { name => 'uncrecognized time zone abbreviation', pattern => '%Y-%m-%d %Z', input => '2015-01-02 FOO', - error => + error => qr{\QParsed an unrecognized time zone abbreviation, "FOO"}, }, { name => 'ambiguous time zone abbreviation', pattern => '%Y-%m-%d %Z', input => '2015-01-02 NST', - error => + error => qr{\QThe time zone abbreviation that was parsed is ambiguous, "NST"}, }, { name => '24-hour vs 12-hour', pattern => '%Y-%m-%d %H %I %P', input => '2015-01-02 13 2 AM', - error => + error => qr{\QParsed an input with 24-hour and 12-hour time values that do not match - "13" versus "2"}, }, { name => '24-hour vs AM/PM (13AM)', pattern => '%Y-%m-%d %H %P', input => '2015-01-02 13 AM', - error => + error => qr{\QParsed an input with 24-hour and AM/PM values that do not match - "13" versus "AM"}, }, { name => '24-hour vs AM/PM (4AM)', pattern => '%Y-%m-%d %H %P', input => '2015-01-02 4 PM', - error => + error => qr{\QParsed an input with 24-hour and AM/PM values that do not match - "4" versus "PM"}, }, { name => 'year vs century', pattern => '%Y-%m-%d %C', input => '2015-01-02 19', - error => + error => qr{\QParsed an input with year and century values that do not match - "2015" versus "19"}, }, { name => 'year vs year-within-century', pattern => '%Y-%m-%d %y', input => '2015-01-02 14', - error => + error => qr{\QParsed an input with year and year-within-century values that do not match - "2015" versus "14"}, }, { name => 'time zone offset vs time zone abbreviation', pattern => '%Y %z %Z', input => '2015 -0500 AEST', - error => + error => qr{\QParsed an input with time zone abbreviation and time zone offset values that do not match - "AEST" versus "-0500"}, }, { name => 'invalid time zone offset', pattern => '%Y %z', input => '2015 -9999', - error => + error => qr{\QThe time zone name offset that was parsed does not appear to be valid, "-9999"}, }, { name => 'epoch vs year', pattern => '%s %Y', input => '42 2015', - error => + error => qr{\QParsed an input with epoch and year values that do not match - "42" versus "2015"}, }, { name => 'epoch vs month', pattern => '%s %m', input => '42 12', - error => + error => qr{\QParsed an input with epoch and month values that do not match - "42" versus "12"}, }, { name => 'epoch vs day', pattern => '%s %d', input => '42 13', - error => + error => qr{\QParsed an input with epoch and day values that do not match - "42" versus "13"}, }, { name => 'epoch vs day', pattern => '%s %H', input => '42 14', - error => + error => qr{\QParsed an input with epoch and hour values that do not match - "42" versus "14"}, }, { name => 'epoch vs minute', pattern => '%s %M', input => '42 15', - error => + error => qr{\QParsed an input with epoch and minute values that do not match - "42" versus "15"}, }, { name => 'epoch vs minute', pattern => '%s %S', input => '42 16', - error => + error => qr{\QParsed an input with epoch and second values that do not match - "42" versus "16"}, }, { name => 'epoch vs hour (1-12)', pattern => '%s %I %P', input => '42 4 PM', - error => + error => qr{\QParsed an input with epoch and hour (1-12) values that do not match - "42" versus "4"}, }, { name => 'epoch vs day of year', pattern => '%s %j', input => '42 17', - error => + error => qr{\QParsed an input with epoch and day of year values that do not match - "42" versus "17"}, }, { name => 'month vs day of year', pattern => '%Y %m %j', input => '2015 8 17', - error => + error => qr{\QParsed an input with month and day of year values that do not match - "8" versus "17"}, }, { name => 'day name vs date', pattern => '%Y %m %d %a', input => '2015 8 17 Tuesday', - error => + error => qr{\QParsed an input where the day name does not match the date - "Tuesday" versus "2015-08-17"}, }, { name => 'day of week vs date', pattern => '%Y %m %d %u', input => '2015 8 17 2', - error => + error => qr{\QParsed an input where the day of week does not match the date - "2" versus "2015-08-17"}, }, { name => 'day of week (Sunday as 0) vs date', pattern => '%Y %m %d %w', input => '2015 8 17 2', - error => + error => qr{\QParsed an input where the day of week (Sunday as 0) does not match the date - "2" versus "2015-08-17"}, }, { name => 'iso week year vs date', pattern => '%Y %m %d %G', input => '2015 8 17 2013', - error => + error => qr{\QParsed an input where the ISO week year does not match the date - "2013" versus "2015-08-17"}, }, { name => 'iso week year (without century) vs date', pattern => '%Y %m %d %g', input => '2015 8 17 13', - error => + error => qr{\QParsed an input where the ISO week year (without century) does not match the date - "13" versus "2015-08-17"}, }, { name => 'iso week number vs date', pattern => '%Y %m %d %W', input => '2015 8 17 15', - error => + error => qr{\QParsed an input where the ISO week number (Monday starts week) does not match the date - "15" versus "2015-08-17"}, }, { name => 'iso week number vs date', pattern => '%Y %m %d %U', input => '2015 8 17 15', - error => + error => qr{\QParsed an input where the ISO week number (Sunday starts week) does not match the date - "15" versus "2015-08-17"}, }, { name => 'invalid time zone name', pattern => '%Y %O', input => '2015 Dev/Null', - error => + error => qr{\QThe Olson time zone name that was parsed does not appear to be valid, "Dev/Null"}, }, { diff -Nru libdatetime-format-strptime-perl-1.7700/t/lib/T.pm libdatetime-format-strptime-perl-1.7800/t/lib/T.pm --- libdatetime-format-strptime-perl-1.7700/t/lib/T.pm 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/t/lib/T.pm 2020-12-15 20:20:14.000000000 +0000 @@ -41,13 +41,6 @@ "no exception building parser for $test->{pattern}" ) or return; - # Thursday changed from "Thu" to "Thu." and December went from - # "Dec" to "Dec." between CLDR versions. - $test->{input} - =~ s/AU_THU/DateTime::Locale->load('en-AU')->day_format_abbreviated->[3]/e; - $test->{input} - =~ s/AU_DEC/DateTime::Locale->load('en-AU')->month_format_abbreviated->[11]/e; - ( my $real_input = $test->{input} ) =~ s/\\n/\n/g; my $dt; diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-cu-RU.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-cu-RU.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-cu-RU.t 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-cu-RU.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,227 +0,0 @@ -use strict; -use warnings; - -use Test::More 0.96; -use Test::Fatal; - -use DateTime::Format::Strptime; -use DateTime::Locale; -use DateTime; - -my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; - -my $locale = 'cu-RU'; -test_days($locale); -test_months($locale); -test_am_pm($locale); -test_locale($locale); - -done_testing(); - -sub test_days { - my $locale = shift; - - subtest( - 'days', - sub { - foreach my $day ( 1 .. 7 ) { - subtest( - "Day $day", - sub { _test_one_day( $locale, $day ); }, - ); - } - } - ); -} - -sub _test_one_day { - my $locale = shift; - my $day = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %A'; - - my $dt = DateTime->now( locale => $locale )->set( day => $day ); - my $input = $dt->strftime($pattern); - - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with day name in pattern (%A)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input" - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_months { - my $locale = shift; - - subtest( - 'months', - sub { - foreach my $month ( 1 .. 12 ) { - subtest( - "Month $month", - sub { _test_one_month( $locale, $month ) }, - ); - } - } - ); -} - -sub _test_one_month { - my $locale = shift; - my $month = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %B'; - - my $dt - = DateTime->now( locale => $locale )->truncate( to => 'month' ) - ->set( month => $month ); - my $input = $dt->strftime($pattern); - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with month name (%B)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input" - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_am_pm { - my $locale = shift; - - subtest( - 'am/pm', - sub { - foreach my $hour ( 0, 11, 12, 23 ) { - subtest( - "Hour $hour", - sub { _test_one_hour( $locale, $hour ); }, - ); - } - } - ); -} - -sub _test_one_hour { - my $locale = shift; - my $hour = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %H:%M %p'; - - my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); - my $input = $dt->strftime($pattern); - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with meridian (%p)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input", - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_locale { - my $locale = shift; - - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => '%Y-%m-%d', - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with locale' - ) or return; - - my $input = '2015-01-30'; - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input", - ) or return; - - is( - $parsed_dt->locale->$code_meth, - $locale, - "code of locale for DateTime returned by parser is $locale" - ); -} - -sub _utf8_output { - binmode $_, ':encoding(UTF-8)' - for map { Test::Builder->new->$_ } - qw( output failure_output todo_output ); -} - diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-cu.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-cu.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-cu.t 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-cu.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,227 +0,0 @@ -use strict; -use warnings; - -use Test::More 0.96; -use Test::Fatal; - -use DateTime::Format::Strptime; -use DateTime::Locale; -use DateTime; - -my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; - -my $locale = 'cu'; -test_days($locale); -test_months($locale); -test_am_pm($locale); -test_locale($locale); - -done_testing(); - -sub test_days { - my $locale = shift; - - subtest( - 'days', - sub { - foreach my $day ( 1 .. 7 ) { - subtest( - "Day $day", - sub { _test_one_day( $locale, $day ); }, - ); - } - } - ); -} - -sub _test_one_day { - my $locale = shift; - my $day = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %A'; - - my $dt = DateTime->now( locale => $locale )->set( day => $day ); - my $input = $dt->strftime($pattern); - - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with day name in pattern (%A)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input" - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_months { - my $locale = shift; - - subtest( - 'months', - sub { - foreach my $month ( 1 .. 12 ) { - subtest( - "Month $month", - sub { _test_one_month( $locale, $month ) }, - ); - } - } - ); -} - -sub _test_one_month { - my $locale = shift; - my $month = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %B'; - - my $dt - = DateTime->now( locale => $locale )->truncate( to => 'month' ) - ->set( month => $month ); - my $input = $dt->strftime($pattern); - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with month name (%B)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input" - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_am_pm { - my $locale = shift; - - subtest( - 'am/pm', - sub { - foreach my $hour ( 0, 11, 12, 23 ) { - subtest( - "Hour $hour", - sub { _test_one_hour( $locale, $hour ); }, - ); - } - } - ); -} - -sub _test_one_hour { - my $locale = shift; - my $hour = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %H:%M %p'; - - my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); - my $input = $dt->strftime($pattern); - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with meridian (%p)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input", - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_locale { - my $locale = shift; - - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => '%Y-%m-%d', - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with locale' - ) or return; - - my $input = '2015-01-30'; - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input", - ) or return; - - is( - $parsed_dt->locale->$code_meth, - $locale, - "code of locale for DateTime returned by parser is $locale" - ); -} - -sub _utf8_output { - binmode $_, ':encoding(UTF-8)' - for map { Test::Builder->new->$_ } - qw( output failure_output todo_output ); -} - diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-doi-IN.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-doi-IN.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-doi-IN.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-doi-IN.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'doi-IN'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-doi.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-doi.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-doi.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-doi.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'doi'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-BF.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-BF.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-BF.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-BF.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'ff-Adlm-BF'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-CM.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-CM.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-CM.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-CM.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'ff-Adlm-CM'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-GH.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-GH.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-GH.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-GH.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'ff-Adlm-GH'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-GM.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-GM.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-GM.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-GM.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'ff-Adlm-GM'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-GN.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-GN.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-GN.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-GN.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'ff-Adlm-GN'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-GW.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-GW.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-GW.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-GW.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'ff-Adlm-GW'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-LR.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-LR.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-LR.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-LR.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'ff-Adlm-LR'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-MR.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-MR.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-MR.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-MR.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'ff-Adlm-MR'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-NE.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-NE.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-NE.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-NE.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'ff-Adlm-NE'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-NG.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-NG.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-NG.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-NG.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'ff-Adlm-NG'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-SL.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-SL.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-SL.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-SL.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'ff-Adlm-SL'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-SN.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-SN.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm-SN.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm-SN.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'ff-Adlm-SN'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ff-Adlm.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ff-Adlm.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'ff-Adlm'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ks-Arab-IN.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ks-Arab-IN.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ks-Arab-IN.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ks-Arab-IN.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'ks-Arab-IN'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ks-Arab.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ks-Arab.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ks-Arab.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ks-Arab.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'ks-Arab'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ks-IN.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ks-IN.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ks-IN.t 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ks-IN.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,227 +0,0 @@ -use strict; -use warnings; - -use Test::More 0.96; -use Test::Fatal; - -use DateTime::Format::Strptime; -use DateTime::Locale; -use DateTime; - -my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; - -my $locale = 'ks-IN'; -test_days($locale); -test_months($locale); -test_am_pm($locale); -test_locale($locale); - -done_testing(); - -sub test_days { - my $locale = shift; - - subtest( - 'days', - sub { - foreach my $day ( 1 .. 7 ) { - subtest( - "Day $day", - sub { _test_one_day( $locale, $day ); }, - ); - } - } - ); -} - -sub _test_one_day { - my $locale = shift; - my $day = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %A'; - - my $dt = DateTime->now( locale => $locale )->set( day => $day ); - my $input = $dt->strftime($pattern); - - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with day name in pattern (%A)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input" - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_months { - my $locale = shift; - - subtest( - 'months', - sub { - foreach my $month ( 1 .. 12 ) { - subtest( - "Month $month", - sub { _test_one_month( $locale, $month ) }, - ); - } - } - ); -} - -sub _test_one_month { - my $locale = shift; - my $month = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %B'; - - my $dt - = DateTime->now( locale => $locale )->truncate( to => 'month' ) - ->set( month => $month ); - my $input = $dt->strftime($pattern); - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with month name (%B)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input" - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_am_pm { - my $locale = shift; - - subtest( - 'am/pm', - sub { - foreach my $hour ( 0, 11, 12, 23 ) { - subtest( - "Hour $hour", - sub { _test_one_hour( $locale, $hour ); }, - ); - } - } - ); -} - -sub _test_one_hour { - my $locale = shift; - my $hour = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %H:%M %p'; - - my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); - my $input = $dt->strftime($pattern); - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with meridian (%p)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input", - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_locale { - my $locale = shift; - - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => '%Y-%m-%d', - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with locale' - ) or return; - - my $input = '2015-01-30'; - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input", - ) or return; - - is( - $parsed_dt->locale->$code_meth, - $locale, - "code of locale for DateTime returned by parser is $locale" - ); -} - -sub _utf8_output { - binmode $_, ':encoding(UTF-8)' - for map { Test::Builder->new->$_ } - qw( output failure_output todo_output ); -} - diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-mai-IN.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-mai-IN.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-mai-IN.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-mai-IN.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'mai-IN'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-mai.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-mai.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-mai.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-mai.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'mai'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-mni-Beng-IN.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-mni-Beng-IN.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-mni-Beng-IN.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-mni-Beng-IN.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'mni-Beng-IN'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-mni-Beng.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-mni-Beng.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-mni-Beng.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-mni-Beng.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'mni-Beng'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-mni.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-mni.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-mni.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-mni.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'mni'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-ms-ID.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-ms-ID.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-ms-ID.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-ms-ID.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'ms-ID'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-pcm-NG.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-pcm-NG.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-pcm-NG.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-pcm-NG.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'pcm-NG'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-pcm.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-pcm.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-pcm.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-pcm.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'pcm'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-prg-001.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-prg-001.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-prg-001.t 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-prg-001.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,227 +0,0 @@ -use strict; -use warnings; - -use Test::More 0.96; -use Test::Fatal; - -use DateTime::Format::Strptime; -use DateTime::Locale; -use DateTime; - -my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; - -my $locale = 'prg-001'; -test_days($locale); -test_months($locale); -test_am_pm($locale); -test_locale($locale); - -done_testing(); - -sub test_days { - my $locale = shift; - - subtest( - 'days', - sub { - foreach my $day ( 1 .. 7 ) { - subtest( - "Day $day", - sub { _test_one_day( $locale, $day ); }, - ); - } - } - ); -} - -sub _test_one_day { - my $locale = shift; - my $day = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %A'; - - my $dt = DateTime->now( locale => $locale )->set( day => $day ); - my $input = $dt->strftime($pattern); - - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with day name in pattern (%A)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input" - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_months { - my $locale = shift; - - subtest( - 'months', - sub { - foreach my $month ( 1 .. 12 ) { - subtest( - "Month $month", - sub { _test_one_month( $locale, $month ) }, - ); - } - } - ); -} - -sub _test_one_month { - my $locale = shift; - my $month = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %B'; - - my $dt - = DateTime->now( locale => $locale )->truncate( to => 'month' ) - ->set( month => $month ); - my $input = $dt->strftime($pattern); - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with month name (%B)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input" - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_am_pm { - my $locale = shift; - - subtest( - 'am/pm', - sub { - foreach my $hour ( 0, 11, 12, 23 ) { - subtest( - "Hour $hour", - sub { _test_one_hour( $locale, $hour ); }, - ); - } - } - ); -} - -sub _test_one_hour { - my $locale = shift; - my $hour = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %H:%M %p'; - - my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); - my $input = $dt->strftime($pattern); - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with meridian (%p)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input", - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_locale { - my $locale = shift; - - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => '%Y-%m-%d', - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with locale' - ) or return; - - my $input = '2015-01-30'; - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input", - ) or return; - - is( - $parsed_dt->locale->$code_meth, - $locale, - "code of locale for DateTime returned by parser is $locale" - ); -} - -sub _utf8_output { - binmode $_, ':encoding(UTF-8)' - for map { Test::Builder->new->$_ } - qw( output failure_output todo_output ); -} - diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-prg.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-prg.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-prg.t 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-prg.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,227 +0,0 @@ -use strict; -use warnings; - -use Test::More 0.96; -use Test::Fatal; - -use DateTime::Format::Strptime; -use DateTime::Locale; -use DateTime; - -my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; - -my $locale = 'prg'; -test_days($locale); -test_months($locale); -test_am_pm($locale); -test_locale($locale); - -done_testing(); - -sub test_days { - my $locale = shift; - - subtest( - 'days', - sub { - foreach my $day ( 1 .. 7 ) { - subtest( - "Day $day", - sub { _test_one_day( $locale, $day ); }, - ); - } - } - ); -} - -sub _test_one_day { - my $locale = shift; - my $day = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %A'; - - my $dt = DateTime->now( locale => $locale )->set( day => $day ); - my $input = $dt->strftime($pattern); - - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with day name in pattern (%A)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input" - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_months { - my $locale = shift; - - subtest( - 'months', - sub { - foreach my $month ( 1 .. 12 ) { - subtest( - "Month $month", - sub { _test_one_month( $locale, $month ) }, - ); - } - } - ); -} - -sub _test_one_month { - my $locale = shift; - my $month = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %B'; - - my $dt - = DateTime->now( locale => $locale )->truncate( to => 'month' ) - ->set( month => $month ); - my $input = $dt->strftime($pattern); - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with month name (%B)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input" - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_am_pm { - my $locale = shift; - - subtest( - 'am/pm', - sub { - foreach my $hour ( 0, 11, 12, 23 ) { - subtest( - "Hour $hour", - sub { _test_one_hour( $locale, $hour ); }, - ); - } - } - ); -} - -sub _test_one_hour { - my $locale = shift; - my $hour = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %H:%M %p'; - - my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); - my $input = $dt->strftime($pattern); - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with meridian (%p)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input", - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_locale { - my $locale = shift; - - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => '%Y-%m-%d', - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with locale' - ) or return; - - my $input = '2015-01-30'; - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input", - ) or return; - - is( - $parsed_dt->locale->$code_meth, - $locale, - "code of locale for DateTime returned by parser is $locale" - ); -} - -sub _utf8_output { - binmode $_, ':encoding(UTF-8)' - for map { Test::Builder->new->$_ } - qw( output failure_output todo_output ); -} - diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-sa-IN.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-sa-IN.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-sa-IN.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-sa-IN.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'sa-IN'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-sa.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-sa.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-sa.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-sa.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'sa'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-sat-Olck-IN.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-sat-Olck-IN.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-sat-Olck-IN.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-sat-Olck-IN.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'sat-Olck-IN'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-sat-Olck.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-sat-Olck.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-sat-Olck.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-sat-Olck.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'sat-Olck'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-sat.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-sat.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-sat.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-sat.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'sat'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-sd-Arab-PK.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-sd-Arab-PK.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-sd-Arab-PK.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-sd-Arab-PK.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'sd-Arab-PK'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-sd-Arab.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-sd-Arab.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-sd-Arab.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-sd-Arab.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'sd-Arab'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-sd-Deva-IN.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-sd-Deva-IN.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-sd-Deva-IN.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-sd-Deva-IN.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'sd-Deva-IN'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-sd-Deva.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-sd-Deva.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-sd-Deva.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-sd-Deva.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'sd-Deva'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-sd-PK.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-sd-PK.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-sd-PK.t 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-sd-PK.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,227 +0,0 @@ -use strict; -use warnings; - -use Test::More 0.96; -use Test::Fatal; - -use DateTime::Format::Strptime; -use DateTime::Locale; -use DateTime; - -my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; - -my $locale = 'sd-PK'; -test_days($locale); -test_months($locale); -test_am_pm($locale); -test_locale($locale); - -done_testing(); - -sub test_days { - my $locale = shift; - - subtest( - 'days', - sub { - foreach my $day ( 1 .. 7 ) { - subtest( - "Day $day", - sub { _test_one_day( $locale, $day ); }, - ); - } - } - ); -} - -sub _test_one_day { - my $locale = shift; - my $day = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %A'; - - my $dt = DateTime->now( locale => $locale )->set( day => $day ); - my $input = $dt->strftime($pattern); - - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with day name in pattern (%A)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input" - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_months { - my $locale = shift; - - subtest( - 'months', - sub { - foreach my $month ( 1 .. 12 ) { - subtest( - "Month $month", - sub { _test_one_month( $locale, $month ) }, - ); - } - } - ); -} - -sub _test_one_month { - my $locale = shift; - my $month = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %B'; - - my $dt - = DateTime->now( locale => $locale )->truncate( to => 'month' ) - ->set( month => $month ); - my $input = $dt->strftime($pattern); - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with month name (%B)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input" - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_am_pm { - my $locale = shift; - - subtest( - 'am/pm', - sub { - foreach my $hour ( 0, 11, 12, 23 ) { - subtest( - "Hour $hour", - sub { _test_one_hour( $locale, $hour ); }, - ); - } - } - ); -} - -sub _test_one_hour { - my $locale = shift; - my $hour = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %H:%M %p'; - - my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); - my $input = $dt->strftime($pattern); - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with meridian (%p)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input", - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_locale { - my $locale = shift; - - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => '%Y-%m-%d', - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with locale' - ) or return; - - my $input = '2015-01-30'; - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input", - ) or return; - - is( - $parsed_dt->locale->$code_meth, - $locale, - "code of locale for DateTime returned by parser is $locale" - ); -} - -sub _utf8_output { - binmode $_, ':encoding(UTF-8)' - for map { Test::Builder->new->$_ } - qw( output failure_output todo_output ); -} - diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-su-Latn-ID.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-su-Latn-ID.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-su-Latn-ID.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-su-Latn-ID.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'su-Latn-ID'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-su-Latn.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-su-Latn.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-su-Latn.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-su-Latn.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'su-Latn'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-su.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-su.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-su.t 1970-01-01 00:00:00.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-su.t 2020-12-15 20:20:14.000000000 +0000 @@ -0,0 +1,227 @@ +use strict; +use warnings; + +use Test::More 0.96; +use Test::Fatal; + +use DateTime::Format::Strptime; +use DateTime::Locale; +use DateTime; + +my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; + +my $locale = 'su'; +test_days($locale); +test_months($locale); +test_am_pm($locale); +test_locale($locale); + +done_testing(); + +sub test_days { + my $locale = shift; + + subtest( + 'days', + sub { + foreach my $day ( 1 .. 7 ) { + subtest( + "Day $day", + sub { _test_one_day( $locale, $day ); }, + ); + } + } + ); +} + +sub _test_one_day { + my $locale = shift; + my $day = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %A'; + + my $dt = DateTime->now( locale => $locale )->set( day => $day ); + my $input = $dt->strftime($pattern); + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with day name in pattern (%A)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_months { + my $locale = shift; + + subtest( + 'months', + sub { + foreach my $month ( 1 .. 12 ) { + subtest( + "Month $month", + sub { _test_one_month( $locale, $month ) }, + ); + } + } + ); +} + +sub _test_one_month { + my $locale = shift; + my $month = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %B'; + + my $dt + = DateTime->now( locale => $locale )->truncate( to => 'month' ) + ->set( month => $month ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with month name (%B)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input" + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_am_pm { + my $locale = shift; + + subtest( + 'am/pm', + sub { + foreach my $hour ( 0, 11, 12, 23 ) { + subtest( + "Hour $hour", + sub { _test_one_hour( $locale, $hour ); }, + ); + } + } + ); +} + +sub _test_one_hour { + my $locale = shift; + my $hour = shift; + + _utf8_output(); + + my $pattern = '%Y-%m-%d %H:%M %p'; + + my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); + my $input = $dt->strftime($pattern); + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => $pattern, + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with meridian (%p)' + ) or return; + + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->strftime($pattern), + $input, + 'strftime output matches input' + ); +} + +sub test_locale { + my $locale = shift; + + my $strptime; + is( + exception { + $strptime = DateTime::Format::Strptime->new( + pattern => '%Y-%m-%d', + locale => $locale, + on_error => 'croak', + ); + }, + undef, + 'constructor with locale' + ) or return; + + my $input = '2015-01-30'; + my $parsed_dt; + is( + exception { + $parsed_dt = $strptime->parse_datetime($input) + }, + undef, + "parsed $input", + ) or return; + + is( + $parsed_dt->locale->$code_meth, + $locale, + "code of locale for DateTime returned by parser is $locale" + ); +} + +sub _utf8_output { + binmode $_, ':encoding(UTF-8)' + for map { Test::Builder->new->$_ } + qw( output failure_output todo_output ); +} + diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-vo-001.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-vo-001.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-vo-001.t 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-vo-001.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,227 +0,0 @@ -use strict; -use warnings; - -use Test::More 0.96; -use Test::Fatal; - -use DateTime::Format::Strptime; -use DateTime::Locale; -use DateTime; - -my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; - -my $locale = 'vo-001'; -test_days($locale); -test_months($locale); -test_am_pm($locale); -test_locale($locale); - -done_testing(); - -sub test_days { - my $locale = shift; - - subtest( - 'days', - sub { - foreach my $day ( 1 .. 7 ) { - subtest( - "Day $day", - sub { _test_one_day( $locale, $day ); }, - ); - } - } - ); -} - -sub _test_one_day { - my $locale = shift; - my $day = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %A'; - - my $dt = DateTime->now( locale => $locale )->set( day => $day ); - my $input = $dt->strftime($pattern); - - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with day name in pattern (%A)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input" - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_months { - my $locale = shift; - - subtest( - 'months', - sub { - foreach my $month ( 1 .. 12 ) { - subtest( - "Month $month", - sub { _test_one_month( $locale, $month ) }, - ); - } - } - ); -} - -sub _test_one_month { - my $locale = shift; - my $month = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %B'; - - my $dt - = DateTime->now( locale => $locale )->truncate( to => 'month' ) - ->set( month => $month ); - my $input = $dt->strftime($pattern); - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with month name (%B)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input" - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_am_pm { - my $locale = shift; - - subtest( - 'am/pm', - sub { - foreach my $hour ( 0, 11, 12, 23 ) { - subtest( - "Hour $hour", - sub { _test_one_hour( $locale, $hour ); }, - ); - } - } - ); -} - -sub _test_one_hour { - my $locale = shift; - my $hour = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %H:%M %p'; - - my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); - my $input = $dt->strftime($pattern); - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with meridian (%p)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input", - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_locale { - my $locale = shift; - - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => '%Y-%m-%d', - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with locale' - ) or return; - - my $input = '2015-01-30'; - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input", - ) or return; - - is( - $parsed_dt->locale->$code_meth, - $locale, - "code of locale for DateTime returned by parser is $locale" - ); -} - -sub _utf8_output { - binmode $_, ':encoding(UTF-8)' - for map { Test::Builder->new->$_ } - qw( output failure_output todo_output ); -} - diff -Nru libdatetime-format-strptime-perl-1.7700/xt/author/locale-vo.t libdatetime-format-strptime-perl-1.7800/xt/author/locale-vo.t --- libdatetime-format-strptime-perl-1.7700/xt/author/locale-vo.t 2020-02-29 17:55:09.000000000 +0000 +++ libdatetime-format-strptime-perl-1.7800/xt/author/locale-vo.t 1970-01-01 00:00:00.000000000 +0000 @@ -1,227 +0,0 @@ -use strict; -use warnings; - -use Test::More 0.96; -use Test::Fatal; - -use DateTime::Format::Strptime; -use DateTime::Locale; -use DateTime; - -my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; - -my $locale = 'vo'; -test_days($locale); -test_months($locale); -test_am_pm($locale); -test_locale($locale); - -done_testing(); - -sub test_days { - my $locale = shift; - - subtest( - 'days', - sub { - foreach my $day ( 1 .. 7 ) { - subtest( - "Day $day", - sub { _test_one_day( $locale, $day ); }, - ); - } - } - ); -} - -sub _test_one_day { - my $locale = shift; - my $day = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %A'; - - my $dt = DateTime->now( locale => $locale )->set( day => $day ); - my $input = $dt->strftime($pattern); - - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with day name in pattern (%A)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input" - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_months { - my $locale = shift; - - subtest( - 'months', - sub { - foreach my $month ( 1 .. 12 ) { - subtest( - "Month $month", - sub { _test_one_month( $locale, $month ) }, - ); - } - } - ); -} - -sub _test_one_month { - my $locale = shift; - my $month = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %B'; - - my $dt - = DateTime->now( locale => $locale )->truncate( to => 'month' ) - ->set( month => $month ); - my $input = $dt->strftime($pattern); - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with month name (%B)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input" - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_am_pm { - my $locale = shift; - - subtest( - 'am/pm', - sub { - foreach my $hour ( 0, 11, 12, 23 ) { - subtest( - "Hour $hour", - sub { _test_one_hour( $locale, $hour ); }, - ); - } - } - ); -} - -sub _test_one_hour { - my $locale = shift; - my $hour = shift; - - _utf8_output(); - - my $pattern = '%Y-%m-%d %H:%M %p'; - - my $dt = DateTime->now( locale => $locale )->set( hour => $hour ); - my $input = $dt->strftime($pattern); - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => $pattern, - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with meridian (%p)' - ) or return; - - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input", - ) or return; - - is( - $parsed_dt->strftime($pattern), - $input, - 'strftime output matches input' - ); -} - -sub test_locale { - my $locale = shift; - - my $strptime; - is( - exception { - $strptime = DateTime::Format::Strptime->new( - pattern => '%Y-%m-%d', - locale => $locale, - on_error => 'croak', - ); - }, - undef, - 'constructor with locale' - ) or return; - - my $input = '2015-01-30'; - my $parsed_dt; - is( - exception { - $parsed_dt = $strptime->parse_datetime($input) - }, - undef, - "parsed $input", - ) or return; - - is( - $parsed_dt->locale->$code_meth, - $locale, - "code of locale for DateTime returned by parser is $locale" - ); -} - -sub _utf8_output { - binmode $_, ':encoding(UTF-8)' - for map { Test::Builder->new->$_ } - qw( output failure_output todo_output ); -} -