DateTime-Format-Strptime-1.75/0000775000175000017500000000000013217762750016051 5ustar autarchautarchDateTime-Format-Strptime-1.75/dist.ini0000644000175000017500000000152113217762750017512 0ustar autarchautarchname = DateTime-Format-Strptime author = Dave Rolsky author = Rick Measham copyright_year = 2015 copyright_holder = Dave Rolsky [@DROLSKY] dist = DateTime-Format-Strptime coverage_trustme = DateTime::Format::Strptime => qr/^(?:format_duration|parse_duration|local_carp|local_croak)$/ stopwords = Measham stopwords = POSIX stopwords = Rolsky stopwords = STRPTIME stopwords = errmsg stopwords = formatter stopwords = strf stopwords = strp stopwords = strptime use_github_issues = 1 -remove = Test::CleanNamespaces -remove = Test::CPAN::Changes -remove = Test::Pod::No404s -remove = Test::Synopsis [MetaResources] x_MailingList = datetime@perl.org [lib] lib = inc [=GenerateLocaleTests] ;authordep DateTime::Locale = 1.03 [Prereqs / DevelopRequires] DateTime::Locale = 1.03 Test::Fatal = 0 Test::More = 0.96 DateTime-Format-Strptime-1.75/META.yml0000644000175000017500000005431013217762750017323 0ustar autarchautarch--- abstract: 'Parse and format strp and strf time patterns' author: - 'Dave Rolsky ' - 'Rick Measham ' build_requires: ExtUtils::MakeMaker: '0' File::Spec: '0' Test::Builder: '0' Test::Fatal: '0' Test::More: '0.96' Test::Warnings: '0' lib: '0' utf8: '0' configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 0 generated_by: 'Dist::Zilla version 6.010, CPAN::Meta::Converter version 2.150010' license: artistic_2 meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: DateTime-Format-Strptime provides: DateTime::Format::Strptime: file: lib/DateTime/Format/Strptime.pm version: '1.75' DateTime::Format::Strptime::Types: file: lib/DateTime/Format/Strptime/Types.pm version: '1.75' requires: Carp: '0' DateTime: '1.00' DateTime::Locale: '1.05' DateTime::Locale::Base: '0' DateTime::Locale::FromData: '0' DateTime::TimeZone: '2.09' Exporter: '0' Package::DeprecationManager: '0.15' Params::ValidationCompiler: '0' Specio: '0.33' Specio::Declare: '0' Specio::Exporter: '0' Specio::Library::Builtins: '0' Specio::Library::String: '0' Try::Tiny: '0' constant: '0' parent: '0' strict: '0' warnings: '0' resources: MailingList: datetime@perl.org bugtracker: https://github.com/houseabsolute/DateTime-Format-Strptime/issues homepage: http://metacpan.org/release/DateTime-Format-Strptime repository: git://github.com/houseabsolute/DateTime-Format-Strptime.git version: '1.75' x_Dist_Zilla: perl: version: '5.026001' plugins: - class: Dist::Zilla::Plugin::MakeMaker config: Dist::Zilla::Role::TestRunner: default_jobs: 1 name: '@DROLSKY/MakeMaker' version: '6.010' - class: Dist::Zilla::Plugin::Git::GatherDir config: Dist::Zilla::Plugin::GatherDir: exclude_filename: - CONTRIBUTING.md - LICENSE - Makefile.PL - README.md - cpanfile exclude_match: [] follow_symlinks: 0 include_dotfiles: 0 prefix: '' prune_directory: [] root: . Dist::Zilla::Plugin::Git::GatherDir: include_untracked: 0 name: '@DROLSKY/Git::GatherDir' version: '2.043' - class: Dist::Zilla::Plugin::ManifestSkip name: '@DROLSKY/ManifestSkip' version: '6.010' - class: Dist::Zilla::Plugin::License name: '@DROLSKY/License' version: '6.010' - class: Dist::Zilla::Plugin::ExecDir name: '@DROLSKY/ExecDir' version: '6.010' - class: Dist::Zilla::Plugin::ShareDir name: '@DROLSKY/ShareDir' version: '6.010' - class: Dist::Zilla::Plugin::Manifest name: '@DROLSKY/Manifest' version: '6.010' - class: Dist::Zilla::Plugin::CheckVersionIncrement name: '@DROLSKY/CheckVersionIncrement' version: '0.121750' - class: Dist::Zilla::Plugin::TestRelease name: '@DROLSKY/TestRelease' version: '6.010' - class: Dist::Zilla::Plugin::ConfirmRelease name: '@DROLSKY/ConfirmRelease' version: '6.010' - class: Dist::Zilla::Plugin::UploadToCPAN name: '@DROLSKY/UploadToCPAN' version: '6.010' - class: Dist::Zilla::Plugin::VersionFromMainModule name: '@DROLSKY/VersionFromMainModule' version: '0.03' - class: Dist::Zilla::Plugin::Authority name: '@DROLSKY/Authority' version: '1.009' - class: Dist::Zilla::Plugin::AutoPrereqs name: '@DROLSKY/AutoPrereqs' version: '6.010' - class: Dist::Zilla::Plugin::CopyFilesFromBuild name: '@DROLSKY/CopyFilesFromBuild' version: '0.170880' - class: Dist::Zilla::Plugin::GitHub::Meta name: '@DROLSKY/GitHub::Meta' version: '0.44' - class: Dist::Zilla::Plugin::GitHub::Update config: Dist::Zilla::Plugin::GitHub::Update: metacpan: 1 name: '@DROLSKY/GitHub::Update' version: '0.44' - class: Dist::Zilla::Plugin::MetaResources name: '@DROLSKY/MetaResources' version: '6.010' - class: Dist::Zilla::Plugin::MetaProvides::Package config: Dist::Zilla::Plugin::MetaProvides::Package: finder_objects: - class: Dist::Zilla::Plugin::FinderCode name: '@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM' version: '6.010' include_underscores: 0 Dist::Zilla::Role::MetaProvider::Provider: $Dist::Zilla::Role::MetaProvider::Provider::VERSION: '2.002004' inherit_missing: '1' inherit_version: '1' meta_noindex: '1' Dist::Zilla::Role::ModuleMetadata: Module::Metadata: '1.000033' version: '0.004' name: '@DROLSKY/MetaProvides::Package' version: '2.004003' - class: Dist::Zilla::Plugin::Meta::Contributors name: '@DROLSKY/Meta::Contributors' version: '0.003' - class: Dist::Zilla::Plugin::MetaConfig name: '@DROLSKY/MetaConfig' version: '6.010' - class: Dist::Zilla::Plugin::MetaJSON name: '@DROLSKY/MetaJSON' version: '6.010' - class: Dist::Zilla::Plugin::MetaYAML name: '@DROLSKY/MetaYAML' version: '6.010' - class: Dist::Zilla::Plugin::NextRelease name: '@DROLSKY/NextRelease' version: '6.010' - class: Dist::Zilla::Plugin::Prereqs config: Dist::Zilla::Plugin::Prereqs: phase: test type: requires name: '@DROLSKY/Test::More with subtest' version: '6.010' - class: Dist::Zilla::Plugin::Prereqs config: Dist::Zilla::Plugin::Prereqs: phase: develop type: requires name: '@DROLSKY/Modules for use with tidyall' version: '6.010' - class: Dist::Zilla::Plugin::Prereqs config: Dist::Zilla::Plugin::Prereqs: phase: develop type: requires name: '@DROLSKY/Test::Version which fixes https://github.com/plicease/Test-Version/issues/7' version: '6.010' - class: Dist::Zilla::Plugin::PromptIfStale config: Dist::Zilla::Plugin::PromptIfStale: check_all_plugins: 0 check_all_prereqs: 0 modules: - Dist::Zilla::PluginBundle::DROLSKY phase: build run_under_travis: 0 skip: [] name: '@DROLSKY/Dist::Zilla::PluginBundle::DROLSKY' version: '0.054' - class: Dist::Zilla::Plugin::PromptIfStale config: Dist::Zilla::Plugin::PromptIfStale: check_all_plugins: 1 check_all_prereqs: 1 modules: [] phase: release run_under_travis: 0 skip: - Dist::Zilla::Plugin::DROLSKY::Contributors - Dist::Zilla::Plugin::DROLSKY::Git::CheckFor::CorrectBranch - Dist::Zilla::Plugin::DROLSKY::License - Dist::Zilla::Plugin::DROLSKY::TidyAll - Dist::Zilla::Plugin::DROLSKY::WeaverConfig - Pod::Weaver::PluginBundle::DROLSKY name: '@DROLSKY/PromptIfStale' version: '0.054' - class: Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable name: '@DROLSKY/Test::Pod::Coverage::Configurable' version: '0.06' - class: Dist::Zilla::Plugin::Test::PodSpelling config: Dist::Zilla::Plugin::Test::PodSpelling: directories: - bin - lib spell_cmd: '' stopwords: - DROLSKY - "DROLSKY's" - Measham - POSIX - PayPal - Rolsky - Rolsky - "Rolsky's" - STRPTIME - drolsky - errmsg - formatter - strf - strp - strptime wordlist: Pod::Wordlist name: '@DROLSKY/Test::PodSpelling' version: '2.007005' - class: Dist::Zilla::Plugin::PodSyntaxTests name: '@DROLSKY/PodSyntaxTests' version: '6.010' - class: Dist::Zilla::Plugin::RunExtraTests config: Dist::Zilla::Role::TestRunner: default_jobs: 1 name: '@DROLSKY/RunExtraTests' version: '0.029' - class: Dist::Zilla::Plugin::MojibakeTests name: '@DROLSKY/MojibakeTests' version: '0.8' - class: Dist::Zilla::Plugin::Test::CPAN::Meta::JSON name: '@DROLSKY/Test::CPAN::Meta::JSON' version: '0.004' - class: Dist::Zilla::Plugin::Test::EOL config: Dist::Zilla::Plugin::Test::EOL: filename: xt/author/eol.t finder: - ':ExecFiles' - ':InstallModules' - ':TestFiles' trailing_whitespace: 1 name: '@DROLSKY/Test::EOL' version: '0.19' - class: Dist::Zilla::Plugin::Test::NoTabs config: Dist::Zilla::Plugin::Test::NoTabs: filename: xt/author/no-tabs.t finder: - ':InstallModules' - ':ExecFiles' - ':TestFiles' name: '@DROLSKY/Test::NoTabs' version: '0.15' - class: Dist::Zilla::Plugin::Test::Portability config: Dist::Zilla::Plugin::Test::Portability: options: '' name: '@DROLSKY/Test::Portability' version: '2.001000' - class: Dist::Zilla::Plugin::Test::TidyAll name: '@DROLSKY/Test::TidyAll' version: '0.04' - class: Dist::Zilla::Plugin::Test::Compile config: Dist::Zilla::Plugin::Test::Compile: bail_out_on_fail: '0' fail_on_warning: author fake_home: 0 filename: xt/author/00-compile.t module_finder: - ':InstallModules' needs_display: 0 phase: develop script_finder: - ':PerlExecFiles' skips: [] switch: [] name: '@DROLSKY/Test::Compile' version: '2.058' - class: Dist::Zilla::Plugin::Test::ReportPrereqs name: '@DROLSKY/Test::ReportPrereqs' version: '0.027' - class: Dist::Zilla::Plugin::Test::Version name: '@DROLSKY/Test::Version' version: '1.09' - class: Dist::Zilla::Plugin::DROLSKY::Contributors name: '@DROLSKY/DROLSKY::Contributors' version: '0.88' - class: Dist::Zilla::Plugin::Git::Contributors config: Dist::Zilla::Plugin::Git::Contributors: git_version: 2.15.1 include_authors: 0 include_releaser: 1 order_by: name paths: [] name: '@DROLSKY/Git::Contributors' version: '0.032' - class: Dist::Zilla::Plugin::SurgicalPodWeaver config: Dist::Zilla::Plugin::PodWeaver: config_plugins: - '@DROLSKY' finder: - ':InstallModules' - ':ExecFiles' plugins: - class: Pod::Weaver::Plugin::EnsurePod5 name: '@CorePrep/EnsurePod5' version: '4.015' - class: Pod::Weaver::Plugin::H1Nester name: '@CorePrep/H1Nester' version: '4.015' - class: Pod::Weaver::Plugin::SingleEncoding name: '@DROLSKY/SingleEncoding' version: '4.015' - class: Pod::Weaver::Plugin::Transformer name: '@DROLSKY/List' version: '4.015' - class: Pod::Weaver::Plugin::Transformer name: '@DROLSKY/Verbatim' version: '4.015' - class: Pod::Weaver::Section::Region name: '@DROLSKY/header' version: '4.015' - class: Pod::Weaver::Section::Name name: '@DROLSKY/Name' version: '4.015' - class: Pod::Weaver::Section::Version name: '@DROLSKY/Version' version: '4.015' - class: Pod::Weaver::Section::Region name: '@DROLSKY/prelude' version: '4.015' - class: Pod::Weaver::Section::Generic name: SYNOPSIS version: '4.015' - class: Pod::Weaver::Section::Generic name: DESCRIPTION version: '4.015' - class: Pod::Weaver::Section::Generic name: OVERVIEW version: '4.015' - class: Pod::Weaver::Section::Collect name: ATTRIBUTES version: '4.015' - class: Pod::Weaver::Section::Collect name: METHODS version: '4.015' - class: Pod::Weaver::Section::Collect name: FUNCTIONS version: '4.015' - class: Pod::Weaver::Section::Collect name: TYPES version: '4.015' - class: Pod::Weaver::Section::Leftovers name: '@DROLSKY/Leftovers' version: '4.015' - class: Pod::Weaver::Section::Region name: '@DROLSKY/postlude' version: '4.015' - class: Pod::Weaver::Section::GenerateSection name: '@DROLSKY/generate SUPPORT' version: '1.06' - class: Pod::Weaver::Section::AllowOverride name: '@DROLSKY/allow override SUPPORT' version: '0.05' - class: Pod::Weaver::Section::GenerateSection name: '@DROLSKY/generate SOURCE' version: '1.06' - class: Pod::Weaver::Section::GenerateSection name: '@DROLSKY/generate DONATIONS' version: '1.06' - class: Pod::Weaver::Section::Authors name: '@DROLSKY/Authors' version: '4.015' - class: Pod::Weaver::Section::Contributors name: '@DROLSKY/Contributors' version: '0.009' - class: Pod::Weaver::Section::Legal name: '@DROLSKY/Legal' version: '4.015' - class: Pod::Weaver::Section::Region name: '@DROLSKY/footer' version: '4.015' name: '@DROLSKY/SurgicalPodWeaver' version: '0.0023' - class: Dist::Zilla::Plugin::DROLSKY::WeaverConfig name: '@DROLSKY/DROLSKY::WeaverConfig' version: '0.88' - class: Dist::Zilla::Plugin::ReadmeAnyFromPod config: Dist::Zilla::Role::FileWatcher: version: '0.006' name: '@DROLSKY/README.md in build' version: '0.163250' - class: Dist::Zilla::Plugin::GenerateFile::FromShareDir config: Dist::Zilla::Plugin::GenerateFile::FromShareDir: destination_filename: CONTRIBUTING.md dist: Dist-Zilla-PluginBundle-DROLSKY encoding: UTF-8 has_xs: '0' location: build source_filename: CONTRIBUTING.md Dist::Zilla::Role::RepoFileInjector: allow_overwrite: 1 repo_root: . version: '0.007' name: '@DROLSKY/Generate CONTRIBUTING.md' version: '0.013' - class: Dist::Zilla::Plugin::InstallGuide name: '@DROLSKY/InstallGuide' version: '1.200007' - class: Dist::Zilla::Plugin::CPANFile name: '@DROLSKY/CPANFile' version: '6.010' - class: Dist::Zilla::Plugin::DROLSKY::License name: '@DROLSKY/DROLSKY::License' version: '0.88' - class: Dist::Zilla::Plugin::CheckStrictVersion name: '@DROLSKY/CheckStrictVersion' version: '0.001' - class: Dist::Zilla::Plugin::CheckSelfDependency config: Dist::Zilla::Plugin::CheckSelfDependency: finder: - ':InstallModules' Dist::Zilla::Role::ModuleMetadata: Module::Metadata: '1.000033' version: '0.004' name: '@DROLSKY/CheckSelfDependency' version: '0.011' - class: Dist::Zilla::Plugin::CheckPrereqsIndexed name: '@DROLSKY/CheckPrereqsIndexed' version: '0.020' - class: Dist::Zilla::Plugin::DROLSKY::Git::CheckFor::CorrectBranch config: Dist::Zilla::Role::Git::Repo: git_version: 2.15.1 repo_root: . name: '@DROLSKY/DROLSKY::Git::CheckFor::CorrectBranch' version: '0.88' - class: Dist::Zilla::Plugin::EnsureChangesHasContent name: '@DROLSKY/EnsureChangesHasContent' version: '0.02' - class: Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts config: Dist::Zilla::Role::Git::Repo: git_version: 2.15.1 repo_root: . name: '@DROLSKY/Git::CheckFor::MergeConflicts' version: '0.014' - class: Dist::Zilla::Plugin::DROLSKY::TidyAll name: '@DROLSKY/DROLSKY::TidyAll' version: '0.88' - class: Dist::Zilla::Plugin::Git::Check config: Dist::Zilla::Plugin::Git::Check: untracked_files: die Dist::Zilla::Role::Git::DirtyFiles: allow_dirty: - CONTRIBUTING.md - Changes - LICENSE - Makefile.PL - README.md - cpanfile - tidyall.ini allow_dirty_match: [] changelog: Changes Dist::Zilla::Role::Git::Repo: git_version: 2.15.1 repo_root: . name: '@DROLSKY/Git::Check' version: '2.043' - class: Dist::Zilla::Plugin::Git::Commit config: Dist::Zilla::Plugin::Git::Commit: add_files_in: [] commit_msg: v%v%n%n%c Dist::Zilla::Role::Git::DirtyFiles: allow_dirty: - CONTRIBUTING.md - Changes - LICENSE - Makefile.PL - README.md - cpanfile - tidyall.ini allow_dirty_match: [] changelog: Changes Dist::Zilla::Role::Git::Repo: git_version: 2.15.1 repo_root: . Dist::Zilla::Role::Git::StringFormatter: time_zone: local name: '@DROLSKY/Commit generated files' version: '2.043' - class: Dist::Zilla::Plugin::Git::Tag config: Dist::Zilla::Plugin::Git::Tag: branch: ~ changelog: Changes signed: 0 tag: v1.75 tag_format: v%v tag_message: v%v Dist::Zilla::Role::Git::Repo: git_version: 2.15.1 repo_root: . Dist::Zilla::Role::Git::StringFormatter: time_zone: local name: '@DROLSKY/Git::Tag' version: '2.043' - class: Dist::Zilla::Plugin::Git::Push config: Dist::Zilla::Plugin::Git::Push: push_to: - origin remotes_must_exist: 1 Dist::Zilla::Role::Git::Repo: git_version: 2.15.1 repo_root: . name: '@DROLSKY/Git::Push' version: '2.043' - class: Dist::Zilla::Plugin::BumpVersionAfterRelease config: Dist::Zilla::Plugin::BumpVersionAfterRelease: finders: - ':ExecFiles' - ':InstallModules' global: 0 munge_makefile_pl: 1 name: '@DROLSKY/BumpVersionAfterRelease' version: '0.016' - class: Dist::Zilla::Plugin::Git::Commit config: Dist::Zilla::Plugin::Git::Commit: add_files_in: [] commit_msg: 'Bump version after release' Dist::Zilla::Role::Git::DirtyFiles: allow_dirty: - Changes - dist.ini allow_dirty_match: - (?^:.+) changelog: Changes Dist::Zilla::Role::Git::Repo: git_version: 2.15.1 repo_root: . Dist::Zilla::Role::Git::StringFormatter: time_zone: local name: '@DROLSKY/Commit version bump' version: '2.043' - class: Dist::Zilla::Plugin::Git::Push config: Dist::Zilla::Plugin::Git::Push: push_to: - origin remotes_must_exist: 1 Dist::Zilla::Role::Git::Repo: git_version: 2.15.1 repo_root: . name: '@DROLSKY/Push version bump' version: '2.043' - class: Dist::Zilla::Plugin::MetaResources name: MetaResources version: '6.010' - class: Dist::Zilla::Plugin::lib config: Dist::Zilla::Plugin::lib: lib: - inc name: lib version: '0.001002' - class: GenerateLocaleTests name: =GenerateLocaleTests version: ~ - class: Dist::Zilla::Plugin::Prereqs config: Dist::Zilla::Plugin::Prereqs: phase: develop type: requires name: DevelopRequires version: '6.010' - class: Dist::Zilla::Plugin::FinderCode name: ':InstallModules' version: '6.010' - class: Dist::Zilla::Plugin::FinderCode name: ':IncModules' version: '6.010' - class: Dist::Zilla::Plugin::FinderCode name: ':TestFiles' version: '6.010' - class: Dist::Zilla::Plugin::FinderCode name: ':ExtraTestFiles' version: '6.010' - class: Dist::Zilla::Plugin::FinderCode name: ':ExecFiles' version: '6.010' - class: Dist::Zilla::Plugin::FinderCode name: ':PerlExecFiles' version: '6.010' - class: Dist::Zilla::Plugin::FinderCode name: ':ShareFiles' version: '6.010' - class: Dist::Zilla::Plugin::FinderCode name: ':MainModule' version: '6.010' - class: Dist::Zilla::Plugin::FinderCode name: ':AllFiles' version: '6.010' - class: Dist::Zilla::Plugin::FinderCode name: ':NoFiles' version: '6.010' - class: Dist::Zilla::Plugin::FinderCode name: '@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM' version: '6.010' zilla: class: Dist::Zilla::Dist::Builder config: is_trial: '0' version: '6.010' x_authority: cpan:DROLSKY x_contributors: - 'Christian Hansen ' - 'D. Ilmari Mannsåker ' - 'key-amb ' - 'Mohammad S Anwar ' x_serialization_backend: 'YAML::Tiny version 1.70' DateTime-Format-Strptime-1.75/perltidyrc0000644000175000017500000000045513217762750020157 0ustar autarchautarch-l=78 -i=4 -ci=4 -se -b -bar -boc -vt=0 -vtc=0 -cti=0 -pt=1 -bt=1 -sbt=1 -bbt=1 -nolq -npro -nsfs --blank-lines-before-packages=0 --opening-hash-brace-right --no-outdent-long-comments --iterations=2 -wbb="% + - * / x != == >= <= =~ !~ < > | & >= < = **= += *= &= <<= &&= -= /= |= >>= ||= .= %= ^= x=" DateTime-Format-Strptime-1.75/t/0000775000175000017500000000000013217762750016314 5ustar autarchautarchDateTime-Format-Strptime-1.75/t/00-report-prereqs.t0000644000175000017500000001342613217762750021714 0ustar autarchautarch#!perl use strict; use warnings; # This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.027 use Test::More tests => 1; use ExtUtils::MakeMaker; use File::Spec; # from $version::LAX my $lax_version_re = qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? | (?:\.[0-9]+) (?:_[0-9]+)? ) | (?: v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? | (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? ) )/x; # hide optional CPAN::Meta modules from prereq scanner # and check if they are available my $cpan_meta = "CPAN::Meta"; my $cpan_meta_pre = "CPAN::Meta::Prereqs"; my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic # Verify requirements? my $DO_VERIFY_PREREQS = 1; sub _max { my $max = shift; $max = ( $_ > $max ) ? $_ : $max for @_; return $max; } sub _merge_prereqs { my ($collector, $prereqs) = @_; # CPAN::Meta::Prereqs object if (ref $collector eq $cpan_meta_pre) { return $collector->with_merged_prereqs( CPAN::Meta::Prereqs->new( $prereqs ) ); } # Raw hashrefs for my $phase ( keys %$prereqs ) { for my $type ( keys %{ $prereqs->{$phase} } ) { for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; } } } return $collector; } my @include = qw( ); my @exclude = qw( ); # Add static prereqs to the included modules list my $static_prereqs = do './t/00-report-prereqs.dd'; # Merge all prereqs (either with ::Prereqs or a hashref) my $full_prereqs = _merge_prereqs( ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), $static_prereqs ); # Add dynamic prereqs to the included modules list (if we can) my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; my $cpan_meta_error; if ( $source && $HAS_CPAN_META && (my $meta = eval { CPAN::Meta->load_file($source) } ) ) { $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); } else { $cpan_meta_error = $@; # capture error from CPAN::Meta->load_file($source) $source = 'static metadata'; } my @full_reports; my @dep_errors; my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; # Add static includes into a fake section for my $mod (@include) { $req_hash->{other}{modules}{$mod} = 0; } for my $phase ( qw(configure build test runtime develop other) ) { next unless $req_hash->{$phase}; next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); for my $type ( qw(requires recommends suggests conflicts modules) ) { next unless $req_hash->{$phase}{$type}; my $title = ucfirst($phase).' '.ucfirst($type); my @reports = [qw/Module Want Have/]; for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { next if $mod eq 'perl'; next if grep { $_ eq $mod } @exclude; my $file = $mod; $file =~ s{::}{/}g; $file .= ".pm"; my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; my $want = $req_hash->{$phase}{$type}{$mod}; $want = "undef" unless defined $want; $want = "any" if !$want && $want == 0; my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; if ($prefix) { my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); $have = "undef" unless defined $have; push @reports, [$mod, $want, $have]; if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { if ( $have !~ /\A$lax_version_re\z/ ) { push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; } elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { push @dep_errors, "$mod version '$have' is not in required range '$want'"; } } } else { push @reports, [$mod, $want, "missing"]; if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { push @dep_errors, "$mod is not installed ($req_string)"; } } } if ( @reports ) { push @full_reports, "=== $title ===\n\n"; my $ml = _max( map { length $_->[0] } @reports ); my $wl = _max( map { length $_->[1] } @reports ); my $hl = _max( map { length $_->[2] } @reports ); if ($type eq 'modules') { splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; } else { splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; } push @full_reports, "\n"; } } } if ( @full_reports ) { diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; } if ( $cpan_meta_error || @dep_errors ) { diag "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n"; } if ( $cpan_meta_error ) { my ($orig_source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; diag "\nCPAN::Meta->load_file('$orig_source') failed with: $cpan_meta_error\n"; } if ( @dep_errors ) { diag join("\n", "\nThe following REQUIRED prerequisites were not satisfied:\n", @dep_errors, "\n" ); } pass; # vim: ts=4 sts=4 sw=4 et: DateTime-Format-Strptime-1.75/t/format-with-locale.t0000644000175000017500000000120513217762750022173 0ustar autarchautarchuse strict; use warnings; use Test::More 0.96; use Test::Fatal; use DateTime::Format::Strptime; use DateTime; my $code_meth = DateTime::Locale->load('en')->can('code') ? 'code' : 'id'; my $strptime = DateTime::Format::Strptime->new( pattern => '%B %Y', locale => 'pt', on_error => 'croak', ); my $dt = DateTime->new( year => 2015, month => 8, locale => 'en', ); is( $strptime->format_datetime($dt), 'agosto 2015', 'formatted output is in locale of formatter (Portugese)' ); is( $dt->locale->$code_meth, 'en', q{formatter leaves DateTime object's locale unchanged} ); done_testing(); DateTime-Format-Strptime-1.75/t/errors.t0000644000175000017500000002461513217762750020023 0ustar autarchautarchuse strict; use warnings; use Test::More 0.96; use Test::Fatal; use DateTime::Format::Strptime; subtest( 'valid constructor', sub { my $parser; is( exception { $parser = DateTime::Format::Strptime->new( pattern => '%Y' ) }, undef, 'no exception when constructing object with valid pattern' ); isa_ok( $parser, 'DateTime::Format::Strptime', ); } ); subtest( 'constructor error', sub { my $parser; like( exception { $parser = DateTime::Format::Strptime->new( pattern => '%Y %Q' ) }, qr/\QPattern contained an unrecognized strptime token, "%Q"/, 'no exception when constructing object with valid pattern' ); is( $parser, undef, 'constructor does not return object on invalid pattern' ); } ); { my @tests = ( { name => '12-hour time without meridian', pattern => '%Y-%m-%d %I:%M', input => '2015-01-02 11:15', 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 => qr{\QParsed an unrecognized time zone abbreviation, "FOO"}, }, { name => 'ambiguous time zone abbreviation', pattern => '%Y-%m-%d %Z', input => '2015-01-02 NST', 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 => 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 => 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 => 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 => 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 => 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 => qr{\QParsed an input with time zone abbreviation and time zone offset values that do not match - "AEST" versus "-0500"}, }, { name => 'epoch vs year', pattern => '%s %Y', input => '42 2015', 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => qr{\QThe Olson time zone name that was parsed does not appear to be valid, "Dev/Null"}, }, { name => 'illegal date', pattern => '%Y-%m-%d', input => '0000-00-00', error => qr{\QParsed values did not produce a valid date}, }, { name => 'illegal time', pattern => '%Y-%m-%d %H:%M', input => '0000-00-00 26:99', error => qr{\QParsed values did not produce a valid date}, }, { name => 'February 29, 2013 - RT #110247', pattern => '%a %b %d %T %Y', input => 'Wed Feb 29 12:02:28 2013', error => qr{\QParsed values did not produce a valid date}, }, { name => 'Failed word boundary check at beginning - GitHub #11', pattern => '%d-%m-%y', input => '2016-11-30', strict => 1, error => qr{\QYour datetime does not match your pattern}, }, { name => 'Failed word boundary check at end', pattern => '%d-%m-%y', input => '30-11-2016', strict => 1, error => qr{\QYour datetime does not match your pattern}, }, ); for my $test (@tests) { subtest( $test->{name}, sub { _test_error_handling($test) } ); } } done_testing(); sub _test_error_handling { my $test = shift; my $parser = DateTime::Format::Strptime->new( pattern => $test->{pattern}, on_error => 'croak', strict => $test->{strict}, ); like( exception { $parser->parse_datetime( $test->{input} ) }, $test->{error}, 'croak error' ); $parser = DateTime::Format::Strptime->new( pattern => $test->{pattern}, on_error => 'undef', strict => $test->{strict}, ); my $dt = $parser->parse_datetime( $test->{input} ); like( $parser->errmsg, $test->{error}, 'errmsg error ' ); is( $dt, undef, 'no datetime object is returned when there is a parse error' ); $parser = DateTime::Format::Strptime->new( pattern => $test->{pattern}, on_error => sub { die { e => $_[1] } }, strict => $test->{strict}, ); my $e = exception { $parser->parse_datetime( $test->{input} ) }; like( $e->{e}, $test->{error}, 'custom on_error' ); } DateTime-Format-Strptime-1.75/t/locale-en.t0000644000175000017500000001111413217762750020334 0ustar autarchautarchuse 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 = 'en'; 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 ); } DateTime-Format-Strptime-1.75/t/locale-zh.t0000644000175000017500000001111413217762750020353 0ustar autarchautarchuse 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 = 'zh'; 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 ); } DateTime-Format-Strptime-1.75/t/zones.t0000644000175000017500000000127313217762750017640 0ustar autarchautarchuse strict; use warnings; use Test::More 0.96; use Test::Fatal; use DateTime::Format::Strptime; { my $parser = DateTime::Format::Strptime->new( pattern => '%Y %Z', on_error => 'croak', ); like( exception { $parser->parse_datetime('2015 EST') }, qr/ambiguous/, 'parser dies on ambiguous zone abbreviation' ); } { my $parser = DateTime::Format::Strptime->new( pattern => '%Y %Z', zone_map => { EST => '-0200' }, on_error => 'croak', ); my $dt = $parser->parse_datetime('2015 EST'); is( $dt->offset, -7200, 'parser uses zone map provided with constructor' ); } done_testing(); DateTime-Format-Strptime-1.75/t/format-datetime.t0000644000175000017500000000066213217762750021565 0ustar autarchautarchuse strict; use warnings; use Test::More 0.96; use Test::Fatal; use DateTime::Format::Strptime; use DateTime; my $strptime = DateTime::Format::Strptime->new( pattern => '%B %Y', locale => 'pt', on_error => 'croak', ); my $e = exception { $strptime->format_datetime('somestring') }; is( $e->type->name, 'DateTime', 'got expected type failure when passing a string to format_datetime' ); done_testing(); DateTime-Format-Strptime-1.75/t/locale-de.t0000644000175000017500000001111413217762750020322 0ustar autarchautarchuse 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 = 'de'; 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 ); } DateTime-Format-Strptime-1.75/t/locale-pt.t0000644000175000017500000001111413217762750020355 0ustar autarchautarchuse 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 = 'pt'; 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 ); } DateTime-Format-Strptime-1.75/t/00-report-prereqs.dd0000644000175000017500000001045613217762750022040 0ustar autarchautarchdo { my $x = { 'configure' => { 'requires' => { 'ExtUtils::MakeMaker' => '0' }, 'suggests' => { 'JSON::PP' => '2.27300' } }, 'develop' => { 'requires' => { 'Code::TidyAll' => '0.56', 'Code::TidyAll::Plugin::SortLines::Naturally' => '0.000003', 'Code::TidyAll::Plugin::Test::Vars' => '0.02', 'Cwd' => '0', 'DateTime::Locale' => '1.03', 'File::Spec' => '0', 'IO::Handle' => '0', 'IPC::Open3' => '0', 'Parallel::ForkManager' => '1.19', 'Perl::Critic' => '1.126', 'Perl::Tidy' => '20160302', 'Pod::Coverage::TrustPod' => '0', 'Pod::Wordlist' => '0', 'Test::CPAN::Meta::JSON' => '0.16', 'Test::Code::TidyAll' => '0.50', 'Test::DependentModules' => '0', 'Test::EOL' => '0', 'Test::Fatal' => '0', 'Test::Mojibake' => '0', 'Test::More' => '0.96', 'Test::NoTabs' => '0', 'Test::Pod' => '1.41', 'Test::Pod::Coverage' => '1.08', 'Test::Portability::Files' => '0', 'Test::Spelling' => '0.12', 'Test::Vars' => '0.009', 'Test::Version' => '2.05', 'perl' => '5.006' } }, 'runtime' => { 'requires' => { 'Carp' => '0', 'DateTime' => '1.00', 'DateTime::Locale' => '1.05', 'DateTime::Locale::Base' => '0', 'DateTime::Locale::FromData' => '0', 'DateTime::TimeZone' => '2.09', 'Exporter' => '0', 'Package::DeprecationManager' => '0.15', 'Params::ValidationCompiler' => '0', 'Specio' => '0.33', 'Specio::Declare' => '0', 'Specio::Exporter' => '0', 'Specio::Library::Builtins' => '0', 'Specio::Library::String' => '0', 'Try::Tiny' => '0', 'constant' => '0', 'parent' => '0', 'strict' => '0', 'warnings' => '0' } }, 'test' => { 'recommends' => { 'CPAN::Meta' => '2.120900' }, 'requires' => { 'ExtUtils::MakeMaker' => '0', 'File::Spec' => '0', 'Test::Builder' => '0', 'Test::Fatal' => '0', 'Test::More' => '0.96', 'Test::Warnings' => '0', 'lib' => '0', 'utf8' => '0' } } }; $x; }DateTime-Format-Strptime-1.75/t/edge.t0000644000175000017500000000361513217762750017410 0ustar autarchautarchuse strict; use warnings; use strict; use warnings; use utf8; use lib 't/lib'; use T qw( run_tests_from_data test_datetime_object ); use Test::More 0.96; use Test::Fatal; use DateTime::Format::Strptime; run_tests_from_data( \*DATA ); done_testing(); __DATA__ [Leading and trailing space] %Y%m%d 20151222 skip round trip year => 2015 month => 12 day => 22 [Olson time zone in upper case] %Y %O 2015 AMERICA/NEW_YORK skip round trip year => 2015 time_zone_long_name => America/New_York [Olson time zone in lower case] %Y %O 2015 america/new_york skip round trip year => 2015 time_zone_long_name => America/New_York [Olson time zone in random case] %Y %O 2015 amERicA/new_YORK skip round trip year => 2015 time_zone_long_name => America/New_York [Month name match is not too greedy] %d%b%y 15Aug07 year => 2007 month => 8 day => 15 [Trailing text after match] %Y-%m-%d 2016-01-13 in the afternoon skip round trip year => 2016 month => 1 day => 13 [Leading text before match] %Y-%m-%d in the afternoon of 2016-01-13 skip round trip year => 2016 month => 1 day => 13 [%Y.suffix] %Y 2016.suffix skip round trip year => 2016 [%Y-%m-%d.suffix] %Y-%m-%d 2016-03-31.suffix skip round trip year => 2016 month => 3 day => 31 [prefix.year] %Y log.2016 skip round trip year => 2016 [prefix.date] %Y-%m-%d log.2016-03-31 skip round trip year => 2016 month => 3 day => 31 [prefix.year.suffix] %Y cron.2016.log skip round trip year => 2016 [prefix.year.suffix with strict] %Y cron.2016.log skip round trip strict year => 2016 [prefix.date.suffix] %Y-%m-%d cron.2016-03-31.log skip round trip year => 2016 month => 3 day => 31 [prefix.date.suffix with strict] %Y-%m-%d cron.2016-03-31.log skip round trip strict year => 2016 month => 3 day => 31 [ISO8601 + Z with Z at end ignored] %Y%m%d%H%M%S 20161214233712Z skip round trip year => 2016 month => 12 day => 14 hour => 23 minute => 37 second => 12 DateTime-Format-Strptime-1.75/t/import.t0000644000175000017500000000153013217762750020010 0ustar autarchautarchuse strict; use warnings; # We need this to be set to catch warning from inside other packages. BEGIN { ## no critic (Variables::RequireLocalizedPunctuationVars) $^W = 1; } use Test::More; use Test::Warnings qw( warnings ); use DateTime::Format::Strptime qw( strftime strptime ), -api_version => '1.55'; is_deeply( [ warnings { my $parser = DateTime::Format::Strptime->new( pattern => '%Y' ); $parser->pattern('%y'); $parser->locale('fr'); $parser->time_zone('UTC'); } ], [], 'no warnings when calling accessors on constructed object' ); is( strptime( '%Y', '2005' )->year, 2005, 'export strptime works as expected' ); is( strftime( '%Y', DateTime->new( year => 2005 ) ), 2005, 'export strftime works as expected' ); done_testing(); DateTime-Format-Strptime-1.75/t/lib/0000775000175000017500000000000013217762750017062 5ustar autarchautarchDateTime-Format-Strptime-1.75/t/lib/T.pm0000644000175000017500000000704513217762750017627 0ustar autarchautarchpackage # hide from PAUSE T; use strict; use warnings; use Test::Builder; use Test::More 0.96; use Test::Fatal; use DateTime::Format::Strptime; use Exporter qw( import ); our @EXPORT_OK = qw( run_tests_from_data test_datetime_object utf8_output ); sub run_tests_from_data { my $fh = shift; for my $test ( _tests_from_fh($fh) ) { subtest( qq{$test->{name}}, sub { utf8_output(); my $parser; is( exception { $parser = DateTime::Format::Strptime->new( pattern => $test->{pattern}, ( $test->{locale} ? ( locale => $test->{locale} ) : () ), strict => $test->{strict}, on_error => 'croak', ); }, undef, "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; is( exception { $dt = $parser->parse_datetime($real_input) }, undef, "no exception parsing $test->{input}" ) or return; test_datetime_object( $dt, $test->{expect} ); unless ( $test->{skip_round_trip} ) { is( $parser->format_datetime($dt), $real_input, 'round trip via strftime produces original input' ); } } ); } } sub utf8_output { binmode $_, ':encoding(UTF-8)' or die $! for map { Test::Builder->new->$_ } qw( output failure_output todo_output ); } sub test_datetime_object { my $dt = shift; my $expect = shift; for my $meth ( sort keys %{$expect} ) { is( $dt->$meth, $expect->{$meth}, "$meth is $expect->{$meth}" ); } } sub _tests_from_fh { my $fh = shift; my @tests; my $d = do { local $/ = undef; <$fh> }; my $test_re = qr/ \[(.+?)\]\n # test name (.+?)\n # pattern (.+?)\n # input (?:locale\ =\ (.+?)\n)? # optional locale (skip\ round\ trip\n)? # skip a round trip? (strict\n)? # strict parsing flag? (.+?)\n # k-v pairs for expected values (?:\n|\z) # end of test /xs; while ( $d =~ /$test_re/g ) { push @tests, { name => $1, pattern => $2, input => $3, locale => $4, skip_round_trip => $5, strict => ( $6 ? 1 : 0 ), expect => { map { split /\s+=>\s+/ } split /\n/, $7, }, }; } return @tests; } 1; DateTime-Format-Strptime-1.75/t/locale-ga.t0000644000175000017500000001111413217762750020321 0ustar autarchautarchuse 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 = 'ga'; 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 ); } DateTime-Format-Strptime-1.75/t/basic.t0000644000175000017500000001670513217762750017571 0ustar autarchautarchuse strict; use warnings; use utf8; use lib 't/lib'; use T qw( run_tests_from_data test_datetime_object ); use Test::More 0.96; use Test::Fatal; use DateTime::Format::Strptime; run_tests_from_data( \*DATA ); subtest( 'parsing whitespace', sub { my $parser = DateTime::Format::Strptime->new( pattern => '%n%Y%t%m%n', on_error => 'croak', ); my $dt = $parser->parse_datetime(<<"EOF"); \t 2015 12 EOF my %expect = ( year => 2015, month => 12, ); test_datetime_object( $dt, \%expect ); } ); subtest( 'parser time zone is set on returned object', sub { my $parser = DateTime::Format::Strptime->new( pattern => '%Y %H:%M:%S %Z', time_zone => 'America/New_York', on_error => 'croak', ); my $dt = $parser->parse_datetime('2003 23:45:56 MDT'); my %expect = ( year => 2003, hour => 0, minute => 45, second => 56, time_zone_long_name => 'America/New_York', ); test_datetime_object( $dt, \%expect ); } ); done_testing(); __DATA__ [ISO8601] %Y-%m-%dT%H:%M:%S 2015-10-08T15:39:44 year => 2015 month => 10 day => 8 hour => 15 minute => 39 second => 44 [date with 4-digit year] %Y-%m-%d 1998-12-31 year => 1998 month => 12 day => 31 [date with 2-digit year] %y-%m-%d 98-12-31 year => 1998 month => 12 day => 31 [date with leading space on month] %e-%b-%Y 3-Jun-2010 year => 2010 month => 6 day => 3 [year and day of year] %Y years %j days 1998 years 312 days year => 1998 month => 11 day => 8 [date with abbreviated month] %b %d %Y Jan 24 2003 year => 2003 month => 1 day => 24 [date with abbreviated month is case-insensitive] %b %d %Y jAN 24 2003 skip round trip year => 2003 month => 1 day => 24 [date with full month] %B %d %Y January 24 2003 year => 2003 month => 1 day => 24 [date with full month is case-insensitive] %B %d %Y jAnUAry 24 2003 skip round trip year => 2003 month => 1 day => 24 [24 hour time] %H:%M:%S 23:45:56 year => 1 month => 1 day => 1 hour => 23 minute => 45 second => 56 [12 hour time (PM)] %l:%M:%S %p 11:45:56 PM year => 1 month => 1 day => 1 hour => 23 minute => 45 second => 56 [12 hour time (am) and am/pm is case-insensitive] %l:%M:%S %p 11:45:56 am skip round trip year => 1 month => 1 day => 1 hour => 11 minute => 45 second => 56 [24-hour time] %T 23:34:45 hour => 23 minute => 34 second => 45 [12-hour time] %r 11:34:45 PM hour => 23 minute => 34 second => 45 [24-hour time without second] %R 23:34 hour => 23 minute => 34 second => 0 [US style date] %D 11/30/03 year => 2003 month => 11 day => 30 [ISO style date] %F 2003-11-30 year => 2003 month => 11 day => 30 [nanosecond with no length] %H:%M:%S.%N 23:45:56.123456789 hour => 23 minute => 45 second => 56 nanosecond => 123456789 [nanosecond with length of 6] %H:%M:%S.%6N 23:45:56.123456 hour => 23 minute => 45 second => 56 nanosecond => 123456000 [nanosecond with length of 3] %H:%M:%S.%3N 23:45:56.123 hour => 23 minute => 45 second => 56 nanosecond => 123000000 [nanosecond with no length but < 9 digits] %H:%M:%S.%N 23:45:56.543 skip round trip hour => 23 minute => 45 second => 56 nanosecond => 543000000 [time zone as letter Z] %H:%M:%S %z 23:45:56 Z skip round trip hour => 23 minute => 45 second => 56 offset => 0 [time zone as numeric offset +HH] %H:%M:%S %z 23:45:56 +10 skip round trip hour => 23 minute => 45 second => 56 offset => 36000 [time zone as numeric offset -HH] %H:%M:%S %z 23:45:56 -10 skip round trip hour => 23 minute => 45 second => 56 offset => -36000 [time zone as numeric offset +HHMM] %H:%M:%S %z 23:45:56 +1030 hour => 23 minute => 45 second => 56 offset => 37800 [time zone as numeric offset -HHMM] %H:%M:%S %z 23:45:56 -1030 hour => 23 minute => 45 second => 56 offset => -37800 [time zone as numeric offset +HH:MM] %H:%M:%S %z 23:45:56 +10:30 skip round trip hour => 23 minute => 45 second => 56 offset => 37800 [time zone as numeric offset -HH:MM] %H:%M:%S %z 23:45:56 -10:30 skip round trip hour => 23 minute => 45 second => 56 offset => -37800 [time zone as abbreviation] %H:%M:%S %Z 23:45:56 AEST skip round trip hour => 23 minute => 45 second => 56 offset => 36000 [time zone as abbreviation with short name of +07] %H:%M:%S %Z 23:45:56 +07 skip round trip hour => 23 minute => 45 second => 56 offset => 25200 [time zone as Olson name] %H:%M:%S %O 23:45:56 America/Chicago hour => 23 minute => 45 second => 56 time_zone_long_name => America/Chicago [escaped percent] %Y%%%m%%%d 2015%05%14 year => 2015 month => 5 day => 14 [escaped percent followed by letter token] %Y%%%m%%%d%%H 2015%05%14%H year => 2015 month => 5 day => 14 [every pattern] %a %b %B %C %d %e %h %H %I %j %k %l %m %M %n %N %O %p %P %S %U %u %w %W %y %Y %s %G %g %z %Z %%Y %% Wed Nov November 20 05 5 Nov 21 09 309 21 9 11 34 \n 123456789 America/Denver PM pm 45 44 3 3 44 03 2003 1068093285 2003 03 -0700 MST %Y % year => 2003 month => 11 day => 5 hour => 21 minute => 34 second => 45 nanosecond => 123456789 time_zone_long_name => America/Denver [Australian date] %x 31/12/98 locale = en-AU skip round trip year => 1998 month => 12 day => 31 [Australian time] %X 13:34:56 locale = en-AU skip round trip hour => 13 minute => 34 second => 56 [Australian date/time] %c AU_THU 31 AU_DEC 1998 13:34:56 AEDT locale = en-AU skip round trip year => 1998 month => 12 day => 31 hour => 13 minute => 34 second => 56 offset => 39600 [US date] %x 12/31/1998 locale = en-US skip round trip year => 1998 month => 12 day => 31 [US time] %X 01:34:56 PM locale = en-US skip round trip hour => 13 minute => 34 second => 56 [US date/time] %c Thu 31 Dec 1998 01:34:56 PM MST locale = en-US skip round trip year => 1998 month => 12 day => 31 hour => 13 minute => 34 second => 56 offset => -25200 [UK date] %x 31/12/98 locale = en-GB skip round trip year => 1998 month => 12 day => 31 [UK time] %X 13:34:56 locale = en-GB skip round trip hour => 13 minute => 34 second => 56 [UK date/time] %c Thu 31 Dec 1998 13:34:56 GMT locale = en-GB skip round trip year => 1998 month => 12 day => 31 hour => 13 minute => 34 second => 56 offset => 0 [French (France) date] %x 31/12/1998 locale = fr-FR skip round trip year => 1998 month => 12 day => 31 [French (France) time] %X 13:34:56 locale = fr-FR skip round trip hour => 13 minute => 34 second => 56 [French (France) date/time] %c jeu. 31 Déc. 1998 13:34:56 CEST locale = fr-FR skip round trip year => 1998 month => 12 day => 31 hour => 13 minute => 34 second => 56 offset => 7200 [French (Generic) date] %x 12/31/98 locale = fr skip round trip year => 1998 month => 12 day => 31 [French (Generic) time] %X 13:34:56 locale = fr skip round trip hour => 13 minute => 34 second => 56 [French (Generic) date/time] %c jeu. Déc. 31 13:34:56 1998 locale = fr skip round trip year => 1998 month => 12 day => 31 hour => 13 minute => 34 second => 56 [epoch without time zone] %s 42 epoch => 42 time_zone_long_name => floating [epoch with time zone] %s %Z 42 UTC epoch => 42 offset => 0 [epoch with nanosecond] %s %N 42 000000034 epoch => 42 nanosecond => 34 DateTime-Format-Strptime-1.75/inc/0000775000175000017500000000000013217762750016622 5ustar autarchautarchDateTime-Format-Strptime-1.75/inc/GenerateLocaleTests.pm0000644000175000017500000001267313217762750023064 0ustar autarchautarchpackage GenerateLocaleTests; use strict; use warnings; use namespace::autoclean; use DateTime::Locale 1.03; use Dist::Zilla::File::InMemory; use Moose; with( 'Dist::Zilla::Role::FileGatherer', 'Dist::Zilla::Role::TextTemplate', ); my $template = <<'EOF'; 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 = '{{$code}}'; 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 ); } EOF sub gather_files { my $self = shift; my %non_author = map { $_ => 1 } qw( en de ga pt zh ); for my $code ( DateTime::Locale->codes ) { my $filename = $non_author{$code} ? "t/locale-$code.t" : "xt/author/locale-$code.t"; $self->add_file( Dist::Zilla::File::InMemory->new( name => $filename, content => $self->fill_in_string( $template, { code => $code }, ), ) ); } } __PACKAGE__->meta->make_immutable; 1; DateTime-Format-Strptime-1.75/xt/0000775000175000017500000000000013217762750016504 5ustar autarchautarchDateTime-Format-Strptime-1.75/xt/release/0000775000175000017500000000000013217762750020124 5ustar autarchautarchDateTime-Format-Strptime-1.75/xt/release/meta-json.t0000644000175000017500000000006413217762750022204 0ustar autarchautarch#!perl use Test::CPAN::Meta::JSON; meta_json_ok(); DateTime-Format-Strptime-1.75/xt/author/0000775000175000017500000000000013217762750020006 5ustar autarchautarchDateTime-Format-Strptime-1.75/xt/author/locale-fr-BJ.t0000644000175000017500000001111713217762750022327 0ustar autarchautarchuse 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 = 'fr-BJ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-rwk-TZ.t0000644000175000017500000001112013217762750022557 0ustar autarchautarchuse 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 = 'rwk-TZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-to.t0000644000175000017500000001111413217762750022046 0ustar autarchautarchuse 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 = 'to'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sv-AX.t0000644000175000017500000001111713217762750022365 0ustar autarchautarchuse 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 = 'sv-AX'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-khq.t0000644000175000017500000001111513217762750022210 0ustar autarchautarchuse 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 = 'khq'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fi.t0000644000175000017500000001111413217762750022022 0ustar autarchautarchuse 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 = 'fi'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-GH.t0000644000175000017500000001111713217762750022325 0ustar autarchautarchuse 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 = 'en-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-DM.t0000644000175000017500000001111713217762750022327 0ustar autarchautarchuse 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 = 'en-DM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kk.t0000644000175000017500000001111413217762750022031 0ustar autarchautarchuse 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 = 'kk'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-wae.t0000644000175000017500000001111513217762750022201 0ustar autarchautarchuse 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 = 'wae'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-cs-CZ.t0000644000175000017500000001111713217762750022346 0ustar autarchautarchuse 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 = 'cs-CZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-uz.t0000644000175000017500000001111413217762750022062 0ustar autarchautarchuse 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 = 'uz'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-GI.t0000644000175000017500000001111713217762750022326 0ustar autarchautarchuse 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 = 'en-GI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lt-LT.t0000644000175000017500000001111713217762750022363 0ustar autarchautarchuse 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 = 'lt-LT'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-419.t0000644000175000017500000001112013217762750022343 0ustar autarchautarchuse 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 = 'es-419'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-prg-001.t0000644000175000017500000001112113217762750022510 0ustar autarchautarchuse 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ewo-CM.t0000644000175000017500000001112013217762750022510 0ustar autarchautarchuse 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 = 'ewo-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-SX.t0000644000175000017500000001111713217762750022361 0ustar autarchautarchuse 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 = 'en-SX'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kn.t0000644000175000017500000001111413217762750022034 0ustar autarchautarchuse 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 = 'kn'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-NC.t0000644000175000017500000001111713217762750022334 0ustar autarchautarchuse 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 = 'fr-NC'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mua.t0000644000175000017500000001111513217762750022207 0ustar autarchautarchuse 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 = 'mua'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-FI.t0000644000175000017500000001111713217762750022325 0ustar autarchautarchuse 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 = 'en-FI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-PY.t0000644000175000017500000001111713217762750022364 0ustar autarchautarchuse 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 = 'es-PY'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bn-BD.t0000644000175000017500000001111713217762750022311 0ustar autarchautarchuse 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 = 'bn-BD'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sn-ZW.t0000644000175000017500000001111713217762750022405 0ustar autarchautarchuse 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 = 'sn-ZW'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-vun.t0000644000175000017500000001111513217762750022235 0ustar autarchautarchuse 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 = 'vun'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bs-Cyrl.t0000644000175000017500000001112113217762750022735 0ustar autarchautarchuse 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 = 'bs-Cyrl'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-luo.t0000644000175000017500000001111513217762750022224 0ustar autarchautarchuse 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 = 'luo'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-tg-TJ.t0000644000175000017500000001111713217762750022354 0ustar autarchautarchuse 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 = 'tg-TJ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ti-ER.t0000644000175000017500000001111713217762750022347 0ustar autarchautarchuse 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 = 'ti-ER'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sbp.t0000644000175000017500000001111513217762750022211 0ustar autarchautarchuse 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 = 'sbp'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-se-SE.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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 = 'se-SE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ca-ES-VALENCIA.t0000644000175000017500000001113013217762750023472 0ustar autarchautarchuse 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 = 'ca-ES-VALENCIA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-dje-NE.t0000644000175000017500000001112013217762750022463 0ustar autarchautarchuse 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 = 'dje-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-YT.t0000644000175000017500000001111713217762750022370 0ustar autarchautarchuse 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 = 'fr-YT'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-SY.t0000644000175000017500000001111713217762750022362 0ustar autarchautarchuse 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 = 'ar-SY'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sr-Cyrl-ME.t0000644000175000017500000001112413217762750023257 0ustar autarchautarchuse 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 = 'sr-Cyrl-ME'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-PF.t0000644000175000017500000001111713217762750022341 0ustar autarchautarchuse 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 = 'fr-PF'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pt-ST.t0000644000175000017500000001111713217762750022376 0ustar autarchautarchuse 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 = 'pt-ST'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ps.t0000644000175000017500000001111413217762750022046 0ustar autarchautarchuse 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 = 'ps'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nl-NL.t0000644000175000017500000001111713217762750022347 0ustar autarchautarchuse 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 = 'nl-NL'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-chr-US.t0000644000175000017500000001112013217762750022522 0ustar autarchautarchuse 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 = 'chr-US'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nn-NO.t0000644000175000017500000001111713217762750022354 0ustar autarchautarchuse 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 = 'nn-NO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-dyo.t0000644000175000017500000001111513217762750022220 0ustar autarchautarchuse 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 = 'dyo'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-vun-TZ.t0000644000175000017500000001112013217762750022564 0ustar autarchautarchuse 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 = 'vun-TZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-DG.t0000644000175000017500000001111713217762750022321 0ustar autarchautarchuse 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 = 'en-DG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-cy-GB.t0000644000175000017500000001111713217762750022330 0ustar autarchautarchuse 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 = 'cy-GB'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-hi.t0000644000175000017500000001111413217762750022024 0ustar autarchautarchuse 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 = 'hi'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-GB.t0000644000175000017500000001111713217762750022317 0ustar autarchautarchuse 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 = 'en-GB'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-yue-Hant.t0000644000175000017500000001112213217762750023115 0ustar autarchautarchuse 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 = 'yue-Hant'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-guz-KE.t0000644000175000017500000001112013217762750022523 0ustar autarchautarchuse 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 = 'guz-KE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-VG.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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 = 'en-VG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-om-KE.t0000644000175000017500000001111713217762750022337 0ustar autarchautarchuse 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 = 'om-KE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mfe-MU.t0000644000175000017500000001112013217762750022507 0ustar autarchautarchuse 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 = 'mfe-MU'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ca-IT.t0000644000175000017500000001111713217762750022324 0ustar autarchautarchuse 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 = 'ca-IT'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-IN.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'en-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-VI.t0000644000175000017500000001111713217762750022345 0ustar autarchautarchuse 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 = 'en-VI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-te.t0000644000175000017500000001111413217762750022034 0ustar autarchautarchuse 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 = 'te'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nds.t0000644000175000017500000001111513217762750022211 0ustar autarchautarchuse 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 = 'nds'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-GN.t0000644000175000017500000001111713217762750022340 0ustar autarchautarchuse 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 = 'fr-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sah.t0000644000175000017500000001111513217762750022200 0ustar autarchautarchuse 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 = 'sah'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-TC.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'en-TC'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-asa.t0000644000175000017500000001111513217762750022171 0ustar autarchautarchuse 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 = 'asa'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sd.t0000644000175000017500000001111413217762750022032 0ustar autarchautarchuse 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'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fo-FO.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'fo-FO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-MU.t0000644000175000017500000001111713217762750022355 0ustar autarchautarchuse 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 = 'fr-MU'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pa-Arab-PK.t0000644000175000017500000001112413217762750023200 0ustar autarchautarchuse 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 = 'pa-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-os-GE.t0000644000175000017500000001111713217762750022341 0ustar autarchautarchuse 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 = 'os-GE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-it-SM.t0000644000175000017500000001111713217762750022360 0ustar autarchautarchuse 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 = 'it-SM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-br.t0000644000175000017500000001111413217762750022027 0ustar autarchautarchuse 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 = 'br'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-cy.t0000644000175000017500000001111413217762750022037 0ustar autarchautarchuse 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 = 'cy'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ks.t0000644000175000017500000001111413217762750022041 0ustar autarchautarchuse 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'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ebu.t0000644000175000017500000001111513217762750022200 0ustar autarchautarchuse 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 = 'ebu'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-ZA.t0000644000175000017500000001111713217762750022341 0ustar autarchautarchuse 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 = 'en-ZA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kl.t0000644000175000017500000001111413217762750022032 0ustar autarchautarchuse 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 = 'kl'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bas.t0000644000175000017500000001111513217762750022172 0ustar autarchautarchuse 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 = 'bas'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nds-DE.t0000644000175000017500000001112013217762750022473 0ustar autarchautarchuse 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 = 'nds-DE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-agq.t0000644000175000017500000001111513217762750022175 0ustar autarchautarchuse 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 = 'agq'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-ML.t0000644000175000017500000001111713217762750022344 0ustar autarchautarchuse 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 = 'fr-ML'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fo.t0000644000175000017500000001111413217762750022030 0ustar autarchautarchuse 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 = 'fo'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ru-UA.t0000644000175000017500000001111713217762750022360 0ustar autarchautarchuse 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 = 'ru-UA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-az-Cyrl.t0000644000175000017500000001112113217762750022743 0ustar autarchautarchuse 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 = 'az-Cyrl'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ii.t0000644000175000017500000001111413217762750022025 0ustar autarchautarchuse 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 = 'ii'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-SO.t0000644000175000017500000001111713217762750022350 0ustar autarchautarchuse 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 = 'ar-SO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-shi-Tfng.t0000644000175000017500000001112213217762750023102 0ustar autarchautarchuse 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 = 'shi-Tfng'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sg-CF.t0000644000175000017500000001111713217762750022326 0ustar autarchautarchuse 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 = 'sg-CF'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-af.t0000644000175000017500000001111413217762750022012 0ustar autarchautarchuse 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 = 'af'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-de-CH.t0000644000175000017500000001111713217762750022307 0ustar autarchautarchuse 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 = 'de-CH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-az-Latn-AZ.t0000644000175000017500000001112413217762750023243 0ustar autarchautarchuse 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 = 'az-Latn-AZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-EG.t0000644000175000017500000001111713217762750022322 0ustar autarchautarchuse 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 = 'ar-EG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-af-ZA.t0000644000175000017500000001111713217762750022325 0ustar autarchautarchuse 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 = 'af-ZA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nl-SR.t0000644000175000017500000001111713217762750022362 0ustar autarchautarchuse 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 = 'nl-SR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-naq-NA.t0000644000175000017500000001112013217762750022474 0ustar autarchautarchuse 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 = 'naq-NA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-et.t0000644000175000017500000001111413217762750022034 0ustar autarchautarchuse 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 = 'et'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-BI.t0000644000175000017500000001111713217762750022321 0ustar autarchautarchuse 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 = 'en-BI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kde-TZ.t0000644000175000017500000001112013217762750022517 0ustar autarchautarchuse 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 = 'kde-TZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bo-CN.t0000644000175000017500000001111713217762750022325 0ustar autarchautarchuse 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 = 'bo-CN'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr.t0000644000175000017500000001111413217762750022033 0ustar autarchautarchuse 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 = 'fr'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mas-KE.t0000644000175000017500000001112013217762750022476 0ustar autarchautarchuse 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 = 'mas-KE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-naq.t0000644000175000017500000001111513217762750022204 0ustar autarchautarchuse 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 = 'naq'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-SZ.t0000644000175000017500000001111713217762750022363 0ustar autarchautarchuse 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 = 'en-SZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-tr.t0000644000175000017500000001111413217762750022051 0ustar autarchautarchuse 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 = 'tr'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-de-LI.t0000644000175000017500000001111713217762750022321 0ustar autarchautarchuse 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 = 'de-LI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-uz-Latn-UZ.t0000644000175000017500000001112413217762750023313 0ustar autarchautarchuse 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 = 'uz-Latn-UZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-shi.t0000644000175000017500000001111513217762750022210 0ustar autarchautarchuse 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 = 'shi'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-eo.t0000644000175000017500000001111413217762750022027 0ustar autarchautarchuse 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 = 'eo'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-de-LU.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'de-LU'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lb-LU.t0000644000175000017500000001111713217762750022342 0ustar autarchautarchuse 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 = 'lb-LU'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-KI.t0000644000175000017500000001111713217762750022332 0ustar autarchautarchuse 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 = 'en-KI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kam-KE.t0000644000175000017500000001112013217762750022466 0ustar autarchautarchuse 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 = 'kam-KE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mfe.t0000644000175000017500000001111513217762750022174 0ustar autarchautarchuse 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 = 'mfe'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nnh.t0000644000175000017500000001111513217762750022210 0ustar autarchautarchuse 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 = 'nnh'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ckb-IR.t0000644000175000017500000001112013217762750022470 0ustar autarchautarchuse 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 = 'ckb-IR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kkj-CM.t0000644000175000017500000001112013217762750022475 0ustar autarchautarchuse 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 = 'kkj-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nl-BE.t0000644000175000017500000001111713217762750022324 0ustar autarchautarchuse 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 = 'nl-BE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sq-MK.t0000644000175000017500000001111713217762750022357 0ustar autarchautarchuse 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 = 'sq-MK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-hy-AM.t0000644000175000017500000001111713217762750022342 0ustar autarchautarchuse 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 = 'hy-AM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-EA.t0000644000175000017500000001111713217762750022321 0ustar autarchautarchuse 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 = 'es-EA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-twq.t0000644000175000017500000001111513217762750022240 0ustar autarchautarchuse 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 = 'twq'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ak.t0000644000175000017500000001111413217762750022017 0ustar autarchautarchuse 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 = 'ak'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ml-IN.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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 = 'ml-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-zh-Hant.t0000644000175000017500000001112113217762750022733 0ustar autarchautarchuse 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 = 'zh-Hant'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-VU.t0000644000175000017500000001111713217762750022361 0ustar autarchautarchuse 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 = 'en-VU'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-yo-BJ.t0000644000175000017500000001111713217762750022347 0ustar autarchautarchuse 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 = 'yo-BJ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fil-PH.t0000644000175000017500000001112013217762750022500 0ustar autarchautarchuse 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 = 'fil-PH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ee-TG.t0000644000175000017500000001111713217762750022330 0ustar autarchautarchuse 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 = 'ee-TG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-MG.t0000644000175000017500000001111713217762750022337 0ustar autarchautarchuse 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 = 'fr-MG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fur-IT.t0000644000175000017500000001112013217762750022527 0ustar autarchautarchuse 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 = 'fur-IT'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-gu-IN.t0000644000175000017500000001111713217762750022346 0ustar autarchautarchuse 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 = 'gu-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mt-MT.t0000644000175000017500000001111713217762750022365 0ustar autarchautarchuse 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 = 'mt-MT'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-tr-TR.t0000644000175000017500000001111713217762750022377 0ustar autarchautarchuse 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 = 'tr-TR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-PM.t0000644000175000017500000001111713217762750022350 0ustar autarchautarchuse 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 = 'fr-PM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-gd.t0000644000175000017500000001111413217762750022016 0ustar autarchautarchuse 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 = 'gd'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-de-IT.t0000644000175000017500000001111713217762750022331 0ustar autarchautarchuse 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 = 'de-IT'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-IL.t0000644000175000017500000001111713217762750022333 0ustar autarchautarchuse 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 = 'ar-IL'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-BS.t0000644000175000017500000001111713217762750022333 0ustar autarchautarchuse 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 = 'en-BS'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-cu.t0000644000175000017500000001111413217762750022033 0ustar autarchautarchuse 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nyn.t0000644000175000017500000001111513217762750022231 0ustar autarchautarchuse 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 = 'nyn'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-KN.t0000644000175000017500000001111713217762750022337 0ustar autarchautarchuse 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 = 'en-KN'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kln.t0000644000175000017500000001111513217762750022211 0ustar autarchautarchuse 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 = 'kln'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nd-ZW.t0000644000175000017500000001111713217762750022366 0ustar autarchautarchuse 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 = 'nd-ZW'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pa-Guru.t0000644000175000017500000001112113217762750022742 0ustar autarchautarchuse 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 = 'pa-Guru'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ko-KP.t0000644000175000017500000001111713217762750022350 0ustar autarchautarchuse 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 = 'ko-KP'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-da-DK.t0000644000175000017500000001111713217762750022307 0ustar autarchautarchuse 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 = 'da-DK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fa-AF.t0000644000175000017500000001111713217762750022301 0ustar autarchautarchuse 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 = 'fa-AF'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ne.t0000644000175000017500000001111413217762750022026 0ustar autarchautarchuse 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 = '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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-BZ.t0000644000175000017500000001111713217762750022342 0ustar autarchautarchuse 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 = 'en-BZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-SB.t0000644000175000017500000001111713217762750022333 0ustar autarchautarchuse 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 = 'en-SB'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pl.t0000644000175000017500000001111413217762750022037 0ustar autarchautarchuse 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 = 'pl'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-hi-IN.t0000644000175000017500000001111713217762750022333 0ustar autarchautarchuse 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 = 'hi-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-dav.t0000644000175000017500000001111513217762750022177 0ustar autarchautarchuse 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 = 'dav'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-NL.t0000644000175000017500000001111713217762750022340 0ustar autarchautarchuse 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 = 'en-NL'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-be-BY.t0000644000175000017500000001111713217762750022325 0ustar autarchautarchuse 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 = 'be-BY'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-LY.t0000644000175000017500000001111713217762750022353 0ustar autarchautarchuse 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 = 'ar-LY'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lg-UG.t0000644000175000017500000001111713217762750022342 0ustar autarchautarchuse 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 = 'lg-UG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-SD.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'ar-SD'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-BM.t0000644000175000017500000001111713217762750022325 0ustar autarchautarchuse 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 = 'en-BM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kab-DZ.t0000644000175000017500000001112013217762750022471 0ustar autarchautarchuse 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 = 'kab-DZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ca-FR.t0000644000175000017500000001111713217762750022317 0ustar autarchautarchuse 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 = 'ca-FR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kea-CV.t0000644000175000017500000001112013217762750022467 0ustar autarchautarchuse 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 = 'kea-CV'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fo-DK.t0000644000175000017500000001111713217762750022327 0ustar autarchautarchuse 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 = 'fo-DK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-BW.t0000644000175000017500000001111713217762750022337 0ustar autarchautarchuse 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 = 'en-BW'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-VE.t0000644000175000017500000001111713217762750022346 0ustar autarchautarchuse 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 = 'es-VE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-el-GR.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'el-GR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-km.t0000644000175000017500000001111413217762750022033 0ustar autarchautarchuse 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 = 'km'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-vi.t0000644000175000017500000001111413217762750022042 0ustar autarchautarchuse 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 = 'vi'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-shi-Tfng-MA.t0000644000175000017500000001112513217762750023400 0ustar autarchautarchuse 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 = 'shi-Tfng-MA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-eu-ES.t0000644000175000017500000001111713217762750022345 0ustar autarchautarchuse 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 = 'eu-ES'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-my-MM.t0000644000175000017500000001111713217762750022363 0ustar autarchautarchuse 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 = 'my-MM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-vai.t0000644000175000017500000001111513217762750022204 0ustar autarchautarchuse 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 = 'vai'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ff.t0000644000175000017500000001111413217762750022017 0ustar autarchautarchuse 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'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ksh.t0000644000175000017500000001111513217762750022212 0ustar autarchautarchuse 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 = 'ksh'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-SS.t0000644000175000017500000001111713217762750022354 0ustar autarchautarchuse 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 = 'en-SS'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-GA.t0000644000175000017500000001111713217762750022323 0ustar autarchautarchuse 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 = 'fr-GA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-xog.t0000644000175000017500000001111513217762750022222 0ustar autarchautarchuse 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 = 'xog'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nl-BQ.t0000644000175000017500000001111713217762750022340 0ustar autarchautarchuse 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 = 'nl-BQ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-zh-Hans.t0000644000175000017500000001112113217762750022732 0ustar autarchautarchuse 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 = 'zh-Hans'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-teo-KE.t0000644000175000017500000001112013217762750022505 0ustar autarchautarchuse 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 = 'teo-KE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/00-compile.t0000644000175000017500000000263113217762750022040 0ustar autarchautarchuse 5.006; use strict; use warnings; # this test was generated with Dist::Zilla::Plugin::Test::Compile 2.058 use Test::More; plan tests => 3; my @module_files = ( 'DateTime/Format/Strptime.pm', 'DateTime/Format/Strptime/Types.pm' ); # no fake home requested my @switches = ( -d 'blib' ? '-Mblib' : '-Ilib', ); use File::Spec; use IPC::Open3; use IO::Handle; open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; my @warnings; for my $lib (@module_files) { # see L my $stderr = IO::Handle->new; diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} . $str . q{'} } $^X, @switches, '-e', "require q[$lib]")) if $ENV{PERL_COMPILE_TEST_DEBUG}; my $pid = open3($stdin, '>&STDERR', $stderr, $^X, @switches, '-e', "require q[$lib]"); binmode $stderr, ':crlf' if $^O eq 'MSWin32'; my @_warnings = <$stderr>; waitpid($pid, 0); is($?, 0, "$lib loaded ok"); shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ and not eval { +require blib; blib->VERSION('1.01') }; if (@_warnings) { warn @_warnings; push @warnings, @_warnings; } } is(scalar(@warnings), 0, 'no warnings found') or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ); DateTime-Format-Strptime-1.75/xt/author/locale-ewo.t0000644000175000017500000001111513217762750022217 0ustar autarchautarchuse 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 = 'ewo'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-yi-001.t0000644000175000017500000001112013217762750022340 0ustar autarchautarchuse 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 = 'yi-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-brx.t0000644000175000017500000001111513217762750022220 0ustar autarchautarchuse 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 = 'brx'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-hr-BA.t0000644000175000017500000001111713217762750022320 0ustar autarchautarchuse 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 = 'hr-BA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-id.t0000644000175000017500000001111413217762750022020 0ustar autarchautarchuse 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 = '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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sq-XK.t0000644000175000017500000001111713217762750022372 0ustar autarchautarchuse 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 = 'sq-XK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-it-VA.t0000644000175000017500000001111713217762750022347 0ustar autarchautarchuse 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 = 'it-VA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-th-TH.t0000644000175000017500000001111713217762750022353 0ustar autarchautarchuse 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 = 'th-TH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-KE.t0000644000175000017500000001111713217762750022326 0ustar autarchautarchuse 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 = 'en-KE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-WF.t0000644000175000017500000001111713217762750022350 0ustar autarchautarchuse 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 = 'fr-WF'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-ZW.t0000644000175000017500000001111713217762750022367 0ustar autarchautarchuse 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 = 'en-ZW'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ln-CF.t0000644000175000017500000001111713217762750022326 0ustar autarchautarchuse 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 = 'ln-CF'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sk.t0000644000175000017500000001111413217762750022041 0ustar autarchautarchuse 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 = 'sk'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-HN.t0000644000175000017500000001111713217762750022341 0ustar autarchautarchuse 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 = 'es-HN'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-SN.t0000644000175000017500000001111713217762750022354 0ustar autarchautarchuse 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 = 'fr-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bas-CM.t0000644000175000017500000001112013217762750022463 0ustar autarchautarchuse 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 = 'bas-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-SD.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'en-SD'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-CD.t0000644000175000017500000001111713217762750022322 0ustar autarchautarchuse 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 = 'fr-CD'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-PH.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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 = 'es-PH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-FR.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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 = 'fr-FR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-SE.t0000644000175000017500000001111713217762750022336 0ustar autarchautarchuse 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 = 'en-SE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-SC.t0000644000175000017500000001111713217762750022341 0ustar autarchautarchuse 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 = 'fr-SC'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-km-KH.t0000644000175000017500000001111713217762750022336 0ustar autarchautarchuse 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 = 'km-KH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bs-Cyrl-BA.t0000644000175000017500000001112413217762750023220 0ustar autarchautarchuse 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 = 'bs-Cyrl-BA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/eol.t0000644000175000017500000000117213217762750020751 0ustar autarchautarchuse strict; use warnings; # this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 use Test::More 0.88; use Test::EOL; my @files = ( 'lib/DateTime/Format/Strptime.pm', 'lib/DateTime/Format/Strptime/Types.pm', 't/00-report-prereqs.dd', 't/00-report-prereqs.t', 't/basic.t', 't/edge.t', 't/errors.t', 't/format-datetime.t', 't/format-with-locale.t', 't/import.t', 't/lib/T.pm', 't/locale-de.t', 't/locale-en.t', 't/locale-ga.t', 't/locale-pt.t', 't/locale-zh.t', 't/zones.t' ); eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; done_testing; DateTime-Format-Strptime-1.75/xt/author/locale-ki.t0000644000175000017500000001111413217762750022027 0ustar autarchautarchuse 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 = 'ki'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ksh-DE.t0000644000175000017500000001112013217762750022474 0ustar autarchautarchuse 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 = 'ksh-DE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/test-all-my-deps.t0000644000175000017500000000626613217762750023304 0ustar autarchautarch## no critic (Modules::ProhibitExcessMainComplexity) use strict; use warnings; use Cwd qw( abs_path ); use Test::More; BEGIN { plan skip_all => 'Must set DATETIME_FORMAT_STRPTIME_TEST_DEPS to true in order to run these tests' unless $ENV{DATETIME_FORMAT_STRPTIME_TEST_DEPS}; } use Test::DependentModules qw( test_all_dependents ); ## no critic (Variables::RequireLocalizedPunctuationVars) $ENV{PERL_TEST_DM_LOG_DIR} = abs_path('.'); ## use critic test_all_dependents( 'DateTime::Format::Strptime', { filter => sub { return 0 if $_[0] =~ /^Mac-/; return 0 if $_[0] eq 'App-dateseq'; return 0 if $_[0] eq 'App-financeta'; # Failing deps return 0 if $_[0] eq 'App-Twimap'; # Fails regardless of Strptime return 0 if $_[0] eq 'Business-RO-CNP'; # Fails regardless of Strptime return 0 if $_[0] eq 'Catmandu-Fix-Date'; # Requires Coro return 0 if $_[0] eq 'Cikl'; # Fails regardless of Strptime return 0 if $_[0] eq 'Data-Apache-mod_status'; # Requires a module which doesn't exist on CPAN return 0 if $_[0] eq 'DPKG-Log'; # Fails regardless of Strptime return 0 if $_[0] eq 'Finance-TW-TAIFEX'; # Requires gtk return 0 if $_[0] eq 'Gtk2-Ex-DbLinker'; # Fails regardless of Strptime return 0 if $_[0] eq 'HTML-FormatData'; # Fails regardless of Strptime return 0 if $_[0] eq 'HTML-Tested'; # Fails regardless of Strptime return 0 if $_[0] eq 'meon-Web'; # prompts for keys to use in testing return 0 if $_[0] eq 'Net-Amazon-AWIS'; # Fails regardless of Strptime return 0 if $_[0] eq 'Net-DRI'; # Fails regardless of Strptime return 0 if $_[0] eq 'Net-Plurk'; # Requires Coro return 0 if $_[0] eq 'Net-IMAP-Server'; # Fails regardless of Strptime return 0 if $_[0] eq 'OpenERP-OOM'; # hangs installing prereqs (probably SOAP::Lite) return 0 if $_[0] eq 'Plagger'; # Fails regardless of Strptime return 0 if $_[0] eq 'SmokeRunner-Multi'; # Fails on installing some prereqs return 0 if $_[0] eq 'OpenResty'; # Fails regardless of Strptime return 0 if $_[0] eq 'Smolder'; # Is either hanging or installing all of CPAN return 0 if $_[0] eq 'Strehler'; # Fails regardless of Strptime return 0 if $_[0] eq 'Video-PlaybackMachine'; # Fails regardless of Strptime return 0 if $_[0] eq 'WebService-IMDB'; # Fails regardless of Strptime return 0 if $_[0] eq 'W3C-SOAP'; # Fails regardless of Strptime return 0 if $_[0] eq 'WWW-DataWiki'; # Requires Wx return 0 if $_[0] eq 'Wx-Perl-DbLinker'; # Fails on installing some prereqs return 0 if $_[0] eq 'XAS'; return 1; }, }, ); done_testing(); DateTime-Format-Strptime-1.75/xt/author/locale-en-SH.t0000644000175000017500000001111713217762750022341 0ustar autarchautarchuse 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 = 'en-SH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-haw-US.t0000644000175000017500000001112013217762750022525 0ustar autarchautarchuse 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 = 'haw-US'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-he-IL.t0000644000175000017500000001111713217762750022325 0ustar autarchautarchuse 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 = 'he-IL'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-eo-001.t0000644000175000017500000001112013217762750022322 0ustar autarchautarchuse 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 = 'eo-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-it-CH.t0000644000175000017500000001111713217762750022333 0ustar autarchautarchuse 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 = 'it-CH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-MX.t0000644000175000017500000001111713217762750022360 0ustar autarchautarchuse 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 = 'es-MX'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ms-SG.t0000644000175000017500000001111713217762750022355 0ustar autarchautarchuse 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-SG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nl-SX.t0000644000175000017500000001111713217762750022370 0ustar autarchautarchuse 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 = 'nl-SX'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-AT.t0000644000175000017500000001111713217762750022333 0ustar autarchautarchuse 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 = 'en-AT'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-so.t0000644000175000017500000001111413217762750022045 0ustar autarchautarchuse 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 = 'so'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-RW.t0000644000175000017500000001111713217762750022357 0ustar autarchautarchuse 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 = 'en-RW'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ur.t0000644000175000017500000001111413217762750022052 0ustar autarchautarchuse 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 = 'ur'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ksb-TZ.t0000644000175000017500000001112013217762750022533 0ustar autarchautarchuse 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 = 'ksb-TZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-gu.t0000644000175000017500000001111413217762750022037 0ustar autarchautarchuse 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 = 'gu'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bg-BG.t0000644000175000017500000001111713217762750022305 0ustar autarchautarchuse 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 = 'bg-BG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ro-RO.t0000644000175000017500000001111713217762750022365 0ustar autarchautarchuse 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 = 'ro-RO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-HT.t0000644000175000017500000001111713217762750022347 0ustar autarchautarchuse 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 = 'fr-HT'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sv.t0000644000175000017500000001111413217762750022054 0ustar autarchautarchuse 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 = 'sv'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/test-version.t0000644000175000017500000000063713217762750022641 0ustar autarchautarchuse strict; use warnings; use Test::More; # generated by Dist::Zilla::Plugin::Test::Version 1.09 use Test::Version; my @imports = qw( version_all_ok ); my $params = { is_strict => 1, has_version => 1, multiple => 0, }; push @imports, $params if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); Test::Version->import(@imports); version_all_ok; done_testing; DateTime-Format-Strptime-1.75/xt/author/locale-mn.t0000644000175000017500000001111413217762750022036 0ustar autarchautarchuse 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 = 'mn'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-zu-ZA.t0000644000175000017500000001111713217762750022375 0ustar autarchautarchuse 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 = 'zu-ZA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-ZM.t0000644000175000017500000001111713217762750022355 0ustar autarchautarchuse 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 = 'en-ZM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mgo.t0000644000175000017500000001111513217762750022207 0ustar autarchautarchuse 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 = 'mgo'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mer-KE.t0000644000175000017500000001112013217762750022501 0ustar autarchautarchuse 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 = 'mer-KE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-IQ.t0000644000175000017500000001111713217762750022340 0ustar autarchautarchuse 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 = 'ar-IQ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-NZ.t0000644000175000017500000001111713217762750022356 0ustar autarchautarchuse 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 = 'en-NZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-MR.t0000644000175000017500000001111713217762750022345 0ustar autarchautarchuse 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 = 'ar-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-CA.t0000644000175000017500000001111713217762750022312 0ustar autarchautarchuse 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 = 'en-CA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pl-PL.t0000644000175000017500000001111713217762750022353 0ustar autarchautarchuse 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 = 'pl-PL'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lkt.t0000644000175000017500000001111513217762750022217 0ustar autarchautarchuse 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 = 'lkt'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-qu-EC.t0000644000175000017500000001111713217762750022341 0ustar autarchautarchuse 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 = 'qu-EC'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-GY.t0000644000175000017500000001111713217762750022346 0ustar autarchautarchuse 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 = 'en-GY'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-zh-Hans-SG.t0000644000175000017500000001112413217762750023244 0ustar autarchautarchuse 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 = 'zh-Hans-SG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-MU.t0000644000175000017500000001111713217762750022350 0ustar autarchautarchuse 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 = 'en-MU'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-DJ.t0000644000175000017500000001111713217762750022324 0ustar autarchautarchuse 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 = 'ar-DJ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pt-CV.t0000644000175000017500000001111713217762750022360 0ustar autarchautarchuse 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 = 'pt-CV'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ta.t0000644000175000017500000001111413217762750022030 0ustar autarchautarchuse 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 = 'ta'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-SL.t0000644000175000017500000001111713217762750022345 0ustar autarchautarchuse 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 = 'en-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-BH.t0000644000175000017500000001111713217762750022320 0ustar autarchautarchuse 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 = 'ar-BH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mr-IN.t0000644000175000017500000001111713217762750022351 0ustar autarchautarchuse 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 = 'mr-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kok.t0000644000175000017500000001111513217762750022211 0ustar autarchautarchuse 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 = 'kok'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-PR.t0000644000175000017500000001111713217762750022350 0ustar autarchautarchuse 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 = 'en-PR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-gsw-FR.t0000644000175000017500000001112013217762750022526 0ustar autarchautarchuse 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 = 'gsw-FR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pa.t0000644000175000017500000001111413217762750022024 0ustar autarchautarchuse 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 = 'pa'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-br-FR.t0000644000175000017500000001111713217762750022337 0ustar autarchautarchuse 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 = 'br-FR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-or-IN.t0000644000175000017500000001111713217762750022353 0ustar autarchautarchuse 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 = 'or-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ha-GH.t0000644000175000017500000001111713217762750022313 0ustar autarchautarchuse 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 = 'ha-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-tzm.t0000644000175000017500000001111513217762750022237 0ustar autarchautarchuse 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 = 'tzm'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bez.t0000644000175000017500000001111513217762750022205 0ustar autarchautarchuse 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 = 'bez'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-GP.t0000644000175000017500000001111713217762750022342 0ustar autarchautarchuse 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 = 'fr-GP'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ln-CD.t0000644000175000017500000001111713217762750022324 0ustar autarchautarchuse 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 = 'ln-CD'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-th.t0000644000175000017500000001111413217762750022037 0ustar autarchautarchuse 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 = 'th'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-qu-BO.t0000644000175000017500000001111713217762750022352 0ustar autarchautarchuse 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 = 'qu-BO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nds-NL.t0000644000175000017500000001112013217762750022514 0ustar autarchautarchuse 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 = 'nds-NL'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mgh-MZ.t0000644000175000017500000001112013217762750022520 0ustar autarchautarchuse 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 = 'mgh-MZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pt-BR.t0000644000175000017500000001111713217762750022353 0ustar autarchautarchuse 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 = 'pt-BR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-se.t0000644000175000017500000001111413217762750022033 0ustar autarchautarchuse 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 = 'se'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-zh-Hant-TW.t0000644000175000017500000001112413217762750023266 0ustar autarchautarchuse 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 = 'zh-Hant-TW'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-de-BE.t0000644000175000017500000001111713217762750022303 0ustar autarchautarchuse 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 = 'de-BE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-PR.t0000644000175000017500000001111713217762750022355 0ustar autarchautarchuse 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 = 'es-PR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ff-MR.t0000644000175000017500000001111713217762750022336 0ustar autarchautarchuse 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-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-MP.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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 = 'en-MP'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ee-GH.t0000644000175000017500000001111713217762750022314 0ustar autarchautarchuse 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 = 'ee-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 ); } DateTime-Format-Strptime-1.75/xt/author/portability.t0000644000175000017500000000026713217762750022540 0ustar autarchautarchuse strict; use warnings; use Test::More; eval 'use Test::Portability::Files'; plan skip_all => 'Test::Portability::Files required for testing portability' if $@; run_tests(); DateTime-Format-Strptime-1.75/xt/author/locale-es-BO.t0000644000175000017500000001111713217762750022334 0ustar autarchautarchuse 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 = 'es-BO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/no-tabs.t0000644000175000017500000000114013217762750021530 0ustar autarchautarchuse strict; use warnings; # this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.15 use Test::More 0.88; use Test::NoTabs; my @files = ( 'lib/DateTime/Format/Strptime.pm', 'lib/DateTime/Format/Strptime/Types.pm', 't/00-report-prereqs.dd', 't/00-report-prereqs.t', 't/basic.t', 't/edge.t', 't/errors.t', 't/format-datetime.t', 't/format-with-locale.t', 't/import.t', 't/lib/T.pm', 't/locale-de.t', 't/locale-en.t', 't/locale-ga.t', 't/locale-pt.t', 't/locale-zh.t', 't/zones.t' ); notabs_ok($_) foreach @files; done_testing; DateTime-Format-Strptime-1.75/xt/author/locale-mr.t0000644000175000017500000001111413217762750022042 0ustar autarchautarchuse 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 = '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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-KW.t0000644000175000017500000001111713217762750022350 0ustar autarchautarchuse 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 = 'ar-KW'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-os-RU.t0000644000175000017500000001111713217762750022374 0ustar autarchautarchuse 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 = 'os-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-it.t0000644000175000017500000001111413217762750022040 0ustar autarchautarchuse 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 = 'it'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-gv-IM.t0000644000175000017500000001111713217762750022346 0ustar autarchautarchuse 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 = 'gv-IM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-MS.t0000644000175000017500000001111713217762750022346 0ustar autarchautarchuse 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 = 'en-MS'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-zh-Hant-HK.t0000644000175000017500000001112413217762750023236 0ustar autarchautarchuse 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 = 'zh-Hant-HK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-uz-Arab-AF.t0000644000175000017500000001112413217762750023212 0ustar autarchautarchuse 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 = 'uz-Arab-AF'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-NF.t0000644000175000017500000001111713217762750022332 0ustar autarchautarchuse 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 = 'en-NF'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-az-Latn.t0000644000175000017500000001112113217762750022730 0ustar autarchautarchuse 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 = 'az-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nyn-UG.t0000644000175000017500000001112013217762750022536 0ustar autarchautarchuse 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 = 'nyn-UG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bo.t0000644000175000017500000001111413217762750022024 0ustar autarchautarchuse 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 = 'bo'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/pod-coverage.t0000644000175000017500000000171313217762750022546 0ustar autarchautarch#!perl # This file was automatically generated by Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable. use Test::Pod::Coverage 1.08; use Test::More 0.88; BEGIN { if ( $] <= 5.008008 ) { plan skip_all => 'These tests require Pod::Coverage::TrustPod, which only works with Perl 5.8.9+'; } } use Pod::Coverage::TrustPod; my %skip = map { $_ => 1 } qw( ); my @modules; for my $module ( all_modules() ) { next if $skip{$module}; push @modules, $module; } plan skip_all => 'All the modules we found were excluded from POD coverage test.' unless @modules; plan tests => scalar @modules; my %trustme = (); my @also_private; for my $module ( sort @modules ) { pod_coverage_ok( $module, { coverage_class => 'Pod::Coverage::TrustPod', also_private => \@also_private, trustme => $trustme{$module} || [], }, "pod coverage for $module" ); } done_testing(); DateTime-Format-Strptime-1.75/xt/author/locale-et-EE.t0000644000175000017500000001111713217762750022326 0ustar autarchautarchuse 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 = 'et-EE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-MQ.t0000644000175000017500000001111713217762750022351 0ustar autarchautarchuse 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 = 'fr-MQ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-NG.t0000644000175000017500000001111713217762750022333 0ustar autarchautarchuse 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 = 'en-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-CL.t0000644000175000017500000001111713217762750022332 0ustar autarchautarchuse 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 = 'es-CL'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-cu-RU.t0000644000175000017500000001111713217762750022362 0ustar autarchautarchuse 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-am.t0000644000175000017500000001111413217762750022021 0ustar autarchautarchuse 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 = 'am'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ms-MY.t0000644000175000017500000001111713217762750022371 0ustar autarchautarchuse 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-MY'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-GM.t0000644000175000017500000001111713217762750022332 0ustar autarchautarchuse 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 = 'en-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-RW.t0000644000175000017500000001111713217762750022364 0ustar autarchautarchuse 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 = 'fr-RW'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sq-AL.t0000644000175000017500000001111713217762750022344 0ustar autarchautarchuse 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 = 'sq-AL'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-tg.t0000644000175000017500000001111413217762750022036 0ustar autarchautarchuse 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 = 'tg'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/tidyall.t0000644000175000017500000000067413217762750021642 0ustar autarchautarch# This file was automatically generated by Dist::Zilla::Plugin::Test::TidyAll v$VERSION use Test::More 0.88; BEGIN { if ( $] < 5.010 ) { plan skip_all => 'This test requires Perl version 5.010'; } } use Test::Code::TidyAll 0.24; tidyall_ok( verbose => ( exists $ENV{TEST_TIDYALL_VERBOSE} ? $ENV{TEST_TIDYALL_VERBOSE} : 1 ), jobs => ( exists $ENV{TEST_TIDYALL_JOBS} ? $ENV{TEST_TIDYALL_JOBS} : 4 ), ); done_testing; DateTime-Format-Strptime-1.75/xt/author/locale-nb.t0000644000175000017500000001111413217762750022023 0ustar autarchautarchuse 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 = 'nb'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ses.t0000644000175000017500000001111513217762750022217 0ustar autarchautarchuse 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 = 'ses'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-BI.t0000644000175000017500000001111713217762750022326 0ustar autarchautarchuse 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 = 'fr-BI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ro-MD.t0000644000175000017500000001111713217762750022345 0ustar autarchautarchuse 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 = 'ro-MD'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-is.t0000644000175000017500000001111413217762750022037 0ustar autarchautarchuse 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 = 'is'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-tk-TM.t0000644000175000017500000001111713217762750022363 0ustar autarchautarchuse 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 = 'tk-TM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-RE.t0000644000175000017500000001111713217762750022342 0ustar autarchautarchuse 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 = 'fr-RE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ast-ES.t0000644000175000017500000001112013217762750022515 0ustar autarchautarchuse 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 = 'ast-ES'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-FJ.t0000644000175000017500000001111713217762750022326 0ustar autarchautarchuse 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 = 'en-FJ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ru-BY.t0000644000175000017500000001111713217762750022365 0ustar autarchautarchuse 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 = 'ru-BY'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sv-SE.t0000644000175000017500000001111713217762750022364 0ustar autarchautarchuse 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 = 'sv-SE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ky-KG.t0000644000175000017500000001111713217762750022351 0ustar autarchautarchuse 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 = 'ky-KG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-DZ.t0000644000175000017500000001111713217762750022351 0ustar autarchautarchuse 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 = 'fr-DZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pt-MZ.t0000644000175000017500000001111713217762750022376 0ustar autarchautarchuse 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 = 'pt-MZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-gl-ES.t0000644000175000017500000001111713217762750022336 0ustar autarchautarchuse 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 = 'gl-ES'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ff-GN.t0000644000175000017500000001111713217762750022324 0ustar autarchautarchuse 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-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-rof.t0000644000175000017500000001111513217762750022213 0ustar autarchautarchuse 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 = 'rof'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-wo-SN.t0000644000175000017500000001111713217762750022372 0ustar autarchautarchuse 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 = 'wo-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ce-RU.t0000644000175000017500000001111713217762750022342 0ustar autarchautarchuse 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 = 'ce-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-DJ.t0000644000175000017500000001111713217762750022331 0ustar autarchautarchuse 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 = 'fr-DJ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-se-NO.t0000644000175000017500000001111713217762750022350 0ustar autarchautarchuse 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 = 'se-NO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-AS.t0000644000175000017500000001111713217762750022332 0ustar autarchautarchuse 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 = 'en-AS'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-gsw-LI.t0000644000175000017500000001112013217762750022523 0ustar autarchautarchuse 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 = 'gsw-LI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-as-IN.t0000644000175000017500000001111713217762750022336 0ustar autarchautarchuse 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 = 'as-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-to-TO.t0000644000175000017500000001111713217762750022371 0ustar autarchautarchuse 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 = 'to-TO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-SV.t0000644000175000017500000001111713217762750022364 0ustar autarchautarchuse 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 = 'es-SV'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-CU.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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 = 'es-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-vo.t0000644000175000017500000001111413217762750022050 0ustar autarchautarchuse 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ne-IN.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'ne-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-TN.t0000644000175000017500000001111713217762750022355 0ustar autarchautarchuse 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 = 'fr-TN'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nus-SS.t0000644000175000017500000001112013217762750022551 0ustar autarchautarchuse 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 = 'nus-SS'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-seh-MZ.t0000644000175000017500000001112013217762750022524 0ustar autarchautarchuse 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 = 'seh-MZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-cs.t0000644000175000017500000001111413217762750022031 0ustar autarchautarchuse 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 = 'cs'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ln-AO.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'ln-AO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-DK.t0000644000175000017500000001111713217762750022325 0ustar autarchautarchuse 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 = 'en-DK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bs-Latn.t0000644000175000017500000001112113217762750022722 0ustar autarchautarchuse 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 = 'bs-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-shi-Latn-MA.t0000644000175000017500000001112513217762750023400 0ustar autarchautarchuse 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 = 'shi-Latn-MA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pt-AO.t0000644000175000017500000001111713217762750022347 0ustar autarchautarchuse 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 = 'pt-AO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-rof-TZ.t0000644000175000017500000001112013217762750022542 0ustar autarchautarchuse 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 = 'rof-TZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lu-CD.t0000644000175000017500000001111713217762750022333 0ustar autarchautarchuse 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 = 'lu-CD'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-cgg.t0000644000175000017500000001111513217762750022165 0ustar autarchautarchuse 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 = 'cgg'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-zh-Hans-HK.t0000644000175000017500000001112413217762750023235 0ustar autarchautarchuse 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 = 'zh-Hans-HK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-GQ.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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 = 'es-GQ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-BR.t0000644000175000017500000001111713217762750022337 0ustar autarchautarchuse 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 = 'es-BR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-SA.t0000644000175000017500000001111713217762750022332 0ustar autarchautarchuse 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 = 'ar-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-GT.t0000644000175000017500000001111713217762750022346 0ustar autarchautarchuse 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 = 'es-GT'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ru-MD.t0000644000175000017500000001111713217762750022353 0ustar autarchautarchuse 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 = 'ru-MD'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-TK.t0000644000175000017500000001111713217762750022345 0ustar autarchautarchuse 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 = 'en-TK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-om-ET.t0000644000175000017500000001111713217762750022350 0ustar autarchautarchuse 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 = 'om-ET'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mt.t0000644000175000017500000001111413217762750022044 0ustar autarchautarchuse 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 = 'mt'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-150.t0000644000175000017500000001112013217762750022326 0ustar autarchautarchuse 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 = 'en-150'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-zgh-MA.t0000644000175000017500000001112013217762750022504 0ustar autarchautarchuse 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 = 'zgh-MA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-yav.t0000644000175000017500000001111513217762750022224 0ustar autarchautarchuse 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 = 'yav'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nb-SJ.t0000644000175000017500000001111713217762750022340 0ustar autarchautarchuse 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 = 'nb-SJ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-MW.t0000644000175000017500000001111713217762750022352 0ustar autarchautarchuse 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 = 'en-MW'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nl-AW.t0000644000175000017500000001111713217762750022345 0ustar autarchautarchuse 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 = 'nl-AW'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-SY.t0000644000175000017500000001111713217762750022367 0ustar autarchautarchuse 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 = 'fr-SY'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-IM.t0000644000175000017500000001111713217762750022334 0ustar autarchautarchuse 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 = 'en-IM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-IL.t0000644000175000017500000001111713217762750022333 0ustar autarchautarchuse 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 = 'en-IL'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-vai-Latn-LR.t0000644000175000017500000001112513217762750023414 0ustar autarchautarchuse 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 = 'vai-Latn-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-gl.t0000644000175000017500000001111413217762750022026 0ustar autarchautarchuse 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 = 'gl'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sl-SI.t0000644000175000017500000001111713217762750022356 0ustar autarchautarchuse 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 = 'sl-SI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-seh.t0000644000175000017500000001111513217762750022204 0ustar autarchautarchuse 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 = 'seh'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ta-SG.t0000644000175000017500000001111713217762750022342 0ustar autarchautarchuse 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 = 'ta-SG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fur.t0000644000175000017500000001111513217762750022221 0ustar autarchautarchuse 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 = 'fur'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-PK.t0000644000175000017500000001111713217762750022341 0ustar autarchautarchuse 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 = 'en-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lt.t0000644000175000017500000001111413217762750022043 0ustar autarchautarchuse 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 = 'lt'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mua-CM.t0000644000175000017500000001112013217762750022500 0ustar autarchautarchuse 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 = 'mua-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-TD.t0000644000175000017500000001111713217762750022336 0ustar autarchautarchuse 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 = 'ar-TD'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nnh-CM.t0000644000175000017500000001112013217762750022501 0ustar autarchautarchuse 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 = 'nnh-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-rw-RW.t0000644000175000017500000001111713217762750022405 0ustar autarchautarchuse 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 = 'rw-RW'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lag-TZ.t0000644000175000017500000001112013217762750022517 0ustar autarchautarchuse 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 = 'lag-TZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ky.t0000644000175000017500000001111413217762750022047 0ustar autarchautarchuse 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 = 'ky'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-CF.t0000644000175000017500000001111713217762750022324 0ustar autarchautarchuse 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 = 'fr-CF'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ig.t0000644000175000017500000001111413217762750022023 0ustar autarchautarchuse 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 = 'ig'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-uz-Arab.t0000644000175000017500000001112113217762750022723 0ustar autarchautarchuse 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 = 'uz-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ln-CG.t0000644000175000017500000001111713217762750022327 0ustar autarchautarchuse 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 = 'ln-CG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-NE.t0000644000175000017500000001111713217762750022336 0ustar autarchautarchuse 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 = 'fr-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-AU.t0000644000175000017500000001111713217762750022334 0ustar autarchautarchuse 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 = 'en-AU'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ha.t0000644000175000017500000001111413217762750022014 0ustar autarchautarchuse 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 = 'ha'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-or.t0000644000175000017500000001111413217762750022044 0ustar autarchautarchuse 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 = 'or'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bem-ZM.t0000644000175000017500000001112013217762750022510 0ustar autarchautarchuse 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 = 'bem-ZM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mzn-IR.t0000644000175000017500000001112013217762750022535 0ustar autarchautarchuse 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 = 'mzn-IR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-dz-BT.t0000644000175000017500000001111713217762750022347 0ustar autarchautarchuse 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 = 'dz-BT'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mer.t0000644000175000017500000001111513217762750022210 0ustar autarchautarchuse 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 = 'mer'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-JE.t0000644000175000017500000001111713217762750022325 0ustar autarchautarchuse 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 = 'en-JE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ckb-IQ.t0000644000175000017500000001112013217762750022467 0ustar autarchautarchuse 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 = 'ckb-IQ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ksb.t0000644000175000017500000001111513217762750022204 0ustar autarchautarchuse 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 = 'ksb'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-yue-Hans-CN.t0000644000175000017500000001112513217762750023415 0ustar autarchautarchuse 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 = 'yue-Hans-CN'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bg.t0000644000175000017500000001111413217762750022014 0ustar autarchautarchuse 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 = 'bg'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mzn.t0000644000175000017500000001111513217762750022231 0ustar autarchautarchuse 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 = 'mzn'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-am-ET.t0000644000175000017500000001111713217762750022332 0ustar autarchautarchuse 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 = 'am-ET'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-asa-TZ.t0000644000175000017500000001112013217762750022520 0ustar autarchautarchuse 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 = 'asa-TZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-LB.t0000644000175000017500000001111713217762750022324 0ustar autarchautarchuse 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 = 'ar-LB'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-FM.t0000644000175000017500000001111713217762750022331 0ustar autarchautarchuse 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 = 'en-FM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es.t0000644000175000017500000001111413217762750022033 0ustar autarchautarchuse 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 = 'es'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bs.t0000644000175000017500000001111413217762750022030 0ustar autarchautarchuse 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 = 'bs'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-MR.t0000644000175000017500000001111713217762750022352 0ustar autarchautarchuse 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 = 'fr-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-uz-Cyrl-UZ.t0000644000175000017500000001112413217762750023326 0ustar autarchautarchuse 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 = 'uz-Cyrl-UZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-KM.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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 = 'fr-KM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sw.t0000644000175000017500000001111413217762750022055 0ustar autarchautarchuse 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 = 'sw'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-ES.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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 = 'es-ES'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-smn-FI.t0000644000175000017500000001112013217762750022512 0ustar autarchautarchuse 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 = 'smn-FI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-US.t0000644000175000017500000001111713217762750022356 0ustar autarchautarchuse 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 = 'en-US'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nb-NO.t0000644000175000017500000001111713217762750022340 0ustar autarchautarchuse 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 = 'nb-NO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pt-MO.t0000644000175000017500000001111713217762750022363 0ustar autarchautarchuse 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 = 'pt-MO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-yue-Hans.t0000644000175000017500000001112213217762750023114 0ustar autarchautarchuse 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 = 'yue-Hans'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-AG.t0000644000175000017500000001111713217762750022316 0ustar autarchautarchuse 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 = 'en-AG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-BB.t0000644000175000017500000001111713217762750022312 0ustar autarchautarchuse 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 = 'en-BB'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-rn.t0000644000175000017500000001111413217762750022043 0ustar autarchautarchuse 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 = 'rn'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-UG.t0000644000175000017500000001111713217762750022342 0ustar autarchautarchuse 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 = 'en-UG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-prg.t0000644000175000017500000001111513217762750022215 0ustar autarchautarchuse 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-TG.t0000644000175000017500000001111713217762750022346 0ustar autarchautarchuse 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 = 'fr-TG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-yav-CM.t0000644000175000017500000001112013217762750022515 0ustar autarchautarchuse 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 = 'yav-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mk.t0000644000175000017500000001111413217762750022033 0ustar autarchautarchuse 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 = 'mk'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lb.t0000644000175000017500000001111413217762750022021 0ustar autarchautarchuse 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 = 'lb'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-vo-001.t0000644000175000017500000001112013217762750022343 0ustar autarchautarchuse 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fil.t0000644000175000017500000001111513217762750022177 0ustar autarchautarchuse 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 = 'fil'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-luo-KE.t0000644000175000017500000001112013217762750022515 0ustar autarchautarchuse 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 = 'luo-KE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-tt-RU.t0000644000175000017500000001111713217762750022402 0ustar autarchautarchuse 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 = 'tt-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-CR.t0000644000175000017500000001111713217762750022340 0ustar autarchautarchuse 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 = 'es-CR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ug.t0000644000175000017500000001111413217762750022037 0ustar autarchautarchuse 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 = 'ug'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-TO.t0000644000175000017500000001111713217762750022351 0ustar autarchautarchuse 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 = 'en-TO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-uk-UA.t0000644000175000017500000001111713217762750022351 0ustar autarchautarchuse 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 = 'uk-UA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sr-Cyrl-XK.t0000644000175000017500000001112413217762750023300 0ustar autarchautarchuse 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 = 'sr-Cyrl-XK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bo-IN.t0000644000175000017500000001111713217762750022333 0ustar autarchautarchuse 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 = 'bo-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ksf.t0000644000175000017500000001111513217762750022210 0ustar autarchautarchuse 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 = 'ksf'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sr.t0000644000175000017500000001111413217762750022050 0ustar autarchautarchuse 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 = 'sr'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ebu-KE.t0000644000175000017500000001112013217762750022471 0ustar autarchautarchuse 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 = 'ebu-KE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kl-GL.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'kl-GL'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ak-GH.t0000644000175000017500000001111713217762750022316 0ustar autarchautarchuse 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 = 'ak-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-so-SO.t0000644000175000017500000001111713217762750022367 0ustar autarchautarchuse 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 = 'so-SO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-so-ET.t0000644000175000017500000001111713217762750022356 0ustar autarchautarchuse 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 = 'so-ET'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ne-NP.t0000644000175000017500000001111713217762750022344 0ustar autarchautarchuse 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 = 'ne-NP'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-ER.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'ar-ER'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pt-GQ.t0000644000175000017500000001111713217762750022357 0ustar autarchautarchuse 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 = 'pt-GQ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ru-KG.t0000644000175000017500000001111713217762750022354 0ustar autarchautarchuse 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 = 'ru-KG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-GG.t0000644000175000017500000001111713217762750022324 0ustar autarchautarchuse 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 = 'en-GG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mas-TZ.t0000644000175000017500000001112013217762750022534 0ustar autarchautarchuse 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 = 'mas-TZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-da-GL.t0000644000175000017500000001111713217762750022313 0ustar autarchautarchuse 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 = 'da-GL'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-vai-Latn.t0000644000175000017500000001112213217762750023076 0ustar autarchautarchuse 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 = 'vai-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-be.t0000644000175000017500000001111413217762750022012 0ustar autarchautarchuse 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 = 'be'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ga-IE.t0000644000175000017500000001111713217762750022311 0ustar autarchautarchuse 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 = 'ga-IE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-dyo-SN.t0000644000175000017500000001112013217762750022532 0ustar autarchautarchuse 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 = 'dyo-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sr-Latn.t0000644000175000017500000001112113217762750022742 0ustar autarchautarchuse 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 = 'sr-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-vai-Vaii-LR.t0000644000175000017500000001112513217762750023406 0ustar autarchautarchuse 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 = 'vai-Vaii-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-vai-Vaii.t0000644000175000017500000001112213217762750023070 0ustar autarchautarchuse 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 = 'vai-Vaii'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-yue-Hant-HK.t0000644000175000017500000001112513217762750023420 0ustar autarchautarchuse 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 = 'yue-Hant-HK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-hy.t0000644000175000017500000001111413217762750022044 0ustar autarchautarchuse 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 = 'hy'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-az.t0000644000175000017500000001111413217762750022036 0ustar autarchautarchuse 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 = 'az'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lv.t0000644000175000017500000001111413217762750022045 0ustar autarchautarchuse 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 = 'lv'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-dua.t0000644000175000017500000001111513217762750022176 0ustar autarchautarchuse 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 = 'dua'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kok-IN.t0000644000175000017500000001112013217762750022511 0ustar autarchautarchuse 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 = 'kok-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-so-KE.t0000644000175000017500000001111713217762750022345 0ustar autarchautarchuse 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 = 'so-KE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-is-IS.t0000644000175000017500000001111713217762750022353 0ustar autarchautarchuse 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 = 'is-IS'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kk-KZ.t0000644000175000017500000001111713217762750022356 0ustar autarchautarchuse 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 = 'kk-KZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-dje.t0000644000175000017500000001111513217762750022167 0ustar autarchautarchuse 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 = 'dje'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ms.t0000644000175000017500000001111413217762750022043 0ustar autarchautarchuse 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'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pt-TL.t0000644000175000017500000001111713217762750022367 0ustar autarchautarchuse 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 = 'pt-TL'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ja-JP.t0000644000175000017500000001111713217762750022330 0ustar autarchautarchuse 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 = 'ja-JP'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lo-LA.t0000644000175000017500000001111713217762750022333 0ustar autarchautarchuse 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 = 'lo-LA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kkj.t0000644000175000017500000001111513217762750022204 0ustar autarchautarchuse 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 = 'kkj'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-BE.t0000644000175000017500000001111713217762750022315 0ustar autarchautarchuse 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 = 'en-BE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-SI.t0000644000175000017500000001111713217762750022342 0ustar autarchautarchuse 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 = 'en-SI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lo.t0000644000175000017500000001111413217762750022036 0ustar autarchautarchuse 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 = 'lo'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-my.t0000644000175000017500000001111413217762750022051 0ustar autarchautarchuse 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 = 'my'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-rwk.t0000644000175000017500000001111513217762750022230 0ustar autarchautarchuse 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 = 'rwk'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-el-CY.t0000644000175000017500000001111713217762750022340 0ustar autarchautarchuse 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 = 'el-CY'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-jgo.t0000644000175000017500000001111513217762750022204 0ustar autarchautarchuse 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 = 'jgo'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-MY.t0000644000175000017500000001111713217762750022354 0ustar autarchautarchuse 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 = 'en-MY'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mn-MN.t0000644000175000017500000001111713217762750022351 0ustar autarchautarchuse 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 = 'mn-MN'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-jmc.t0000644000175000017500000001111513217762750022176 0ustar autarchautarchuse 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 = 'jmc'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-gsw-CH.t0000644000175000017500000001112013217762750022511 0ustar autarchautarchuse 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 = 'gsw-CH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ca-AD.t0000644000175000017500000001111713217762750022274 0ustar autarchautarchuse 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 = 'ca-AD'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-teo-UG.t0000644000175000017500000001112013217762750022521 0ustar autarchautarchuse 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 = 'teo-UG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-uk.t0000644000175000017500000001111413217762750022043 0ustar autarchautarchuse 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 = 'uk'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mgh.t0000644000175000017500000001111513217762750022200 0ustar autarchautarchuse 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 = 'mgh'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-001.t0000644000175000017500000001112013217762750022321 0ustar autarchautarchuse 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 = 'en-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sah-RU.t0000644000175000017500000001112013217762750022520 0ustar autarchautarchuse 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 = 'sah-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-CI.t0000644000175000017500000001111713217762750022327 0ustar autarchautarchuse 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 = 'fr-CI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-MH.t0000644000175000017500000001111713217762750022333 0ustar autarchautarchuse 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 = 'en-MH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-saq.t0000644000175000017500000001111513217762750022211 0ustar autarchautarchuse 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 = 'saq'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-as.t0000644000175000017500000001111413217762750022027 0ustar autarchautarchuse 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 = 'as'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ka.t0000644000175000017500000001111413217762750022017 0ustar autarchautarchuse 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 = 'ka'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ks-IN.t0000644000175000017500000001111713217762750022350 0ustar autarchautarchuse 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ee.t0000644000175000017500000001111413217762750022015 0ustar autarchautarchuse 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 = 'ee'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-GU.t0000644000175000017500000001111713217762750022342 0ustar autarchautarchuse 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 = 'en-GU'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lu.t0000644000175000017500000001111413217762750022044 0ustar autarchautarchuse 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 = 'lu'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kn-IN.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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 = 'kn-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-CM.t0000644000175000017500000001111713217762750022333 0ustar autarchautarchuse 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 = 'fr-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fy-NL.t0000644000175000017500000001111713217762750022354 0ustar autarchautarchuse 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 = 'fy-NL'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-CO.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'es-CO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lv-LV.t0000644000175000017500000001111713217762750022367 0ustar autarchautarchuse 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 = 'lv-LV'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-twq-NE.t0000644000175000017500000001112013217762750022534 0ustar autarchautarchuse 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 = 'twq-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-shi-Latn.t0000644000175000017500000001112213217762750023102 0ustar autarchautarchuse 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 = 'shi-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pa-Arab.t0000644000175000017500000001112113217762750022665 0ustar autarchautarchuse 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 = 'pa-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-id-ID.t0000644000175000017500000001111713217762750022315 0ustar autarchautarchuse 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 = 'id-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-001.t0000644000175000017500000001112013217762750022321 0ustar autarchautarchuse 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 = 'ar-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-tt.t0000644000175000017500000001111413217762750022053 0ustar autarchautarchuse 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 = 'tt'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-tk.t0000644000175000017500000001111413217762750022042 0ustar autarchautarchuse 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 = 'tk'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bem.t0000644000175000017500000001111513217762750022170 0ustar autarchautarchuse 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 = 'bem'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-BL.t0000644000175000017500000001111713217762750022331 0ustar autarchautarchuse 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 = 'fr-BL'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sr-Latn-XK.t0000644000175000017500000001112413217762750023265 0ustar autarchautarchuse 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 = 'sr-Latn-XK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ii-CN.t0000644000175000017500000001111713217762750022326 0ustar autarchautarchuse 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 = 'ii-CN'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-DE.t0000644000175000017500000001111713217762750022317 0ustar autarchautarchuse 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 = 'en-DE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-NI.t0000644000175000017500000001111713217762750022342 0ustar autarchautarchuse 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 = 'es-NI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ur-PK.t0000644000175000017500000001111713217762750022365 0ustar autarchautarchuse 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 = 'ur-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-MF.t0000644000175000017500000001111713217762750022336 0ustar autarchautarchuse 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 = 'fr-MF'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-luy.t0000644000175000017500000001111513217762750022236 0ustar autarchautarchuse 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 = 'luy'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kw-GB.t0000644000175000017500000001111713217762750022336 0ustar autarchautarchuse 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 = 'kw-GB'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sw-CD.t0000644000175000017500000001111713217762750022344 0ustar autarchautarchuse 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 = 'sw-CD'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-he.t0000644000175000017500000001111413217762750022020 0ustar autarchautarchuse 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 = 'he'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-zh-Hans-MO.t0000644000175000017500000001112413217762750023246 0ustar autarchautarchuse 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 = 'zh-Hans-MO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-UY.t0000644000175000017500000001111713217762750022371 0ustar autarchautarchuse 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 = 'es-UY'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-LS.t0000644000175000017500000001111713217762750022345 0ustar autarchautarchuse 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 = 'en-LS'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sg.t0000644000175000017500000001111413217762750022035 0ustar autarchautarchuse 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 = 'sg'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-si-LK.t0000644000175000017500000001111713217762750022346 0ustar autarchautarchuse 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 = 'si-LK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/mojibake.t0000644000175000017500000000015113217762750021747 0ustar autarchautarch#!perl use strict; use warnings qw(all); use Test::More; use Test::Mojibake; all_files_encoding_ok(); DateTime-Format-Strptime-1.75/xt/author/locale-sr-Latn-RS.t0000644000175000017500000001112413217762750023267 0ustar autarchautarchuse 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 = 'sr-Latn-RS'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-MO.t0000644000175000017500000001111713217762750022342 0ustar autarchautarchuse 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 = 'en-MO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ta-LK.t0000644000175000017500000001111713217762750022337 0ustar autarchautarchuse 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 = 'ta-LK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sw-UG.t0000644000175000017500000001111713217762750022371 0ustar autarchautarchuse 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 = 'sw-UG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-US.t0000644000175000017500000001111713217762750022363 0ustar autarchautarchuse 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 = 'es-US'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ha-NG.t0000644000175000017500000001111713217762750022321 0ustar autarchautarchuse 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 = 'ha-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-wae-CH.t0000644000175000017500000001112013217762750022465 0ustar autarchautarchuse 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 = 'wae-CH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bs-Latn-BA.t0000644000175000017500000001112413217762750023205 0ustar autarchautarchuse 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 = 'bs-Latn-BA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-IO.t0000644000175000017500000001111713217762750022336 0ustar autarchautarchuse 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 = 'en-IO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-tzm-MA.t0000644000175000017500000001112013217762750022526 0ustar autarchautarchuse 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 = 'tzm-MA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-TT.t0000644000175000017500000001111713217762750022356 0ustar autarchautarchuse 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 = 'en-TT'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-xog-UG.t0000644000175000017500000001112013217762750022527 0ustar autarchautarchuse 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 = 'xog-UG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-LR.t0000644000175000017500000001111713217762750022344 0ustar autarchautarchuse 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 = 'en-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-AR.t0000644000175000017500000001111713217762750022336 0ustar autarchautarchuse 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 = 'es-AR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ca.t0000644000175000017500000001111413217762750022007 0ustar autarchautarchuse 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 = 'ca'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-CG.t0000644000175000017500000001111713217762750022325 0ustar autarchautarchuse 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 = 'fr-CG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-rm.t0000644000175000017500000001111413217762750022042 0ustar autarchautarchuse 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 = 'rm'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fi-FI.t0000644000175000017500000001111713217762750022321 0ustar autarchautarchuse 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 = 'fi-FI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sl.t0000644000175000017500000001111413217762750022042 0ustar autarchautarchuse 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 = '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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sk-SK.t0000644000175000017500000001111713217762750022357 0ustar autarchautarchuse 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 = 'sk-SK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sd-PK.t0000644000175000017500000001111713217762750022345 0ustar autarchautarchuse 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-os.t0000644000175000017500000001111413217762750022045 0ustar autarchautarchuse 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 = 'os'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-dua-CM.t0000644000175000017500000001112013217762750022467 0ustar autarchautarchuse 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 = 'dua-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-WS.t0000644000175000017500000001111713217762750022360 0ustar autarchautarchuse 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 = 'en-WS'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-PS.t0000644000175000017500000001111713217762750022351 0ustar autarchautarchuse 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 = 'ar-PS'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-rn-BI.t0000644000175000017500000001111713217762750022336 0ustar autarchautarchuse 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 = 'rn-BI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bm.t0000644000175000017500000001111413217762750022022 0ustar autarchautarchuse 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 = 'bm'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ko.t0000644000175000017500000001111413217762750022035 0ustar autarchautarchuse 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 = 'ko'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-DZ.t0000644000175000017500000001111713217762750022344 0ustar autarchautarchuse 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 = 'ar-DZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ff-SN.t0000644000175000017500000001111713217762750022340 0ustar autarchautarchuse 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-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-dz.t0000644000175000017500000001111413217762750022041 0ustar autarchautarchuse 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 = 'dz'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ms-BN.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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-BN'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-AI.t0000644000175000017500000001111713217762750022320 0ustar autarchautarchuse 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 = 'en-AI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-af-NA.t0000644000175000017500000001111713217762750022311 0ustar autarchautarchuse 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 = 'af-NA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lkt-US.t0000644000175000017500000001112013217762750022540 0ustar autarchautarchuse 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 = 'lkt-US'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-OM.t0000644000175000017500000001111713217762750022342 0ustar autarchautarchuse 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 = 'ar-OM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-guz.t0000644000175000017500000001111513217762750022232 0ustar autarchautarchuse 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 = 'guz'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-PG.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'en-PG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-EC.t0000644000175000017500000001111713217762750022323 0ustar autarchautarchuse 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 = 'es-EC'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-teo.t0000644000175000017500000001111513217762750022214 0ustar autarchautarchuse 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 = 'teo'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-so-DJ.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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 = 'so-DJ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lrc-IR.t0000644000175000017500000001112013217762750022511 0ustar autarchautarchuse 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 = 'lrc-IR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ti-ET.t0000644000175000017500000001111713217762750022351 0ustar autarchautarchuse 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 = 'ti-ET'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-wo.t0000644000175000017500000001111413217762750022051 0ustar autarchautarchuse 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 = 'wo'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bez-TZ.t0000644000175000017500000001112013217762750022534 0ustar autarchautarchuse 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 = 'bez-TZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nus.t0000644000175000017500000001111513217762750022232 0ustar autarchautarchuse 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 = 'nus'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-PA.t0000644000175000017500000001111713217762750022334 0ustar autarchautarchuse 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 = 'es-PA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-uz-Latn.t0000644000175000017500000001112113217762750022754 0ustar autarchautarchuse 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 = 'uz-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-te-IN.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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 = 'te-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-yi.t0000644000175000017500000001111413217762750022045 0ustar autarchautarchuse 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 = 'yi'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-FK.t0000644000175000017500000001111713217762750022327 0ustar autarchautarchuse 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 = 'en-FK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kw.t0000644000175000017500000001111413217762750022045 0ustar autarchautarchuse 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 = 'kw'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-dsb.t0000644000175000017500000001111513217762750022175 0ustar autarchautarchuse 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 = 'dsb'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ccp-IN.t0000644000175000017500000001112013217762750022472 0ustar autarchautarchuse 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 = 'ccp-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-eu.t0000644000175000017500000001111413217762750022035 0ustar autarchautarchuse 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 = 'eu'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-hsb-DE.t0000644000175000017500000001112013217762750022463 0ustar autarchautarchuse 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 = 'hsb-DE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pt-LU.t0000644000175000017500000001111713217762750022370 0ustar autarchautarchuse 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 = 'pt-LU'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ccp-BD.t0000644000175000017500000001112013217762750022451 0ustar autarchautarchuse 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 = 'ccp-BD'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar.t0000644000175000017500000001111413217762750022026 0ustar autarchautarchuse 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 = 'ar'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ro.t0000644000175000017500000001111413217762750022044 0ustar autarchautarchuse 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 = 'ro'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-da.t0000644000175000017500000001111413217762750022010 0ustar autarchautarchuse 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 = 'da'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sw-KE.t0000644000175000017500000001111713217762750022355 0ustar autarchautarchuse 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 = 'sw-KE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kln-KE.t0000644000175000017500000001112013217762750022502 0ustar autarchautarchuse 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 = 'kln-KE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-agq-CM.t0000644000175000017500000001112013217762750022466 0ustar autarchautarchuse 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 = 'agq-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-dav-KE.t0000644000175000017500000001112013217762750022470 0ustar autarchautarchuse 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 = 'dav-KE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ast.t0000644000175000017500000001111513217762750022214 0ustar autarchautarchuse 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 = 'ast'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-TN.t0000644000175000017500000001111713217762750022350 0ustar autarchautarchuse 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 = 'ar-TN'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ko-KR.t0000644000175000017500000001111713217762750022352 0ustar autarchautarchuse 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 = 'ko-KR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pt-GW.t0000644000175000017500000001111713217762750022365 0ustar autarchautarchuse 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 = 'pt-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-GQ.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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 = 'fr-GQ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ca-ES.t0000644000175000017500000001111713217762750022317 0ustar autarchautarchuse 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 = 'ca-ES'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mas.t0000644000175000017500000001111513217762750022205 0ustar autarchautarchuse 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 = 'mas'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pt-PT.t0000644000175000017500000001111713217762750022373 0ustar autarchautarchuse 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 = 'pt-PT'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-QA.t0000644000175000017500000001111713217762750022330 0ustar autarchautarchuse 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 = 'ar-QA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-se-FI.t0000644000175000017500000001111713217762750022332 0ustar autarchautarchuse 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 = 'se-FI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-CY.t0000644000175000017500000001111713217762750022342 0ustar autarchautarchuse 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 = 'en-CY'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-MG.t0000644000175000017500000001111713217762750022332 0ustar autarchautarchuse 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 = 'en-MG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-JO.t0000644000175000017500000001111713217762750022337 0ustar autarchautarchuse 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 = 'ar-JO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-US-POSIX.t0000644000175000017500000001112513217762750023255 0ustar autarchautarchuse 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 = 'en-US-POSIX'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mk-MK.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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 = 'mk-MK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-LC.t0000644000175000017500000001111713217762750022325 0ustar autarchautarchuse 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 = 'en-LC'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ug-CN.t0000644000175000017500000001111713217762750022340 0ustar autarchautarchuse 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 = 'ug-CN'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nmg.t0000644000175000017500000001111513217762750022206 0ustar autarchautarchuse 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 = 'nmg'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pa-Guru-IN.t0000644000175000017500000001112413217762750023251 0ustar autarchautarchuse 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 = 'pa-Guru-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sv-FI.t0000644000175000017500000001111713217762750022353 0ustar autarchautarchuse 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 = 'sv-FI'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-UM.t0000644000175000017500000001111713217762750022350 0ustar autarchautarchuse 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 = 'en-UM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-haw.t0000644000175000017500000001111513217762750022204 0ustar autarchautarchuse 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 = 'haw'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-el.t0000644000175000017500000001111413217762750022024 0ustar autarchautarchuse 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 = 'el'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ps-AF.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'ps-AF'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-CA.t0000644000175000017500000001111713217762750022317 0ustar autarchautarchuse 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 = 'fr-CA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-SC.t0000644000175000017500000001111713217762750022334 0ustar autarchautarchuse 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 = 'en-SC'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-AE.t0000644000175000017500000001111713217762750022314 0ustar autarchautarchuse 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 = 'ar-AE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-yue.t0000644000175000017500000001111513217762750022227 0ustar autarchautarchuse 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 = 'yue'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/pod-syntax.t0000644000175000017500000000025213217762750022276 0ustar autarchautarch#!perl # This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. use strict; use warnings; use Test::More; use Test::Pod 1.41; all_pod_files_ok(); DateTime-Format-Strptime-1.75/xt/author/locale-rm-CH.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'rm-CH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-NR.t0000644000175000017500000001111713217762750022346 0ustar autarchautarchuse 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 = 'en-NR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-pt-CH.t0000644000175000017500000001111713217762750022342 0ustar autarchautarchuse 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 = 'pt-CH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-om.t0000644000175000017500000001111413217762750022037 0ustar autarchautarchuse 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 = 'om'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sq.t0000644000175000017500000001111413217762750022047 0ustar autarchautarchuse 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 = 'sq'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-NU.t0000644000175000017500000001111713217762750022351 0ustar autarchautarchuse 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 = 'en-NU'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-LU.t0000644000175000017500000001111713217762750022354 0ustar autarchautarchuse 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 = 'fr-LU'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ses-ML.t0000644000175000017500000001112013217762750022521 0ustar autarchautarchuse 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 = 'ses-ML'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ta-IN.t0000644000175000017500000001111713217762750022337 0ustar autarchautarchuse 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 = 'ta-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ig-NG.t0000644000175000017500000001111713217762750022330 0ustar autarchautarchuse 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 = 'ig-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lrc-IQ.t0000644000175000017500000001112013217762750022510 0ustar autarchautarchuse 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 = 'lrc-IQ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-de-DE.t0000644000175000017500000001111713217762750022305 0ustar autarchautarchuse 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 = 'de-DE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-CH.t0000644000175000017500000001111713217762750022326 0ustar autarchautarchuse 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 = 'fr-CH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-VU.t0000644000175000017500000001111713217762750022366 0ustar autarchautarchuse 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 = 'fr-VU'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-BZ.t0000644000175000017500000001111713217762750022347 0ustar autarchautarchuse 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 = 'es-BZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-PE.t0000644000175000017500000001111713217762750022340 0ustar autarchautarchuse 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 = 'es-PE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sn.t0000644000175000017500000001111413217762750022044 0ustar autarchautarchuse 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 = '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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-yo-NG.t0000644000175000017500000001111713217762750022360 0ustar autarchautarchuse 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 = 'yo-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sr-Cyrl-BA.t0000644000175000017500000001112413217762750023240 0ustar autarchautarchuse 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 = 'sr-Cyrl-BA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-HK.t0000644000175000017500000001111713217762750022331 0ustar autarchautarchuse 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 = 'en-HK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-tr-CY.t0000644000175000017500000001111713217762750022365 0ustar autarchautarchuse 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 = 'tr-CY'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ki-KE.t0000644000175000017500000001111713217762750022327 0ustar autarchautarchuse 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 = 'ki-KE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lg.t0000644000175000017500000001111413217762750022026 0ustar autarchautarchuse 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 = 'lg'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-it-IT.t0000644000175000017500000001111713217762750022355 0ustar autarchautarchuse 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 = 'it-IT'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-gv.t0000644000175000017500000001111413217762750022040 0ustar autarchautarchuse 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 = 'gv'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-gd-GB.t0000644000175000017500000001111713217762750022307 0ustar autarchautarchuse 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 = 'gd-GB'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ln.t0000644000175000017500000001111413217762750022035 0ustar autarchautarchuse 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 = 'ln'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-TZ.t0000644000175000017500000001111713217762750022364 0ustar autarchautarchuse 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 = 'en-TZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sr-Latn-BA.t0000644000175000017500000001112413217762750023225 0ustar autarchautarchuse 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 = 'sr-Latn-BA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kam.t0000644000175000017500000001111513217762750022175 0ustar autarchautarchuse 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 = 'kam'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nn.t0000644000175000017500000001111413217762750022037 0ustar autarchautarchuse 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 = 'nn'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bn.t0000644000175000017500000001111413217762750022023 0ustar autarchautarchuse 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 = 'bn'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-EH.t0000644000175000017500000001111713217762750022323 0ustar autarchautarchuse 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 = 'ar-EH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-VC.t0000644000175000017500000001111713217762750022337 0ustar autarchautarchuse 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 = 'en-VC'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ka-GE.t0000644000175000017500000001111713217762750022313 0ustar autarchautarchuse 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 = 'ka-GE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-yo.t0000644000175000017500000001111413217762750022053 0ustar autarchautarchuse 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 = 'yo'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-si.t0000644000175000017500000001111413217762750022037 0ustar autarchautarchuse 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 = 'si'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-NA.t0000644000175000017500000001111713217762750022325 0ustar autarchautarchuse 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 = 'en-NA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sbp-TZ.t0000644000175000017500000001112013217762750022540 0ustar autarchautarchuse 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 = 'sbp-TZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ti.t0000644000175000017500000001111413217762750022040 0ustar autarchautarchuse 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 = 'ti'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bn-IN.t0000644000175000017500000001111713217762750022332 0ustar autarchautarchuse 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 = 'bn-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lrc.t0000644000175000017500000001111513217762750022205 0ustar autarchautarchuse 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 = 'lrc'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-BE.t0000644000175000017500000001111713217762750022322 0ustar autarchautarchuse 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 = 'fr-BE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-SG.t0000644000175000017500000001111713217762750022340 0ustar autarchautarchuse 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 = 'en-SG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ha-NE.t0000644000175000017500000001111713217762750022317 0ustar autarchautarchuse 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 = 'ha-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-KM.t0000644000175000017500000001111713217762750022336 0ustar autarchautarchuse 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 = 'ar-KM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-qu.t0000644000175000017500000001111413217762750022051 0ustar autarchautarchuse 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 = 'qu'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-CM.t0000644000175000017500000001111713217762750022326 0ustar autarchautarchuse 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 = 'en-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-luy-KE.t0000644000175000017500000001112013217762750022527 0ustar autarchautarchuse 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 = 'luy-KE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mgo-CM.t0000644000175000017500000001112013217762750022500 0ustar autarchautarchuse 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 = 'mgo-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-PH.t0000644000175000017500000001111713217762750022336 0ustar autarchautarchuse 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 = 'en-PH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-BF.t0000644000175000017500000001111713217762750022323 0ustar autarchautarchuse 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 = 'fr-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 ); } DateTime-Format-Strptime-1.75/xt/author/pod-spell.t0000644000175000017500000000074213217762750022073 0ustar autarchautarchuse strict; use warnings; use Test::More; # generated by Dist::Zilla::Plugin::Test::PodSpelling 2.007005 use Test::Spelling 0.12; use Pod::Wordlist; add_stopwords(); all_pod_files_spelling_ok( qw( bin lib ) ); __DATA__ Anwar Christian DROLSKY DROLSKY's DateTime Dave Format Hansen Ilmari Mannsåker Measham Mohammad POSIX PayPal Rick Rolsky Rolsky's STRPTIME Strptime Types autarch chansen drolsky errmsg formatter ilmari key lib mohammad rickm strf strp strptime yasutake DateTime-Format-Strptime-1.75/xt/author/locale-fy.t0000644000175000017500000001111413217762750022042 0ustar autarchautarchuse 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 = 'fy'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-jgo-CM.t0000644000175000017500000001112013217762750022475 0ustar autarchautarchuse 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 = 'jgo-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-IC.t0000644000175000017500000001111713217762750022327 0ustar autarchautarchuse 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 = 'es-IC'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mg-MG.t0000644000175000017500000001111713217762750022333 0ustar autarchautarchuse 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 = 'mg-MG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nl-CW.t0000644000175000017500000001111713217762750022347 0ustar autarchautarchuse 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 = 'nl-CW'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nmg-CM.t0000644000175000017500000001112013217762750022477 0ustar autarchautarchuse 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 = 'nmg-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-ER.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'en-ER'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-TD.t0000644000175000017500000001111713217762750022343 0ustar autarchautarchuse 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 = 'fr-TD'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-de-AT.t0000644000175000017500000001111713217762750022321 0ustar autarchautarchuse 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 = 'de-AT'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-CK.t0000644000175000017500000001111713217762750022324 0ustar autarchautarchuse 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 = 'en-CK'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-zh-Hans-CN.t0000644000175000017500000001112413217762750023233 0ustar autarchautarchuse 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 = 'zh-Hans-CN'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-CH.t0000644000175000017500000001111713217762750022321 0ustar autarchautarchuse 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 = 'en-CH'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-PN.t0000644000175000017500000001111713217762750022344 0ustar autarchautarchuse 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 = 'en-PN'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ml.t0000644000175000017500000001111413217762750022034 0ustar autarchautarchuse 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 = 'ml'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sr-Cyrl-RS.t0000644000175000017500000001112413217762750023302 0ustar autarchautarchuse 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 = 'sr-Cyrl-RS'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-YE.t0000644000175000017500000001111713217762750022344 0ustar autarchautarchuse 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 = 'ar-YE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-qu-PE.t0000644000175000017500000001111713217762750022356 0ustar autarchautarchuse 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 = 'qu-PE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-MT.t0000644000175000017500000001111713217762750022347 0ustar autarchautarchuse 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 = 'en-MT'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ckb.t0000644000175000017500000001111513217762750022164 0ustar autarchautarchuse 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 = 'ckb'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sw-TZ.t0000644000175000017500000001111713217762750022413 0ustar autarchautarchuse 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 = 'sw-TZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-zh-Hant-MO.t0000644000175000017500000001112413217762750023247 0ustar autarchautarchuse 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 = 'zh-Hant-MO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-uz-Cyrl.t0000644000175000017500000001112113217762750022767 0ustar autarchautarchuse 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 = 'uz-Cyrl'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-zu.t0000644000175000017500000001111413217762750022062 0ustar autarchautarchuse 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 = 'zu'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ccp.t0000644000175000017500000001111513217762750022172 0ustar autarchautarchuse 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 = 'ccp'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ce.t0000644000175000017500000001111413217762750022013 0ustar autarchautarchuse 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 = 'ce'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nl.t0000644000175000017500000001111413217762750022035 0ustar autarchautarchuse 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 = 'nl'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-hsb.t0000644000175000017500000001111513217762750022201 0ustar autarchautarchuse 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 = 'hsb'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-SS.t0000644000175000017500000001111713217762750022354 0ustar autarchautarchuse 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 = 'ar-SS'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-zgh.t0000644000175000017500000001111513217762750022215 0ustar autarchautarchuse 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 = 'zgh'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-hu.t0000644000175000017500000001111413217762750022040 0ustar autarchautarchuse 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 = 'hu'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ru-KZ.t0000644000175000017500000001111713217762750022377 0ustar autarchautarchuse 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 = 'ru-KZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-vi-VN.t0000644000175000017500000001111713217762750022366 0ustar autarchautarchuse 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 = 'vi-VN'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-JM.t0000644000175000017500000001111713217762750022335 0ustar autarchautarchuse 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 = 'en-JM'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-gsw.t0000644000175000017500000001111513217762750022225 0ustar autarchautarchuse 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 = 'gsw'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ar-MA.t0000644000175000017500000001111713217762750022324 0ustar autarchautarchuse 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 = 'ar-MA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-bm-ML.t0000644000175000017500000001111713217762750022333 0ustar autarchautarchuse 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 = 'bm-ML'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-brx-IN.t0000644000175000017500000001112013217762750022520 0ustar autarchautarchuse 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 = 'brx-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sr-Latn-ME.t0000644000175000017500000001112413217762750023244 0ustar autarchautarchuse 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 = 'sr-Latn-ME'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-MC.t0000644000175000017500000001111713217762750022333 0ustar autarchautarchuse 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 = 'fr-MC'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-es-DO.t0000644000175000017500000001111713217762750022336 0ustar autarchautarchuse 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 = 'es-DO'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-hu-HU.t0000644000175000017500000001111713217762750022355 0ustar autarchautarchuse 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 = 'hu-HU'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-PW.t0000644000175000017500000001111713217762750022355 0ustar autarchautarchuse 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 = 'en-PW'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-CX.t0000644000175000017500000001111713217762750022341 0ustar autarchautarchuse 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 = 'en-CX'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ff-CM.t0000644000175000017500000001111713217762750022317 0ustar autarchautarchuse 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-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-chr.t0000644000175000017500000001111513217762750022201 0ustar autarchautarchuse 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 = 'chr'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-jmc-TZ.t0000644000175000017500000001112013217762750022525 0ustar autarchautarchuse 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 = 'jmc-TZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kde.t0000644000175000017500000001111513217762750022170 0ustar autarchautarchuse 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 = 'kde'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-sr-Cyrl.t0000644000175000017500000001112113217762750022755 0ustar autarchautarchuse 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 = 'sr-Cyrl'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-KY.t0000644000175000017500000001111713217762750022352 0ustar autarchautarchuse 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 = 'en-KY'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kea.t0000644000175000017500000001111513217762750022165 0ustar autarchautarchuse 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 = 'kea'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-lag.t0000644000175000017500000001111513217762750022170 0ustar autarchautarchuse 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 = 'lag'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-nd.t0000644000175000017500000001111413217762750022025 0ustar autarchautarchuse 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 = 'nd'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ta-MY.t0000644000175000017500000001111713217762750022356 0ustar autarchautarchuse 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 = 'ta-MY'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-GD.t0000644000175000017500000001111713217762750022321 0ustar autarchautarchuse 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 = 'en-GD'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-smn.t0000644000175000017500000001111513217762750022222 0ustar autarchautarchuse 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 = 'smn'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-TV.t0000644000175000017500000001111713217762750022360 0ustar autarchautarchuse 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 = 'en-TV'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-IE.t0000644000175000017500000001111713217762750022324 0ustar autarchautarchuse 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 = 'en-IE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-khq-ML.t0000644000175000017500000001112013217762750022512 0ustar autarchautarchuse 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 = 'khq-ML'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-rw.t0000644000175000017500000001111413217762750022054 0ustar autarchautarchuse 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 = 'rw'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fa.t0000644000175000017500000001111413217762750022012 0ustar autarchautarchuse 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 = 'fa'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fa-IR.t0000644000175000017500000001111713217762750022325 0ustar autarchautarchuse 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 = 'fa-IR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ksf-CM.t0000644000175000017500000001112013217762750022501 0ustar autarchautarchuse 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 = 'ksf-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-root.t0000644000175000017500000001111613217762750022411 0ustar autarchautarchuse 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 = 'root'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-hr.t0000644000175000017500000001111413217762750022035 0ustar autarchautarchuse 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 = 'hr'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-en-CC.t0000644000175000017500000001111713217762750022314 0ustar autarchautarchuse 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 = 'en-CC'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ru-RU.t0000644000175000017500000001111713217762750022401 0ustar autarchautarchuse 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 = 'ru-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ur-IN.t0000644000175000017500000001111713217762750022361 0ustar autarchautarchuse 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 = 'ur-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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-saq-KE.t0000644000175000017500000001112013217762750022502 0ustar autarchautarchuse 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 = 'saq-KE'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ru.t0000644000175000017500000001111413217762750022052 0ustar autarchautarchuse 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 = '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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-cgg-UG.t0000644000175000017500000001112013217762750022472 0ustar autarchautarchuse 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 = 'cgg-UG'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-ja.t0000644000175000017500000001111413217762750022016 0ustar autarchautarchuse 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 = 'ja'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-kab.t0000644000175000017500000001111513217762750022162 0ustar autarchautarchuse 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 = 'kab'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-MA.t0000644000175000017500000001111713217762750022331 0ustar autarchautarchuse 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 = 'fr-MA'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-fr-GF.t0000644000175000017500000001111713217762750022330 0ustar autarchautarchuse 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 = 'fr-GF'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-az-Cyrl-AZ.t0000644000175000017500000001112413217762750023256 0ustar autarchautarchuse 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 = 'az-Cyrl-AZ'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-hr-HR.t0000644000175000017500000001111713217762750022347 0ustar autarchautarchuse 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 = 'hr-HR'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-mg.t0000644000175000017500000001111413217762750022027 0ustar autarchautarchuse 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 = 'mg'; 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 ); } DateTime-Format-Strptime-1.75/xt/author/locale-dsb-DE.t0000644000175000017500000001112013217762750022457 0ustar autarchautarchuse 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 = 'dsb-DE'; 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 ); } DateTime-Format-Strptime-1.75/tidyall.ini0000644000175000017500000000136513217762750020217 0ustar autarchautarch[PerlCritic] select = **/*.{pl,pm,t,psgi} ignore = .build/**/* ignore = DateTime-Format-Strptime-*/**/* ignore = blib/**/* ignore = t/00-* ignore = t/author-* ignore = t/locale-*.t ignore = t/release-* ignore = t/zzz-* ignore = xt/**/* argv = --profile=$ROOT/perlcriticrc [PerlCritic non-auto-generated xt] select = xt/author/test-all-my-deps.t argv = --profile=$ROOT/perlcriticrc [PerlTidy] select = **/*.{pl,pm,t,psgi} ignore = .build/**/* ignore = DateTime-Format-Strptime-*/**/* ignore = blib/**/* ignore = t/00-* ignore = t/author-* ignore = t/locale-*.t ignore = t/release-* ignore = t/zzz-* ignore = xt/**/* argv = --profile=$ROOT/perltidyrc [PerlTidy non-auto-generated xt] select = xt/author/test-all-my-deps.t argv = --profile=$ROOT/perltidyrc DateTime-Format-Strptime-1.75/INSTALL0000644000175000017500000000231313217762750017077 0ustar autarchautarchThis is the Perl distribution DateTime-Format-Strptime. Installing DateTime-Format-Strptime is straightforward. ## Installation with cpanm If you have cpanm, you only need one line: % cpanm DateTime::Format::Strptime If it does not have permission to install modules to the current perl, cpanm will automatically set up and install to a local::lib in your home directory. See the local::lib documentation (https://metacpan.org/pod/local::lib) for details on enabling it in your environment. ## Installing with the CPAN shell Alternatively, if your CPAN shell is set up, you should just be able to do: % cpan DateTime::Format::Strptime ## Manual installation As a last resort, you can manually install it. Download the tarball, untar it, then build it: % perl Makefile.PL % make && make test Then install it: % make install If your perl is system-managed, you can create a local::lib in your home directory to install modules to. For details, see the local::lib documentation: https://metacpan.org/pod/local::lib ## Documentation DateTime-Format-Strptime documentation is available as POD. You can run perldoc from a shell to read the documentation: % perldoc DateTime::Format::Strptime DateTime-Format-Strptime-1.75/Changes0000644000175000017500000003455313217762750017354 0ustar autarchautarch1.75 2017-12-24 - Fixed tests to pass with blead Perl. Reported by James Keenan. GH #19. 1.74 2017-08-03 - Fix text to not rely on a very specific exception message from Specio. This was broken in 0.39. Reported by Slaven Rezić. GH #18. 1.73 2017-01-31 - The format_datetime now checks that the object it is given isa DateTime object. Implemented by Mohammad S Anwar. GitHub #17. 1.72 2017-01-24 - Require DateTime::Locale 1.05. This fixes some test failures seen on CPAN Testers. Also require DateTime::TimeZone 2.09 because you should really update this on a regular basis. - Require Specio 0.33 to fix other test failures seen on CPAN (I hope). 1.71 2017-01-24 - By default, the word boundary checks added in 1.69 are now off. You can enable them by passing "strict => 1" to the constructor. This was reported as an issue by Toby Corkindale as GitHub #15. - Switched from Params::Validate to Params::ValidationCompiler. 1.70 2016-12-10 - Altered the conversion specifier %z to accept ±HH, ±HHMM, ±HH:MM and Z. Previously only ±HHMM where accepted. PR from Christian Hansen, GitHub #13. 1.69 2016-12-04 (TRIAL RELEASE) - The word boundary check supposedly added in 1.67 didn't really work properly, and still matched too much. For example, the pattern "%d-%m-%y" would match "2016-11-30" and turn it into November 16, 2030. This also had problems at the end of strings, so that the same pattern would improperly match "30-11-2016" as November 30, 2020. Reported by Erik Huelsmann. GitHub #11. - Added docs for several formats which had long been supported but not documented. These are %P, %c, %x, and %X. Reported by Alexander Hartmaier. GH #10. 1.68 2016-05-08 - Author tests are no longer in t/. This makes running tests for non-authors much faster. Requested by Kent Fredric. RT #114237. 1.67 2016-03-31 - Fixed a regression introduced in 1.60. Older versions of this library would match dates pretty match anywhere in a string, so "%Y-%m-%d" would match a string like "abcd1234-12-30efgh". This is probably _too_ permissive, but we definitely want to match on word boundaries so that we match "log.2016-03-31". Based on a PR from YASUTAKE Kiyoshi. GitHub #3. 1.66 2016-03-27 - Added a zone_map constructor argument. This lets you supply a mapping for ambiguous time zone abbreviations. Based on a patch from Douglas Wilson. RT #74762. 1.65 2016-03-15 - Updated zone short name parsing to handle names like "+07", which were introduced in the latest IANA time zone database release. 1.64 2016-02-21 - Changed how a string that contains separate epoch and nanosecond fields is turned into a DateTime object in order to deal with changes coming in the next DateTime release. 1.63 2016-01-13 [BUG FIXES] - The behaviour of silently ignoring text after the matching part was lost in the rewrite. This has been restored. Patch by Dagfinn Ilmari Mannsåker. RT #111155. 1.62 2015-12-19 [BUG FIXES] - When on_error was set to something that did not die (including the default error handling), calling ->parse_datetime with some bad inputs could cause the module to error out internally by trying to call methods on an undefined value instead of returning undef. Reported by Mike Dorman. RT #110247. 1.61 2015-11-13 [BUG FIXES] - If you loaded this module with warnings globally enabled ("perl -w", which you should never do), then you'd get a warning about the import subroutine being redefined. This broke the Package::DeprecationManager API for turning off deprecation warnings. This has been fixed in Package::DeprecationManager 0.15. Reported by Martin. RT #108871. 1.60 2015-11-07 - This release is identical to the prior trial release. The changes for the trial releases are reproduced below for convenience. [BACKWARDS INCOMPATIBILITIES] - The error messages for various types of failures have changed. - The never-documented diagnostic parameter for the constructor has been removed. - The never-documented feature to allow you to use arbitrary DateTime.pm methods in the parsing pattern has been removed. This never made much sense anyway, since most DateTime.pm methods are not constructor params, but they were used that way. - Using the pattern, locale, and time_zone to set the respective attribute is now deprecated. Make a new object instead of changing one of these values. [BUG FIXES] - Fixed a warning from the tests with newer Perl versions. RT #107620. - Clarified docs to note that %Y and %G require 4-digit years. Reported by Karen Etheridge. RT #103147. - Using the 24-hour token (%H) with an AM/PM specifier (%p) now leads to an error if you try to parse something like "23:01 AM". Reported by Ric Signes. RT #92445. 1.59 2015-10-25 (TRIAL RELEASE) - The previous release accidentally included an old version of Strptime.pm in the root dir, causing all sorts of chaos and test failures. 1.58 2015-10-18 (TRIAL RELEASE) - This release is a substantial rewrite. Please test it and file bugs for any unintentional breakage. * The error messages for various types of failures have changed. * The never-documented diagnostic parameter for the constructor has been removed. * The never-documented feature to allow you to use arbitrary DateTime.pm methods in the parsing pattern has been removed. This never made much sense anyway, since most DateTime.pm methods are not constructor params, but they were used that way. * Using the pattern, locale, and time_zone to set the respective attribute is now deprecated. Make a new object instead of changing one of these values. - Fixed a warning from the tests with newer Perl versions. RT #107620. - Clarified docs to note that %Y and %G require 4-digit years. Reported by Karen Etheridge. RT #103147. 1.57 2015-10-04 - Make all tests pass with both the current DateTime::Locale and the upcoming new version (currently still in trial releases). 1.56 2014-08-07 - Recent DateTime::TimeZone changes broke the tests. - Fixed Latin-1 content in test code. It's now UTF-8. 1.55 2014-08-07. - Broken release. I deleted this from PAUSE. 1.54 2013-04-02 - Require DateTime.pm 1.00 because without it tests will break. 1.53 2013-04-02 - A fix in DateTime.pm 1.00 broke a test in this distro. Reported by Anthony J Lucas. RT #84371. 1.52 2012-07-01 - Shut up "unescaped braces in regex" warning from 5.17.0. RT #77514. Patch by Zefram. 1.51 2012-05-27 - Packaging cleanup, including listing Test::More as a test prereq, not a runtime prereq. RT #76128. 1.5000 2010-10-16 - This module did not recognize UTC as a valid time zone. Patch by Danijel Tašov. RT #59209. 1.4000 2010-06-28 - Actually update $VERSION in module file. Reported by David Wheeler. 1.3000 2010-06-26 - Specifiers which allowed for leading space before a number (like %e) would cause DateTime.pm to throw an error if the date being parsed actually contained leading space. Patch by Alex Vandiver. RT #58459. - License is now Artistic 2.0 1.2000 2010-03-19 - Updated to use non-deprecated DateTime::Locale API 1.1000 2009-07-13 -- Regex Pattern - If the pattern you pass in is a regular expression, that will be honored. - Changed the locale tests to use require the latest version of Locale until the target stops moving. 1.0901 2009-05-16 -- Official release of 1.0900_01 1.0900_01 2009-04-18 - Makefile.PL changes for Windows users as per issue #16 1.0900 2009-02-22 - It seems that I also wasn't seeing notifications from RT (please don't use it, use the Gooogle project) so all the following are fixed: - 36672 Started failing mid May - 23313 Bug handling time zones like America/New_York - 25555 Module dies even when on_error is 'undef' - 23768 Olson timezone handling incorrect - 22450 locale test failing with bleadperl - 20487 nmake test_more fail (with patch); incorrect META.yml - 12071 format_datetime uses datetime locale rather than format locale - 11863 bug in DateTime::Format::Strptime 1.0601 when using %s - And a couple from Google: - #8 Add DateTime::Locale to documentation - #10 Parsing bug -- can't detect word boundry after month abbr 1.0800 2008-08-07 - It seems that I wasn't getting notifications from Google when people had reported bugs, so there's a pile of fixes in this release. Hopefully that fixes everyone's issues. 1.0702 2007-09-19 - Updated the META.yml file to have the correct 'resources' and match the latest spec - Updated the docus with a 'resources' section that has the same information in it for readers of POD. - This version ONLY changes the documentation and so it not a required update. 1.0701 2007-09-18 - Many people pointed out that while this module hadn't broken the tests for the French locale had. This is due to a new source for the data in DateTime::Locale. - This version ONLY changes the tests and so it not a required update. 1.0700 Sat, 5 Nov 2005 09:44:10 +1100 - Mike Schilli pointed out that strings without time zones or constructors without a time zone should be returning a DateTime in the floating time zone rather than UTC. - Jason Bodnar requested greater allowance for time zones in strings .. so I've now added the ability to use an Olson time zone identifier with %O. Note that this is a token specifically added to Strptime and it WILL NOT WORK with DateTime's strftime method. 1.0601 Wed, 1 Sep 2004 07:52:44 +1000 - Dave Faraldo and Jonathan Lefter pointed out that one of the new Locale tests in t/006... will fail on the 30th and 31st of the month as not all months have those days. Patch supplied by Jonathan has been applied. - This is just a test fix and doesn't alter the way the module runs in any way. If you already got 1.06 to run then you don't need this. 1.0600 Sat, 28 Aug 2004 15:02:47 +1000 - Fixed bug from RT (#7502) from dfaraldo@redhat.com that made validation fall over by assuming midnight always exists. The patch now assumes Midday exists (both he and I assume that DST will never start at midday anywhere anytime!) - This is a major change and you should install this release if you ever use any time_zone other than floating or UTC. And if you don't use them today, you may tomorrow - so upgrade OK? 1.0500 Wed, 18 Aug 2004 17:24:32 +1000 - Adapted and applied patches from Jean Forget to allow day names and month names to have \W characters and to allow am/pm values from other locales - Jean's patch also included some doc patches - Patched the synopsis a Jean suggestion to demonstrate how to use the non-default error behaviors - Added tests for these bugs - Added t/more/* and the make test_more target so I can test every locale if I want to. - It's over a year since I deprecated the language parameter so I've now removed it. You've had a year of warnings! - This is a major change and you should install this release if you use any locale other than en. 1.0400 Sun, 10 Aug 2003 00:22:00 +1000 - Applied patches from Joshua Hoblitt to move the the brand new DateTime::Locale rather than the old ::Language modules - Implemented %x, %X and %c for locale formats - Fixed a bug on the two digit year determinator - Added a test for locales known as 004locale.t - This is a major change and you should install this release if you are using DateTime >= 0.14 (the first release with Locale) 1.0302 Sat, 28 Jun 2003 09:15:21 +1000 - Test 004 was failing on Windows due to the path delimiter being a backslash rather than a slash. This release should also fix Strptime for Mac users, although I've had no complaints from such users. (Myself being one of the only ones currently using Strptime AFAIK!) Thanks Ron Hill for the bug report. 1.0301 Wed, 25 Jun 2003 22:40:12 +1000 - Updated to handle the post 0.12 DateTime that now validates dates. Still handles old DateTime. 1.0300 Sat, 07 Jun 2003 10:40:23 +1000 - The calls to die() have changed by request of Dave Rolsky and Iain Truskett (Thanks!). We now allow each object to have its own behavior. - The default behavior has been changed to returning undef. This was requested by someone (tell me if it was you!) and made a lot of sense to me. - Never released to CPAN 1.0200 Wed, 28 May 2003 21:02:03 +1000 - The docs for Time::Local talk about the 'proclivity to croak' which basically means the module croaks easily. So did this one until now. Until now, if you allowed a user to specify a pattern and they entered one that was non parsable, this module would croak causing your script to croak. This is a Bad Thing (tm). The behaviour now remains the same, however if you set $DateTime::Format::StrpTime::CROAK to false, methods will return undef rather than croaking. $DateTime::Format::StrpTime::errmsg will tell you what went wrong. The default is to continue to croak. This means you have to delibrately turn it off. Hopefully you'll change you script to do this at the same time you change it to check the return values of the methods :) 1.0103 Wed, 28 May 2003 20:10:57 +1000 - Applied doc patches from Iain Truskett (Thanks!) - Clarified parameter discrepancy between synopsis and docs (Thanks Chris Winters) 1.0102 Fri, 16 May 2003 07:28:18 +1000 - Fixed the same test as above. Think I actually succeeded this time! 1.0101 Tue, 13 May 2003 07:58:23 +1000 - Fixed a test that was broken if DateTime::TimeZone was not version 0.13 or above. 1.0100 Sun, 11 May 2003 13:54:36 +1000 - If we have the latest DateTime we run the test mentioned above - Fixed my version format as advised by Iain Truskett if it still doesn't work it's because of me, not him - Added the ability to handle nanoseconds as requested by Michael Goltze. - Got Time Zones working, including mapping non-ambiguous TLAs offsets and Olsen names (the latter uses the %q token) 1.00.02 Tue, 29 Apr 2003 07:03:19 +1000 - Fixed a test that only worked in DateTime was from CVS - Fixed two issues noted by Iain Truskett: - Removed a diag() in test 1 that was just there for testing the test - Added a linebreak to the end of the MANIFEST 1.00.01 Mon, 28 Apr 2003 07:12:01 +1000 - removed alien life-forms (characters that didn't ASCIIfy) * No API change, just made it so it will install now! 1.00.00 Sun, 27 Apr 2003 17:56:27 +1000 - first CPAN release - added tests - should be 100% compatible with DateTime's strftime function DateTime-Format-Strptime-1.75/README.md0000644000175000017500000002521113217762750017327 0ustar autarchautarch# NAME DateTime::Format::Strptime - Parse and format strp and strf time patterns # VERSION version 1.75 # SYNOPSIS use DateTime::Format::Strptime; my $strp = DateTime::Format::Strptime->new( pattern => '%T', locale => 'en_AU', time_zone => 'Australia/Melbourne', ); my $dt = $strp->parse_datetime('23:16:42'); $strp->format_datetime($dt); # 23:16:42 # Croak when things go wrong: my $strp = DateTime::Format::Strptime->new( pattern => '%T', locale => 'en_AU', time_zone => 'Australia/Melbourne', on_error => 'croak', ); # Do something else when things go wrong: my $strp = DateTime::Format::Strptime->new( pattern => '%T', locale => 'en_AU', time_zone => 'Australia/Melbourne', on_error => \&phone_police, ); # DESCRIPTION This module implements most of `strptime(3)`, the POSIX function that is the reverse of `strftime(3)`, for `DateTime`. While `strftime` takes a `DateTime` and a pattern and returns a string, `strptime` takes a string and a pattern and returns the `DateTime` object associated. # METHODS This class offers the following methods. ## DateTime::Format::Strptime->new(%args) This methods creates a new object. It accepts the following arguments: - pattern This is the pattern to use for parsing. This is required. - strict This is a boolean which disables or enables strict matching mode. By default, this module turns your pattern into a regex that will match anywhere in a string. So given the pattern `%Y%m%d%H%M%S` it will match a string like `20161214233712Z`. However, this also means that a this pattern will match **any** string that contains 14 or more numbers! This behavior can be very surprising. If you enable strict mode, then the generated regex is wrapped in boundary checks of the form `/(?:\A|\b)...(?:\b|\z_/)`. These checks ensure that the pattern will only match when at the beginning or end of a string, or when it is separated by other text with a word boundary (`\w` versus `\W`). By default, strict mode is off. This is done for backwards compatibility. Future releases may turn it on by default, as it produces less surprising behavior in many cases. Because the default may change in the future, **you are strongly encouraged to explicitly set this when constructing all `DateTime::Format::Strptime` objects**. - time\_zone The default time zone to use for objects returned from parsing. - zone\_map Some time zone abbreviations are ambiguous (e.g. PST, EST, EDT). By default, the parser will die when it parses an ambiguous abbreviation. You may specify a `zone_map` parameter as a hashref to map zone abbreviations however you like: zone_map => { PST => '-0800', EST => '-0600' } Note that you can also override non-ambiguous mappings if you want to as well. - locale The locale to use for objects returned from parsing. - on\_error This can be one of `'undef'` (the string, not an `undef`), 'croak', or a subroutine reference. - 'undef' This is the default behavior. The module will return `undef` on errors. The error can be accessed using the `$object->errmsg` method. This is the ideal behaviour for interactive use where a user might provide an illegal pattern or a date that doesn't match the pattern. - 'croak' The module will croak with an error message on errors. - sub{...} or \\&subname When given a code ref, the module will call that sub on errors. The sub receives two parameters: the object and the error message. If your sub does not die, then the formatter will continue on as if `on_error` was `'undef'`. ## $strptime->parse\_datetime($string) Given a string in the pattern specified in the constructor, this method will return a new `DateTime` object. If given a string that doesn't match the pattern, the formatter will croak or return undef, depending on the setting of `on_error` in the constructor. ## $strptime->format\_datetime($datetime) Given a `DateTime` object, this methods returns a string formatted in the object's format. This method is synonymous with `DateTime`'s strftime method. ## $strptime->locale This method returns the locale passed to the object's constructor. ## $strptime->pattern This method returns the pattern passed to the object's constructor. ## $strptime->time\_zone This method returns the time zone passed to the object's constructor. ## $strptime->errmsg If the on\_error behavior of the object is 'undef', you can retrieve error messages with this method so you can work out why things went wrong. # EXPORTS These subs are available as optional exports. ## strptime( $strptime\_pattern, $string ) Given a pattern and a string this function will return a new `DateTime` object. ## strftime( $strftime\_pattern, $datetime ) Given a pattern and a `DateTime` object this function will return a formatted string. # STRPTIME PATTERN TOKENS The following tokens are allowed in the pattern string for strptime (parse\_datetime): - %% The % character. - %a or %A The weekday name according to the given locale, in abbreviated form or the full name. - %b or %B or %h The month name according to the given locale, in abbreviated form or the full name. - %c The datetime format according to the given locale. - %C The century number (0-99). - %d or %e The day of month (01-31). This will parse single digit numbers as well. - %D Equivalent to %m/%d/%y. (This is the American style date, very confusing to non-Americans, especially since %d/%m/%y is widely used in Europe. The ISO 8601 standard pattern is %F.) - %F Equivalent to %Y-%m-%d. (This is the ISO style date) - %g The year corresponding to the ISO week number, but without the century (0-99). - %G The 4-digit year corresponding to the ISO week number. - %H The hour (00-23). This will parse single digit numbers as well. - %I The hour on a 12-hour clock (1-12). - %j The day number in the year (1-366). - %m The month number (01-12). This will parse single digit numbers as well. - %M The minute (00-59). This will parse single digit numbers as well. - %n Arbitrary whitespace. - %N Nanoseconds. For other sub-second values use `%[number]N`. - %p or %P The equivalent of AM or PM according to the locale in use. See [DateTime::Locale](https://metacpan.org/pod/DateTime::Locale). - %r Equivalent to %I:%M:%S %p. - %R Equivalent to %H:%M. - %s Number of seconds since the Epoch. - %S The second (0-60; 60 may occur for leap seconds. See [DateTime::LeapSecond](https://metacpan.org/pod/DateTime::LeapSecond)). - %t Arbitrary whitespace. - %T Equivalent to %H:%M:%S. - %U The week number with Sunday the first day of the week (0-53). The first Sunday of January is the first day of week 1. - %u The weekday number (1-7) with Monday = 1. This is the `DateTime` standard. - %w The weekday number (0-6) with Sunday = 0. - %W The week number with Monday the first day of the week (0-53). The first Monday of January is the first day of week 1. - %x The date format according to the given locale. - %X The time format according to the given locale. - %y The year within century (0-99). When a century is not otherwise specified (with a value for %C), values in the range 69-99 refer to years in the twentieth century (1969-1999); values in the range 00-68 refer to years in the twenty-first century (2000-2068). - %Y A 4-digit year, including century (for example, 1991). - %z An RFC-822/ISO 8601 standard time zone specification. (For example \+1100) \[See note below\] - %Z The timezone name. (For example EST -- which is ambiguous) \[See note below\] - %O This extended token allows the use of Olson Time Zone names to appear in parsed strings. **NOTE**: This pattern cannot be passed to `DateTime`'s `strftime()` method, but can be passed to `format_datetime()`. # AUTHOR EMERITUS This module was created by Rick Measham. # SEE ALSO `datetime@perl.org` mailing list. http://datetime.perl.org/ [perl](https://metacpan.org/pod/perl), [DateTime](https://metacpan.org/pod/DateTime), [DateTime::TimeZone](https://metacpan.org/pod/DateTime::TimeZone), [DateTime::Locale](https://metacpan.org/pod/DateTime::Locale) # BUGS Please report any bugs or feature requests to `bug-datetime-format-strptime@rt.cpan.org`, or through the web interface at [http://rt.cpan.org](http://rt.cpan.org). I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. Bugs may be submitted at [https://github.com/houseabsolute/DateTime-Format-Strptime/issues](https://github.com/houseabsolute/DateTime-Format-Strptime/issues). There is a mailing list available for users of this distribution, [mailto:datetime@perl.org](mailto:datetime@perl.org). I am also usually active on IRC as 'autarch' on `irc://irc.perl.org`. # SOURCE The source code repository for DateTime-Format-Strptime can be found at [https://github.com/houseabsolute/DateTime-Format-Strptime](https://github.com/houseabsolute/DateTime-Format-Strptime). # DONATIONS If you'd like to thank me for the work I've done on this module, please consider making a "donation" to me via PayPal. I spend a lot of free time creating free software, and would appreciate any support you'd care to offer. Please note that **I am not suggesting that you must do this** in order for me to continue working on this particular software. I will continue to do so, inasmuch as I have in the past, for as long as it interests me. Similarly, a donation made in this way will probably not make me work on this software much more, unless I get so many donations that I can consider working 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). # AUTHORS - Dave Rolsky - Rick Measham # CONTRIBUTORS - Christian Hansen - D. Ilmari Mannsåker - key-amb - Mohammad S Anwar # COPYRIGHT AND LICENSE This software is Copyright (c) 2015 - 2017 by Dave Rolsky. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible) The full text of the license can be found in the `LICENSE` file included with this distribution. DateTime-Format-Strptime-1.75/MANIFEST0000644000175000017500000004465213217762750017213 0ustar autarchautarch# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.010. CONTRIBUTING.md Changes INSTALL LICENSE MANIFEST META.json META.yml Makefile.PL README.md bench cpanfile dist.ini inc/GenerateLocaleTests.pm lib/DateTime/Format/Strptime.pm lib/DateTime/Format/Strptime/Types.pm perlcriticrc perltidyrc t/00-report-prereqs.dd t/00-report-prereqs.t t/basic.t t/edge.t t/errors.t t/format-datetime.t t/format-with-locale.t t/import.t t/lib/T.pm t/locale-de.t t/locale-en.t t/locale-ga.t t/locale-pt.t t/locale-zh.t t/zones.t tidyall.ini xt/author/00-compile.t xt/author/eol.t xt/author/locale-af-NA.t xt/author/locale-af-ZA.t xt/author/locale-af.t xt/author/locale-agq-CM.t xt/author/locale-agq.t xt/author/locale-ak-GH.t xt/author/locale-ak.t xt/author/locale-am-ET.t xt/author/locale-am.t xt/author/locale-ar-001.t xt/author/locale-ar-AE.t xt/author/locale-ar-BH.t xt/author/locale-ar-DJ.t xt/author/locale-ar-DZ.t xt/author/locale-ar-EG.t xt/author/locale-ar-EH.t xt/author/locale-ar-ER.t xt/author/locale-ar-IL.t xt/author/locale-ar-IQ.t xt/author/locale-ar-JO.t xt/author/locale-ar-KM.t xt/author/locale-ar-KW.t xt/author/locale-ar-LB.t xt/author/locale-ar-LY.t xt/author/locale-ar-MA.t xt/author/locale-ar-MR.t xt/author/locale-ar-OM.t xt/author/locale-ar-PS.t xt/author/locale-ar-QA.t xt/author/locale-ar-SA.t xt/author/locale-ar-SD.t xt/author/locale-ar-SO.t xt/author/locale-ar-SS.t xt/author/locale-ar-SY.t xt/author/locale-ar-TD.t xt/author/locale-ar-TN.t xt/author/locale-ar-YE.t xt/author/locale-ar.t xt/author/locale-as-IN.t xt/author/locale-as.t xt/author/locale-asa-TZ.t xt/author/locale-asa.t xt/author/locale-ast-ES.t xt/author/locale-ast.t xt/author/locale-az-Cyrl-AZ.t xt/author/locale-az-Cyrl.t xt/author/locale-az-Latn-AZ.t xt/author/locale-az-Latn.t xt/author/locale-az.t xt/author/locale-bas-CM.t xt/author/locale-bas.t xt/author/locale-be-BY.t xt/author/locale-be.t xt/author/locale-bem-ZM.t xt/author/locale-bem.t xt/author/locale-bez-TZ.t xt/author/locale-bez.t xt/author/locale-bg-BG.t xt/author/locale-bg.t xt/author/locale-bm-ML.t xt/author/locale-bm.t xt/author/locale-bn-BD.t xt/author/locale-bn-IN.t xt/author/locale-bn.t xt/author/locale-bo-CN.t xt/author/locale-bo-IN.t xt/author/locale-bo.t xt/author/locale-br-FR.t xt/author/locale-br.t xt/author/locale-brx-IN.t xt/author/locale-brx.t xt/author/locale-bs-Cyrl-BA.t xt/author/locale-bs-Cyrl.t xt/author/locale-bs-Latn-BA.t xt/author/locale-bs-Latn.t xt/author/locale-bs.t xt/author/locale-ca-AD.t xt/author/locale-ca-ES-VALENCIA.t xt/author/locale-ca-ES.t xt/author/locale-ca-FR.t xt/author/locale-ca-IT.t xt/author/locale-ca.t xt/author/locale-ccp-BD.t xt/author/locale-ccp-IN.t xt/author/locale-ccp.t xt/author/locale-ce-RU.t xt/author/locale-ce.t xt/author/locale-cgg-UG.t xt/author/locale-cgg.t xt/author/locale-chr-US.t xt/author/locale-chr.t xt/author/locale-ckb-IQ.t xt/author/locale-ckb-IR.t 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 xt/author/locale-da-GL.t xt/author/locale-da.t xt/author/locale-dav-KE.t xt/author/locale-dav.t xt/author/locale-de-AT.t xt/author/locale-de-BE.t xt/author/locale-de-CH.t xt/author/locale-de-DE.t xt/author/locale-de-IT.t xt/author/locale-de-LI.t xt/author/locale-de-LU.t xt/author/locale-dje-NE.t xt/author/locale-dje.t xt/author/locale-dsb-DE.t xt/author/locale-dsb.t xt/author/locale-dua-CM.t xt/author/locale-dua.t xt/author/locale-dyo-SN.t xt/author/locale-dyo.t xt/author/locale-dz-BT.t xt/author/locale-dz.t xt/author/locale-ebu-KE.t xt/author/locale-ebu.t xt/author/locale-ee-GH.t xt/author/locale-ee-TG.t xt/author/locale-ee.t xt/author/locale-el-CY.t xt/author/locale-el-GR.t xt/author/locale-el.t xt/author/locale-en-001.t xt/author/locale-en-150.t xt/author/locale-en-AG.t xt/author/locale-en-AI.t xt/author/locale-en-AS.t xt/author/locale-en-AT.t xt/author/locale-en-AU.t xt/author/locale-en-BB.t xt/author/locale-en-BE.t xt/author/locale-en-BI.t xt/author/locale-en-BM.t xt/author/locale-en-BS.t xt/author/locale-en-BW.t xt/author/locale-en-BZ.t xt/author/locale-en-CA.t xt/author/locale-en-CC.t xt/author/locale-en-CH.t xt/author/locale-en-CK.t xt/author/locale-en-CM.t xt/author/locale-en-CX.t xt/author/locale-en-CY.t xt/author/locale-en-DE.t xt/author/locale-en-DG.t xt/author/locale-en-DK.t xt/author/locale-en-DM.t xt/author/locale-en-ER.t xt/author/locale-en-FI.t xt/author/locale-en-FJ.t xt/author/locale-en-FK.t xt/author/locale-en-FM.t xt/author/locale-en-GB.t xt/author/locale-en-GD.t xt/author/locale-en-GG.t xt/author/locale-en-GH.t xt/author/locale-en-GI.t xt/author/locale-en-GM.t xt/author/locale-en-GU.t xt/author/locale-en-GY.t xt/author/locale-en-HK.t xt/author/locale-en-IE.t xt/author/locale-en-IL.t xt/author/locale-en-IM.t xt/author/locale-en-IN.t xt/author/locale-en-IO.t xt/author/locale-en-JE.t xt/author/locale-en-JM.t xt/author/locale-en-KE.t xt/author/locale-en-KI.t xt/author/locale-en-KN.t xt/author/locale-en-KY.t xt/author/locale-en-LC.t xt/author/locale-en-LR.t xt/author/locale-en-LS.t xt/author/locale-en-MG.t xt/author/locale-en-MH.t xt/author/locale-en-MO.t xt/author/locale-en-MP.t xt/author/locale-en-MS.t xt/author/locale-en-MT.t xt/author/locale-en-MU.t xt/author/locale-en-MW.t xt/author/locale-en-MY.t xt/author/locale-en-NA.t xt/author/locale-en-NF.t xt/author/locale-en-NG.t xt/author/locale-en-NL.t xt/author/locale-en-NR.t xt/author/locale-en-NU.t xt/author/locale-en-NZ.t xt/author/locale-en-PG.t xt/author/locale-en-PH.t xt/author/locale-en-PK.t xt/author/locale-en-PN.t xt/author/locale-en-PR.t xt/author/locale-en-PW.t xt/author/locale-en-RW.t xt/author/locale-en-SB.t xt/author/locale-en-SC.t xt/author/locale-en-SD.t xt/author/locale-en-SE.t xt/author/locale-en-SG.t xt/author/locale-en-SH.t xt/author/locale-en-SI.t xt/author/locale-en-SL.t xt/author/locale-en-SS.t xt/author/locale-en-SX.t xt/author/locale-en-SZ.t xt/author/locale-en-TC.t xt/author/locale-en-TK.t xt/author/locale-en-TO.t xt/author/locale-en-TT.t xt/author/locale-en-TV.t xt/author/locale-en-TZ.t xt/author/locale-en-UG.t xt/author/locale-en-UM.t xt/author/locale-en-US-POSIX.t xt/author/locale-en-US.t xt/author/locale-en-VC.t xt/author/locale-en-VG.t xt/author/locale-en-VI.t xt/author/locale-en-VU.t xt/author/locale-en-WS.t xt/author/locale-en-ZA.t xt/author/locale-en-ZM.t xt/author/locale-en-ZW.t xt/author/locale-eo-001.t xt/author/locale-eo.t xt/author/locale-es-419.t xt/author/locale-es-AR.t xt/author/locale-es-BO.t xt/author/locale-es-BR.t xt/author/locale-es-BZ.t xt/author/locale-es-CL.t xt/author/locale-es-CO.t xt/author/locale-es-CR.t xt/author/locale-es-CU.t xt/author/locale-es-DO.t xt/author/locale-es-EA.t xt/author/locale-es-EC.t xt/author/locale-es-ES.t xt/author/locale-es-GQ.t xt/author/locale-es-GT.t xt/author/locale-es-HN.t xt/author/locale-es-IC.t xt/author/locale-es-MX.t xt/author/locale-es-NI.t xt/author/locale-es-PA.t xt/author/locale-es-PE.t xt/author/locale-es-PH.t xt/author/locale-es-PR.t xt/author/locale-es-PY.t xt/author/locale-es-SV.t xt/author/locale-es-US.t xt/author/locale-es-UY.t xt/author/locale-es-VE.t xt/author/locale-es.t xt/author/locale-et-EE.t xt/author/locale-et.t xt/author/locale-eu-ES.t xt/author/locale-eu.t xt/author/locale-ewo-CM.t xt/author/locale-ewo.t xt/author/locale-fa-AF.t xt/author/locale-fa-IR.t xt/author/locale-fa.t xt/author/locale-ff-CM.t xt/author/locale-ff-GN.t xt/author/locale-ff-MR.t xt/author/locale-ff-SN.t xt/author/locale-ff.t xt/author/locale-fi-FI.t xt/author/locale-fi.t xt/author/locale-fil-PH.t xt/author/locale-fil.t xt/author/locale-fo-DK.t xt/author/locale-fo-FO.t xt/author/locale-fo.t xt/author/locale-fr-BE.t xt/author/locale-fr-BF.t xt/author/locale-fr-BI.t xt/author/locale-fr-BJ.t xt/author/locale-fr-BL.t xt/author/locale-fr-CA.t xt/author/locale-fr-CD.t xt/author/locale-fr-CF.t xt/author/locale-fr-CG.t xt/author/locale-fr-CH.t xt/author/locale-fr-CI.t xt/author/locale-fr-CM.t xt/author/locale-fr-DJ.t xt/author/locale-fr-DZ.t xt/author/locale-fr-FR.t xt/author/locale-fr-GA.t xt/author/locale-fr-GF.t xt/author/locale-fr-GN.t xt/author/locale-fr-GP.t xt/author/locale-fr-GQ.t xt/author/locale-fr-HT.t xt/author/locale-fr-KM.t xt/author/locale-fr-LU.t xt/author/locale-fr-MA.t xt/author/locale-fr-MC.t xt/author/locale-fr-MF.t xt/author/locale-fr-MG.t xt/author/locale-fr-ML.t xt/author/locale-fr-MQ.t xt/author/locale-fr-MR.t xt/author/locale-fr-MU.t xt/author/locale-fr-NC.t xt/author/locale-fr-NE.t xt/author/locale-fr-PF.t xt/author/locale-fr-PM.t xt/author/locale-fr-RE.t xt/author/locale-fr-RW.t xt/author/locale-fr-SC.t xt/author/locale-fr-SN.t xt/author/locale-fr-SY.t xt/author/locale-fr-TD.t xt/author/locale-fr-TG.t xt/author/locale-fr-TN.t xt/author/locale-fr-VU.t xt/author/locale-fr-WF.t xt/author/locale-fr-YT.t xt/author/locale-fr.t xt/author/locale-fur-IT.t xt/author/locale-fur.t xt/author/locale-fy-NL.t xt/author/locale-fy.t xt/author/locale-ga-IE.t xt/author/locale-gd-GB.t xt/author/locale-gd.t xt/author/locale-gl-ES.t xt/author/locale-gl.t xt/author/locale-gsw-CH.t xt/author/locale-gsw-FR.t xt/author/locale-gsw-LI.t xt/author/locale-gsw.t xt/author/locale-gu-IN.t xt/author/locale-gu.t xt/author/locale-guz-KE.t xt/author/locale-guz.t xt/author/locale-gv-IM.t xt/author/locale-gv.t xt/author/locale-ha-GH.t xt/author/locale-ha-NE.t xt/author/locale-ha-NG.t xt/author/locale-ha.t xt/author/locale-haw-US.t xt/author/locale-haw.t xt/author/locale-he-IL.t xt/author/locale-he.t xt/author/locale-hi-IN.t xt/author/locale-hi.t xt/author/locale-hr-BA.t xt/author/locale-hr-HR.t xt/author/locale-hr.t xt/author/locale-hsb-DE.t xt/author/locale-hsb.t xt/author/locale-hu-HU.t xt/author/locale-hu.t xt/author/locale-hy-AM.t xt/author/locale-hy.t xt/author/locale-id-ID.t xt/author/locale-id.t xt/author/locale-ig-NG.t xt/author/locale-ig.t xt/author/locale-ii-CN.t xt/author/locale-ii.t xt/author/locale-is-IS.t xt/author/locale-is.t xt/author/locale-it-CH.t xt/author/locale-it-IT.t xt/author/locale-it-SM.t xt/author/locale-it-VA.t xt/author/locale-it.t xt/author/locale-ja-JP.t xt/author/locale-ja.t xt/author/locale-jgo-CM.t xt/author/locale-jgo.t xt/author/locale-jmc-TZ.t xt/author/locale-jmc.t xt/author/locale-ka-GE.t xt/author/locale-ka.t xt/author/locale-kab-DZ.t xt/author/locale-kab.t xt/author/locale-kam-KE.t xt/author/locale-kam.t xt/author/locale-kde-TZ.t xt/author/locale-kde.t xt/author/locale-kea-CV.t xt/author/locale-kea.t xt/author/locale-khq-ML.t xt/author/locale-khq.t xt/author/locale-ki-KE.t xt/author/locale-ki.t xt/author/locale-kk-KZ.t xt/author/locale-kk.t xt/author/locale-kkj-CM.t xt/author/locale-kkj.t xt/author/locale-kl-GL.t xt/author/locale-kl.t xt/author/locale-kln-KE.t xt/author/locale-kln.t xt/author/locale-km-KH.t xt/author/locale-km.t xt/author/locale-kn-IN.t xt/author/locale-kn.t xt/author/locale-ko-KP.t xt/author/locale-ko-KR.t 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.t xt/author/locale-ksb-TZ.t xt/author/locale-ksb.t xt/author/locale-ksf-CM.t xt/author/locale-ksf.t xt/author/locale-ksh-DE.t xt/author/locale-ksh.t xt/author/locale-kw-GB.t xt/author/locale-kw.t xt/author/locale-ky-KG.t xt/author/locale-ky.t xt/author/locale-lag-TZ.t xt/author/locale-lag.t xt/author/locale-lb-LU.t xt/author/locale-lb.t xt/author/locale-lg-UG.t xt/author/locale-lg.t xt/author/locale-lkt-US.t xt/author/locale-lkt.t xt/author/locale-ln-AO.t xt/author/locale-ln-CD.t xt/author/locale-ln-CF.t xt/author/locale-ln-CG.t xt/author/locale-ln.t xt/author/locale-lo-LA.t xt/author/locale-lo.t xt/author/locale-lrc-IQ.t xt/author/locale-lrc-IR.t xt/author/locale-lrc.t xt/author/locale-lt-LT.t xt/author/locale-lt.t xt/author/locale-lu-CD.t xt/author/locale-lu.t xt/author/locale-luo-KE.t xt/author/locale-luo.t xt/author/locale-luy-KE.t xt/author/locale-luy.t xt/author/locale-lv-LV.t xt/author/locale-lv.t xt/author/locale-mas-KE.t xt/author/locale-mas-TZ.t xt/author/locale-mas.t xt/author/locale-mer-KE.t xt/author/locale-mer.t xt/author/locale-mfe-MU.t xt/author/locale-mfe.t xt/author/locale-mg-MG.t xt/author/locale-mg.t xt/author/locale-mgh-MZ.t xt/author/locale-mgh.t xt/author/locale-mgo-CM.t xt/author/locale-mgo.t xt/author/locale-mk-MK.t xt/author/locale-mk.t xt/author/locale-ml-IN.t xt/author/locale-ml.t xt/author/locale-mn-MN.t xt/author/locale-mn.t xt/author/locale-mr-IN.t xt/author/locale-mr.t xt/author/locale-ms-BN.t xt/author/locale-ms-MY.t xt/author/locale-ms-SG.t xt/author/locale-ms.t xt/author/locale-mt-MT.t xt/author/locale-mt.t xt/author/locale-mua-CM.t xt/author/locale-mua.t xt/author/locale-my-MM.t xt/author/locale-my.t xt/author/locale-mzn-IR.t xt/author/locale-mzn.t xt/author/locale-naq-NA.t xt/author/locale-naq.t xt/author/locale-nb-NO.t xt/author/locale-nb-SJ.t xt/author/locale-nb.t xt/author/locale-nd-ZW.t xt/author/locale-nd.t xt/author/locale-nds-DE.t xt/author/locale-nds-NL.t xt/author/locale-nds.t xt/author/locale-ne-IN.t xt/author/locale-ne-NP.t xt/author/locale-ne.t xt/author/locale-nl-AW.t xt/author/locale-nl-BE.t xt/author/locale-nl-BQ.t xt/author/locale-nl-CW.t xt/author/locale-nl-NL.t xt/author/locale-nl-SR.t xt/author/locale-nl-SX.t xt/author/locale-nl.t xt/author/locale-nmg-CM.t xt/author/locale-nmg.t xt/author/locale-nn-NO.t xt/author/locale-nn.t xt/author/locale-nnh-CM.t xt/author/locale-nnh.t xt/author/locale-nus-SS.t xt/author/locale-nus.t xt/author/locale-nyn-UG.t xt/author/locale-nyn.t xt/author/locale-om-ET.t xt/author/locale-om-KE.t xt/author/locale-om.t xt/author/locale-or-IN.t xt/author/locale-or.t xt/author/locale-os-GE.t xt/author/locale-os-RU.t xt/author/locale-os.t xt/author/locale-pa-Arab-PK.t xt/author/locale-pa-Arab.t xt/author/locale-pa-Guru-IN.t xt/author/locale-pa-Guru.t xt/author/locale-pa.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.t xt/author/locale-pt-AO.t xt/author/locale-pt-BR.t xt/author/locale-pt-CH.t xt/author/locale-pt-CV.t xt/author/locale-pt-GQ.t xt/author/locale-pt-GW.t xt/author/locale-pt-LU.t xt/author/locale-pt-MO.t xt/author/locale-pt-MZ.t xt/author/locale-pt-PT.t xt/author/locale-pt-ST.t xt/author/locale-pt-TL.t xt/author/locale-qu-BO.t xt/author/locale-qu-EC.t xt/author/locale-qu-PE.t xt/author/locale-qu.t xt/author/locale-rm-CH.t xt/author/locale-rm.t xt/author/locale-rn-BI.t xt/author/locale-rn.t xt/author/locale-ro-MD.t xt/author/locale-ro-RO.t xt/author/locale-ro.t xt/author/locale-rof-TZ.t xt/author/locale-rof.t xt/author/locale-root.t xt/author/locale-ru-BY.t xt/author/locale-ru-KG.t xt/author/locale-ru-KZ.t xt/author/locale-ru-MD.t xt/author/locale-ru-RU.t xt/author/locale-ru-UA.t xt/author/locale-ru.t xt/author/locale-rw-RW.t xt/author/locale-rw.t xt/author/locale-rwk-TZ.t xt/author/locale-rwk.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-sbp-TZ.t xt/author/locale-sbp.t xt/author/locale-sd-PK.t xt/author/locale-sd.t xt/author/locale-se-FI.t xt/author/locale-se-NO.t xt/author/locale-se-SE.t xt/author/locale-se.t xt/author/locale-seh-MZ.t xt/author/locale-seh.t xt/author/locale-ses-ML.t xt/author/locale-ses.t xt/author/locale-sg-CF.t xt/author/locale-sg.t xt/author/locale-shi-Latn-MA.t xt/author/locale-shi-Latn.t xt/author/locale-shi-Tfng-MA.t xt/author/locale-shi-Tfng.t xt/author/locale-shi.t xt/author/locale-si-LK.t xt/author/locale-si.t xt/author/locale-sk-SK.t xt/author/locale-sk.t xt/author/locale-sl-SI.t xt/author/locale-sl.t xt/author/locale-smn-FI.t xt/author/locale-smn.t xt/author/locale-sn-ZW.t xt/author/locale-sn.t xt/author/locale-so-DJ.t xt/author/locale-so-ET.t xt/author/locale-so-KE.t xt/author/locale-so-SO.t xt/author/locale-so.t xt/author/locale-sq-AL.t xt/author/locale-sq-MK.t xt/author/locale-sq-XK.t xt/author/locale-sq.t xt/author/locale-sr-Cyrl-BA.t xt/author/locale-sr-Cyrl-ME.t xt/author/locale-sr-Cyrl-RS.t xt/author/locale-sr-Cyrl-XK.t xt/author/locale-sr-Cyrl.t xt/author/locale-sr-Latn-BA.t xt/author/locale-sr-Latn-ME.t xt/author/locale-sr-Latn-RS.t xt/author/locale-sr-Latn-XK.t xt/author/locale-sr-Latn.t xt/author/locale-sr.t xt/author/locale-sv-AX.t xt/author/locale-sv-FI.t xt/author/locale-sv-SE.t xt/author/locale-sv.t xt/author/locale-sw-CD.t xt/author/locale-sw-KE.t xt/author/locale-sw-TZ.t xt/author/locale-sw-UG.t xt/author/locale-sw.t xt/author/locale-ta-IN.t xt/author/locale-ta-LK.t xt/author/locale-ta-MY.t xt/author/locale-ta-SG.t xt/author/locale-ta.t xt/author/locale-te-IN.t xt/author/locale-te.t xt/author/locale-teo-KE.t xt/author/locale-teo-UG.t xt/author/locale-teo.t xt/author/locale-tg-TJ.t xt/author/locale-tg.t xt/author/locale-th-TH.t xt/author/locale-th.t xt/author/locale-ti-ER.t xt/author/locale-ti-ET.t xt/author/locale-ti.t xt/author/locale-tk-TM.t xt/author/locale-tk.t xt/author/locale-to-TO.t xt/author/locale-to.t xt/author/locale-tr-CY.t xt/author/locale-tr-TR.t xt/author/locale-tr.t xt/author/locale-tt-RU.t xt/author/locale-tt.t xt/author/locale-twq-NE.t xt/author/locale-twq.t xt/author/locale-tzm-MA.t xt/author/locale-tzm.t xt/author/locale-ug-CN.t xt/author/locale-ug.t xt/author/locale-uk-UA.t xt/author/locale-uk.t xt/author/locale-ur-IN.t xt/author/locale-ur-PK.t xt/author/locale-ur.t xt/author/locale-uz-Arab-AF.t xt/author/locale-uz-Arab.t xt/author/locale-uz-Cyrl-UZ.t xt/author/locale-uz-Cyrl.t xt/author/locale-uz-Latn-UZ.t xt/author/locale-uz-Latn.t xt/author/locale-uz.t xt/author/locale-vai-Latn-LR.t xt/author/locale-vai-Latn.t xt/author/locale-vai-Vaii-LR.t xt/author/locale-vai-Vaii.t 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 xt/author/locale-wae.t xt/author/locale-wo-SN.t xt/author/locale-wo.t xt/author/locale-xog-UG.t xt/author/locale-xog.t xt/author/locale-yav-CM.t xt/author/locale-yav.t xt/author/locale-yi-001.t xt/author/locale-yi.t xt/author/locale-yo-BJ.t xt/author/locale-yo-NG.t xt/author/locale-yo.t xt/author/locale-yue-Hans-CN.t xt/author/locale-yue-Hans.t xt/author/locale-yue-Hant-HK.t xt/author/locale-yue-Hant.t xt/author/locale-yue.t xt/author/locale-zgh-MA.t xt/author/locale-zgh.t xt/author/locale-zh-Hans-CN.t xt/author/locale-zh-Hans-HK.t xt/author/locale-zh-Hans-MO.t xt/author/locale-zh-Hans-SG.t xt/author/locale-zh-Hans.t xt/author/locale-zh-Hant-HK.t xt/author/locale-zh-Hant-MO.t xt/author/locale-zh-Hant-TW.t xt/author/locale-zh-Hant.t xt/author/locale-zu-ZA.t xt/author/locale-zu.t xt/author/mojibake.t xt/author/no-tabs.t xt/author/pod-coverage.t xt/author/pod-spell.t xt/author/pod-syntax.t xt/author/portability.t xt/author/test-all-my-deps.t xt/author/test-version.t xt/author/tidyall.t xt/release/meta-json.t DateTime-Format-Strptime-1.75/CONTRIBUTING.md0000644000175000017500000001016613217762750020304 0ustar autarchautarch# CONTRIBUTING Thank you for considering contributing to this distribution. This file contains instructions that will help you work with the source code. Please note that if you have any questions or difficulties, you can reach the maintainer(s) through the bug queue described later in this document (preferred), or by emailing the releaser directly. You are not required to follow any of the steps in this document to submit a patch or bug report; these are just recommendations, intended to help you (and help us help you faster). The distribution is managed with [Dist::Zilla](https://metacpan.org/release/Dist-Zilla). However, you can still compile and test the code with the `Makefile.PL` or `Build.PL` in the repository: perl Makefile.PL make make test or perl Build.PL ./Build ./Build test As well as: $ prove -bvr t or $ perl -Mblib t/some_test_file.t You may need to satisfy some dependencies. The easiest way to satisfy dependencies is to install the last release. This is available at https://metacpan.org/release/DateTime-Format-Strptime If you use cpanminus, you can do it without downloading the tarball first: $ cpanm --reinstall --installdeps --with-recommends DateTime::Format::Strptime Dist::Zilla is a very powerful authoring tool, but requires a number of author-specific plugins. If you would like to use it for contributing, install it from CPAN, then run one of the following commands, depending on your CPAN client: $ cpan `dzil authordeps --missing` or $ dzil authordeps --missing | cpanm They may also be additional requirements not needed by the dzil build which are needed for tests or other development: $ cpan `dzil listdeps --author --missing` or $ dzil listdeps --author --missing | cpanm Or, you can use the 'dzil stale' command to install all requirements at once: $ cpan Dist::Zilla::App::Command::stale $ cpan `dzil stale --all` or $ cpanm Dist::Zilla::App::Command::stale $ dzil stale --all | cpanm You can also do this via cpanm directly: $ cpanm --reinstall --installdeps --with-develop --with-recommends DateTime::Format::Strptime Once installed, here are some dzil commands you might try: $ dzil build $ dzil test $ dzil test --release $ dzil xtest $ dzil listdeps --json $ dzil build --notgz You can learn more about Dist::Zilla at http://dzil.org/. The code for this distribution is [hosted at GitHub](https://github.com/houseabsolute/DateTime-Format-Strptime). You can submit code changes by forking the repository, pushing your code changes to your clone, and then submitting a pull request. Detailed instructions for doing that is available here: https://help.github.com/articles/creating-a-pull-request If you have found a bug, but do not have an accompanying patch to fix it, you can submit an issue report [via the web](https://github.com/houseabsolute/DateTime-Format-Strptime/issues) ). There is a mailing list available for users of this distribution, datetime@perl.org ## Travis All pull requests for this distribution will be automatically tested by [Travis](https://travis-ci.org/) and the build status will be reported on the pull request page. If your build fails, please take a look at the output. ## TidyAll This distribution uses [Code::TidyAll](https://metacpan.org/release/Code-TidyAll) to enforce a uniform coding style. This is tested as part of the author testing suite. You can install and run tidyall by running the following commands: $ cpanm Code::TidyAll $ tidyall -a Please run this before committing your changes and address any issues it brings up. ## Contributor Names If you send a patch or pull request, your name and email address will be included in the documentation as a contributor (using the attribution on the commit or patch), unless you specifically request for it not to be. If you wish to be listed under a different name or address, you should submit a pull request to the .mailmap file to contain the correct mapping. This file was generated via Dist::Zilla::Plugin::GenerateFile::FromShareDir 0.013 from a template file originating in Dist-Zilla-PluginBundle-DROLSKY-0.88. DateTime-Format-Strptime-1.75/cpanfile0000644000175000017500000000435513217762750017562 0ustar autarchautarchrequires "Carp" => "0"; requires "DateTime" => "1.00"; requires "DateTime::Locale" => "1.05"; requires "DateTime::Locale::Base" => "0"; requires "DateTime::Locale::FromData" => "0"; requires "DateTime::TimeZone" => "2.09"; requires "Exporter" => "0"; requires "Package::DeprecationManager" => "0.15"; requires "Params::ValidationCompiler" => "0"; requires "Specio" => "0.33"; requires "Specio::Declare" => "0"; requires "Specio::Exporter" => "0"; requires "Specio::Library::Builtins" => "0"; requires "Specio::Library::String" => "0"; requires "Try::Tiny" => "0"; requires "constant" => "0"; requires "parent" => "0"; requires "strict" => "0"; requires "warnings" => "0"; on 'test' => sub { requires "ExtUtils::MakeMaker" => "0"; requires "File::Spec" => "0"; requires "Test::Builder" => "0"; requires "Test::Fatal" => "0"; requires "Test::More" => "0.96"; requires "Test::Warnings" => "0"; requires "lib" => "0"; requires "utf8" => "0"; }; on 'test' => sub { recommends "CPAN::Meta" => "2.120900"; }; on 'configure' => sub { requires "ExtUtils::MakeMaker" => "0"; }; on 'configure' => sub { suggests "JSON::PP" => "2.27300"; }; on 'develop' => sub { requires "Code::TidyAll" => "0.56"; requires "Code::TidyAll::Plugin::SortLines::Naturally" => "0.000003"; requires "Code::TidyAll::Plugin::Test::Vars" => "0.02"; requires "Cwd" => "0"; requires "DateTime::Locale" => "1.03"; requires "File::Spec" => "0"; requires "IO::Handle" => "0"; requires "IPC::Open3" => "0"; requires "Parallel::ForkManager" => "1.19"; requires "Perl::Critic" => "1.126"; requires "Perl::Tidy" => "20160302"; requires "Pod::Coverage::TrustPod" => "0"; requires "Pod::Wordlist" => "0"; requires "Test::CPAN::Meta::JSON" => "0.16"; requires "Test::Code::TidyAll" => "0.50"; requires "Test::DependentModules" => "0"; requires "Test::EOL" => "0"; requires "Test::Fatal" => "0"; requires "Test::Mojibake" => "0"; requires "Test::More" => "0.96"; requires "Test::NoTabs" => "0"; requires "Test::Pod" => "1.41"; requires "Test::Pod::Coverage" => "1.08"; requires "Test::Portability::Files" => "0"; requires "Test::Spelling" => "0.12"; requires "Test::Vars" => "0.009"; requires "Test::Version" => "2.05"; requires "perl" => "5.006"; }; DateTime-Format-Strptime-1.75/bench0000644000175000017500000002241513217762750017055 0ustar autarchautarchpackage main; use strict; use warnings; use utf8; use Benchmark qw( timethese ); use DateTime::Format::Strptime; use Try::Tiny; use Test::More; use Test::Fatal; timethese( 100, { test => \&test } ); sub test { for my $test ( _tests_from_data() ) { subtest( qq{$test->{name}}, sub { _utf8_output(); my $parser; is( exception { $parser = DateTime::Format::Strptime->new( pattern => $test->{pattern}, ( $test->{locale} ? ( locale => $test->{locale} ) : () ), on_error => 'croak', ); }, undef, "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; is( exception { $dt = $parser->parse_datetime( $real_input ) }, undef, "no exception parsing $test->{input}" ) or return; _test_dt_methods( $dt, $test->{expect} ); unless ( $test->{skip_round_trip} ) { is( $parser->format_datetime($dt), $real_input, 'round trip via strftime produces original input' ); } } ); } subtest( 'parsing whitespace', sub { my $parser = DateTime::Format::Strptime->new( pattern => '%n%Y%t%m%n', on_error => 'croak', ); my $dt = $parser->parse_datetime(<<"EOF"); \t 2015 12 EOF my %expect = ( year => 2015, month => 12, ); _test_dt_methods( $dt, \%expect ); } ); subtest( 'parser time zone is set on returned object', sub { my $parser = DateTime::Format::Strptime->new( pattern => '%Y %H:%M:%S %Z', time_zone => 'America/New_York', on_error => 'croak', ); my $dt = $parser->parse_datetime('2003 23:45:56 MDT'); my %expect = ( year => 2003, hour => 0, minute => 45, second => 56, time_zone_long_name => 'America/New_York', ); _test_dt_methods( $dt, \%expect ); } ); } my $d; sub _tests_from_data { my @tests; $d ||= do { local $/; }; my $test_re = qr/ \[(.+?)\]\n # test name (.+?)\n # pattern (.+?)\n # input (?:locale\ =\ (.+?)\n)? # optional locale (skip\ round\ trip\n)? # skip a round trip? (.+?)\n # k-v pairs for expected values (?:\n|\z) # end of test /xs; while ( $d =~ /$test_re/g ) { push @tests, { name => $1, pattern => $2, input => $3, locale => $4, skip_round_trip => $5, expect => { map { split /\s+=>\s+/ } split /\n/, $6, }, }; } return @tests; } sub _utf8_output { binmode $_, ':encoding(UTF-8)' for map { Test::Builder->new->$_ } qw( output failure_output todo_output ); } sub _test_dt_methods { my $dt = shift; my $expect = shift; for my $meth ( sort keys %{$expect} ) { is( $dt->$meth, $expect->{$meth}, "$meth is $expect->{$meth}" ); } } __DATA__ [ISO8601] %Y-%m-%dT%H:%M:%S 2015-10-08T15:39:44 year => 2015 month => 10 day => 8 hour => 15 minute => 39 second => 44 [date with 4-digit year] %Y-%m-%d 1998-12-31 year => 1998 month => 12 day => 31 [date with 2-digit year] %y-%m-%d 98-12-31 year => 1998 month => 12 day => 31 [date with leading space on month] %e-%b-%Y 3-Jun-2010 year => 2010 month => 6 day => 3 [year and day of year] %Y years %j days 1998 years 312 days year => 1998 month => 11 day => 8 [date with abbreviated month] %b %d %Y Jan 24 2003 year => 2003 month => 1 day => 24 [date with abbreviated month is case-insensitive] %b %d %Y jAN 24 2003 skip round trip year => 2003 month => 1 day => 24 [date with full month] %B %d %Y January 24 2003 year => 2003 month => 1 day => 24 [date with full month is case-insensitive] %B %d %Y jAnUAry 24 2003 skip round trip year => 2003 month => 1 day => 24 [24 hour time] %H:%M:%S 23:45:56 year => 1 month => 1 day => 1 hour => 23 minute => 45 second => 56 [12 hour time (PM)] %l:%M:%S %p 11:45:56 PM year => 1 month => 1 day => 1 hour => 23 minute => 45 second => 56 [12 hour time (am) and am/pm is case-insensitive] %l:%M:%S %p 11:45:56 am skip round trip year => 1 month => 1 day => 1 hour => 11 minute => 45 second => 56 [24-hour time] %T 23:34:45 hour => 23 minute => 34 second => 45 [12-hour time] %r 11:34:45 PM hour => 23 minute => 34 second => 45 [24-hour time without second] %R 23:34 hour => 23 minute => 34 second => 0 [US style date] %D 11/30/03 year => 2003 month => 11 day => 30 [ISO style date] %F 2003-11-30 year => 2003 month => 11 day => 30 [nanosecond with no length] %H:%M:%S.%N 23:45:56.123456789 hour => 23 minute => 45 second => 56 nanosecond => 123456789 [nanosecond with length of 6] %H:%M:%S.%6N 23:45:56.123456 hour => 23 minute => 45 second => 56 nanosecond => 123456000 [nanosecond with length of 3] %H:%M:%S.%3N 23:45:56.123 hour => 23 minute => 45 second => 56 nanosecond => 123000000 [nanosecond with no length but < 9 digits] %H:%M:%S.%N 23:45:56.543 skip round trip hour => 23 minute => 45 second => 56 nanosecond => 543000000 [time zone as numeric offset] %H:%M:%S %z 23:45:56 +1000 hour => 23 minute => 45 second => 56 offset => 36000 [time zone as abbreviation] %H:%M:%S %Z 23:45:56 AEST skip round trip hour => 23 minute => 45 second => 56 offset => 36000 [time zone as Olson name] %H:%M:%S %O 23:45:56 America/Chicago hour => 23 minute => 45 second => 56 time_zone_long_name => America/Chicago [escaped percent] %Y%%%m%%%d 2015%05%14 year => 2015 month => 5 day => 14 [escaped percent followed by letter token] %Y%%%m%%%d%%H 2015%05%14%H year => 2015 month => 5 day => 14 [every pattern] %a %b %B %C %d %e %h %H %I %j %k %l %m %M %n %N %O %p %P %S %U %u %w %W %y %Y %s %G %g %z %Z %%Y %% Wed Nov November 20 05 5 Nov 21 09 309 21 9 11 34 \n 123456789 America/Denver PM pm 45 44 3 3 44 03 2003 1068093285 2003 03 -0700 MST %Y % year => 2003 month => 11 day => 5 hour => 21 minute => 34 second => 45 nanosecond => 123456789 time_zone_long_name => America/Denver [Australian date] %x 31/12/98 locale = en-AU skip round trip year => 1998 month => 12 day => 31 [Australian time] %X 13:34:56 locale = en-AU skip round trip hour => 13 minute => 34 second => 56 [Australian date/time] %c AU_THU 31 AU_DEC 1998 13:34:56 AEDT locale = en-AU skip round trip year => 1998 month => 12 day => 31 hour => 13 minute => 34 second => 56 offset => 39600 [US date] %x 12/31/1998 locale = en-US skip round trip year => 1998 month => 12 day => 31 [US time] %X 01:34:56 PM locale = en-US skip round trip hour => 13 minute => 34 second => 56 [US date/time] %c Thu 31 Dec 1998 01:34:56 PM MST locale = en-US skip round trip year => 1998 month => 12 day => 31 hour => 13 minute => 34 second => 56 offset => -25200 [UK date] %x 31/12/98 locale = en-GB skip round trip year => 1998 month => 12 day => 31 [UK time] %X 13:34:56 locale = en-GB skip round trip hour => 13 minute => 34 second => 56 [UK date/time] %c Thu 31 Dec 1998 13:34:56 GMT locale = en-GB skip round trip year => 1998 month => 12 day => 31 hour => 13 minute => 34 second => 56 offset => 0 [French (France) date] %x 31/12/1998 locale = fr-FR skip round trip year => 1998 month => 12 day => 31 [French (France) time] %X 13:34:56 locale = fr-FR skip round trip hour => 13 minute => 34 second => 56 [French (France) date/time] %c jeu. 31 Déc. 1998 13:34:56 CEST locale = fr-FR skip round trip year => 1998 month => 12 day => 31 hour => 13 minute => 34 second => 56 offset => 7200 [French (Generic) date] %x 12/31/98 locale = fr skip round trip year => 1998 month => 12 day => 31 [French (Generic) time] %X 13:34:56 locale = fr skip round trip hour => 13 minute => 34 second => 56 [French (Generic) date/time] %c jeu. Déc. 31 13:34:56 1998 locale = fr skip round trip year => 1998 month => 12 day => 31 hour => 13 minute => 34 second => 56 [epoch without time zone] %s 42 epoch => 42 time_zone_long_name => floating [epoch with time zone] %s %Z 42 UTC epoch => 42 offset => 0 [epoch with nanosecond] %s %N 42 000000034 epoch => 42 nanosecond => 34 DateTime-Format-Strptime-1.75/LICENSE0000644000175000017500000002152713217762750017063 0ustar autarchautarchThis software is Copyright (c) 2015 - 2017 by Dave Rolsky. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible) The Artistic License 2.0 Copyright (c) 2000-2006, The Perl Foundation. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble This license establishes the terms under which a given free software Package may be copied, modified, distributed, and/or redistributed. The intent is that the Copyright Holder maintains some artistic control over the development of that Package while still keeping the Package available as open source and free software. You are always permitted to make arrangements wholly outside of this license directly with the Copyright Holder of a given Package. If the terms of this license do not permit the full use that you propose to make of the Package, you should contact the Copyright Holder and seek a different licensing arrangement. Definitions "Copyright Holder" means the individual(s) or organization(s) named in the copyright notice for the entire Package. "Contributor" means any party that has contributed code or other material to the Package, in accordance with the Copyright Holder's procedures. "You" and "your" means any person who would like to copy, distribute, or modify the Package. "Package" means the collection of files distributed by the Copyright Holder, and derivatives of that collection and/or of those files. A given Package may consist of either the Standard Version, or a Modified Version. "Distribute" means providing a copy of the Package or making it accessible to anyone else, or in the case of a company or organization, to others outside of your company or organization. "Distributor Fee" means any fee that you charge for Distributing this Package or providing support for this Package to another party. It does not mean licensing fees. "Standard Version" refers to the Package if it has not been modified, or has been modified only in ways explicitly requested by the Copyright Holder. "Modified Version" means the Package, if it has been changed, and such changes were not explicitly requested by the Copyright Holder. "Original License" means this Artistic License as Distributed with the Standard Version of the Package, in its current version or as it may be modified by The Perl Foundation in the future. "Source" form means the source code, documentation source, and configuration files for the Package. "Compiled" form means the compiled bytecode, object code, binary, or any other form resulting from mechanical transformation or translation of the Source form. Permission for Use and Modification Without Distribution (1) You are permitted to use the Standard Version and create and use Modified Versions for any purpose without restriction, provided that you do not Distribute the Modified Version. Permissions for Redistribution of the Standard Version (2) You may Distribute verbatim copies of the Source form of the Standard Version of this Package in any medium without restriction, either gratis or for a Distributor Fee, provided that you duplicate all of the original copyright notices and associated disclaimers. At your discretion, such verbatim copies may or may not include a Compiled form of the Package. (3) You may apply any bug fixes, portability changes, and other modifications made available from the Copyright Holder. The resulting Package will still be considered the Standard Version, and as such will be subject to the Original License. Distribution of Modified Versions of the Package as Source (4) You may Distribute your Modified Version as Source (either gratis or for a Distributor Fee, and with or without a Compiled form of the Modified Version) provided that you clearly document how it differs from the Standard Version, including, but not limited to, documenting any non-standard features, executables, or modules, and provided that you do at least ONE of the following: (a) make the Modified Version available to the Copyright Holder of the Standard Version, under the Original License, so that the Copyright Holder may include your modifications in the Standard Version. (b) ensure that installation of your Modified Version does not prevent the user installing or running the Standard Version. In addition, the Modified Version must bear a name that is different from the name of the Standard Version. (c) allow anyone who receives a copy of the Modified Version to make the Source form of the Modified Version available to others under (i) the Original License or (ii) a license that permits the licensee to freely copy, modify and redistribute the Modified Version using the same licensing terms that apply to the copy that the licensee received, and requires that the Source form of the Modified Version, and of any works derived from it, be made freely available in that license fees are prohibited but Distributor Fees are allowed. Distribution of Compiled Forms of the Standard Version or Modified Versions without the Source (5) You may Distribute Compiled forms of the Standard Version without the Source, provided that you include complete instructions on how to get the Source of the Standard Version. Such instructions must be valid at the time of your distribution. If these instructions, at any time while you are carrying out such distribution, become invalid, you must provide new instructions on demand or cease further distribution. If you provide valid instructions or cease distribution within thirty days after you become aware that the instructions are invalid, then you do not forfeit any of your rights under this license. (6) You may Distribute a Modified Version in Compiled form without the Source, provided that you comply with Section 4 with respect to the Source of the Modified Version. Aggregating or Linking the Package (7) You may aggregate the Package (either the Standard Version or Modified Version) with other packages and Distribute the resulting aggregation provided that you do not charge a licensing fee for the Package. Distributor Fees are permitted, and licensing fees for other components in the aggregation are permitted. The terms of this license apply to the use and Distribution of the Standard or Modified Versions as included in the aggregation. (8) You are permitted to link Modified and Standard Versions with other works, to embed the Package in a larger work of your own, or to build stand-alone binary or bytecode versions of applications that include the Package, and Distribute the result without restriction, provided the result does not expose a direct interface to the Package. Items That are Not Considered Part of a Modified Version (9) Works (including, but not limited to, modules and scripts) that merely extend or make use of the Package, do not, by themselves, cause the Package to be a Modified Version. In addition, such works are not considered parts of the Package itself, and are not subject to the terms of this license. General Provisions (10) Any use, modification, and distribution of the Standard or Modified Versions is governed by this Artistic License. By using, modifying or distributing the Package, you accept this license. Do not use, modify, or distribute the Package, if you do not accept this license. (11) If your Modified Version has been derived from a Modified Version made by someone other than you, you are nevertheless required to ensure that your Modified Version complies with the requirements of this license. (12) This license does not grant you the right to use any trademark, service mark, tradename, or logo of the Copyright Holder. (13) This license includes the non-exclusive, worldwide, free-of-charge patent license to make, have made, use, offer to sell, sell, import and otherwise transfer the Package with respect to any patent claims licensable by the Copyright Holder that are necessarily infringed by the Package. If you institute patent litigation (including a cross-claim or counterclaim) against any party alleging that the Package constitutes direct or contributory patent infringement, then this Artistic License to you shall terminate on the date that such litigation is filed. (14) Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. DateTime-Format-Strptime-1.75/META.json0000644000175000017500000010620013217762750017467 0ustar autarchautarch{ "abstract" : "Parse and format strp and strf time patterns", "author" : [ "Dave Rolsky ", "Rick Measham " ], "dynamic_config" : 0, "generated_by" : "Dist::Zilla version 6.010, CPAN::Meta::Converter version 2.150010", "license" : [ "artistic_2" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : 2 }, "name" : "DateTime-Format-Strptime", "prereqs" : { "configure" : { "requires" : { "ExtUtils::MakeMaker" : "0" }, "suggests" : { "JSON::PP" : "2.27300" } }, "develop" : { "requires" : { "Code::TidyAll" : "0.56", "Code::TidyAll::Plugin::SortLines::Naturally" : "0.000003", "Code::TidyAll::Plugin::Test::Vars" : "0.02", "Cwd" : "0", "DateTime::Locale" : "1.03", "File::Spec" : "0", "IO::Handle" : "0", "IPC::Open3" : "0", "Parallel::ForkManager" : "1.19", "Perl::Critic" : "1.126", "Perl::Tidy" : "20160302", "Pod::Coverage::TrustPod" : "0", "Pod::Wordlist" : "0", "Test::CPAN::Meta::JSON" : "0.16", "Test::Code::TidyAll" : "0.50", "Test::DependentModules" : "0", "Test::EOL" : "0", "Test::Fatal" : "0", "Test::Mojibake" : "0", "Test::More" : "0.96", "Test::NoTabs" : "0", "Test::Pod" : "1.41", "Test::Pod::Coverage" : "1.08", "Test::Portability::Files" : "0", "Test::Spelling" : "0.12", "Test::Vars" : "0.009", "Test::Version" : "2.05", "perl" : "5.006" } }, "runtime" : { "requires" : { "Carp" : "0", "DateTime" : "1.00", "DateTime::Locale" : "1.05", "DateTime::Locale::Base" : "0", "DateTime::Locale::FromData" : "0", "DateTime::TimeZone" : "2.09", "Exporter" : "0", "Package::DeprecationManager" : "0.15", "Params::ValidationCompiler" : "0", "Specio" : "0.33", "Specio::Declare" : "0", "Specio::Exporter" : "0", "Specio::Library::Builtins" : "0", "Specio::Library::String" : "0", "Try::Tiny" : "0", "constant" : "0", "parent" : "0", "strict" : "0", "warnings" : "0" } }, "test" : { "recommends" : { "CPAN::Meta" : "2.120900" }, "requires" : { "ExtUtils::MakeMaker" : "0", "File::Spec" : "0", "Test::Builder" : "0", "Test::Fatal" : "0", "Test::More" : "0.96", "Test::Warnings" : "0", "lib" : "0", "utf8" : "0" } } }, "provides" : { "DateTime::Format::Strptime" : { "file" : "lib/DateTime/Format/Strptime.pm", "version" : "1.75" }, "DateTime::Format::Strptime::Types" : { "file" : "lib/DateTime/Format/Strptime/Types.pm", "version" : "1.75" } }, "release_status" : "stable", "resources" : { "bugtracker" : { "web" : "https://github.com/houseabsolute/DateTime-Format-Strptime/issues" }, "homepage" : "http://metacpan.org/release/DateTime-Format-Strptime", "repository" : { "type" : "git", "url" : "git://github.com/houseabsolute/DateTime-Format-Strptime.git", "web" : "https://github.com/houseabsolute/DateTime-Format-Strptime" }, "x_MailingList" : "datetime@perl.org" }, "version" : "1.75", "x_Dist_Zilla" : { "perl" : { "version" : "5.026001" }, "plugins" : [ { "class" : "Dist::Zilla::Plugin::MakeMaker", "config" : { "Dist::Zilla::Role::TestRunner" : { "default_jobs" : 1 } }, "name" : "@DROLSKY/MakeMaker", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::Git::GatherDir", "config" : { "Dist::Zilla::Plugin::GatherDir" : { "exclude_filename" : [ "CONTRIBUTING.md", "LICENSE", "Makefile.PL", "README.md", "cpanfile" ], "exclude_match" : [], "follow_symlinks" : 0, "include_dotfiles" : 0, "prefix" : "", "prune_directory" : [], "root" : "." }, "Dist::Zilla::Plugin::Git::GatherDir" : { "include_untracked" : 0 } }, "name" : "@DROLSKY/Git::GatherDir", "version" : "2.043" }, { "class" : "Dist::Zilla::Plugin::ManifestSkip", "name" : "@DROLSKY/ManifestSkip", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::License", "name" : "@DROLSKY/License", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::ExecDir", "name" : "@DROLSKY/ExecDir", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::ShareDir", "name" : "@DROLSKY/ShareDir", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::Manifest", "name" : "@DROLSKY/Manifest", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::CheckVersionIncrement", "name" : "@DROLSKY/CheckVersionIncrement", "version" : "0.121750" }, { "class" : "Dist::Zilla::Plugin::TestRelease", "name" : "@DROLSKY/TestRelease", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::ConfirmRelease", "name" : "@DROLSKY/ConfirmRelease", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::UploadToCPAN", "name" : "@DROLSKY/UploadToCPAN", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::VersionFromMainModule", "name" : "@DROLSKY/VersionFromMainModule", "version" : "0.03" }, { "class" : "Dist::Zilla::Plugin::Authority", "name" : "@DROLSKY/Authority", "version" : "1.009" }, { "class" : "Dist::Zilla::Plugin::AutoPrereqs", "name" : "@DROLSKY/AutoPrereqs", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::CopyFilesFromBuild", "name" : "@DROLSKY/CopyFilesFromBuild", "version" : "0.170880" }, { "class" : "Dist::Zilla::Plugin::GitHub::Meta", "name" : "@DROLSKY/GitHub::Meta", "version" : "0.44" }, { "class" : "Dist::Zilla::Plugin::GitHub::Update", "config" : { "Dist::Zilla::Plugin::GitHub::Update" : { "metacpan" : 1 } }, "name" : "@DROLSKY/GitHub::Update", "version" : "0.44" }, { "class" : "Dist::Zilla::Plugin::MetaResources", "name" : "@DROLSKY/MetaResources", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::MetaProvides::Package", "config" : { "Dist::Zilla::Plugin::MetaProvides::Package" : { "finder_objects" : [ { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : "@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM", "version" : "6.010" } ], "include_underscores" : 0 }, "Dist::Zilla::Role::MetaProvider::Provider" : { "$Dist::Zilla::Role::MetaProvider::Provider::VERSION" : "2.002004", "inherit_missing" : 1, "inherit_version" : 1, "meta_noindex" : 1 }, "Dist::Zilla::Role::ModuleMetadata" : { "Module::Metadata" : "1.000033", "version" : "0.004" } }, "name" : "@DROLSKY/MetaProvides::Package", "version" : "2.004003" }, { "class" : "Dist::Zilla::Plugin::Meta::Contributors", "name" : "@DROLSKY/Meta::Contributors", "version" : "0.003" }, { "class" : "Dist::Zilla::Plugin::MetaConfig", "name" : "@DROLSKY/MetaConfig", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::MetaJSON", "name" : "@DROLSKY/MetaJSON", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::MetaYAML", "name" : "@DROLSKY/MetaYAML", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::NextRelease", "name" : "@DROLSKY/NextRelease", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::Prereqs", "config" : { "Dist::Zilla::Plugin::Prereqs" : { "phase" : "test", "type" : "requires" } }, "name" : "@DROLSKY/Test::More with subtest", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::Prereqs", "config" : { "Dist::Zilla::Plugin::Prereqs" : { "phase" : "develop", "type" : "requires" } }, "name" : "@DROLSKY/Modules for use with tidyall", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::Prereqs", "config" : { "Dist::Zilla::Plugin::Prereqs" : { "phase" : "develop", "type" : "requires" } }, "name" : "@DROLSKY/Test::Version which fixes https://github.com/plicease/Test-Version/issues/7", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::PromptIfStale", "config" : { "Dist::Zilla::Plugin::PromptIfStale" : { "check_all_plugins" : 0, "check_all_prereqs" : 0, "modules" : [ "Dist::Zilla::PluginBundle::DROLSKY" ], "phase" : "build", "run_under_travis" : 0, "skip" : [] } }, "name" : "@DROLSKY/Dist::Zilla::PluginBundle::DROLSKY", "version" : "0.054" }, { "class" : "Dist::Zilla::Plugin::PromptIfStale", "config" : { "Dist::Zilla::Plugin::PromptIfStale" : { "check_all_plugins" : 1, "check_all_prereqs" : 1, "modules" : [], "phase" : "release", "run_under_travis" : 0, "skip" : [ "Dist::Zilla::Plugin::DROLSKY::Contributors", "Dist::Zilla::Plugin::DROLSKY::Git::CheckFor::CorrectBranch", "Dist::Zilla::Plugin::DROLSKY::License", "Dist::Zilla::Plugin::DROLSKY::TidyAll", "Dist::Zilla::Plugin::DROLSKY::WeaverConfig", "Pod::Weaver::PluginBundle::DROLSKY" ] } }, "name" : "@DROLSKY/PromptIfStale", "version" : "0.054" }, { "class" : "Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable", "name" : "@DROLSKY/Test::Pod::Coverage::Configurable", "version" : "0.06" }, { "class" : "Dist::Zilla::Plugin::Test::PodSpelling", "config" : { "Dist::Zilla::Plugin::Test::PodSpelling" : { "directories" : [ "bin", "lib" ], "spell_cmd" : "", "stopwords" : [ "DROLSKY", "DROLSKY's", "Measham", "POSIX", "PayPal", "Rolsky", "Rolsky", "Rolsky's", "STRPTIME", "drolsky", "errmsg", "formatter", "strf", "strp", "strptime" ], "wordlist" : "Pod::Wordlist" } }, "name" : "@DROLSKY/Test::PodSpelling", "version" : "2.007005" }, { "class" : "Dist::Zilla::Plugin::PodSyntaxTests", "name" : "@DROLSKY/PodSyntaxTests", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::RunExtraTests", "config" : { "Dist::Zilla::Role::TestRunner" : { "default_jobs" : 1 } }, "name" : "@DROLSKY/RunExtraTests", "version" : "0.029" }, { "class" : "Dist::Zilla::Plugin::MojibakeTests", "name" : "@DROLSKY/MojibakeTests", "version" : "0.8" }, { "class" : "Dist::Zilla::Plugin::Test::CPAN::Meta::JSON", "name" : "@DROLSKY/Test::CPAN::Meta::JSON", "version" : "0.004" }, { "class" : "Dist::Zilla::Plugin::Test::EOL", "config" : { "Dist::Zilla::Plugin::Test::EOL" : { "filename" : "xt/author/eol.t", "finder" : [ ":ExecFiles", ":InstallModules", ":TestFiles" ], "trailing_whitespace" : 1 } }, "name" : "@DROLSKY/Test::EOL", "version" : "0.19" }, { "class" : "Dist::Zilla::Plugin::Test::NoTabs", "config" : { "Dist::Zilla::Plugin::Test::NoTabs" : { "filename" : "xt/author/no-tabs.t", "finder" : [ ":InstallModules", ":ExecFiles", ":TestFiles" ] } }, "name" : "@DROLSKY/Test::NoTabs", "version" : "0.15" }, { "class" : "Dist::Zilla::Plugin::Test::Portability", "config" : { "Dist::Zilla::Plugin::Test::Portability" : { "options" : "" } }, "name" : "@DROLSKY/Test::Portability", "version" : "2.001000" }, { "class" : "Dist::Zilla::Plugin::Test::TidyAll", "name" : "@DROLSKY/Test::TidyAll", "version" : "0.04" }, { "class" : "Dist::Zilla::Plugin::Test::Compile", "config" : { "Dist::Zilla::Plugin::Test::Compile" : { "bail_out_on_fail" : 0, "fail_on_warning" : "author", "fake_home" : 0, "filename" : "xt/author/00-compile.t", "module_finder" : [ ":InstallModules" ], "needs_display" : 0, "phase" : "develop", "script_finder" : [ ":PerlExecFiles" ], "skips" : [], "switch" : [] } }, "name" : "@DROLSKY/Test::Compile", "version" : "2.058" }, { "class" : "Dist::Zilla::Plugin::Test::ReportPrereqs", "name" : "@DROLSKY/Test::ReportPrereqs", "version" : "0.027" }, { "class" : "Dist::Zilla::Plugin::Test::Version", "name" : "@DROLSKY/Test::Version", "version" : "1.09" }, { "class" : "Dist::Zilla::Plugin::DROLSKY::Contributors", "name" : "@DROLSKY/DROLSKY::Contributors", "version" : "0.88" }, { "class" : "Dist::Zilla::Plugin::Git::Contributors", "config" : { "Dist::Zilla::Plugin::Git::Contributors" : { "git_version" : "2.15.1", "include_authors" : 0, "include_releaser" : 1, "order_by" : "name", "paths" : [] } }, "name" : "@DROLSKY/Git::Contributors", "version" : "0.032" }, { "class" : "Dist::Zilla::Plugin::SurgicalPodWeaver", "config" : { "Dist::Zilla::Plugin::PodWeaver" : { "config_plugins" : [ "@DROLSKY" ], "finder" : [ ":InstallModules", ":ExecFiles" ], "plugins" : [ { "class" : "Pod::Weaver::Plugin::EnsurePod5", "name" : "@CorePrep/EnsurePod5", "version" : "4.015" }, { "class" : "Pod::Weaver::Plugin::H1Nester", "name" : "@CorePrep/H1Nester", "version" : "4.015" }, { "class" : "Pod::Weaver::Plugin::SingleEncoding", "name" : "@DROLSKY/SingleEncoding", "version" : "4.015" }, { "class" : "Pod::Weaver::Plugin::Transformer", "name" : "@DROLSKY/List", "version" : "4.015" }, { "class" : "Pod::Weaver::Plugin::Transformer", "name" : "@DROLSKY/Verbatim", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Region", "name" : "@DROLSKY/header", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Name", "name" : "@DROLSKY/Name", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Version", "name" : "@DROLSKY/Version", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Region", "name" : "@DROLSKY/prelude", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Generic", "name" : "SYNOPSIS", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Generic", "name" : "DESCRIPTION", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Generic", "name" : "OVERVIEW", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Collect", "name" : "ATTRIBUTES", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Collect", "name" : "METHODS", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Collect", "name" : "FUNCTIONS", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Collect", "name" : "TYPES", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Leftovers", "name" : "@DROLSKY/Leftovers", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Region", "name" : "@DROLSKY/postlude", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::GenerateSection", "name" : "@DROLSKY/generate SUPPORT", "version" : "1.06" }, { "class" : "Pod::Weaver::Section::AllowOverride", "name" : "@DROLSKY/allow override SUPPORT", "version" : "0.05" }, { "class" : "Pod::Weaver::Section::GenerateSection", "name" : "@DROLSKY/generate SOURCE", "version" : "1.06" }, { "class" : "Pod::Weaver::Section::GenerateSection", "name" : "@DROLSKY/generate DONATIONS", "version" : "1.06" }, { "class" : "Pod::Weaver::Section::Authors", "name" : "@DROLSKY/Authors", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Contributors", "name" : "@DROLSKY/Contributors", "version" : "0.009" }, { "class" : "Pod::Weaver::Section::Legal", "name" : "@DROLSKY/Legal", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Region", "name" : "@DROLSKY/footer", "version" : "4.015" } ] } }, "name" : "@DROLSKY/SurgicalPodWeaver", "version" : "0.0023" }, { "class" : "Dist::Zilla::Plugin::DROLSKY::WeaverConfig", "name" : "@DROLSKY/DROLSKY::WeaverConfig", "version" : "0.88" }, { "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod", "config" : { "Dist::Zilla::Role::FileWatcher" : { "version" : "0.006" } }, "name" : "@DROLSKY/README.md in build", "version" : "0.163250" }, { "class" : "Dist::Zilla::Plugin::GenerateFile::FromShareDir", "config" : { "Dist::Zilla::Plugin::GenerateFile::FromShareDir" : { "destination_filename" : "CONTRIBUTING.md", "dist" : "Dist-Zilla-PluginBundle-DROLSKY", "encoding" : "UTF-8", "has_xs" : 0, "location" : "build", "source_filename" : "CONTRIBUTING.md" }, "Dist::Zilla::Role::RepoFileInjector" : { "allow_overwrite" : 1, "repo_root" : ".", "version" : "0.007" } }, "name" : "@DROLSKY/Generate CONTRIBUTING.md", "version" : "0.013" }, { "class" : "Dist::Zilla::Plugin::InstallGuide", "name" : "@DROLSKY/InstallGuide", "version" : "1.200007" }, { "class" : "Dist::Zilla::Plugin::CPANFile", "name" : "@DROLSKY/CPANFile", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::DROLSKY::License", "name" : "@DROLSKY/DROLSKY::License", "version" : "0.88" }, { "class" : "Dist::Zilla::Plugin::CheckStrictVersion", "name" : "@DROLSKY/CheckStrictVersion", "version" : "0.001" }, { "class" : "Dist::Zilla::Plugin::CheckSelfDependency", "config" : { "Dist::Zilla::Plugin::CheckSelfDependency" : { "finder" : [ ":InstallModules" ] }, "Dist::Zilla::Role::ModuleMetadata" : { "Module::Metadata" : "1.000033", "version" : "0.004" } }, "name" : "@DROLSKY/CheckSelfDependency", "version" : "0.011" }, { "class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed", "name" : "@DROLSKY/CheckPrereqsIndexed", "version" : "0.020" }, { "class" : "Dist::Zilla::Plugin::DROLSKY::Git::CheckFor::CorrectBranch", "config" : { "Dist::Zilla::Role::Git::Repo" : { "git_version" : "2.15.1", "repo_root" : "." } }, "name" : "@DROLSKY/DROLSKY::Git::CheckFor::CorrectBranch", "version" : "0.88" }, { "class" : "Dist::Zilla::Plugin::EnsureChangesHasContent", "name" : "@DROLSKY/EnsureChangesHasContent", "version" : "0.02" }, { "class" : "Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts", "config" : { "Dist::Zilla::Role::Git::Repo" : { "git_version" : "2.15.1", "repo_root" : "." } }, "name" : "@DROLSKY/Git::CheckFor::MergeConflicts", "version" : "0.014" }, { "class" : "Dist::Zilla::Plugin::DROLSKY::TidyAll", "name" : "@DROLSKY/DROLSKY::TidyAll", "version" : "0.88" }, { "class" : "Dist::Zilla::Plugin::Git::Check", "config" : { "Dist::Zilla::Plugin::Git::Check" : { "untracked_files" : "die" }, "Dist::Zilla::Role::Git::DirtyFiles" : { "allow_dirty" : [ "CONTRIBUTING.md", "Changes", "LICENSE", "Makefile.PL", "README.md", "cpanfile", "tidyall.ini" ], "allow_dirty_match" : [], "changelog" : "Changes" }, "Dist::Zilla::Role::Git::Repo" : { "git_version" : "2.15.1", "repo_root" : "." } }, "name" : "@DROLSKY/Git::Check", "version" : "2.043" }, { "class" : "Dist::Zilla::Plugin::Git::Commit", "config" : { "Dist::Zilla::Plugin::Git::Commit" : { "add_files_in" : [], "commit_msg" : "v%v%n%n%c" }, "Dist::Zilla::Role::Git::DirtyFiles" : { "allow_dirty" : [ "CONTRIBUTING.md", "Changes", "LICENSE", "Makefile.PL", "README.md", "cpanfile", "tidyall.ini" ], "allow_dirty_match" : [], "changelog" : "Changes" }, "Dist::Zilla::Role::Git::Repo" : { "git_version" : "2.15.1", "repo_root" : "." }, "Dist::Zilla::Role::Git::StringFormatter" : { "time_zone" : "local" } }, "name" : "@DROLSKY/Commit generated files", "version" : "2.043" }, { "class" : "Dist::Zilla::Plugin::Git::Tag", "config" : { "Dist::Zilla::Plugin::Git::Tag" : { "branch" : null, "changelog" : "Changes", "signed" : 0, "tag" : "v1.75", "tag_format" : "v%v", "tag_message" : "v%v" }, "Dist::Zilla::Role::Git::Repo" : { "git_version" : "2.15.1", "repo_root" : "." }, "Dist::Zilla::Role::Git::StringFormatter" : { "time_zone" : "local" } }, "name" : "@DROLSKY/Git::Tag", "version" : "2.043" }, { "class" : "Dist::Zilla::Plugin::Git::Push", "config" : { "Dist::Zilla::Plugin::Git::Push" : { "push_to" : [ "origin" ], "remotes_must_exist" : 1 }, "Dist::Zilla::Role::Git::Repo" : { "git_version" : "2.15.1", "repo_root" : "." } }, "name" : "@DROLSKY/Git::Push", "version" : "2.043" }, { "class" : "Dist::Zilla::Plugin::BumpVersionAfterRelease", "config" : { "Dist::Zilla::Plugin::BumpVersionAfterRelease" : { "finders" : [ ":ExecFiles", ":InstallModules" ], "global" : 0, "munge_makefile_pl" : 1 } }, "name" : "@DROLSKY/BumpVersionAfterRelease", "version" : "0.016" }, { "class" : "Dist::Zilla::Plugin::Git::Commit", "config" : { "Dist::Zilla::Plugin::Git::Commit" : { "add_files_in" : [], "commit_msg" : "Bump version after release" }, "Dist::Zilla::Role::Git::DirtyFiles" : { "allow_dirty" : [ "Changes", "dist.ini" ], "allow_dirty_match" : [ "(?^:.+)" ], "changelog" : "Changes" }, "Dist::Zilla::Role::Git::Repo" : { "git_version" : "2.15.1", "repo_root" : "." }, "Dist::Zilla::Role::Git::StringFormatter" : { "time_zone" : "local" } }, "name" : "@DROLSKY/Commit version bump", "version" : "2.043" }, { "class" : "Dist::Zilla::Plugin::Git::Push", "config" : { "Dist::Zilla::Plugin::Git::Push" : { "push_to" : [ "origin" ], "remotes_must_exist" : 1 }, "Dist::Zilla::Role::Git::Repo" : { "git_version" : "2.15.1", "repo_root" : "." } }, "name" : "@DROLSKY/Push version bump", "version" : "2.043" }, { "class" : "Dist::Zilla::Plugin::MetaResources", "name" : "MetaResources", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::lib", "config" : { "Dist::Zilla::Plugin::lib" : { "lib" : [ "inc" ] } }, "name" : "lib", "version" : "0.001002" }, { "class" : "GenerateLocaleTests", "name" : "=GenerateLocaleTests", "version" : null }, { "class" : "Dist::Zilla::Plugin::Prereqs", "config" : { "Dist::Zilla::Plugin::Prereqs" : { "phase" : "develop", "type" : "requires" } }, "name" : "DevelopRequires", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":InstallModules", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":IncModules", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":TestFiles", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":ExtraTestFiles", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":ExecFiles", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":PerlExecFiles", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":ShareFiles", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":MainModule", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":AllFiles", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":NoFiles", "version" : "6.010" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : "@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM", "version" : "6.010" } ], "zilla" : { "class" : "Dist::Zilla::Dist::Builder", "config" : { "is_trial" : 0 }, "version" : "6.010" } }, "x_authority" : "cpan:DROLSKY", "x_contributors" : [ "Christian Hansen ", "D. Ilmari Manns\u00e5ker ", "key-amb ", "Mohammad S Anwar " ], "x_serialization_backend" : "Cpanel::JSON::XS version 3.0239" } DateTime-Format-Strptime-1.75/lib/0000775000175000017500000000000013217762750016617 5ustar autarchautarchDateTime-Format-Strptime-1.75/lib/DateTime/0000775000175000017500000000000013217762750020313 5ustar autarchautarchDateTime-Format-Strptime-1.75/lib/DateTime/Format/0000775000175000017500000000000013217762750021543 5ustar autarchautarchDateTime-Format-Strptime-1.75/lib/DateTime/Format/Strptime/0000775000175000017500000000000013217762750023352 5ustar autarchautarchDateTime-Format-Strptime-1.75/lib/DateTime/Format/Strptime/Types.pm0000644000175000017500000000407013217762750025013 0ustar autarchautarchpackage DateTime::Format::Strptime::Types; use strict; use warnings; our $VERSION = '1.75'; use parent 'Specio::Exporter'; use DateTime; use DateTime::Locale::Base; use DateTime::Locale::FromData; use DateTime::TimeZone; use Specio 0.33; use Specio::Declare; use Specio::Library::Builtins -reexport; use Specio::Library::String -reexport; union( 'Locale', of => [ object_isa_type('DateTime::Locale::Base'), object_isa_type('DateTime::Locale::FromData'), ], ); coerce( t('Locale'), from => t('NonEmptyStr'), inline => sub {"DateTime::Locale->load( $_[1] )"}, ); object_isa_type( 'TimeZone', class => 'DateTime::TimeZone' ); object_isa_type('DateTime'); coerce( t('TimeZone'), from => t('NonEmptyStr'), inline => sub {"DateTime::TimeZone->new( name => $_[1] )"}, ); union( 'OnError', of => [ enum( values => [ 'croak', 'undef' ] ), t('CodeRef'), ], ); 1; # ABSTRACT: Types used for parameter checking in DateTime::Format::Strptime __END__ =pod =encoding UTF-8 =head1 NAME DateTime::Format::Strptime::Types - Types used for parameter checking in DateTime::Format::Strptime =head1 VERSION version 1.75 =head1 DESCRIPTION This module has no user-facing parts. =for Pod::Coverage .* =head1 SUPPORT Bugs may be submitted at L. There is a mailing list available for users of this distribution, L. I am also usually active on IRC as 'autarch' on C. =head1 SOURCE The source code repository for DateTime-Format-Strptime can be found at L. =head1 AUTHORS =over 4 =item * Dave Rolsky =item * Rick Measham =back =head1 COPYRIGHT AND LICENSE This software is Copyright (c) 2015 - 2017 by Dave Rolsky. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible) The full text of the license can be found in the F file included with this distribution. =cut DateTime-Format-Strptime-1.75/lib/DateTime/Format/Strptime.pm0000644000175000017500000012724413217762750023720 0ustar autarchautarchpackage DateTime::Format::Strptime; use strict; use warnings; our $VERSION = '1.75'; use Carp qw( carp croak ); use DateTime 1.00; use DateTime::Locale 1.05; use DateTime::Format::Strptime::Types; use DateTime::TimeZone 2.09; use Params::ValidationCompiler qw( validation_for ); use Try::Tiny; use Exporter qw( import ); use Package::DeprecationManager 0.15 -deprecations => { 'accessor writers' => '1.58', }; our @EXPORT_OK = qw( strftime strptime ); ## no critic (ValuesAndExpressions::ProhibitConstantPragma) use constant PERL_58 => $] < 5.010; { my $en_locale = DateTime::Locale->load('en'); my $validator = validation_for( params => { pattern => { type => t('NonEmptyStr') }, time_zone => { type => t('TimeZone'), optional => 1, }, zone_map => { type => t('HashRef'), default => sub { {} }, }, locale => { type => t('Locale'), default => sub {$en_locale}, }, on_error => { type => t('OnError'), default => 'undef', }, strict => { type => t('Bool'), default => 0, }, debug => { type => t('Bool'), default => $ENV{DATETIME_FORMAT_STRPTIME_DEBUG}, }, }, ); sub new { my $class = shift; my %args = $validator->(@_); my $self = bless { %args, zone_map => $class->_build_zone_map( $args{zone_map} ), }, $class; # Forces a check that the pattern is valid $self->_parser; if ( $self->{debug} ) { binmode STDERR, ':encoding(UTF-8)' or die $!; } return $self; } } { my %zone_map = ( 'A' => '+0100', 'ACDT' => '+1030', 'ACST' => '+0930', 'ADT' => undef, 'AEDT' => '+1100', 'AES' => '+1000', 'AEST' => '+1000', 'AFT' => '+0430', 'AHDT' => '-0900', 'AHST' => '-1000', 'AKDT' => '-0800', 'AKST' => '-0900', 'AMST' => '+0400', 'AMT' => '+0400', 'ANAST' => '+1300', 'ANAT' => '+1200', 'ART' => '-0300', 'AST' => undef, 'AT' => '-0100', 'AWST' => '+0800', 'AZOST' => '+0000', 'AZOT' => '-0100', 'AZST' => '+0500', 'AZT' => '+0400', 'B' => '+0200', 'BADT' => '+0400', 'BAT' => '+0600', 'BDST' => '+0200', 'BDT' => '+0600', 'BET' => '-1100', 'BNT' => '+0800', 'BORT' => '+0800', 'BOT' => '-0400', 'BRA' => '-0300', 'BST' => undef, 'BT' => undef, 'BTT' => '+0600', 'C' => '+0300', 'CAST' => '+0930', 'CAT' => undef, 'CCT' => undef, 'CDT' => undef, 'CEST' => '+0200', 'CET' => '+0100', 'CETDST' => '+0200', 'CHADT' => '+1345', 'CHAST' => '+1245', 'CKT' => '-1000', 'CLST' => '-0300', 'CLT' => '-0400', 'COT' => '-0500', 'CST' => undef, 'CSuT' => '+1030', 'CUT' => '+0000', 'CVT' => '-0100', 'CXT' => '+0700', 'ChST' => '+1000', 'D' => '+0400', 'DAVT' => '+0700', 'DDUT' => '+1000', 'DNT' => '+0100', 'DST' => '+0200', 'E' => '+0500', 'EASST' => '-0500', 'EAST' => undef, 'EAT' => '+0300', 'ECT' => undef, 'EDT' => undef, 'EEST' => '+0300', 'EET' => '+0200', 'EETDST' => '+0300', 'EGST' => '+0000', 'EGT' => '-0100', 'EMT' => '+0100', 'EST' => undef, 'ESuT' => '+1100', 'F' => '+0600', 'FDT' => undef, 'FJST' => '+1300', 'FJT' => '+1200', 'FKST' => '-0300', 'FKT' => '-0400', 'FST' => undef, 'FWT' => '+0100', 'G' => '+0700', 'GALT' => '-0600', 'GAMT' => '-0900', 'GEST' => '+0500', 'GET' => '+0400', 'GFT' => '-0300', 'GILT' => '+1200', 'GMT' => '+0000', 'GST' => undef, 'GT' => '+0000', 'GYT' => '-0400', 'GZ' => '+0000', 'H' => '+0800', 'HAA' => '-0300', 'HAC' => '-0500', 'HAE' => '-0400', 'HAP' => '-0700', 'HAR' => '-0600', 'HAT' => '-0230', 'HAY' => '-0800', 'HDT' => '-0930', 'HFE' => '+0200', 'HFH' => '+0100', 'HG' => '+0000', 'HKT' => '+0800', 'HL' => 'local', 'HNA' => '-0400', 'HNC' => '-0600', 'HNE' => '-0500', 'HNP' => '-0800', 'HNR' => '-0700', 'HNT' => '-0330', 'HNY' => '-0900', 'HOE' => '+0100', 'HST' => '-1000', 'I' => '+0900', 'ICT' => '+0700', 'IDLE' => '+1200', 'IDLW' => '-1200', 'IDT' => undef, 'IOT' => '+0500', 'IRDT' => '+0430', 'IRKST' => '+0900', 'IRKT' => '+0800', 'IRST' => '+0430', 'IRT' => '+0330', 'IST' => undef, 'IT' => '+0330', 'ITA' => '+0100', 'JAVT' => '+0700', 'JAYT' => '+0900', 'JST' => '+0900', 'JT' => '+0700', 'K' => '+1000', 'KDT' => '+1000', 'KGST' => '+0600', 'KGT' => '+0500', 'KOST' => '+1200', 'KRAST' => '+0800', 'KRAT' => '+0700', 'KST' => '+0900', 'L' => '+1100', 'LHDT' => '+1100', 'LHST' => '+1030', 'LIGT' => '+1000', 'LINT' => '+1400', 'LKT' => '+0600', 'LST' => 'local', 'LT' => 'local', 'M' => '+1200', 'MAGST' => '+1200', 'MAGT' => '+1100', 'MAL' => '+0800', 'MART' => '-0930', 'MAT' => '+0300', 'MAWT' => '+0600', 'MDT' => '-0600', 'MED' => '+0200', 'MEDST' => '+0200', 'MEST' => '+0200', 'MESZ' => '+0200', 'MET' => undef, 'MEWT' => '+0100', 'MEX' => '-0600', 'MEZ' => '+0100', 'MHT' => '+1200', 'MMT' => '+0630', 'MPT' => '+1000', 'MSD' => '+0400', 'MSK' => '+0300', 'MSKS' => '+0400', 'MST' => '-0700', 'MT' => '+0830', 'MUT' => '+0400', 'MVT' => '+0500', 'MYT' => '+0800', 'N' => '-0100', 'NCT' => '+1100', 'NDT' => '-0230', 'NFT' => undef, 'NOR' => '+0100', 'NOVST' => '+0700', 'NOVT' => '+0600', 'NPT' => '+0545', 'NRT' => '+1200', 'NST' => undef, 'NSUT' => '+0630', 'NT' => '-1100', 'NUT' => '-1100', 'NZDT' => '+1300', 'NZST' => '+1200', 'NZT' => '+1200', 'O' => '-0200', 'OESZ' => '+0300', 'OEZ' => '+0200', 'OMSST' => '+0700', 'OMST' => '+0600', 'OZ' => 'local', 'P' => '-0300', 'PDT' => '-0700', 'PET' => '-0500', 'PETST' => '+1300', 'PETT' => '+1200', 'PGT' => '+1000', 'PHOT' => '+1300', 'PHT' => '+0800', 'PKT' => '+0500', 'PMDT' => '-0200', 'PMT' => '-0300', 'PNT' => '-0830', 'PONT' => '+1100', 'PST' => undef, 'PWT' => '+0900', 'PYST' => '-0300', 'PYT' => '-0400', 'Q' => '-0400', 'R' => '-0500', 'R1T' => '+0200', 'R2T' => '+0300', 'RET' => '+0400', 'ROK' => '+0900', 'S' => '-0600', 'SADT' => '+1030', 'SAST' => undef, 'SBT' => '+1100', 'SCT' => '+0400', 'SET' => '+0100', 'SGT' => '+0800', 'SRT' => '-0300', 'SST' => undef, 'SWT' => '+0100', 'T' => '-0700', 'TFT' => '+0500', 'THA' => '+0700', 'THAT' => '-1000', 'TJT' => '+0500', 'TKT' => '-1000', 'TMT' => '+0500', 'TOT' => '+1300', 'TRUT' => '+1000', 'TST' => '+0300', 'TUC ' => '+0000', 'TVT' => '+1200', 'U' => '-0800', 'ULAST' => '+0900', 'ULAT' => '+0800', 'USZ1' => '+0200', 'USZ1S' => '+0300', 'USZ3' => '+0400', 'USZ3S' => '+0500', 'USZ4' => '+0500', 'USZ4S' => '+0600', 'USZ5' => '+0600', 'USZ5S' => '+0700', 'USZ6' => '+0700', 'USZ6S' => '+0800', 'USZ7' => '+0800', 'USZ7S' => '+0900', 'USZ8' => '+0900', 'USZ8S' => '+1000', 'USZ9' => '+1000', 'USZ9S' => '+1100', 'UTZ' => '-0300', 'UYT' => '-0300', 'UZ10' => '+1100', 'UZ10S' => '+1200', 'UZ11' => '+1200', 'UZ11S' => '+1300', 'UZ12' => '+1200', 'UZ12S' => '+1300', 'UZT' => '+0500', 'V' => '-0900', 'VET' => '-0400', 'VLAST' => '+1100', 'VLAT' => '+1000', 'VTZ' => '-0200', 'VUT' => '+1100', 'W' => '-1000', 'WAKT' => '+1200', 'WAST' => undef, 'WAT' => '+0100', 'WEST' => '+0100', 'WESZ' => '+0100', 'WET' => '+0000', 'WETDST' => '+0100', 'WEZ' => '+0000', 'WFT' => '+1200', 'WGST' => '-0200', 'WGT' => '-0300', 'WIB' => '+0700', 'WIT' => '+0900', 'WITA' => '+0800', 'WST' => undef, 'WTZ' => '-0100', 'WUT' => '+0100', 'X' => '-1100', 'Y' => '-1200', 'YAKST' => '+1000', 'YAKT' => '+0900', 'YAPT' => '+1000', 'YDT' => '-0800', 'YEKST' => '+0600', 'YEKT' => '+0500', 'YST' => '-0900', 'Z' => '+0000', 'UTC' => '+0000', ); for my $i ( map { sprintf( '%02d', $_ ) } 1 .. 12 ) { $zone_map{ '-' . $i } = '-' . $i . '00'; $zone_map{ '+' . $i } = '+' . $i . '00'; } sub _build_zone_map { return { %zone_map, %{ $_[1] }, }; } } sub parse_datetime { my $self = shift; my $string = shift; my $parser = $self->_parser; if ( $self->{debug} ) { warn "Regex for $self->{pattern}: $parser->{regex}\n"; warn "Fields: @{$parser->{fields}}\n"; } my @matches = ( $string =~ $parser->{regex} ); unless (@matches) { my $msg = 'Your datetime does not match your pattern'; if ( $self->{debug} ) { $msg .= qq{ - string = "$string" - regex = $parser->{regex}}; } $msg .= q{.}; $self->_our_croak($msg); return; } my %args; my $i = 0; for my $f ( @{ $parser->{fields} } ) { unless ( defined $matches[$i] ) { die "Something horrible happened - the string matched $parser->{regex}" . " but did not return the expected fields: [@{$parser->{fields}}]"; } $args{$f} = $matches[ $i++ ]; } # We need to copy the %args here because _munge_args will delete keys in # order to turn this into something that can be passed to a DateTime # constructor. my ( $constructor, $args, $post_construct ) = $self->_munge_args( {%args} ); return unless $constructor && $args; my $dt = try { DateTime->$constructor($args) }; $self->_our_croak('Parsed values did not produce a valid date') unless $dt; if ($post_construct) { $post_construct->($dt); } return unless $dt && $self->_check_dt( $dt, \%args ); $dt->set_time_zone( $self->{time_zone} ) if $self->{time_zone}; return $dt; } sub _parser { my $self = shift; return $self->{parser} ||= $self->_build_parser; } sub _build_parser { my $self = shift; my ( $replacement_tokens_re, $replacements, $pattern_tokens_re, $patterns, ) = $self->_parser_pieces; my $pattern = $self->{pattern}; # When the first replacement is a glibc pattern, the first round of # replacements may simply replace one replacement token (like %X) with # another replacement token (like %I). $pattern =~ s/%($replacement_tokens_re)/$replacements->{$1}/g for 1 .. 2; if ( $self->{debug} && $pattern ne $self->{pattern} ) { warn "Pattern after replacement substitution: $pattern\n"; } my $regex = q{}; my @fields; while ( $pattern =~ / \G %($pattern_tokens_re) | %([1-9]?)(N) | (%[0-9]*[a-zA-Z]) | ([^%]+) /xg ) { # Using \G in the regex match fails for some reason on Perl 5.8, so we # do this hack instead. substr( $pattern, 0, pos $pattern, q{} ) if PERL_58; if ($1) { my $p = $patterns->{$1} or croak "Unidentified token in pattern: $1 in $self->{pattern}"; if ( $p->{field} ) { $regex .= qr/($p->{regex})/; push @fields, $p->{field}; } else { $regex .= qr/$p->{regex}/; } } elsif ($3) { $regex .= $2 ? qr/([0-9]{$2})/ : qr/([0-9]+)/; push @fields, 'nanosecond'; } elsif ($4) { croak qq{Pattern contained an unrecognized strptime token, "$4"}; } else { $regex .= qr/\Q$5/; } } return { regex => ( $self->{strict} ? qr/(?:\A|\b)$regex(?:\b|\Z)/ : qr/$regex/ ), fields => \@fields, }; } { my $digit = qr/(?:[0-9])/; my $one_or_two_digits = qr/[0-9 ]?$digit/; # These patterns are all locale-independent. There are a few that depend # on the locale, and must be re-calculated for each new parser object. my %universal_patterns = ( '%' => { regex => qr/%/, }, C => { regex => $one_or_two_digits, field => 'century', }, d => { regex => $one_or_two_digits, field => 'day', }, g => { regex => $one_or_two_digits, field => 'iso_week_year_100', }, G => { regex => qr/$digit{4}/, field => 'iso_week_year', }, H => { regex => $one_or_two_digits, field => 'hour', }, I => { regex => $one_or_two_digits, field => 'hour_12', }, j => { regex => qr/$digit{1,3}/, field => 'day_of_year', }, m => { regex => $one_or_two_digits, field => 'month', }, M => { regex => $one_or_two_digits, field => 'minute', }, n => { regex => qr/\s+/, }, O => { regex => qr{[a-zA-Z_]+(?:/[a-zA-Z_]+(?:/[a-zA-Z_]+)?)?}, field => 'time_zone_name', }, s => { regex => qr/$digit+/, field => 'epoch', }, S => { regex => $one_or_two_digits, field => 'second', }, U => { regex => $one_or_two_digits, field => 'week_sun_0', }, u => { regex => $one_or_two_digits, field => 'day_of_week', }, w => { regex => $one_or_two_digits, field => 'day_of_week_sun_0', }, W => { regex => $one_or_two_digits, field => 'week_mon_1', }, y => { regex => $one_or_two_digits, field => 'year_100', }, Y => { regex => qr/$digit{4}/, field => 'year', }, z => { regex => qr/(?:Z|[+-]$digit{2}(?:[:]?$digit{2})?)/, field => 'time_zone_offset', }, Z => { regex => qr/[a-zA-Z]{1,6}|[\-\+]$digit{2}/, field => 'time_zone_abbreviation', }, ); $universal_patterns{e} = $universal_patterns{d}; $universal_patterns{k} = $universal_patterns{H}; $universal_patterns{l} = $universal_patterns{I}; $universal_patterns{t} = $universal_patterns{n}; my %universal_replacements = ( D => '%m/%d/%y', F => '%Y-%m-%d', r => '%I:%M:%S %p', R => '%H:%M', T => '%H:%M:%S', ); sub _parser_pieces { my $self = shift; my %replacements = %universal_replacements; $replacements{c} = $self->{locale}->glibc_datetime_format; $replacements{x} = $self->{locale}->glibc_date_format; $replacements{X} = $self->{locale}->glibc_time_format; my %patterns = %universal_patterns; $patterns{a} = $patterns{A} = { regex => do { my $days = join '|', map {quotemeta} sort { ( length $b <=> length $a ) or ( $a cmp $b ) } keys %{ $self->_locale_days }; qr/$days/i; }, field => 'day_name', }; $patterns{b} = $patterns{B} = $patterns{h} = { regex => do { my $months = join '|', map {quotemeta} sort { ( length $b <=> length $a ) or ( $a cmp $b ) } keys %{ $self->_locale_months }; qr/$months/i; }, field => 'month_name', }; $patterns{p} = $patterns{P} = { regex => do { my $am_pm = join '|', map {quotemeta} sort { ( length $b <=> length $a ) or ( $a cmp $b ) } @{ $self->{locale}->am_pm_abbreviated }; qr/$am_pm/i; }, field => 'am_pm', }; return ( $self->_token_re_for( keys %replacements ), \%replacements, $self->_token_re_for( keys %patterns ), \%patterns, ); } } sub _locale_days { my $self = shift; return $self->{locale_days} if $self->{locale_days}; my $wide = $self->{locale}->day_format_wide; my $abbr = $self->{locale}->day_format_abbreviated; my %locale_days; for my $i ( 0 .. 6 ) { $locale_days{ lc $wide->[$i] } = $i; $locale_days{ lc $abbr->[$i] } = $i; } return $self->{locale_days} ||= \%locale_days; } sub _locale_months { my $self = shift; return $self->{locale_months} if $self->{locale_months}; my $wide = $self->{locale}->month_format_wide; my $abbr = $self->{locale}->month_format_abbreviated; my %locale_months; for my $i ( 0 .. 11 ) { $locale_months{ lc $wide->[$i] } = $i + 1; $locale_months{ lc $abbr->[$i] } = $i + 1; } return $self->{locale_months} ||= \%locale_months; } sub _token_re_for { shift; my $t = join '|', sort { ( length $b <=> length $a ) or ( $a cmp $b ) } @_; return qr/$t/; } { # These are fields we parse that cannot be passed to a DateTime # constructor my @non_dt_keys = qw( am_pm century day_name day_of_week day_of_week_sun_0 hour_12 iso_week_year iso_week_year_100 month_name time_zone_abbreviation time_zone_name time_zone_offset week_mon_1 week_sun_0 year_100 ); ## no critic (Subroutines::ProhibitExcessComplexity) sub _munge_args { my $self = shift; my $args = shift; if ( defined $args->{month_name} ) { my $num = $self->_locale_months->{ lc $args->{month_name} } or die "We somehow parsed a month name ($args->{month_name})" . ' that does not correspond to any month in this locale!'; $args->{month} = $num; } if ( defined $args->{am_pm} && defined $args->{hour_12} ) { my ( $am, $pm ) = @{ $self->{locale}->am_pm_abbreviated }; $args->{hour} = $args->{hour_12}; if ( lc $args->{am_pm} eq lc $am ) { $args->{hour} = 0 if $args->{hour} == 12; } else { $args->{hour} += 12 unless $args->{hour} == 12; } } elsif ( defined $args->{hour_12} ) { $self->_our_croak( qq{Parsed a 12-hour based hour, "$args->{hour_12}",} . ' but the pattern does not include an AM/PM specifier' ); return; } if ( defined $args->{year_100} ) { if ( defined $args->{century} ) { $args->{year} = $args->{year_100} + ( $args->{century} * 100 ); } else { $args->{year} = $args->{year_100} + ( $args->{year_100} >= 69 ? 1900 : 2000 ); } } if ( $args->{time_zone_offset} ) { my $offset = $args->{time_zone_offset}; if ( $offset eq 'Z' ) { $offset = '+0000'; } elsif ( $offset =~ /^[+-][0-9]{2}$/ ) { $offset .= '00'; } $args->{time_zone} = DateTime::TimeZone->new( name => $offset ); } if ( defined $args->{time_zone_abbreviation} ) { my $abbr = $args->{time_zone_abbreviation}; unless ( exists $self->{zone_map}{$abbr} ) { $self->_our_croak( qq{Parsed an unrecognized time zone abbreviation, "$args->{time_zone_abbreviation}"} ); return; } if ( !defined $self->{zone_map}{$abbr} ) { $self->_our_croak( qq{The time zone abbreviation that was parsed is ambiguous, "$args->{time_zone_abbreviation}"} ); return; } $args->{time_zone} = DateTime::TimeZone->new( name => $self->{zone_map}{$abbr} ); } else { $args->{time_zone} ||= 'floating'; } if ( $args->{time_zone_name} ) { my $name = $args->{time_zone_name}; my $tz; unless ( $tz = try { DateTime::TimeZone->new( name => $name ) } ) { $name = lc $name; $name =~ s{(^|[/_])(.)}{$1\U$2}g; } $tz = try { DateTime::TimeZone->new( name => $name ) }; unless ($tz) { $self->_our_croak( qq{The Olson time zone name that was parsed does not appear to be valid, "$args->{time_zone_name}"} ); return; } $args->{time_zone} = $tz if $tz; } delete @{$args}{@non_dt_keys}; $args->{locale} = $self->{locale}; for my $k ( grep { defined $args->{$_} } qw( month day hour minute second nanosecond ) ) { $args->{$k} =~ s/^\s+//; } if ( defined $args->{nanosecond} ) { # If we parsed "12345" we treat it as "123450000" but if we parsed # "000123456" we treat it as 123,456 nanoseconds. This is all a bit # weird and confusing but it matches how this module has always # worked. $args->{nanosecond} *= 10**( 9 - length $args->{nanosecond} ) if length $args->{nanosecond} != 9; # If we parsed 000000123 we want to turn this into a number. $args->{nanosecond} += 0; } for my $k (qw( year month day )) { $args->{$k} = 1 unless defined $args->{$k}; } if ( defined $args->{epoch} ) { # We don't want to pass a non-integer epoch value since that gets # truncated as of DateTime 1.22. Instead, we'll set the nanosecond # to parsed value after constructing the object. This is a hack, # but it's the best I can come up with. my $post_construct; if ( my $nano = $args->{nanosecond} ) { $post_construct = sub { $_[0]->set( nanosecond => $nano ) }; } delete @{$args}{ qw( day_of_year year month day hour minute second nanosecond ) }; return ( 'from_epoch', $args, $post_construct ); } elsif ( $args->{day_of_year} ) { delete @{$args}{qw( epoch month day )}; return ( 'from_day_of_year', $args ); } return ( 'new', $args ); } } ## no critic (Subroutines::ProhibitExcessComplexity) sub _check_dt { my $self = shift; my $dt = shift; my $args = shift; my $is_am = defined $args->{am_pm} && lc $args->{am_pm} eq lc $self->{locale}->am_pm_abbreviated->[0]; if ( defined $args->{hour} && defined $args->{hour_12} ) { unless ( ( $args->{hour} % 12 ) == $args->{hour_12} ) { $self->_our_croak( 'Parsed an input with 24-hour and 12-hour time values that do not match' . qq{ - "$args->{hour}" versus "$args->{hour_12}"} ); return; } } if ( defined $args->{hour} && defined $args->{am_pm} ) { if ( ( $is_am && $args->{hour} >= 12 ) || ( !$is_am && $args->{hour} < 12 ) ) { $self->_our_croak( 'Parsed an input with 24-hour and AM/PM values that do not match' . qq{ - "$args->{hour}" versus "$args->{am_pm}"} ); return; } } if ( defined $args->{year} && defined $args->{century} ) { unless ( int( $args->{year} / 100 ) == $args->{century} ) { $self->_our_croak( 'Parsed an input with year and century values that do not match' . qq{ - "$args->{year}" versus "$args->{century}"} ); return; } } if ( defined $args->{year} && defined $args->{year_100} ) { unless ( ( $args->{year} % 100 ) == $args->{year_100} ) { $self->_our_croak( 'Parsed an input with year and year-within-century values that do not match' . qq{ - "$args->{year}" versus "$args->{year_100}"} ); return; } } if ( defined $args->{time_zone_abbreviation} && defined $args->{time_zone_offset} ) { unless ( $self->{zone_map}{ $args->{time_zone_abbreviation} } && $self->{zone_map}{ $args->{time_zone_abbreviation} } eq $args->{time_zone_offset} ) { $self->_our_croak( 'Parsed an input with time zone abbreviation and time zone offset values that do not match' . qq{ - "$args->{time_zone_abbreviation}" versus "$args->{time_zone_offset}"} ); return; } } if ( defined $args->{epoch} ) { for my $key ( qw( year month day minute hour second hour_12 day_of_year )) { if ( defined $args->{$key} && $dt->$key != $args->{$key} ) { my $print_key = $key eq 'hour_12' ? 'hour (1-12)' : $key eq 'day_of_year' ? 'day of year' : $key; $self->_our_croak( "Parsed an input with epoch and $print_key values that do not match" . qq{ - "$args->{epoch}" versus "$args->{$key}"} ); return; } } } if ( defined $args->{month} && defined $args->{day_of_year} ) { unless ( $dt->month == $args->{month} ) { $self->_our_croak( 'Parsed an input with month and day of year values that do not match' . qq{ - "$args->{month}" versus "$args->{day_of_year}"} ); return; } } if ( defined $args->{day_name} ) { my $dow = $self->_locale_days->{ lc $args->{day_name} }; defined $dow or die "We somehow parsed a day name ($args->{day_name})" . ' that does not correspond to any day in this locale!'; unless ( $dt->day_of_week_0 == $dow ) { $self->_our_croak( 'Parsed an input where the day name does not match the date' . qq{ - "$args->{day_name}" versus "} . $dt->ymd . q{"} ); return; } } if ( defined $args->{day_of_week} ) { unless ( $dt->day_of_week == $args->{day_of_week} ) { $self->_our_croak( 'Parsed an input where the day of week does not match the date' . qq{ - "$args->{day_of_week}" versus "} . $dt->ymd . q{"} ); return; } } if ( defined $args->{day_of_week_sun_0} ) { unless ( ( $dt->day_of_week % 7 ) == $args->{day_of_week_sun_0} ) { $self->_our_croak( 'Parsed an input where the day of week (Sunday as 0) does not match the date' . qq{ - "$args->{day_of_week_sun_0}" versus "} . $dt->ymd . q{"} ); return; } } if ( defined $args->{iso_week_year} ) { unless ( $dt->week_year == $args->{iso_week_year} ) { $self->_our_croak( 'Parsed an input where the ISO week year does not match the date' . qq{ - "$args->{iso_week_year}" versus "} . $dt->ymd . q{"} ); return; } } if ( defined $args->{iso_week_year_100} ) { unless ( ( 0 + substr( $dt->week_year, -2 ) ) == $args->{iso_week_year_100} ) { $self->_our_croak( 'Parsed an input where the ISO week year (without century) does not match the date' . qq{ - "$args->{iso_week_year_100}" versus "} . $dt->ymd . q{"} ); return; } } if ( defined $args->{week_mon_1} ) { unless ( ( 0 + $dt->strftime('%W') ) == $args->{week_mon_1} ) { $self->_our_croak( 'Parsed an input where the ISO week number (Monday starts week) does not match the date' . qq{ - "$args->{week_mon_1}" versus "} . $dt->ymd . q{"} ); return; } } if ( defined $args->{week_sun_0} ) { unless ( ( 0 + $dt->strftime('%U') ) == $args->{week_sun_0} ) { $self->_our_croak( 'Parsed an input where the ISO week number (Sunday starts week) does not match the date' . qq{ - "$args->{week_sun_0}" versus "} . $dt->ymd . q{"} ); return; } } return 1; } ## use critic sub pattern { my $self = shift; if (@_) { my $pattern = shift; deprecated( feature => 'accessor writers', message => 'Calling pattern() as a writer is deprecated.', ); my $new; try { $new = $self->_clone_with( pattern => $pattern ); } catch { $self->_our_carp($_); } return unless $new; %{$self} = %{$new}; } return $self->{pattern}; } sub locale { my $self = shift; if (@_) { my $locale = shift; deprecated( feature => 'accessor writers', message => 'Calling locale() as a writer is deprecated.', ); my $new; try { $new = $self->_clone_with( locale => $locale ); } catch { $self->_our_carp($_); } return unless $new; %{$self} = %{$new}; } return $self->{locale}->can('code') ? $self->{locale}->code : $self->{locale}->id; } sub time_zone { my $self = shift; if (@_) { my $time_zone = shift; deprecated( feature => 'accessor writers', message => 'Calling time_zone() as a writer is deprecated.', ); my $new; try { $new = $self->_clone_with( time_zone => $time_zone ); } catch { $self->_our_carp($_); } return unless $new; %{$self} = %{$new}; } return $self->{time_zone}->name; } # Only used for deprecated accessors-as-writers feature sub _clone_with { my $self = shift; return ( ref $self )->new( pattern => $self->{pattern}, locale => $self->{locale}, ( $self->{time_zone} ? ( time_zone => $self->{time_zone} ) : () ), on_error => $self->{on_error}, debug => $self->{debug}, @_, ); } sub parse_duration { croak q{DateTime::Format::Strptime doesn't do durations.}; } { my $validator = validation_for( params => [ { type => t('DateTime') } ] ); sub format_datetime { my $self = shift; my ($dt) = $validator->(@_); my $pattern = $self->pattern; $pattern =~ s/%O/$dt->time_zone->name/eg; return $dt->clone->set_locale( $self->locale )->strftime($pattern); } } sub format_duration { croak q{DateTime::Format::Strptime doesn't do durations.}; } sub _our_croak { my $self = shift; my $error = shift; return $self->{on_error}->( $self, $error ) if ref $self->{on_error}; croak $error if $self->{on_error} eq 'croak'; $self->{errmsg} = $error; return; } sub _our_carp { my $self = shift; my $error = shift; return $self->{on_error}->( $self, $error ) if ref $self->{on_error}; carp $error if $self->{on_error} eq 'croak'; $self->{errmsg} = $error; return; } sub errmsg { $_[0]->{errmsg}; } # Exportable functions: sub strftime { my ( $pattern, $dt ) = @_; return DateTime::Format::Strptime->new( pattern => $pattern, on_error => 'croak' )->format_datetime($dt); } sub strptime { my ( $pattern, $time_string ) = @_; return DateTime::Format::Strptime->new( pattern => $pattern, on_error => 'croak' )->parse_datetime($time_string); } 1; # ABSTRACT: Parse and format strp and strf time patterns __END__ =pod =encoding UTF-8 =head1 NAME DateTime::Format::Strptime - Parse and format strp and strf time patterns =head1 VERSION version 1.75 =head1 SYNOPSIS use DateTime::Format::Strptime; my $strp = DateTime::Format::Strptime->new( pattern => '%T', locale => 'en_AU', time_zone => 'Australia/Melbourne', ); my $dt = $strp->parse_datetime('23:16:42'); $strp->format_datetime($dt); # 23:16:42 # Croak when things go wrong: my $strp = DateTime::Format::Strptime->new( pattern => '%T', locale => 'en_AU', time_zone => 'Australia/Melbourne', on_error => 'croak', ); # Do something else when things go wrong: my $strp = DateTime::Format::Strptime->new( pattern => '%T', locale => 'en_AU', time_zone => 'Australia/Melbourne', on_error => \&phone_police, ); =head1 DESCRIPTION This module implements most of C, the POSIX function that is the reverse of C, for C. While C takes a C and a pattern and returns a string, C takes a string and a pattern and returns the C object associated. =for Pod::Coverage parse_duration format_duration =head1 METHODS This class offers the following methods. =head2 DateTime::Format::Strptime->new(%args) This methods creates a new object. It accepts the following arguments: =over 4 =item * pattern This is the pattern to use for parsing. This is required. =item * strict This is a boolean which disables or enables strict matching mode. By default, this module turns your pattern into a regex that will match anywhere in a string. So given the pattern C<%Y%m%d%H%M%S> it will match a string like C<20161214233712Z>. However, this also means that a this pattern will match B string that contains 14 or more numbers! This behavior can be very surprising. If you enable strict mode, then the generated regex is wrapped in boundary checks of the form C. These checks ensure that the pattern will only match when at the beginning or end of a string, or when it is separated by other text with a word boundary (C<\w> versus C<\W>). By default, strict mode is off. This is done for backwards compatibility. Future releases may turn it on by default, as it produces less surprising behavior in many cases. Because the default may change in the future, B<< you are strongly encouraged to explicitly set this when constructing all C objects >>. =item * time_zone The default time zone to use for objects returned from parsing. =item * zone_map Some time zone abbreviations are ambiguous (e.g. PST, EST, EDT). By default, the parser will die when it parses an ambiguous abbreviation. You may specify a C parameter as a hashref to map zone abbreviations however you like: zone_map => { PST => '-0800', EST => '-0600' } Note that you can also override non-ambiguous mappings if you want to as well. =item * locale The locale to use for objects returned from parsing. =item * on_error This can be one of C<'undef'> (the string, not an C), 'croak', or a subroutine reference. =over 8 =item * 'undef' This is the default behavior. The module will return C on errors. The error can be accessed using the C<< $object->errmsg >> method. This is the ideal behaviour for interactive use where a user might provide an illegal pattern or a date that doesn't match the pattern. =item * 'croak' The module will croak with an error message on errors. =item * sub{...} or \&subname When given a code ref, the module will call that sub on errors. The sub receives two parameters: the object and the error message. If your sub does not die, then the formatter will continue on as if C was C<'undef'>. =back =back =head2 $strptime->parse_datetime($string) Given a string in the pattern specified in the constructor, this method will return a new C object. If given a string that doesn't match the pattern, the formatter will croak or return undef, depending on the setting of C in the constructor. =head2 $strptime->format_datetime($datetime) Given a C object, this methods returns a string formatted in the object's format. This method is synonymous with C's strftime method. =head2 $strptime->locale This method returns the locale passed to the object's constructor. =head2 $strptime->pattern This method returns the pattern passed to the object's constructor. =head2 $strptime->time_zone This method returns the time zone passed to the object's constructor. =head2 $strptime->errmsg If the on_error behavior of the object is 'undef', you can retrieve error messages with this method so you can work out why things went wrong. =head1 EXPORTS These subs are available as optional exports. =head2 strptime( $strptime_pattern, $string ) Given a pattern and a string this function will return a new C object. =head2 strftime( $strftime_pattern, $datetime ) Given a pattern and a C object this function will return a formatted string. =head1 STRPTIME PATTERN TOKENS The following tokens are allowed in the pattern string for strptime (parse_datetime): =over 4 =item * %% The % character. =item * %a or %A The weekday name according to the given locale, in abbreviated form or the full name. =item * %b or %B or %h The month name according to the given locale, in abbreviated form or the full name. =item * %c The datetime format according to the given locale. =item * %C The century number (0-99). =item * %d or %e The day of month (01-31). This will parse single digit numbers as well. =item * %D Equivalent to %m/%d/%y. (This is the American style date, very confusing to non-Americans, especially since %d/%m/%y is widely used in Europe. The ISO 8601 standard pattern is %F.) =item * %F Equivalent to %Y-%m-%d. (This is the ISO style date) =item * %g The year corresponding to the ISO week number, but without the century (0-99). =item * %G The 4-digit year corresponding to the ISO week number. =item * %H The hour (00-23). This will parse single digit numbers as well. =item * %I The hour on a 12-hour clock (1-12). =item * %j The day number in the year (1-366). =item * %m The month number (01-12). This will parse single digit numbers as well. =item * %M The minute (00-59). This will parse single digit numbers as well. =item * %n Arbitrary whitespace. =item * %N Nanoseconds. For other sub-second values use C<%[number]N>. =item * %p or %P The equivalent of AM or PM according to the locale in use. See L. =item * %r Equivalent to %I:%M:%S %p. =item * %R Equivalent to %H:%M. =item * %s Number of seconds since the Epoch. =item * %S The second (0-60; 60 may occur for leap seconds. See L). =item * %t Arbitrary whitespace. =item * %T Equivalent to %H:%M:%S. =item * %U The week number with Sunday the first day of the week (0-53). The first Sunday of January is the first day of week 1. =item * %u The weekday number (1-7) with Monday = 1. This is the C standard. =item * %w The weekday number (0-6) with Sunday = 0. =item * %W The week number with Monday the first day of the week (0-53). The first Monday of January is the first day of week 1. =item * %x The date format according to the given locale. =item * %X The time format according to the given locale. =item * %y The year within century (0-99). When a century is not otherwise specified (with a value for %C), values in the range 69-99 refer to years in the twentieth century (1969-1999); values in the range 00-68 refer to years in the twenty-first century (2000-2068). =item * %Y A 4-digit year, including century (for example, 1991). =item * %z An RFC-822/ISO 8601 standard time zone specification. (For example +1100) [See note below] =item * %Z The timezone name. (For example EST -- which is ambiguous) [See note below] =item * %O This extended token allows the use of Olson Time Zone names to appear in parsed strings. B: This pattern cannot be passed to C's C method, but can be passed to C. =back =head1 AUTHOR EMERITUS This module was created by Rick Measham. =head1 SEE ALSO C mailing list. http://datetime.perl.org/ L, L, L, L =head1 BUGS Please report any bugs or feature requests to C, or through the web interface at L. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. Bugs may be submitted at L. There is a mailing list available for users of this distribution, L. I am also usually active on IRC as 'autarch' on C. =head1 SOURCE The source code repository for DateTime-Format-Strptime can be found at L. =head1 DONATIONS If you'd like to thank me for the work I've done on this module, please consider making a "donation" to me via PayPal. I spend a lot of free time creating free software, and would appreciate any support you'd care to offer. Please note that B in order for me to continue working on this particular software. I will continue to do so, inasmuch as I have in the past, for as long as it interests me. Similarly, a donation made in this way will probably not make me work on this software much more, unless I get so many donations that I can consider working 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. =head1 AUTHORS =over 4 =item * Dave Rolsky =item * Rick Measham =back =head1 CONTRIBUTORS =for stopwords Christian Hansen D. Ilmari Mannsåker key-amb Mohammad S Anwar =over 4 =item * Christian Hansen =item * D. Ilmari Mannsåker =item * key-amb =item * Mohammad S Anwar =back =head1 COPYRIGHT AND LICENSE This software is Copyright (c) 2015 - 2017 by Dave Rolsky. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible) The full text of the license can be found in the F file included with this distribution. =cut DateTime-Format-Strptime-1.75/perlcriticrc0000644000175000017500000000347113217762750020464 0ustar autarchautarchseverity = 3 verbose = 11 theme = core + pbp + bugs + maintenance + cosmetic + complexity + security + tests + moose program-extensions = pl psgi t exclude = Subroutines::ProhibitCallsToUndeclaredSubs [BuiltinFunctions::ProhibitStringySplit] severity = 3 [CodeLayout::RequireTrailingCommas] severity = 3 [ControlStructures::ProhibitCStyleForLoops] severity = 3 [InputOutput::RequireCheckedSyscalls] functions = :builtins exclude_functions = sleep severity = 3 [RegularExpressions::ProhibitComplexRegexes] max_characters = 200 [RegularExpressions::ProhibitUnusualDelimiters] severity = 3 [Subroutines::ProhibitUnusedPrivateSubroutines] private_name_regex = _(?!build)\w+ [TestingAndDebugging::ProhibitNoWarnings] allow = redefine [ValuesAndExpressions::ProhibitEmptyQuotes] severity = 3 [ValuesAndExpressions::ProhibitInterpolationOfLiterals] severity = 3 [ValuesAndExpressions::RequireUpperCaseHeredocTerminator] severity = 3 [Variables::ProhibitPackageVars] add_packages = Carp Test::Builder [-Subroutines::RequireFinalReturn] # This incorrectly thinks signatures are prototypes. [-Subroutines::ProhibitSubroutinePrototypes] [-ErrorHandling::RequireCarping] # No need for /xsm everywhere [-RegularExpressions::RequireDotMatchAnything] [-RegularExpressions::RequireExtendedFormatting] [-RegularExpressions::RequireLineBoundaryMatching] # http://stackoverflow.com/questions/2275317/why-does-perlcritic-dislike-using-shift-to-populate-subroutine-variables [-Subroutines::RequireArgUnpacking] # "use v5.14" is more readable than "use 5.014" [-ValuesAndExpressions::ProhibitVersionStrings] # Explicitly returning undef is a _good_ thing in many cases, since it # prevents very common errors when using a sub in list context to construct a # hash and ending up with a missing value or key. [-Subroutines::ProhibitExplicitReturnUndef] DateTime-Format-Strptime-1.75/Makefile.PL0000644000175000017500000000454513217762750020031 0ustar autarchautarch# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.010. use strict; use warnings; use ExtUtils::MakeMaker; my %WriteMakefileArgs = ( "ABSTRACT" => "Parse and format strp and strf time patterns", "AUTHOR" => "Dave Rolsky , Rick Measham ", "CONFIGURE_REQUIRES" => { "ExtUtils::MakeMaker" => 0 }, "DISTNAME" => "DateTime-Format-Strptime", "LICENSE" => "artistic_2", "NAME" => "DateTime::Format::Strptime", "PREREQ_PM" => { "Carp" => 0, "DateTime" => "1.00", "DateTime::Locale" => "1.05", "DateTime::Locale::Base" => 0, "DateTime::Locale::FromData" => 0, "DateTime::TimeZone" => "2.09", "Exporter" => 0, "Package::DeprecationManager" => "0.15", "Params::ValidationCompiler" => 0, "Specio" => "0.33", "Specio::Declare" => 0, "Specio::Exporter" => 0, "Specio::Library::Builtins" => 0, "Specio::Library::String" => 0, "Try::Tiny" => 0, "constant" => 0, "parent" => 0, "strict" => 0, "warnings" => 0 }, "TEST_REQUIRES" => { "ExtUtils::MakeMaker" => 0, "File::Spec" => 0, "Test::Builder" => 0, "Test::Fatal" => 0, "Test::More" => "0.96", "Test::Warnings" => 0, "lib" => 0, "utf8" => 0 }, "VERSION" => "1.75", "test" => { "TESTS" => "t/*.t" } ); my %FallbackPrereqs = ( "Carp" => 0, "DateTime" => "1.00", "DateTime::Locale" => "1.05", "DateTime::Locale::Base" => 0, "DateTime::Locale::FromData" => 0, "DateTime::TimeZone" => "2.09", "Exporter" => 0, "ExtUtils::MakeMaker" => 0, "File::Spec" => 0, "Package::DeprecationManager" => "0.15", "Params::ValidationCompiler" => 0, "Specio" => "0.33", "Specio::Declare" => 0, "Specio::Exporter" => 0, "Specio::Library::Builtins" => 0, "Specio::Library::String" => 0, "Test::Builder" => 0, "Test::Fatal" => 0, "Test::More" => "0.96", "Test::Warnings" => 0, "Try::Tiny" => 0, "constant" => 0, "lib" => 0, "parent" => 0, "strict" => 0, "utf8" => 0, "warnings" => 0 ); unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { delete $WriteMakefileArgs{TEST_REQUIRES}; delete $WriteMakefileArgs{BUILD_REQUIRES}; $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; } delete $WriteMakefileArgs{CONFIGURE_REQUIRES} unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; WriteMakefile(%WriteMakefileArgs);