AI-PBDD

 view release on metacpan or  search on metacpan

t/PBDD.t  view on Meta::CPAN

# 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 )