summaryrefslogtreecommitdiff
path: root/cpan/List-Util/t/lln.t
blob: 1499cdb49d063ec7c0ed6c01cc264317d2afa302 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/perl -w

BEGIN {
    unless (-d 'blib') {
	chdir 't' if -d 't';
	@INC = '../lib';
	require Config; import Config;
	keys %Config; # Silence warning
	if ($Config{extensions} !~ /\bList\/Util\b/) {
	    print "1..0 # Skip: List::Util was not built\n";
	    exit 0;
	}
    }
}

use strict;
use Test::More tests => 19;
use Scalar::Util qw(looks_like_number);

foreach my $num (qw(1 -1 +1 1.0 +1.0 -1.0 -1.0e-12)) {
  ok(looks_like_number($num), "'$num'");
}

is(!!looks_like_number("Inf"),	    $] >= 5.006001,	'Inf');
is(!!looks_like_number("Infinity"), $] >= 5.008,	'Infinity');
is(!!looks_like_number("NaN"),	    $] >= 5.008,	'NaN');
is(!!looks_like_number("foo"),	    '',			'foo');
is(!!looks_like_number(undef),	    '',           	'undef');
is(!!looks_like_number({}),	    '',			'HASH Ref');
is(!!looks_like_number([]),	    '',			'ARRAY Ref');

use Math::BigInt;
my $bi = Math::BigInt->new('1234567890');
is(!!looks_like_number($bi),	    1,			'Math::BigInt');
is(!!looks_like_number("$bi"),	    1,			'Stringified Math::BigInt');

{ package Foo;
sub TIEHASH { bless {} }
sub FETCH { $_[1] }
}
my %foo;
tie %foo, 'Foo';
is(!!looks_like_number($foo{'abc'}),	    '',			'Tied');
is(!!looks_like_number($foo{'123'}),	    1,			'Tied');

is(!!looks_like_number("\x{1815}"),	   '',			'MONGOLIAN DIGIT FIVE');

# We should copy some of perl core tests like t/base/num.t here