AI-PBDD
view release on metacpan or search on metacpan
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl PBDD.t'
#########################
# change 'tests => 1' to 'tests => last_test_to_print';
use strict;
use warnings;
use Test::More tests => 39;
BEGIN { use_ok('AI::PBDD') };
#########################
# Insert your test code below, the Test::More module is use()ed here so read
# its man page ( perldoc Test::More ) for help writing this test script.
sub DumpBDD {
my ($bdd,$names) = @_;
my ($idx, $then, $else);
if (AI::PBDD::internal_isconst($bdd) && AI::PBDD::internal_constvalue($bdd)) {
return 'T';
}
if (AI::PBDD::internal_isconst($bdd) && !AI::PBDD::internal_constvalue($bdd)) {
return 'F';
}
$idx = AI::PBDD::internal_index($bdd);
$then = DumpBDD(AI::PBDD::internal_then($bdd), $names);
$else = DumpBDD(AI::PBDD::internal_else($bdd), $names);
return $$names{$idx} . " ($then) ($else)";
}
{
#
# getOne
#
AI::PBDD::init(100,1000000);
my $v = AI::PBDD::getOne();
is($v, 1, "getOne()");
AI::PBDD::kill();
}
{
#
# getZero
#
AI::PBDD::init(100,1000000);
my $v = AI::PBDD::getZero();
is($v, 0, "getZero()");
AI::PBDD::kill();
}
{
#
# createBDD
#
# created BDDs (variables) are even integers
AI::PBDD::init(100,1000000);
my $v = AI::PBDD::createBDD();
ok(!($v % 2), "first createBDD()");
ok(!($v % 2), "second createBDD()");
AI::PBDD::kill();
}
{
#
# getVarCount
# getBDD
#
AI::PBDD::init(100,1000000);
my $v1 = AI::PBDD::createBDD();
( run in 1.561 second using v1.01-cache-2.11-cpan-39bf76dae61 )