NAME
Test::Deeply::Float - Test equality of data structure, compare numbers with tolerance
VERSION
This document describes version 0.002 of Test::Deeply::Float (from Perl distribution Test-Deeply-Float), released on 2018-08-11.
SYNOPSIS
use Test::More; # exports is_deeply(), etc
use Test::Deeply::Float; # exports is_deeply_float()
is_deeply ({a => 1, b => 1.1234567}, {a => 1, b => 1.1234568}); # fail
is_deeply_float({a => 1, b => 1.1234567}, {a => 1, b => 1.1234568}); # pass
is_deeply_float({a => 1, b => 1.12345 }, {a => 1, b => 1.12346 }); # fail
To customize tolerance level:
$Test::Deeply::Float::EPSILON = 1e-9; # default is 1e-6
DESCRIPTION
Deprecation notice: Deprecated in favor of Test::DataCmp.
This module exports is_deeply_float()
which is just like Test::More's is_deeply()
, except that when comparing two numbers (ints or floats) a tolerance is allowed to work around floating point rounding problem.
FUNCTIONS
is_deeply_float
HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/Test-Deeply-Float.
SOURCE
Source repository is at https://github.com/perlancar/perl-Test-Deeply-Float.
BUGS
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Test-Deeply-Float
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
SEE ALSO
Code is based on Test::More's is_deeply()
.
To compare two floats with tolerance, you can simply do abs($n1 - $n2) < $epsilon
or use one of several modules on CPAN, e.g. Number::Tolerant. For testing, there are Test::Number::Delta, Test::Approximate.
To compare two data structures with tolerant float comparison, there is also Test::Deep (see num()
) with its several extensions e.g. Test::Approximate, Test::Deep::NumberTolerant, Test::Deep::Fuzzy. Note that you need (or: able) to specify the point(s) in the data structure where you want to perform the tolerant comparison at.
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2018 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.