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

📄 10__intervals.t

📁 SinFP是一种新的识别对方计算机操作系统类型的工具
💻 T
字号:
#!perl -wuse strict;no strict "vars";use Bit::Vector;# ======================================================================#   $set->Interval_Empty($lower,$upper);#   $set->Interval_Fill($lower,$upper);#   $set->Interval_Flip($lower,$upper);#   $set->Interval_Reverse($lower,$upper);#   ($min,$max) = $set->Interval_Scan_inc($start);#   ($min,$max) = $set->Interval_Scan_dec($start);# ======================================================================print "1..4024\n";$lim = 32768;$n = 1;$set = new Bit::Vector($lim);$rev = new Bit::Vector($lim);$rev->Primes();$vec = $rev->Clone();$primes = $rev->Norm();if ($rev->equal($vec)){print "ok $n\n";} else {print "not ok $n\n";}$n++;if ($set->Norm() == 0){print "ok $n\n";} else {print "not ok $n\n";}$n++;if ($set->Min() > $lim){print "ok $n\n";} else {print "not ok $n\n";}$n++;if ($set->Max() < -$lim){print "ok $n\n";} else {print "not ok $n\n";}$n++;$set->Fill();if ($set->Norm() == $lim){print "ok $n\n";} else {print "not ok $n\n";}$n++;if ($set->Min() == 0){print "ok $n\n";} else {print "not ok $n\n";}$n++;if ($set->Max() == $lim-1){print "ok $n\n";} else {print "not ok $n\n";}$n++;$set->Empty();if ($set->Norm() == 0){print "ok $n\n";} else {print "not ok $n\n";}$n++;if ($set->Min() > $lim){print "ok $n\n";} else {print "not ok $n\n";}$n++;if ($set->Max() < -$lim){print "ok $n\n";} else {print "not ok $n\n";}$n++;$set->Complement($set);if ($set->Norm() == $lim){print "ok $n\n";} else {print "not ok $n\n";}$n++;if ($set->Min() == 0){print "ok $n\n";} else {print "not ok $n\n";}$n++;if ($set->Max() == $lim-1){print "ok $n\n";} else {print "not ok $n\n";}$n++;$set->Flip();if ($set->Norm() == 0){print "ok $n\n";} else {print "not ok $n\n";}$n++;if ($set->Min() > $lim){print "ok $n\n";} else {print "not ok $n\n";}$n++;if ($set->Max() < -$lim){print "ok $n\n";} else {print "not ok $n\n";}$n++;test_set_clr(1,14);      test_flip(1,14);      test_rev(1,14);test_set_clr(1,30);      test_flip(1,30);      test_rev(1,30);test_set_clr(1,62);      test_flip(1,62);      test_rev(1,62);test_set_clr(1,126);     test_flip(1,126);     test_rev(1,126);test_set_clr(1,254);     test_flip(1,254);     test_rev(1,254);test_set_clr(1,$lim-2);  test_flip(1,$lim-2);  test_rev(1,$lim-2);test_set_clr(0,14);      test_flip(0,14);      test_rev(0,14);test_set_clr(0,30);      test_flip(0,30);      test_rev(0,30);test_set_clr(0,62);      test_flip(0,62);      test_rev(0,62);test_set_clr(0,126);     test_flip(0,126);     test_rev(0,126);test_set_clr(0,254);     test_flip(0,254);     test_rev(0,254);test_set_clr(0,$lim-2);  test_flip(0,$lim-2);  test_rev(0,$lim-2);test_set_clr(1,15);      test_flip(1,15);      test_rev(1,15);test_set_clr(1,31);      test_flip(1,31);      test_rev(1,31);test_set_clr(1,63);      test_flip(1,63);      test_rev(1,63);test_set_clr(1,127);     test_flip(1,127);     test_rev(1,127);test_set_clr(1,255);     test_flip(1,255);     test_rev(1,255);test_set_clr(1,$lim-1);  test_flip(1,$lim-1);  test_rev(1,$lim-1);test_set_clr(0,15);      test_flip(0,15);      test_rev(0,15);test_set_clr(0,31);      test_flip(0,31);      test_rev(0,31);test_set_clr(0,63);      test_flip(0,63);      test_rev(0,63);test_set_clr(0,127);     test_flip(0,127);     test_rev(0,127);test_set_clr(0,255);     test_flip(0,255);     test_rev(0,255);test_set_clr(0,$lim-1);  test_flip(0,$lim-1);  test_rev(0,$lim-1);for ( $i = 0; $i < 256; $i++ ){    test_set_clr($i,$i); test_flip($i,$i);}eval { $set->Interval_Empty(-1,$lim-1); };if ($@ =~ /[^:]+::[^:]+::Interval_Empty\(\): minimum index out of range/){print "ok $n\n";} else {print "not ok $n\n";}$n++;eval { $set->Interval_Fill(-1,$lim-1); };if ($@ =~ /[^:]+::[^:]+::Interval_Fill\(\): minimum index out of range/){print "ok $n\n";} else {print "not ok $n\n";}$n++;eval { $set->Interval_Flip(-1,$lim-1); };if ($@ =~ /[^:]+::[^:]+::Interval_Flip\(\): minimum index out of range/){print "ok $n\n";} else {print "not ok $n\n";}$n++;eval { $set->Interval_Reverse(-1,$lim-1); };if ($@ =~ /[^:]+::[^:]+::Interval_Reverse\(\): minimum index out of range/){print "ok $n\n";} else {print "not ok $n\n";}$n++;eval { $set->Interval_Empty(0,-1); };if ($@ =~ /[^:]+::[^:]+::Interval_Empty\(\): maximum index out of range/){print "ok $n\n";} else {print "not ok $n\n";}$n++;eval { $set->Interval_Fill(0,-1); };if ($@ =~ /[^:]+::[^:]+::Interval_Fill\(\): maximum index out of range/){print "ok $n\n";} else {print "not ok $n\n";}$n++;eval { $set->Interval_Flip(0,-1); };if ($@ =~ /[^:]+::[^:]+::Interval_Flip\(\): maximum index out of range/){print "ok $n\n";} else {print "not ok $n\n";}$n++;eval { $set->Interval_Reverse(0,-1); };if ($@ =~ /[^:]+::[^:]+::Interval_Reverse\(\): maximum index out of range/){print "ok $n\n";} else {print "not ok $n\n";}$n++;eval { $set->Interval_Empty(1,0); };if ($@ =~ /[^:]+::[^:]+::Interval_Empty\(\): minimum > maximum index/){print "ok $n\n";} else {print "not ok $n\n";}$n++;eval { $set->Interval_Fill(1,0); };if ($@ =~ /[^:]+::[^:]+::Interval_Fill\(\): minimum > maximum index/){print "ok $n\n";} else {print "not ok $n\n";}$n++;eval { $set->Interval_Flip(1,0); };if ($@ =~ /[^:]+::[^:]+::Interval_Flip\(\): minimum > maximum index/){print "ok $n\n";} else {print "not ok $n\n";}$n++;eval { $set->Interval_Reverse(1,0); };if ($@ =~ /[^:]+::[^:]+::Interval_Reverse\(\): minimum > maximum index/){print "ok $n\n";} else {print "not ok $n\n";}$n++;eval { ($min,$max) = $set->Interval_Scan_inc($lim); };if ($@ =~ /[^:]+::[^:]+::Interval_Scan_inc\(\): start index out of range/){print "ok $n\n";} else {print "not ok $n\n";}$n++;eval { ($min,$max) = $set->Interval_Scan_inc(-1); };if ($@ =~ /[^:]+::[^:]+::Interval_Scan_inc\(\): start index out of range/){print "ok $n\n";} else {print "not ok $n\n";}$n++;eval { ($min,$max) = $set->Interval_Scan_dec($lim); };if ($@ =~ /[^:]+::[^:]+::Interval_Scan_dec\(\): start index out of range/){print "ok $n\n";} else {print "not ok $n\n";}$n++;eval { ($min,$max) = $set->Interval_Scan_dec(-1); };if ($@ =~ /[^:]+::[^:]+::Interval_Scan_dec\(\): start index out of range/){print "ok $n\n";} else {print "not ok $n\n";}$n++;exit;sub test_set_clr{    my($lower,$upper) = @_;    my($span) = $upper - $lower + 1;    $set->Interval_Fill($lower,$upper);    if ($set->Norm() == $span)    {print "ok $n\n";} else {print "not ok $n\n";}    $n++;    if (($min,$max) = $set->Interval_Scan_inc(0))    {print "ok $n\n";} else {print "not ok $n\n";      $min = $set->Min(); $max = $set->Max(); }    $n++;    if ($min == $lower)    {print "ok $n\n";} else {print "not ok $n\n";}    $n++;    if ($max == $upper)    {print "ok $n\n";} else {print "not ok $n\n";}    $n++;    $set->Interval_Empty($lower,$upper);    if ($set->Norm() == 0)    {print "ok $n\n";} else {print "not ok $n\n";}    $n++;    if ($set->Min() > $lim)    {print "ok $n\n";} else {print "not ok $n\n";}    $n++;    if ($set->Max() < -$lim)    {print "ok $n\n";} else {print "not ok $n\n";}    $n++;}sub test_flip{    my($lower,$upper) = @_;    my($span) = $upper - $lower + 1;    $set->Interval_Flip($lower,$upper);    if ($set->Norm() == $span)    {print "ok $n\n";} else {print "not ok $n\n";}    $n++;    if (($min,$max) = $set->Interval_Scan_dec($set->Size()-1))    {print "ok $n\n";} else {print "not ok $n\n";      $min = $set->Min(); $max = $set->Max(); }    $n++;    if ($min == $lower)    {print "ok $n\n";} else {print "not ok $n\n";}    $n++;    if ($max == $upper)    {print "ok $n\n";} else {print "not ok $n\n";}    $n++;    $set->Interval_Flip($lower,$upper);    if ($set->Norm() == 0)    {print "ok $n\n";} else {print "not ok $n\n";}    $n++;    if ($set->Min() > $lim)    {print "ok $n\n";} else {print "not ok $n\n";}    $n++;    if ($set->Max() < -$lim)    {print "ok $n\n";} else {print "not ok $n\n";}    $n++;}sub test_rev{    my($lower,$upper) = @_;    $rev->Interval_Reverse($lower,$upper);    if ($rev->Norm() == $primes)    {print "ok $n\n";} else {print "not ok $n\n";}    $n++;    unless ($rev->equal($vec))    {print "ok $n\n";} else {print "not ok $n\n";}    $n++;    $rev->Interval_Reverse($lower,$upper);    if ($rev->equal($vec))    {print "ok $n\n";} else {print "not ok $n\n";}    $n++;}__END__

⌨️ 快捷键说明

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