⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trap.t

📁 source of perl for linux application,
💻 T
字号:
#!/usr/bin/perl -w# test that config ( trap_nan => 1, trap_inf => 1) really works/diesuse strict;use Test::More;BEGIN  {  $| = 1;  chdir 't' if -d 't';  unshift @INC, '../lib'; # for running manually  plan tests => 43;  } use Math::BigInt;use Math::BigFloat;my $mbi = 'Math::BigInt'; my $mbf = 'Math::BigFloat';my ($cfg,$x);foreach my $class ($mbi, $mbf)  {  # can do and defaults are okay?  ok ($class->can('config'), 'can config()');  is ($class->config()->{trap_nan}, 0, 'trap_nan defaults to 0');  is ($class->config()->{trap_inf}, 0, 'trap_inf defaults to 0');  # can set?  $cfg = $class->config( trap_nan => 1 );  is ($cfg->{trap_nan},1, 'trap_nan now true');  # also test that new() still works normally  eval ("\$x = \$class->new('42'); \$x->bnan();");  like ($@, qr/^Tried to set/, 'died');  is ($x,42,'$x after new() never modified');  # can reset?  $cfg = $class->config( trap_nan => 0 );  is ($cfg->{trap_nan}, 0, 'trap_nan disabled');    # can set?  $cfg = $class->config( trap_inf => 1 );  is ($cfg->{trap_inf}, 1, 'trap_inf enabled');  eval ("\$x = \$class->new('4711'); \$x->binf();");  like ($@, qr/^Tried to set/, 'died');  is ($x,4711,'$x after new() never modified');  eval ("\$x = \$class->new('inf');");  like ($@, qr/^Tried to set/, 'died');  is ($x,4711,'$x after new() never modified');    eval ("\$x = \$class->new('-inf');");  like ($@, qr/^Tried to set/, 'died');  is ($x,4711,'$x after new() never modified');    # +$x/0 => +inf  eval ("\$x = \$class->new('4711'); \$x->bdiv(0);");  like ($@, qr/^Tried to set/, 'died');  is ($x,4711,'$x after new() never modified');    # -$x/0 => -inf  eval ("\$x = \$class->new('-0815'); \$x->bdiv(0);");  like ($@, qr/^Tried to set/, 'died');  is ($x,'-815', '$x after new not modified');    $cfg = $class->config( trap_nan => 1 );  # 0/0 => NaN  eval ("\$x = \$class->new('0'); \$x->bdiv(0);");  like ($@, qr/^Tried to set/, 'died');  is ($x,'0', '$x after new not modified');  }############################################################################### BigInt$x = Math::BigInt->new(2);eval ("\$x = \$mbi->new('0.1');");is ($x,2,'never modified since it dies');eval ("\$x = \$mbi->new('0a.1');");is ($x,2,'never modified since it dies');############################################################################### BigFloat$x = Math::BigFloat->new(2);eval ("\$x = \$mbf->new('0.1a');");is ($x,2,'never modified since it dies');# all tests done

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -