# Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl TermSet.t' ######################### BEGIN { eval { require Test; }; use Test; plan tests => 36; } ######################### use OBO::Util::RelationshipTypeSet; use OBO::Core::RelationshipType; # new set my $my_set = OBO::Util::RelationshipTypeSet->new(); ok(1); ok($my_set->is_empty() == 1); my @arr = $my_set->get_set(); ok($#{@arr} == -1); # three new terms my $r1 = OBO::Core::RelationshipType->new(); my $r2 = OBO::Core::RelationshipType->new(); my $r3 = OBO::Core::RelationshipType->new(); $r1->id("REL:0000001"); $r2->id("REL:0000002"); $r3->id("REL:0000003"); $r1->name("is a"); $r2->name("part of"); $r3->name("participates in"); # remove from my_set my $rcode = $my_set->remove($r1); ok($rcode == 0); ok($my_set->size() == 0); ok(!$my_set->contains($r1)); $my_set->add($r1); ok($my_set->contains($r1)); $rcode = $my_set->remove($r1); ok($rcode == 1); ok($my_set->size() == 0); ok(!$my_set->contains($r1)); $my_set->add($r1); ok($my_set->contains($r1)); $my_set->add($r2); ok($my_set->contains($r2)); $my_set->add($r3); ok($my_set->contains($r3)); ok($my_set->size() == 3); my $r3_idem = OBO::Core::RelationshipType->new(); $r3_idem->id("REL:0000003"); $r3_idem->name("participates in"); $my_set->add($r3_idem); ok($my_set->contains($r3_idem)); ok($my_set->size() == 3); $my_set->add($r3_idem); $my_set->add($r3_idem); $my_set->add($r3_idem); $my_set->add($r3_idem); $my_set->add($r3_idem); ok($my_set->size() == 3); my $r4 = OBO::Core::RelationshipType->new(); my $r5 = OBO::Core::RelationshipType->new(); my $r6 = OBO::Core::RelationshipType->new(); $r4->id("REL:0000004"); $r5->id("REL:0000005"); $r6->id("REL:0000006"); $r4->name("Four"); $r5->name("Five"); $r6->name("Six"); $my_set->add_all($r4, $r5, $r6); ok($my_set->contains($r4) && $my_set->contains($r5) && $my_set->contains($r6)); ok($my_set->contains_id("REL:0000006")); ok(!$my_set->contains_id("REL:0000007")); ok($my_set->contains_name('Six')); ok(!$my_set->contains_name('Seven')); $my_set->add_all($r4, $r5, $r6); ok($my_set->size() == 6); # remove from my_set $rcode = $my_set->remove($r4); ok($rcode == 1); ok($my_set->size() == 5); ok(!$my_set->contains($r4)); my $r7 = $r4; my $r8 = $r5; my $r9 = $r6; my $my_set2 = OBO::Util::RelationshipTypeSet->new(); ok(1); ok($my_set2->is_empty()); ok(!$my_set->equals($my_set2)); $my_set->add_all($r4, $r5, $r6); $my_set2->add_all($r7, $r8, $r9, $r1, $r2, $r3); ok(!$my_set2->is_empty()); ok($my_set->contains($r7) && $my_set->contains($r8) && $my_set->contains($r9)); ok($my_set->equals($my_set2)); ok($my_set2->size() == 6); $my_set2->clear(); ok($my_set2->is_empty()); ok($my_set2->size() == 0); ok(1);