10Sstevel@tonic-gate#!./perl
20Sstevel@tonic-gate
30Sstevel@tonic-gateuse strict;
40Sstevel@tonic-gateuse warnings;
56812Sraf
66812Srafuse Test::More tests => 19;
70Sstevel@tonic-gateuse Scalar::Util qw(looks_like_number);
80Sstevel@tonic-gate
90Sstevel@tonic-gateforeach my $num (qw(1 -1 +1 1.0 +1.0 -1.0 -1.0e-12)) {
100Sstevel@tonic-gate  ok(looks_like_number($num), "'$num'");
110Sstevel@tonic-gate}
120Sstevel@tonic-gate
130Sstevel@tonic-gateis(!!looks_like_number("Inf"),      $] >= 5.006001, 'Inf');
140Sstevel@tonic-gateis(!!looks_like_number("Infinity"), $] >= 5.008,    'Infinity');
150Sstevel@tonic-gateis(!!looks_like_number("NaN"),      $] >= 5.008,    'NaN');
160Sstevel@tonic-gateis(!!looks_like_number("foo"),      '',             'foo');
170Sstevel@tonic-gateis(!!looks_like_number(undef),      '',             'undef');
180Sstevel@tonic-gateis(!!looks_like_number({}),         '',             'HASH Ref');
190Sstevel@tonic-gateis(!!looks_like_number([]),         '',             'ARRAY Ref');
200Sstevel@tonic-gate
216812Srafuse Math::BigInt;
220Sstevel@tonic-gatemy $bi = Math::BigInt->new('1234567890');
236812Srafis(!!looks_like_number($bi),        1,              'Math::BigInt');
240Sstevel@tonic-gateis(!!looks_like_number("$bi"),      1,              'Stringified Math::BigInt');
250Sstevel@tonic-gate
260Sstevel@tonic-gate{ package Foo;
270Sstevel@tonic-gatesub TIEHASH { bless {} }
280Sstevel@tonic-gatesub FETCH { $_[1] }
290Sstevel@tonic-gate}
306812Srafmy %foo;
310Sstevel@tonic-gatetie %foo, 'Foo';
320Sstevel@tonic-gateis(!!looks_like_number($foo{'abc'}),  '',           'Tied');
330Sstevel@tonic-gateis(!!looks_like_number($foo{'123'}),  1,            'Tied');
340Sstevel@tonic-gate
350Sstevel@tonic-gateis(!!looks_like_number("\x{1815}"),   '',           'MONGOLIAN DIGIT FIVE');
360Sstevel@tonic-gate
370Sstevel@tonic-gate# We should copy some of perl core tests like t/base/num.t here
380Sstevel@tonic-gate