#!perl use Test::More tests => 17; use Data::Dumper; BEGIN { use_ok NLP::GATE } diag( "Testing NLP::GATE::AnnotationSet $NLP::GATE::AnnotationSet::VERSION, Perl $], $^X" ); can_ok(NLP::GATE::AnnotationSet, qw(new add get getAsArray getAsArrayRef getByIndex getByOffset size ) ) ; my $annset = NLP::GATE::AnnotationSet->new(); isa_ok($annset, 'NLP::GATE::AnnotationSet'); is($annset->size(),0,"size after new is 0"); my $ann1 = NLP::GATE::Annotation->new("AType1",10,20); $ann1->setFeature("f1","value1"); my $ann2 = $ann1->clone(); is_deeply($ann1,$ann2,"cloned annotations equal"); my $empty = NLP::GATE::AnnotationSet->new(); $annset->add($ann1); my $ret = $annset->getByIndex(0); is_deeply($ann1,$ret,"returned annotation equal"); $ret = $annset->get("nonexist"); is($ret->size(),0,"empty if searching for nonexisting type"); $ret = $annset->get("AType1"); is($ret->size(),1,"nonempty if searching for existing"); $ret = $ret->getByIndex(0); is_deeply($ann1,$ret,"found equal to original"); my @anns = $annset->getAsArray(); is(scalar @anns,1,"correct size of array for getAsArray"); is_deeply($ann1,$anns[0],"As returned by getAsArray"); $ret = $annset->getByIndex(0); my $anns = $annset->getAsArrayRef(); is(scalar @{$anns},1,"correct size of array for getAsArrayRef"); is_deeply($ann1,$anns->[0],"as retruend by getAsArrayRef"); $ret = $annset->get(undef); is_deeply($annset,$ret,"get without condition is null op"); $ret = $annset->get("AType1",{f1=>value1}); is_deeply($annset,$ret,"search using feature value exact"); $ret = $annset->get("AType1",{f1=>VALUE1},"nocase"); is_deeply($annset,$ret,"search using feature value nocase"); $ret = $annset->get("AType1",{f1=>VALUE2},"nocase"); is_deeply($empty,$ret,"search using feature value nocase");