Hello community,

here is the log from the commit of package perl-Test-Number-Delta for 
openSUSE:Factory checked in at 2015-04-15 16:27:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Test-Number-Delta (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Test-Number-Delta.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Test-Number-Delta"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/perl-Test-Number-Delta/perl-Test-Number-Delta.changes
    2013-11-27 15:31:34.000000000 +0100
+++ 
/work/SRC/openSUSE:Factory/.perl-Test-Number-Delta.new/perl-Test-Number-Delta.changes
       2015-04-15 16:27:14.000000000 +0200
@@ -1,0 +2,25 @@
+Tue Apr 14 20:53:21 UTC 2015 - [email protected]
+
+- updated to 1.06
+   see /usr/share/doc/packages/perl-Test-Number-Delta/Changes
+
+  1.06      2014-11-25 07:09:08-05:00 America/New_York
+  
+      [Fixed]
+  
+      - Make 0 and 0 compare equal with a relative epsilon
+  
+      [Documented]
+  
+      - Added SEE ALSO with Number::Tolerant and Test::Deep::NumberTolerant
+  
+  1.05      2014-11-24 11:08:11-05:00 America/New_York
+  
+      [Fixed]
+  
+      - relative comparison of array reference elements now works as intended
+  
+      - diagnostics of delta_not_ok and delta_not_within clarified under
+        relative comparison
+
+-------------------------------------------------------------------

Old:
----
  Test-Number-Delta-1.04.tar.gz

New:
----
  Test-Number-Delta-1.06.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Test-Number-Delta.spec ++++++
--- /var/tmp/diff_new_pack.1jNQ8k/_old  2015-04-15 16:27:14.000000000 +0200
+++ /var/tmp/diff_new_pack.1jNQ8k/_new  2015-04-15 16:27:14.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-Test-Number-Delta
 #
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Test-Number-Delta
-Version:        1.04
+Version:        1.06
 Release:        0
 %define cpan_name Test-Number-Delta
 Summary:        Compare the difference between numbers against a given 
tolerance
@@ -29,9 +29,6 @@
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  perl
 BuildRequires:  perl-macros
-#BuildRequires: perl(Pod::Wordlist)
-#BuildRequires: perl(Test::Number::Delta)
-#BuildRequires: perl(Test::Spelling) >= 0.12
 %{perl_requires}
 
 %description
@@ -76,6 +73,6 @@
 
 %files -f %{name}.files
 %defattr(-,root,root,755)
-%doc Changes CONTRIBUTING cpanfile LICENSE perlcritic.rc README tidyall.ini
+%doc Changes CONTRIBUTING.mkdn LICENSE README
 
 %changelog

++++++ Test-Number-Delta-1.04.tar.gz -> Test-Number-Delta-1.06.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/CONTRIBUTING 
new/Test-Number-Delta-1.06/CONTRIBUTING
--- old/Test-Number-Delta-1.04/CONTRIBUTING     2013-11-21 00:43:37.000000000 
+0100
+++ new/Test-Number-Delta-1.06/CONTRIBUTING     1970-01-01 01:00:00.000000000 
+0100
@@ -1,70 +0,0 @@
-## HOW TO CONTRIBUTE
-
-Thank you for considering contributing to this distribution.  This file
-contains instructions that will help you work with the source code.
-
-The distribution is managed with Dist::Zilla.  This means than many of the
-usual files you might expect are not in the repository, but are generated
-at release time (e.g. Makefile.PL).
-
-### Getting dependencies
-
-See the included `cpanfile` file for a list of dependencies.  If you have
-App::cpanminus 1.6 or later installed, you can use `cpanm` to satisfy
-dependencies like this:
-
-    $ cpanm --installdeps .
-
-Otherwise, you can install Module::CPANfile 1.0002 or later and then satisfy
-dependencies with the regular `cpan` client and `cpanfile-dump`:
-
-    $ cpan `cpanfile-dump`
-
-### Running tests
-
-You can run tests directly using the `prove` tool:
-
-    $ prove -l
-    $ prove -lv t/some_test_file.t
-
-For most distributions, `prove` is entirely sufficent for you to test any
-patches you have.
-
-### Code style and tidying
-
-Please try to match any existing coding style.  If there is a `.perltidyrc`
-file, please install Perl::Tidy and use perltidy before submitting patches.
-
-If there is a `tidyall.ini` file, you can also install Code::TidyAll and run
-`tidyall` on a file or `tidyall -a` to tidy all files.
-
-### Patching documentation
-
-Much of the documentation Pod is generated at release time.
-Depending on the distribution, some documentation may be written in a Pod
-dialect called WikiDoc. (See Pod::WikiDoc on CPAN.)
-
-If you would like to submit a documentation edit, please limit yourself to the
-documentation you see.
-
-If you see typos or documentation issues in the generated docs, please
-email or open a bug ticket instead of patching.
-
-### Learning Dist::Zilla
-
-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`
-    $ dzil authordeps | cpanm
-
-Once installed, here are some dzil commands you might try:
-
-    $ dzil build
-    $ dzil test
-    $ dzil xtest
-
-You can learn more about Dist::Zilla at http://dzil.org/
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/CONTRIBUTING.mkdn 
new/Test-Number-Delta-1.06/CONTRIBUTING.mkdn
--- old/Test-Number-Delta-1.04/CONTRIBUTING.mkdn        1970-01-01 
01:00:00.000000000 +0100
+++ new/Test-Number-Delta-1.06/CONTRIBUTING.mkdn        2014-11-25 
13:09:12.000000000 +0100
@@ -0,0 +1,87 @@
+## HOW TO CONTRIBUTE
+
+Thank you for considering contributing to this distribution.  This file
+contains instructions that will help you work with the source code.
+
+The distribution is managed with Dist::Zilla.  This means than many of the
+usual files you might expect are not in the repository, but are generated at
+release time, as is much of the documentation.  Some generated files are
+kept in the repository as a convenience (e.g. Makefile.PL or cpanfile).
+
+Generally, **you do not need Dist::Zilla to contribute patches**.  You do need
+Dist::Zilla to create a tarball.  See below for guidance.
+
+### Getting dependencies
+
+If you have App::cpanminus 1.6 or later installed, you can use `cpanm` to
+satisfy dependencies like this:
+
+    $ cpanm --installdeps .
+
+Otherwise, look for either a `Makefile.PL` or `cpanfile` file for
+a list of dependencies to satisfy.
+
+### Running tests
+
+You can run tests directly using the `prove` tool:
+
+    $ prove -l
+    $ prove -lv t/some_test_file.t
+
+For most of my distributions, `prove` is entirely sufficient for you to test 
any
+patches you have. I use `prove` for 99% of my testing during development.
+
+### Code style and tidying
+
+Please try to match any existing coding style.  If there is a `.perltidyrc`
+file, please install Perl::Tidy and use perltidy before submitting patches.
+
+If there is a `tidyall.ini` file, you can also install Code::TidyAll and run
+`tidyall` on a file or `tidyall -a` to tidy all files.
+
+### Patching documentation
+
+Much of the documentation Pod is generated at release time.  Some is
+generated boilerplate; other documentation is built from pseudo-POD
+directives in the source like C<=method> or C<=func>.
+
+If you would like to submit a documentation edit, please limit yourself to
+the documentation you see.
+
+If you see typos or documentation issues in the generated docs, please
+email or open a bug ticket instead of patching.
+
+### Installing and using Dist::Zilla
+
+Dist::Zilla is a very powerful authoring tool, optimized for maintaining a
+large number of distributions with a high degree of automation, but it has a
+large dependency chain, a bit of a learning curve and requires a number of
+author-specific plugins.
+
+To install it from CPAN, I recommend one of the following approaches for
+the quickest installation:
+
+    # using CPAN.pm, but bypassing non-functional pod tests
+    $ cpan TAP::Harness::Restricted
+    $ PERL_MM_USE_DEFAULT=1 HARNESS_CLASS=TAP::Harness::Restricted cpan 
Dist::Zilla
+
+    # using cpanm, bypassing *all* tests
+    $ cpanm -n Dist::Zilla
+
+In either case, it's probably going to take about 10 minutes.  Go for a walk,
+go get a cup of your favorite beverage, take a bathroom break, or whatever.
+When you get back, Dist::Zilla should be ready for you.
+
+Then you need to install any plugins specific to this distribution:
+
+    $ cpan `dzil authordeps`
+    $ dzil authordeps | cpanm
+
+Once installed, here are some dzil commands you might try:
+
+    $ dzil build
+    $ dzil test
+    $ dzil xtest
+
+You can learn more about Dist::Zilla at http://dzil.org/
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/Changes 
new/Test-Number-Delta-1.06/Changes
--- old/Test-Number-Delta-1.04/Changes  2013-11-21 00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/Changes  2014-11-25 13:09:12.000000000 +0100
@@ -1,5 +1,24 @@
 Revision history for Perl module Test::Number::Delta
 
+1.06      2014-11-25 07:09:08-05:00 America/New_York
+
+    [Fixed]
+
+    - Make 0 and 0 compare equal with a relative epsilon
+
+    [Documented]
+
+    - Added SEE ALSO with Number::Tolerant and Test::Deep::NumberTolerant
+
+1.05      2014-11-24 11:08:11-05:00 America/New_York
+
+    [Fixed]
+
+    - relative comparison of array reference elements now works as intended
+
+    - diagnostics of delta_not_ok and delta_not_within clarified under
+      relative comparison
+
 1.04      2013-11-20 18:43:32 America/New_York
 
     - Modernized distribution metadata and licensing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/LICENSE 
new/Test-Number-Delta-1.06/LICENSE
--- old/Test-Number-Delta-1.04/LICENSE  2013-11-21 00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/LICENSE  2014-11-25 13:09:12.000000000 +0100
@@ -1,4 +1,4 @@
-This software is Copyright (c) 2013 by David Golden.
+This software is Copyright (c) 2014 by David Golden.
 
 This is free software, licensed under:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/MANIFEST 
new/Test-Number-Delta-1.06/MANIFEST
--- old/Test-Number-Delta-1.04/MANIFEST 2013-11-21 00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/MANIFEST 2014-11-25 13:09:12.000000000 +0100
@@ -1,4 +1,5 @@
-CONTRIBUTING
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest 
v5.025.
+CONTRIBUTING.mkdn
 Changes
 LICENSE
 MANIFEST
@@ -10,6 +11,7 @@
 dist.ini
 lib/Test/Number/Delta.pm
 perlcritic.rc
+t/00-report-prereqs.dd
 t/00-report-prereqs.t
 t/01-module-basics.t
 t/02-delta.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/META.json 
new/Test-Number-Delta-1.06/META.json
--- old/Test-Number-Delta-1.04/META.json        2013-11-21 00:43:37.000000000 
+0100
+++ new/Test-Number-Delta-1.06/META.json        2014-11-25 13:09:12.000000000 
+0100
@@ -4,7 +4,7 @@
       "David Golden <[email protected]>"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "Dist::Zilla version 5.006, CPAN::Meta::Converter version 
2.132830",
+   "generated_by" : "Dist::Zilla version 5.025, CPAN::Meta::Converter version 
2.142690",
    "license" : [
       "apache_2_0"
    ],
@@ -27,13 +27,14 @@
    "prereqs" : {
       "configure" : {
          "requires" : {
-            "ExtUtils::MakeMaker" : "6.17"
+            "ExtUtils::MakeMaker" : "6.17",
+            "perl" : "5.006"
          }
       },
       "develop" : {
          "requires" : {
-            "Dist::Zilla" : "5.006",
-            "Dist::Zilla::PluginBundle::DAGOLDEN" : "0.059",
+            "Dist::Zilla" : "5",
+            "Dist::Zilla::PluginBundle::DAGOLDEN" : "0.072",
             "File::Spec" : "0",
             "File::Temp" : "0",
             "IO::Handle" : "0",
@@ -42,7 +43,9 @@
             "Test::CPAN::Meta" : "0",
             "Test::More" : "0",
             "Test::Pod" : "1.41",
-            "Test::Pod::Coverage" : "1.08"
+            "Test::Pod::Coverage" : "1.08",
+            "Test::Spelling" : "0.12",
+            "Test::Version" : "1"
          }
       },
       "runtime" : {
@@ -58,22 +61,21 @@
       },
       "test" : {
          "recommends" : {
-            "CPAN::Meta" : "0",
-            "CPAN::Meta::Requirements" : "0"
+            "CPAN::Meta" : "2.120900"
          },
          "requires" : {
             "ExtUtils::MakeMaker" : "0",
-            "File::Spec::Functions" : "0",
-            "List::Util" : "0",
+            "File::Spec" : "0",
             "Test::Builder::Tester" : "1.02",
-            "Test::More" : "0"
+            "Test::More" : "0",
+            "perl" : "5.006"
          }
       }
    },
    "provides" : {
       "Test::Number::Delta" : {
          "file" : "lib/Test/Number/Delta.pm",
-         "version" : "1.04"
+         "version" : "1.06"
       }
    },
    "release_status" : "stable",
@@ -88,7 +90,7 @@
          "web" : "https://github.com/dagolden/Test-Number-Delta";
       }
    },
-   "version" : "1.04",
+   "version" : "1.06",
    "x_authority" : "cpan:DAGOLDEN"
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/META.yml 
new/Test-Number-Delta-1.06/META.yml
--- old/Test-Number-Delta-1.04/META.yml 2013-11-21 00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/META.yml 2014-11-25 13:09:12.000000000 +0100
@@ -3,19 +3,20 @@
 author:
   - 'David Golden <[email protected]>'
 build_requires:
-  ExtUtils::MakeMaker: 0
-  File::Spec::Functions: 0
-  List::Util: 0
-  Test::Builder::Tester: 1.02
-  Test::More: 0
+  ExtUtils::MakeMaker: '0'
+  File::Spec: '0'
+  Test::Builder::Tester: '1.02'
+  Test::More: '0'
+  perl: '5.006'
 configure_requires:
-  ExtUtils::MakeMaker: 6.17
+  ExtUtils::MakeMaker: '6.17'
+  perl: '5.006'
 dynamic_config: 0
-generated_by: 'Dist::Zilla version 5.006, CPAN::Meta::Converter version 
2.132830'
+generated_by: 'Dist::Zilla version 5.025, CPAN::Meta::Converter version 
2.142690'
 license: apache
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
-  version: 1.4
+  version: '1.4'
 name: Test-Number-Delta
 no_index:
   directory:
@@ -28,18 +29,18 @@
 provides:
   Test::Number::Delta:
     file: lib/Test/Number/Delta.pm
-    version: 1.04
+    version: '1.06'
 requires:
-  Carp: 0
-  Exporter: 0
-  Test::Builder: 0
-  perl: 5.006
-  strict: 0
-  vars: 0
-  warnings: 0
+  Carp: '0'
+  Exporter: '0'
+  Test::Builder: '0'
+  perl: '5.006'
+  strict: '0'
+  vars: '0'
+  warnings: '0'
 resources:
   bugtracker: https://github.com/dagolden/Test-Number-Delta/issues
   homepage: https://github.com/dagolden/Test-Number-Delta
   repository: https://github.com/dagolden/Test-Number-Delta.git
-version: 1.04
+version: '1.06'
 x_authority: cpan:DAGOLDEN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/Makefile.PL 
new/Test-Number-Delta-1.06/Makefile.PL
--- old/Test-Number-Delta-1.04/Makefile.PL      2013-11-21 00:43:37.000000000 
+0100
+++ new/Test-Number-Delta-1.06/Makefile.PL      2014-11-25 13:09:12.000000000 
+0100
@@ -1,4 +1,5 @@
 
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker 
v5.025.
 use strict;
 use warnings;
 
@@ -11,13 +12,13 @@
 my %WriteMakefileArgs = (
   "ABSTRACT" => "Compare the difference between numbers against a given 
tolerance",
   "AUTHOR" => "David Golden <dagolden\@cpan.org>",
-  "BUILD_REQUIRES" => {},
   "CONFIGURE_REQUIRES" => {
     "ExtUtils::MakeMaker" => "6.17"
   },
   "DISTNAME" => "Test-Number-Delta",
   "EXE_FILES" => [],
   "LICENSE" => "apache",
+  "MIN_PERL_VERSION" => "5.006",
   "NAME" => "Test::Number::Delta",
   "PREREQ_PM" => {
     "Carp" => 0,
@@ -29,12 +30,11 @@
   },
   "TEST_REQUIRES" => {
     "ExtUtils::MakeMaker" => 0,
-    "File::Spec::Functions" => 0,
-    "List::Util" => 0,
+    "File::Spec" => 0,
     "Test::Builder::Tester" => "1.02",
     "Test::More" => 0
   },
-  "VERSION" => "1.04",
+  "VERSION" => "1.06",
   "test" => {
     "TESTS" => "t/*.t"
   }
@@ -44,9 +44,8 @@
 my %FallbackPrereqs = (
   "Carp" => 0,
   "Exporter" => 0,
-  "ExtUtils::MakeMaker" => 0,
-  "File::Spec::Functions" => 0,
-  "List::Util" => 0,
+  "ExtUtils::MakeMaker" => "6.17",
+  "File::Spec" => 0,
   "Test::Builder" => 0,
   "Test::Builder::Tester" => "1.02",
   "Test::More" => 0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/README 
new/Test-Number-Delta-1.06/README
--- old/Test-Number-Delta-1.04/README   2013-11-21 00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/README   2014-11-25 13:09:12.000000000 +0100
@@ -3,7 +3,7 @@
     given tolerance
 
 VERSION
-    version 1.04
+    version 1.06
 
 SYNOPSIS
       # Import test functions
@@ -152,6 +152,11 @@
     See "USAGE" for details on changing the default. Otherwise, this
     function works the same as "delta_not_within".
 
+SEE ALSO
+    *   Number::Tolerant
+
+    *   Test::Deep::NumberTolerant
+
 SUPPORT
   Bugs / Feature Requests
     Please report any bugs or feature requests through the issue tracker at
@@ -170,7 +175,7 @@
     David Golden <[email protected]>
 
 COPYRIGHT AND LICENSE
-    This software is Copyright (c) 2013 by David Golden.
+    This software is Copyright (c) 2014 by David Golden.
 
     This is free software, licensed under:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/cpanfile 
new/Test-Number-Delta-1.06/cpanfile
--- old/Test-Number-Delta-1.04/cpanfile 2013-11-21 00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/cpanfile 2014-11-25 13:09:12.000000000 +0100
@@ -8,24 +8,24 @@
 
 on 'test' => sub {
   requires "ExtUtils::MakeMaker" => "0";
-  requires "File::Spec::Functions" => "0";
-  requires "List::Util" => "0";
+  requires "File::Spec" => "0";
   requires "Test::Builder::Tester" => "1.02";
   requires "Test::More" => "0";
+  requires "perl" => "5.006";
 };
 
 on 'test' => sub {
-  recommends "CPAN::Meta" => "0";
-  recommends "CPAN::Meta::Requirements" => "0";
+  recommends "CPAN::Meta" => "2.120900";
 };
 
 on 'configure' => sub {
   requires "ExtUtils::MakeMaker" => "6.17";
+  requires "perl" => "5.006";
 };
 
 on 'develop' => sub {
-  requires "Dist::Zilla" => "5.006";
-  requires "Dist::Zilla::PluginBundle::DAGOLDEN" => "0.059";
+  requires "Dist::Zilla" => "5";
+  requires "Dist::Zilla::PluginBundle::DAGOLDEN" => "0.072";
   requires "File::Spec" => "0";
   requires "File::Temp" => "0";
   requires "IO::Handle" => "0";
@@ -35,4 +35,6 @@
   requires "Test::More" => "0";
   requires "Test::Pod" => "1.41";
   requires "Test::Pod::Coverage" => "1.08";
+  requires "Test::Spelling" => "0.12";
+  requires "Test::Version" => "1";
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/dist.ini 
new/Test-Number-Delta-1.06/dist.ini
--- old/Test-Number-Delta-1.04/dist.ini 2013-11-21 00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/dist.ini 2014-11-25 13:09:12.000000000 +0100
@@ -4,4 +4,4 @@
 copyright_holder = David Golden
 
 [@DAGOLDEN]
-:version = 0.059
+:version = 0.072
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/lib/Test/Number/Delta.pm 
new/Test-Number-Delta-1.06/lib/Test/Number/Delta.pm
--- old/Test-Number-Delta-1.04/lib/Test/Number/Delta.pm 2013-11-21 
00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/lib/Test/Number/Delta.pm 2014-11-25 
13:09:12.000000000 +0100
@@ -3,7 +3,8 @@
 
 package Test::Number::Delta;
 # ABSTRACT: Compare the difference between numbers against a given tolerance
-our $VERSION = '1.04'; # VERSION
+
+our $VERSION = '1.06';
 
 use vars qw (@EXPORT @ISA);
 
@@ -15,6 +16,103 @@
 @ISA    = qw( Exporter );
 @EXPORT = qw( delta_not_ok delta_ok delta_within delta_not_within );
 
+#pod =head1 SYNOPSIS
+#pod
+#pod   # Import test functions
+#pod   use Test::Number::Delta;
+#pod
+#pod   # Equality test with default tolerance
+#pod   delta_ok( 1e-5, 2e-5, 'values within 1e-6');
+#pod
+#pod   # Inequality test with default tolerance
+#pod   delta_not_ok( 1e-5, 2e-5, 'values not within 1e-6');
+#pod
+#pod   # Provide specific tolerance
+#pod   delta_within( 1e-3, 2e-3, 1e-4, 'values within 1e-4');
+#pod   delta_not_within( 1e-3, 2e-3, 1e-4, 'values not within 1e-4');
+#pod
+#pod   # Compare arrays or matrices
+#pod   @a = ( 3.14, 1.41 );
+#pod   @b = ( 3.15, 1.41 );
+#pod   delta_ok( \@a, \@b, 'compare @a and @b' );
+#pod
+#pod   # Set a different default tolerance
+#pod   use Test::Number::Delta within => 1e-5;
+#pod   delta_ok( 1.1e-5, 2e-5, 'values within 1e-5'); # ok
+#pod
+#pod   # Set a relative tolerance
+#pod   use Test::Number::Delta relative => 1e-3;
+#pod   delta_ok( 1.01, 1.0099, 'values within 1.01e-3');
+#pod
+#pod
+#pod =head1 DESCRIPTION
+#pod
+#pod At some point or another, most programmers find they need to compare
+#pod floating-point numbers for equality.  The typical idiom is to test
+#pod if the absolute value of the difference of the numbers is within a desired
+#pod tolerance, usually called epsilon.  This module provides such a function 
for use
+#pod with L<Test::More>.  Usage is similar to other test functions described in
+#pod L<Test::More>.  Semantically, the C<delta_within> function replaces this 
kind
+#pod of construct:
+#pod
+#pod  ok ( abs($p - $q) < $epsilon, '$p is equal to $q' ) or
+#pod      diag "$p is not equal to $q to within $epsilon";
+#pod
+#pod While there's nothing wrong with that construct, it's painful to type it
+#pod repeatedly in a test script.  This module does the same thing with a 
single
+#pod function call.  The C<delta_ok> function is similar, but either uses a 
global
+#pod default value for epsilon or else calculates a 'relative' epsilon on
+#pod the fly so that epsilon is scaled automatically to the size of the 
arguments to
+#pod C<delta_ok>.  Both functions are exported automatically.
+#pod
+#pod Because checking floating-point equality is not always reliable, it is not
+#pod possible to check the 'equal to' boundary of 'less than or equal to
+#pod epsilon'.  Therefore, Test::Number::Delta only compares if the absolute 
value
+#pod of the difference is B<less than> epsilon (for equality tests) or
+#pod B<greater than> epsilon (for inequality tests).
+#pod
+#pod =head1 USAGE
+#pod
+#pod =head2 use Test::Number::Delta;
+#pod
+#pod With no arguments, epsilon defaults to 1e-6. (An arbitrary choice on the
+#pod author's part.)
+#pod
+#pod =head2 use Test::Number::Delta within => 1e-9;
+#pod
+#pod To specify a different default value for epsilon, provide a C<within> 
parameter
+#pod when importing the module.  The value must be non-zero.
+#pod
+#pod =head2 use Test::Number::Delta relative => 1e-3;
+#pod
+#pod As an alternative to using a fixed value for epsilon, provide a 
C<relative>
+#pod parameter when importing the module.  This signals that C<delta_ok> should
+#pod test equality with an epsilon that is scaled to the size of the arguments.
+#pod Epsilon is calculated as the relative value times the absolute value
+#pod of the argument with the greatest magnitude.  Mathematically, for 
arguments
+#pod 'x' and 'y':
+#pod
+#pod  epsilon = relative * max( abs(x), abs(y) )
+#pod
+#pod For example, a relative value of "0.01" would mean that the arguments are 
equal
+#pod if they differ by less than 1% of the larger of the two values.  A 
relative
+#pod value of 1e-6 means that the arguments must differ by less than 1 
millionth
+#pod of the larger value.  The relative value must be non-zero.
+#pod
+#pod =head2 Combining with a test plan
+#pod
+#pod  use Test::Number::Delta 'no_plan';
+#pod
+#pod  # or
+#pod
+#pod  use Test::Number::Delta within => 1e-9, tests => 1;
+#pod
+#pod If a test plan has not already been specified, the optional
+#pod parameter for Test::Number::Delta may be followed with a test plan (see
+#pod L<Test::More> for details).  If a parameter for Test::Number::Delta is
+#pod given, it must come first.
+#pod
+#pod =cut
 
 my $Test     = Test::Builder->new;
 my $Epsilon  = 1e-6;
@@ -50,14 +148,26 @@
 #--------------------------------------------------------------------------#
 
 sub _check {
-    my ( $p, $q, $epsilon, $name, @indices ) = @_;
+    my ( $p, $q, $e, $name, @indices ) = @_;
+    my $epsilon;
+
+    if ( !defined $e ) {
+        $epsilon =
+            $Relative
+          ? $Relative * ( abs($p) > abs($q) ? abs($p) : abs($q) )
+          : $Epsilon;
+    }
+    else {
+        $epsilon = abs($e);
+    }
+
     my ( $ok, $diag ) = ( 1, q{} ); # assume true
     if ( ref $p eq 'ARRAY' || ref $q eq 'ARRAY' ) {
         if ( @$p == @$q ) {
             for my $i ( 0 .. $#{$p} ) {
                 my @new_indices;
-                ( $ok, $diag, @new_indices ) = _check( $p->[$i], $q->[$i], 
$epsilon, $name,
-                    scalar @indices ? @indices : (), $i, );
+                ( $ok, $diag, @new_indices ) =
+                  _check( $p->[$i], $q->[$i], $e, $name, scalar @indices ? 
@indices : (), $i, );
                 if ( not $ok ) {
                     @indices = @new_indices;
                     last;
@@ -74,7 +184,7 @@
         }
     }
     else {
-        $ok = abs( $p - $q ) < $epsilon;
+        $ok = $p == $q || abs( $p - $q ) < $epsilon;
         if ( !$ok ) {
             my ( $ep, $dp ) = _ep_dp($epsilon);
             $diag = sprintf( "%.${dp}f and %.${dp}f are not equal" . " to 
within %.${ep}f",
@@ -86,23 +196,77 @@
 
 sub _ep_dp {
     my $epsilon = shift;
+    return ( 0, 0 ) unless $epsilon;
+    $epsilon = abs($epsilon);
     my ($exp) = sprintf( "%e", $epsilon ) =~ m/e(.+)/;
     my $ep = $exp < 0 ? -$exp : 1;
     my $dp = $ep + 1;
     return ( $ep, $dp );
 }
 
+sub _diag_default {
+    my ($ep) = _ep_dp( abs( $Relative || $Epsilon ) );
+    my $diag = "Arguments are equal to within ";
+    $diag .=
+      $Relative
+      ? sprintf( "relative tolerance %.${ep}f", abs($Relative) )
+      : sprintf( "%.${ep}f",                    abs($Epsilon) );
+    return $diag;
+}
+
+#pod =head1 FUNCTIONS
+#pod
+#pod =cut
 
 #--------------------------------------------------------------------------#
 # delta_within()
 #--------------------------------------------------------------------------#
 
+#pod =head2 delta_within
+#pod
+#pod  delta_within(  $p,  $q, $epsilon, '$p and $q are equal within $epsilon' 
);
+#pod  delta_within( \@p, \@q, $epsilon, '@p and @q are equal within $epsilon' 
);
+#pod
+#pod This function tests for equality within a given value of epsilon. The 
test is
+#pod true if the absolute value of the difference between $p and $q is B<less 
than>
+#pod epsilon.  If the test is true, it prints an "OK" statement for use in 
testing.
+#pod If the test is not true, this function prints a failure report and 
diagnostic.
+#pod Epsilon must be non-zero.
+#pod
+#pod The values to compare may be scalars or references to arrays.  If the 
values
+#pod are references to arrays, the comparison is done pairwise for each index 
value
+#pod of the array.  The pairwise comparison is recursive, so matrices may
+#pod be compared as well.
+#pod
+#pod For example, this code sample compares two matrices:
+#pod
+#pod     my @a = (   [ 3.14, 6.28 ],
+#pod                 [ 1.41, 2.84 ]   );
+#pod
+#pod     my @b = (   [ 3.14, 6.28 ],
+#pod                 [ 1.42, 2.84 ]   );
+#pod
+#pod     delta_within( \@a, \@b, 1e-6, 'compare @a and @b' );
+#pod
+#pod The sample prints the following:
+#pod
+#pod     not ok 1 - compare @a and @b
+#pod     # At [1][0]: 1.4100000 and 1.4200000 are not equal to within 0.000001
+#pod
+#pod =cut
 
 sub delta_within($$$;$) { ## no critic
     my ( $p, $q, $epsilon, $name ) = @_;
     croak "Value of epsilon to delta_within must be non-zero"
-      if $epsilon == 0;
-    $epsilon = abs($epsilon);
+      if !defined($epsilon) || $epsilon == 0;
+    {
+        local $Test::Builder::Level = $Test::Builder::Level + 1;
+        _delta_within( $p, $q, $epsilon, $name );
+    }
+}
+
+sub _delta_within {
+    my ( $p, $q, $epsilon, $name ) = @_;
     my ( $ok, $diag, @indices ) = _check( $p, $q, $epsilon, $name );
     if (@indices) {
         $diag = "At [" . join( "][", @indices ) . "]: $diag";
@@ -114,16 +278,22 @@
 # delta_ok()
 #--------------------------------------------------------------------------#
 
+#pod =head2 delta_ok
+#pod
+#pod  delta_ok(  $p,  $q, '$p and $q are close enough to equal' );
+#pod  delta_ok( \@p, \@q, '@p and @q are close enough to equal' );
+#pod
+#pod This function tests for equality within a default epsilon value.  See 
L</USAGE>
+#pod for details on changing the default.  Otherwise, this function works the 
same
+#pod as C<delta_within>.
+#pod
+#pod =cut
 
 sub delta_ok($$;$) { ## no critic
     my ( $p, $q, $name ) = @_;
     {
         local $Test::Builder::Level = $Test::Builder::Level + 1;
-        my $e =
-            $Relative
-          ? $Relative * ( abs($p) > abs($q) ? abs($p) : abs($q) )
-          : $Epsilon;
-        delta_within( $p, $q, $e, $name );
+        _delta_within( $p, $q, undef, $name );
     }
 }
 
@@ -131,32 +301,68 @@
 # delta_not_ok()
 #--------------------------------------------------------------------------#
 
+#pod =head2 delta_not_within
+#pod
+#pod  delta_not_within(  $p,  $q, '$p and $q are different' );
+#pod  delta_not_within( \@p, \@q, $epsilon, '@p and @q are different' );
+#pod
+#pod This test compares inequality in excess of a given value of epsilon. The 
test
+#pod is true if the absolute value of the difference between $p and $q is 
B<greater
+#pod than> epsilon.  For array or matrix comparisons, the test is true if 
I<any>
+#pod pair of values differs by more than epsilon.  Otherwise, this function 
works
+#pod the same as C<delta_within>.
+#pod
+#pod =cut
 
 sub delta_not_within($$$;$) { ## no critic
     my ( $p, $q, $epsilon, $name ) = @_;
     croak "Value of epsilon to delta_not_within must be non-zero"
-      if $epsilon == 0;
-    $epsilon = abs($epsilon);
+      if !defined($epsilon) || $epsilon == 0;
+    {
+        local $Test::Builder::Level = $Test::Builder::Level + 1;
+        _delta_not_within( $p, $q, $epsilon, $name );
+    }
+}
+
+sub _delta_not_within($$$;$) { ## no critic
+    my ( $p, $q, $epsilon, $name ) = @_;
     my ( $ok, undef, @indices ) = _check( $p, $q, $epsilon, $name );
     $ok = !$ok;
     my ( $ep, $dp ) = _ep_dp($epsilon);
-    my $diag = sprintf( "Arguments are equal to within %.${ep}f", $epsilon );
+    my $diag =
+      defined($epsilon)
+      ? sprintf( "Arguments are equal to within %.${ep}f", abs($epsilon) )
+      : _diag_default();
     return $Test->ok( $ok, $name ) || $Test->diag($diag);
 }
 
+#pod =head2 delta_not_ok
+#pod
+#pod  delta_not_ok(  $p,  $q, '$p and $q are different' );
+#pod  delta_not_ok( \@p, \@q, '@p and @q are different' );
+#pod
+#pod This function tests for inequality in excess of a default epsilon value.  
See
+#pod L</USAGE> for details on changing the default.  Otherwise, this function 
works
+#pod the same as C<delta_not_within>.
+#pod
+#pod =cut
 
 sub delta_not_ok($$;$) { ## no critic
     my ( $p, $q, $name ) = @_;
     {
         local $Test::Builder::Level = $Test::Builder::Level + 1;
-        my $e =
-            $Relative
-          ? $Relative * ( abs($p) > abs($q) ? abs($p) : abs($q) )
-          : $Epsilon;
-        delta_not_within( $p, $q, $e, $name );
+        _delta_not_within( $p, $q, undef, $name );
     }
 }
 
+#pod =head1 SEE ALSO
+#pod
+#pod =for :list
+#pod * L<Number::Tolerant>
+#pod * L<Test::Deep::NumberTolerant>
+#pod
+#pod =cut
+
 1;
 
 __END__
@@ -171,7 +377,7 @@
 
 =head1 VERSION
 
-version 1.04
+version 1.06
 
 =head1 SYNOPSIS
 
@@ -330,6 +536,20 @@
 L</USAGE> for details on changing the default.  Otherwise, this function works
 the same as C<delta_not_within>.
 
+=head1 SEE ALSO
+
+=over 4
+
+=item *
+
+L<Number::Tolerant>
+
+=item *
+
+L<Test::Deep::NumberTolerant>
+
+=back
+
 =for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants 
kwalitee diff irc mailto metadata placeholders metacpan
 
 =head1 SUPPORT
@@ -355,7 +575,7 @@
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is Copyright (c) 2013 by David Golden.
+This software is Copyright (c) 2014 by David Golden.
 
 This is free software, licensed under:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/perlcritic.rc 
new/Test-Number-Delta-1.06/perlcritic.rc
--- old/Test-Number-Delta-1.04/perlcritic.rc    2013-11-21 00:43:37.000000000 
+0100
+++ new/Test-Number-Delta-1.06/perlcritic.rc    2014-11-25 13:09:12.000000000 
+0100
@@ -7,6 +7,9 @@
 [TestingAndDebugging::ProhibitNoStrict]
 allow = refs
 
+[Variables::ProhibitEvilVariables]
+variables = $DB::single
+
 # Turn these off
 [-BuiltinFunctions::ProhibitStringyEval]
 [-ControlStructures::ProhibitPostfixControls]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/t/00-report-prereqs.dd 
new/Test-Number-Delta-1.06/t/00-report-prereqs.dd
--- old/Test-Number-Delta-1.04/t/00-report-prereqs.dd   1970-01-01 
01:00:00.000000000 +0100
+++ new/Test-Number-Delta-1.06/t/00-report-prereqs.dd   2014-11-25 
13:09:12.000000000 +0100
@@ -0,0 +1,50 @@
+do { my $x = {
+       'configure' => {
+                        'requires' => {
+                                        'ExtUtils::MakeMaker' => '6.17',
+                                        'perl' => '5.006'
+                                      }
+                      },
+       'develop' => {
+                      'requires' => {
+                                      'Dist::Zilla' => '5',
+                                      'Dist::Zilla::PluginBundle::DAGOLDEN' => 
'0.072',
+                                      'File::Spec' => '0',
+                                      'File::Temp' => '0',
+                                      'IO::Handle' => '0',
+                                      'IPC::Open3' => '0',
+                                      'Pod::Coverage::TrustPod' => '0',
+                                      'Test::CPAN::Meta' => '0',
+                                      'Test::More' => '0',
+                                      'Test::Pod' => '1.41',
+                                      'Test::Pod::Coverage' => '1.08',
+                                      'Test::Spelling' => '0.12',
+                                      'Test::Version' => '1'
+                                    }
+                    },
+       'runtime' => {
+                      'requires' => {
+                                      'Carp' => '0',
+                                      'Exporter' => '0',
+                                      'Test::Builder' => '0',
+                                      'perl' => '5.006',
+                                      'strict' => '0',
+                                      'vars' => '0',
+                                      'warnings' => '0'
+                                    }
+                    },
+       'test' => {
+                   'recommends' => {
+                                     'CPAN::Meta' => '2.120900'
+                                   },
+                   'requires' => {
+                                   'ExtUtils::MakeMaker' => '0',
+                                   'File::Spec' => '0',
+                                   'Test::Builder::Tester' => '1.02',
+                                   'Test::More' => '0',
+                                   'perl' => '5.006'
+                                 }
+                 }
+     };
+  $x;
+ }
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/t/00-report-prereqs.t 
new/Test-Number-Delta-1.06/t/00-report-prereqs.t
--- old/Test-Number-Delta-1.04/t/00-report-prereqs.t    2013-11-21 
00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/t/00-report-prereqs.t    2014-11-25 
13:09:12.000000000 +0100
@@ -3,125 +3,174 @@
 use strict;
 use warnings;
 
-# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.010
+# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.019
 
 use Test::More tests => 1;
 
 use ExtUtils::MakeMaker;
-use File::Spec::Functions;
-use List::Util qw/max/;
+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 @modules = qw(
-  CPAN::Meta
-  CPAN::Meta::Requirements
-  Carp
-  Exporter
-  ExtUtils::MakeMaker
-  File::Spec::Functions
-  List::Util
-  Test::Builder
-  Test::Builder::Tester
-  Test::More
-  perl
-  strict
-  vars
-  warnings
 );
 
-my %exclude = map {; $_ => 1 } qw(
+my @exclude = qw(
 
 );
 
-my ($source) = grep { -f $_ } qw/MYMETA.json MYMETA.yml META.json/;
-$source = "META.yml" unless defined $source;
+# Add static prereqs to the included modules list
+my $static_prereqs = do 't/00-report-prereqs.dd';
 
-# replace modules with dynamic results from MYMETA.json if we can
-# (hide CPAN::Meta from prereq scanner)
-my $cpan_meta = "CPAN::Meta";
-my $cpan_meta_req = "CPAN::Meta::Requirements";
-my $all_requires;
-if ( -f $source && eval "require $cpan_meta" ) { ## no critic
-  if ( my $meta = eval { CPAN::Meta->load_file($source) } ) {
-
-    # Get ALL modules mentioned in META (any phase/type)
-    my $prereqs = $meta->prereqs;
-    delete $prereqs->{develop} if not $ENV{AUTHOR_TESTING};
-    my %uniq = map {$_ => 1} map { keys %$_ } map { values %$_ } values 
%$prereqs;
-    $uniq{$_} = 1 for @modules; # don't lose any static ones
-    @modules = sort grep { ! $exclude{$_} } keys %uniq;
-
-    # If verifying, merge 'requires' only for major phases
-    if ( 1 ) {
-      $prereqs = $meta->effective_prereqs; # get the object, not the hash
-      if (eval "require $cpan_meta_req; 1") { ## no critic
-        $all_requires = $cpan_meta_req->new;
-        for my $phase ( qw/configure build test runtime/ ) {
-          $all_requires->add_requirements(
-            $prereqs->requirements_for($phase, 'requires')
-          );
-        }
-      }
+# 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';
+if ( $source && $HAS_CPAN_META ) {
+    if ( my $meta = eval { CPAN::Meta->load_file($source) } ) {
+        $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs);
     }
-  }
+}
+else {
+    $source = 'static metadata';
 }
 
-my @reports = [qw/Version Module/];
+my @full_reports;
 my @dep_errors;
-my $req_hash = defined($all_requires) ? $all_requires->as_string_hash : {};
+my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs;
 
-for my $mod ( @modules ) {
-  next if $mod eq 'perl';
-  my $file = $mod;
-  $file =~ s{::}{/}g;
-  $file .= ".pm";
-  my ($prefix) = grep { -e catfile($_, $file) } @INC;
-  if ( $prefix ) {
-    my $ver = MM->parse_version( catfile($prefix, $file) );
-    $ver = "undef" unless defined $ver; # Newer MM should do this anyway
-    push @reports, [$ver, $mod];
-
-    if ( 1 && $all_requires ) {
-      my $req = $req_hash->{$mod};
-      if ( defined $req && length $req ) {
-        if ( ! defined eval { version->parse($ver) } ) {
-          push @dep_errors, "$mod version '$ver' cannot be parsed (version 
'$req' required)";
-        }
-        elsif ( ! $all_requires->accepts_module( $mod => $ver ) ) {
-          push @dep_errors, "$mod version '$ver' is not in required range 
'$req'";
+# 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)";
+                }
+            }
         }
-      }
-    }
 
-  }
-  else {
-    push @reports, ["missing", $mod];
-
-    if ( 1 && $all_requires ) {
-      my $req = $req_hash->{$mod};
-      if ( defined $req && length $req ) {
-        push @dep_errors, "$mod is not installed (version '$req' required)";
-      }
+        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 );
+            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 ( @reports ) {
-  my $vl = max map { length $_->[0] } @reports;
-  my $ml = max map { length $_->[1] } @reports;
-  splice @reports, 1, 0, ["-" x $vl, "-" x $ml];
-  diag "\nVersions for all modules listed in $source (including optional 
ones):\n",
-    map {sprintf("  %*s %*s\n",$vl,$_->[0],-$ml,$_->[1])} @reports;
+if ( @full_reports ) {
+    diag "\nVersions for all modules listed in $source (including optional 
ones):\n\n", @full_reports;
 }
 
 if ( @dep_errors ) {
-  diag join("\n",
-    "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING 
***\n",
-    "The following REQUIRED prerequisites were not satisfied:\n",
-    @dep_errors,
-    "\n"
-  );
+    diag join("\n",
+        "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING 
***\n",
+        "The following REQUIRED prerequisites were not satisfied:\n",
+        @dep_errors,
+        "\n"
+    );
 }
 
 pass;
 
-# vim: ts=2 sts=2 sw=2 et:
+# vim: ts=4 sts=4 sw=4 et:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/t/04-specify_relative.t 
new/Test-Number-Delta-1.06/t/04-specify_relative.t
--- old/Test-Number-Delta-1.04/t/04-specify_relative.t  2013-11-21 
00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/t/04-specify_relative.t  2014-11-25 
13:09:12.000000000 +0100
@@ -1,6 +1,6 @@
 use strict;
 
-use Test::Builder::Tester tests  => 12;
+use Test::Builder::Tester tests  => 16;
 use Test::Number::Delta relative => 1e-2;
 
 #--------------------------------------------------------------------------#
@@ -19,6 +19,12 @@
 delta_ok( -50, -49.4, "foo" );
 test_test("delta_ok fail works");
 
+test_out("not ok 1 - foo");
+test_fail(+2);
+test_diag("At [0]: -50.00 and -49.40 are not equal to within 0.5");
+delta_ok( [-50], [-49.4], "foo" );
+test_test("delta_ok fail works");
+
 test_out("ok 1 - foo");
 delta_ok( 10e-5, 9.91e-5, "foo" );
 test_test("delta_ok works");
@@ -35,22 +41,36 @@
 delta_ok( -100, -99.1, "foo" );
 test_test("delta_ok works");
 
+test_out("ok 1 - foo");
+delta_ok( 0, 0, "foo" );
+test_test("delta_ok works");
+
+test_out("ok 1 - foo");
+delta_ok( [0], [0], "foo" );
+test_test("delta_ok works");
+
 #--------------------------------------------------------------------------#
 # delta_not_ok
 #--------------------------------------------------------------------------#
 
 test_out("not ok 1 - foo");
 test_fail(+2);
-test_diag("Arguments are equal to within 0.00001");
+test_diag("Arguments are equal to within relative tolerance 0.01");
 delta_not_ok( 1e-3, 9.91e-4, "foo" );
 test_test("delta_not_ok fail works");
 
 test_out("not ok 1 - foo");
 test_fail(+2);
-test_diag("Arguments are equal to within 0.5");
+test_diag("Arguments are equal to within relative tolerance 0.01");
 delta_not_ok( -50, -49.6, "foo" );
 test_test("delta_no_ok fail works");
 
+test_out("not ok 1 - foo");
+test_fail(+2);
+test_diag("Arguments are equal to within relative tolerance 0.01");
+delta_not_ok( [-50], [-49.6], "foo" );
+test_test("delta_no_ok fail works");
+
 test_out("ok 1 - foo");
 delta_not_ok( 10e-5, 9.89e-5, "foo" );
 test_test("delta_not_ok works");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Test-Number-Delta-1.04/t/11-specify_negative_relative.t 
new/Test-Number-Delta-1.06/t/11-specify_negative_relative.t
--- old/Test-Number-Delta-1.04/t/11-specify_negative_relative.t 2013-11-21 
00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/t/11-specify_negative_relative.t 2014-11-25 
13:09:12.000000000 +0100
@@ -41,13 +41,13 @@
 
 test_out("not ok 1 - foo");
 test_fail(+2);
-test_diag("Arguments are equal to within 0.00001");
+test_diag("Arguments are equal to within relative tolerance 0.01");
 delta_not_ok( 1e-3, 9.91e-4, "foo" );
 test_test("delta_not_ok fail works");
 
 test_out("not ok 1 - foo");
 test_fail(+2);
-test_diag("Arguments are equal to within 0.5");
+test_diag("Arguments are equal to within relative tolerance 0.01");
 delta_not_ok( -50, -49.6, "foo" );
 test_test("delta_no_ok fail works");
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/xt/author/00-compile.t 
new/Test-Number-Delta-1.06/xt/author/00-compile.t
--- old/Test-Number-Delta-1.04/xt/author/00-compile.t   2013-11-21 
00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/xt/author/00-compile.t   2014-11-25 
13:09:12.000000000 +0100
@@ -1,11 +1,12 @@
+use 5.006;
 use strict;
 use warnings;
 
-# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.037
-
-use Test::More  tests => 1 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.051
 
+use Test::More;
 
+plan tests => 1 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
 
 my @module_files = (
     'Test/Number/Delta.pm'
@@ -24,11 +25,12 @@
 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<perlfaq8/How can I capture STDERR from an external command?>
-    open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
     my $stderr = IO::Handle->new;
 
     my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', 
"require q[$lib]");
@@ -46,6 +48,7 @@
 
 
 
-is(scalar(@warnings), 0, 'no warnings found') if $ENV{AUTHOR_TESTING};
+is(scalar(@warnings), 0, 'no warnings found')
+    or diag 'got warnings: ', ( Test::More->can('explain') ? 
Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if 
$ENV{AUTHOR_TESTING};
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/xt/author/pod-spell.t 
new/Test-Number-Delta-1.06/xt/author/pod-spell.t
--- old/Test-Number-Delta-1.04/xt/author/pod-spell.t    2013-11-21 
00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/xt/author/pod-spell.t    2014-11-25 
13:09:12.000000000 +0100
@@ -2,7 +2,7 @@
 use warnings;
 use Test::More;
 
-# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006001
+# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006008
 use Test::Spelling 0.12;
 use Pod::Wordlist;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/xt/release/distmeta.t 
new/Test-Number-Delta-1.06/xt/release/distmeta.t
--- old/Test-Number-Delta-1.04/xt/release/distmeta.t    2013-11-21 
00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/xt/release/distmeta.t    2014-11-25 
13:09:12.000000000 +0100
@@ -1,7 +1,6 @@
 #!perl
+# This file was automatically generated by Dist::Zilla::Plugin::MetaTests.
 
-use Test::More;
+use Test::CPAN::Meta;
 
-eval "use Test::CPAN::Meta";
-plan skip_all => "Test::CPAN::Meta required for testing META.yml" if $@;
 meta_yaml_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/xt/release/pod-coverage.t 
new/Test-Number-Delta-1.06/xt/release/pod-coverage.t
--- old/Test-Number-Delta-1.04/xt/release/pod-coverage.t        2013-11-21 
00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/xt/release/pod-coverage.t        2014-11-25 
13:09:12.000000000 +0100
@@ -1,13 +1,7 @@
 #!perl
+# This file was automatically generated by 
Dist::Zilla::Plugin::PodCoverageTests.
 
-use Test::More;
-
-eval "use Test::Pod::Coverage 1.08";
-plan skip_all => "Test::Pod::Coverage 1.08 required for testing POD coverage"
-  if $@;
-
-eval "use Pod::Coverage::TrustPod";
-plan skip_all => "Pod::Coverage::TrustPod required for testing POD coverage"
-  if $@;
+use Test::Pod::Coverage 1.08;
+use Pod::Coverage::TrustPod;
 
 all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/xt/release/pod-syntax.t 
new/Test-Number-Delta-1.06/xt/release/pod-syntax.t
--- old/Test-Number-Delta-1.04/xt/release/pod-syntax.t  2013-11-21 
00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/xt/release/pod-syntax.t  2014-11-25 
13:09:12.000000000 +0100
@@ -1,7 +1,6 @@
 #!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
 use Test::More;
-
-eval "use Test::Pod 1.41";
-plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;
+use Test::Pod 1.41;
 
 all_pod_files_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-Number-Delta-1.04/xt/release/test-version.t 
new/Test-Number-Delta-1.06/xt/release/test-version.t
--- old/Test-Number-Delta-1.04/xt/release/test-version.t        2013-11-21 
00:43:37.000000000 +0100
+++ new/Test-Number-Delta-1.06/xt/release/test-version.t        2014-11-25 
13:09:12.000000000 +0100
@@ -2,8 +2,8 @@
 use warnings;
 use Test::More;
 
-# generated by Dist::Zilla::Plugin::Test::Version 0.002004
-BEGIN { eval "use Test::Version; 1;" or die $@; }
+# generated by Dist::Zilla::Plugin::Test::Version 0.003001
+use Test::Version;
 
 my @imports = ( 'version_all_ok' );
 


Reply via email to