1# -*-Perl-*- Test Harness script for Bioperl 2# $Id$ 3 4use strict; 5 6BEGIN { 7 use Bio::Root::Test; 8 9 test_begin(-tests => 23); 10 11 use_ok('Bio::SeqFeature::Generic'); 12 use_ok('Bio::SeqFeature::AnnotationAdaptor'); 13 use_ok('Bio::Annotation::DBLink'); 14 use_ok('Bio::Annotation::Comment'); 15 use_ok('Bio::Annotation::SimpleValue'); 16} 17 18 19my $feat = Bio::SeqFeature::Generic->new(); 20$feat->add_tag_value("tag1", "value of tag1"); 21$feat->add_tag_value("tag1", "another value of tag1"); 22$feat->add_tag_value("tag2", "some value for a tag"); 23 24my $link1 = Bio::Annotation::DBLink->new(-database => 'TSC', 25 -primary_id => 'TSC0000030', 26 -tagname => "tag2" 27 ); 28$feat->annotation->add_Annotation($link1); 29 30my $anncoll = Bio::SeqFeature::AnnotationAdaptor->new(-feature => $feat); 31 32is($anncoll->get_num_of_annotations(), 4); 33is(scalar($anncoll->get_all_annotation_keys()), 2); 34 35my @anns = $anncoll->get_Annotations("tag1"); 36my @vals = $feat->get_tag_values("tag1"); 37 38is (scalar(@anns), scalar(@vals)); 39for(my $i = 0; $i < @anns; $i++) { 40 is ($anns[$i]->value(), $vals[$i]); 41} 42 43@anns = $anncoll->get_Annotations("tag2"); 44my @fanns = $feat->annotation->get_Annotations("tag2"); 45@vals = $feat->get_tag_values("tag2"); 46 47is (scalar(@fanns), 1); 48is (scalar(@anns), 2); 49is (scalar(@vals), 1); 50is ($anns[0]->value(), $vals[0]); 51 52is ($anns[1]->primary_id(), $fanns[0]->primary_id()); 53 54my $comment = Bio::Annotation::Comment->new( '-text' => 'sometext'); 55$anncoll->add_Annotation('comment', $comment); 56 57@fanns = $feat->annotation->get_Annotations("comment"); 58is (scalar(@fanns), 1); 59is ($fanns[0]->text(), "sometext"); 60 61my $tagval = Bio::Annotation::SimpleValue->new(-value => "boring value", 62 -tagname => "tag2"); 63$anncoll->add_Annotation($tagval); 64 65@anns = $anncoll->get_Annotations("tag2"); 66@fanns = $feat->annotation->get_Annotations("tag2"); 67@vals = $feat->get_tag_values("tag2"); 68 69is (scalar(@fanns), 1); 70is (scalar(@anns), 3); 71is (scalar(@vals), 2); 72is ($anns[0]->value(), $vals[0]); 73is ($anns[1]->value(), $vals[1]); 74is ($anns[2]->primary_id(), $fanns[0]->primary_id()); 75