Algorithm-CP-IZ

 view release on metacpan or  search on metacpan

t/01int.t  view on Meta::CPAN


# InInterval
{
  $iz->save_context;

  is($v->InInterval(5, 8), 1);
  is(join(",", @{$v->domain}), "5,6,7,8");

  is($v->InInterval(100, 200), 0);

  $iz->restore_context;
}

# NotInInterval
{
  $iz->save_context;

  is($v->NotInInterval(5, 8), 1);
  is(join(",", @{$v->domain}), "0,1,2,3,4,9,10");

  is($v->NotInInterval(0, 200), 0);

  $iz->restore_context;
}

# error
{
    my $err = 1;
    eval {
	my $i = $iz->create_int("a");
	$err = 0;
    };
    my $msg = $@;
    is($err, 1);
    ok($msg =~ /^Algorithm::CP::IZ:/);
}

# error
{
    my $err = 1;
    eval {
	my $i = $iz->create_int([]);
	$err = 0;
    };
    my $msg = $@;
    is($err, 1);
    ok($msg =~ /^Algorithm::CP::IZ:/);

    # zero value is bad, but one value is good.
    my $i = $iz->create_int([3]);
    is("$i", "3");
}

SKIP: {
    skip "old iZ", 4
	unless (defined($iz->get_version)
		&& $iz->IZ_VERSION_MAJOR >= 3
		&& $iz->IZ_VERSION_MINOR >= 6);

    my $v = $iz->create_int(0, 10);
    ok($v->select_value(&Algorithm::CP::IZ::CS_VALUE_SELECTION_GE, 4));
    is($v->min, 4);
    is($v->max, 10);

    ok(!$v->select_value(&Algorithm::CP::IZ::CS_VALUE_SELECTION_EQ, 1));
}

# memory leak
SKIP: {
    eval "use Test::LeakTrace";
    my $leak_test_enabled = !$@;
    skip "Test::LeakTrace is not installed", 1
        unless ($leak_test_enabled);

    my $v = $iz->create_int(0, 1);

    eval 'use Test::LeakTrace; no_leaks_ok { my $d = $v->domain;  };';
}

# boolean
{
    my $x0 = $iz->create_int(0);
    ok($x0);

    my $x1 = $iz->create_int(1);
    ok($x1);
}



( run in 0.889 second using v1.01-cache-2.11-cpan-63c85eba8c4 )