Changes for version 0.05 - 2026-06-01

  • Bug Fixes
    • Clone path now validates ua argument: a defined, non-object ua croaks with a clear message rather than silently storing an unusable value
    • get_time_zone() now explicitly croaks when latitude or longitude is undef, working around Params::Validate::Strict silently skipping type checks for undef values
  • Documentation
    • Added Z-notation formal specifications for new(), get_time_zone(), and ua()
    • Consolidated formal specifications into the POD
  • Tests
    • Upgraded t/30-basics.t from Test::MockModule to Test::Mockingbird
    • Added t/function.t: white-box function-level tests (49 subtests)
    • Added t/unit.t: black-box unit tests against POD specification (41 subtests)
    • Added t/integration.t: end-to-end integration tests (28 subtests)
    • Added t/edge_cases.t: destructive, boundary-condition and security tests (52 subtests)
    • Added t/extended_tests.t: coverage-targeted tests for uncovered paths (24 subtests)
    • Added t/mutant_killers.t: tests that kill surviving mutation-testing mutants

Documentation

Modules

Interface to https://timezonedb.com for looking up Timezone data