AI-PBDD

 view release on metacpan or  search on metacpan

t/PBDD.t  view on Meta::CPAN

  my $bdd1 = AI::PBDD::createBDD();
  $names{AI::PBDD::internal_index($bdd1)} = 'A';
  my $bdd2 = AI::PBDD::createBDD();
  $names{AI::PBDD::internal_index($bdd2)} = 'B';

  my $bdd = AI::PBDD::imp($bdd1,$bdd2);
  my $dmp = DumpBDD($bdd, \%names);
  is($dmp, "A (B (T) (F)) (T)", "imp()");  

  AI::PBDD::kill();
}

{
  #
  # biimp
  #
  AI::PBDD::init(100,1000000);
  my %names = ();
  my $bdd1 = AI::PBDD::createBDD();
  $names{AI::PBDD::internal_index($bdd1)} = 'A';
  my $bdd2 = AI::PBDD::createBDD();
  $names{AI::PBDD::internal_index($bdd2)} = 'B';

  my $bdd = AI::PBDD::biimp($bdd1,$bdd2);
  my $dmp = DumpBDD($bdd, \%names);
  is($dmp, "A (B (T) (F)) (B (F) (T))", "biimp()");  

  AI::PBDD::kill();
}

{
  #
  # not
  #
  AI::PBDD::init(100,1000000);
  my %names = ();
  my $bdd1 = AI::PBDD::createBDD();
  $names{AI::PBDD::internal_index($bdd1)} = 'A';

  my $bdd = AI::PBDD::not($bdd1);
  my $dmp = DumpBDD($bdd, \%names);
  is($dmp, "A (F) (T)", "not()");  

  AI::PBDD::kill();
}

{
  #
  # makeSet
  #
  my @vars;
  my %names = ();
  AI::PBDD::init(100,1000000);
  my $bdd1 = AI::PBDD::createBDD();
  $names{AI::PBDD::internal_index($bdd1)} = 'A';
  push @vars, $bdd1;
  my $bdd2 = AI::PBDD::createBDD();
  $names{AI::PBDD::internal_index($bdd2)} = 'B';
  push @vars, $bdd2;
  
  my $set = AI::PBDD::makeSet(\@vars, 2);
  my $dmp = DumpBDD($set, \%names);

  is($dmp, "A (B (T) (F)) (F)", "first makeSet()");  

  $set = AI::PBDD::makeSet(\@vars, 1, 1);
  $dmp = DumpBDD($set, \%names);

  is($dmp, "B (T) (F)", "second makeSet()");  

  AI::PBDD::kill();
}

{
  #
  # exists
  #
  AI::PBDD::init(100,1000000);
  my %names = ();
  my $bdd1 = AI::PBDD::createBDD();
  $names{AI::PBDD::internal_index($bdd1)} = 'A';
  my $bdd2 = AI::PBDD::createBDD();
  $names{AI::PBDD::internal_index($bdd2)} = 'B';
  my $bdd3 = AI::PBDD::and($bdd1,$bdd2);

  my $bdd = AI::PBDD::exists($bdd3, $bdd1);
  my $dmp = DumpBDD($bdd, \%names);
  is($dmp, "B (T) (F)", "first exists()");  

  $bdd = AI::PBDD::exists($bdd3, $bdd2);
  $dmp = DumpBDD($bdd, \%names);
  is($dmp, "A (T) (F)", "second exists()");  

  AI::PBDD::kill();
}

{
  #
  # forall
  #
  AI::PBDD::init(100,1000000);
  my %names = ();
  my $bdd1 = AI::PBDD::createBDD();
  $names{AI::PBDD::internal_index($bdd1)} = 'A';
  my $bdd2 = AI::PBDD::createBDD();
  $names{AI::PBDD::internal_index($bdd2)} = 'B';
  my $bdd3 = AI::PBDD::or($bdd1,$bdd2);

  my $bdd = AI::PBDD::forall($bdd3, $bdd1);
  my $dmp = DumpBDD($bdd, \%names);
  is($dmp, "B (T) (F)", "first forall()");  

  $bdd = AI::PBDD::forall($bdd3, $bdd2);
  $dmp = DumpBDD($bdd, \%names);
  is($dmp, "A (T) (F)", "second forall()");  

  AI::PBDD::kill();
}

{
  #
  # relProd
  #
  AI::PBDD::init(100,1000000);
  my %names = ();
  my $bdd1 = AI::PBDD::createBDD();
  $names{AI::PBDD::internal_index($bdd1)} = 'A';



( run in 0.703 second using v1.01-cache-2.11-cpan-39bf76dae61 )