1#!/usr/bin/perl -w
2
3BEGIN {
4    unless (-d 'blib') {
5	chdir 't' if -d 't';
6	@INC = '../lib';
7	require Config; import Config;
8	keys %Config; # Silence warning
9	if ($Config{extensions} !~ /\bList\/Util\b/) {
10	    print "1..0 # Skip: List::Util was not built\n";
11	    exit 0;
12	}
13    }
14}
15
16use strict;
17use Test::More tests => 19;
18use Scalar::Util qw(looks_like_number);
19
20foreach my $num (qw(1 -1 +1 1.0 +1.0 -1.0 -1.0e-12)) {
21  ok(looks_like_number($num), "'$num'");
22}
23
24is(!!looks_like_number("Inf"),	    $] >= 5.006001,	'Inf');
25is(!!looks_like_number("Infinity"), $] >= 5.008,	'Infinity');
26is(!!looks_like_number("NaN"),	    $] >= 5.008,	'NaN');
27is(!!looks_like_number("foo"),	    '',			'foo');
28is(!!looks_like_number(undef),	    '',           	'undef');
29is(!!looks_like_number({}),	    '',			'HASH Ref');
30is(!!looks_like_number([]),	    '',			'ARRAY Ref');
31
32use Math::BigInt;
33my $bi = Math::BigInt->new('1234567890');
34is(!!looks_like_number($bi),	    1,			'Math::BigInt');
35is(!!looks_like_number("$bi"),	    1,			'Stringified Math::BigInt');
36
37{ package Foo;
38sub TIEHASH { bless {} }
39sub FETCH { $_[1] }
40}
41my %foo;
42tie %foo, 'Foo';
43is(!!looks_like_number($foo{'abc'}),	    '',			'Tied');
44is(!!looks_like_number($foo{'123'}),	    1,			'Tied');
45
46is(!!looks_like_number("\x{1815}"),	   '',			'MONGOLIAN DIGIT FIVE');
47
48# We should copy some of perl core tests like t/base/num.t here
49