Sync'ed RichSeqI with the implementation. RichSeq provides backward
[bioperl-live.git] / t / OMIMentry.t
blobb550867b91f6cbff033a8ae2888d630a1598a103
1 # -*-Perl-*-
2 ## Bioperl Test Harness Script for Modules
3 ## $Id$
5 # Before `make install' is performed this script should be runnable with
6 # `make test'. After `make install' it should work as `perl test.t'
8 use strict;
9 BEGIN {
10     # to handle systems with no installed Test module
11     # we include the t dir (where a copy of Test.pm is located)
12     # as a fallback
13     eval { require Test; };
14     if( $@ ) {
15         use lib 't';
16     }
17     use Test;
18     plan tests => 145;
21 use Bio::Phenotype::OMIM::OMIMentry;
22 use Bio::Phenotype::OMIM::MiniMIMentry;
23 use Bio::Species;
24 use Bio::Annotation::Reference;
25 use Bio::Map::CytoPosition;
26 use Bio::Phenotype::Correlate;
27 use Bio::Phenotype::Measure;
28 use Bio::Annotation::DBLink;
31 my $obj = Bio::Phenotype::OMIM::OMIMentry->new();
33 ok( $obj->isa( "Bio::Phenotype::OMIM::OMIMentry" ) );
35 ok( $obj->to_string() );
37 ok( $obj->MIM_number( "100050" ) );
38 ok( $obj->MIM_number(), "100050" );
40 ok( $obj->title( "AARSKOG SYNDROME" ) );
41 ok( $obj->title(), "AARSKOG SYNDROME" );
44 ok( $obj->more_than_two_genes( 1 ) );
45 ok( $obj->more_than_two_genes(), 1 );
47 ok( $obj->is_separate( 1 ) );
48 ok( $obj->is_separate(), 1 );
50 ok( $obj->alternative_titles_and_symbols( "AORTIC ANEURYSM, ABDOMINAL" ) );
51 ok( $obj->alternative_titles_and_symbols(), "AORTIC ANEURYSM, ABDOMINAL" );
53 ok( $obj->mapping_method( "PCR of somatic cell hybrid DNA" ) );
54 ok( $obj->mapping_method(), "PCR of somatic cell hybrid DNA" );
56 ok( $obj->gene_status( "I" ) );
57 ok( $obj->gene_status(), "I" );
60 ok( $obj->clinical_symptoms( "Patients with ..." ) );
61 ok( $obj->clinical_symptoms(), "Patients with ..." );
64 ok( $obj->created( "Victor A. McKusick: 6/4/1986" ) );
65 ok( $obj->created(), "Victor A. McKusick: 6/4/1986" );
67 ok( $obj->contributors( "Kelly A. Przylepa - revised: 03/18/2002" ) );
68 ok( $obj->contributors(), "Kelly A. Przylepa - revised: 03/18/2002" );
70 ok( $obj->edited( "alopez: 06/03/1997" ) );
71 ok( $obj->edited(), "alopez: 06/03/1997" );
74 my $mm = Bio::Phenotype::OMIM::MiniMIMentry->new();
76 ok( $obj->miniMIM( $mm ) );
77 ok( $obj->miniMIM(), $mm );
81 my $av1 = Bio::Phenotype::OMIM::OMIMentryAllelicVariant->new();
82 my $av2 = Bio::Phenotype::OMIM::OMIMentryAllelicVariant->new();
84 ok( $av1->description( "dedxsc" ) );
86 ok( $obj->each_AllelicVariant(), 0 );
88 ok( $obj->add_AllelicVariants( ( $av1, $av2 ) ) );
89 ok( $obj->each_AllelicVariant(), 2 );
90 my @avs = $obj->each_AllelicVariant();
91 ok( $avs[ 0 ], $av1 );
92 ok( $avs[ 1 ], $av2 );
93 ok( $avs[ 0 ]->description, "dedxsc" );
94 ok( $obj->each_AllelicVariant(), 2 );
96 my @avs2 = $obj->remove_AllelicVariants();
97 ok( $avs2[ 0 ], $av1 );
98 ok( $avs2[ 1 ], $av2 );
100 ok( $obj->each_AllelicVariant(), 0 );
101 ok( $obj->remove_AllelicVariants(), 0 );
108 ok( $obj->name( "r1" ) );
109 ok( $obj->name(), "r1" );
111 ok( $obj->description( "This is ..." ) );
112 ok( $obj->description(), "This is ..." );
114 my $mouse = Bio::Species->new();
115 $mouse->classification( qw( musculus Mus ) );
116 ok( $obj->species( $mouse ) );
117 ok( $obj->species()->binomial(), "Mus musculus" );
119 ok( $obj->comment( "putative" ) );
120 ok( $obj->comment(), "putative" );
124 ok( $obj->each_gene_symbol(), 0 );
126 ok( $obj->add_gene_symbols( ( "A", "B" ) ) );
127 ok( $obj->each_gene_symbol(), 2 );
128 my @gs = $obj->each_gene_symbol();
129 ok( $gs[ 0 ], "A" );
130 ok( $gs[ 1 ], "B" );
131 ok( $obj->each_gene_symbol(), 2 );
133 my @gs2 = $obj->remove_gene_symbols();
134 ok( $gs2[ 0 ], "A" );
135 ok( $gs2[ 1 ], "B" );
137 ok( $obj->each_gene_symbol(), 0 );
138 ok( $obj->remove_gene_symbols(), 0 );
142 my $v1 = Bio::Variation::VariantI->new();
143 my $v2 = Bio::Variation::VariantI->new();
145 $v1->length( "123" );
147 ok( $obj->each_Variant(), 0 );
149 ok( $obj->add_Variants( ( $v1, $v2 ) ) );
150 ok( $obj->each_Variant(), 2 );
151 my @vs = $obj->each_Variant();
152 ok( $vs[ 0 ], $v1 );
153 ok( $vs[ 1 ], $v2 );
154 ok( $vs[ 0 ]->length(), "123" );
155 ok( $obj->each_Variant(), 2 );
157 my @vs2 = $obj->remove_Variants();
158 ok( $vs2[ 0 ], $v1 );
159 ok( $vs2[ 1 ], $v2 );
161 ok( $obj->each_Variant(), 0 );
162 ok( $obj->remove_Variants(), 0 );
167 my $r1 = Bio::Annotation::Reference->new();
168 my $r2 = Bio::Annotation::Reference->new();
170 $r1->title( "title" );
172 ok( $obj->each_Reference(), 0 );
174 ok( $obj->add_References( ( $r1, $r2 ) ) );
175 ok( $obj->each_Reference(), 2 );
176 my @rs = $obj->each_Reference();
177 ok( $rs[ 0 ], $r1 );
178 ok( $rs[ 1 ], $r2 );
179 ok( $rs[ 0 ]->title(), "title" );
180 ok( $obj->each_Reference(), 2 );
182 my @rs2 = $obj->remove_References();
183 ok( $rs2[ 0 ], $r1 );
184 ok( $rs2[ 1 ], $r2 );
186 ok( $obj->each_Reference(), 0 );
187 ok( $obj->remove_References(), 0 );
192 my $c1 = Bio::Map::CytoPosition->new();
193 my $c2 = Bio::Map::CytoPosition->new();
195 $c1->chr( "12" );
197 ok( $obj->each_CytoPosition(), 0 );
199 ok( $obj->add_CytoPositions( ( $c1, $c2 ) ) );
200 ok( $obj->each_CytoPosition(), 2 );
201 my @cs = $obj->each_CytoPosition();
202 ok( $cs[ 0 ], $c1 );
203 ok( $cs[ 1 ], $c2 );
204 ok( $cs[ 0 ]->chr(), "12" );
205 ok( $obj->each_CytoPosition(), 2 );
207 my @cs2 = $obj->remove_CytoPositions();
208 ok( $cs2[ 0 ], $c1 );
209 ok( $cs2[ 1 ], $c2 );
211 ok( $obj->each_CytoPosition(), 0 );
212 ok( $obj->remove_CytoPositions(), 0 );
217 my $co1 = Bio::Phenotype::Correlate->new();
218 my $co2 = Bio::Phenotype::Correlate->new();
220 ok( $co1->name( "name" ) );
222 ok( $obj->each_Correlate(), 0 );
224 ok( $obj->add_Correlates( ( $co1, $co2 ) ) );
225 ok( $obj->each_Correlate(), 2 );
226 my @cos = $obj->each_Correlate();
227 ok( $cos[ 0 ], $co1 );
228 ok( $cos[ 1 ], $co2 );
229 ok( $cos[ 0 ]->name, "name" );
230 ok( $obj->each_Correlate(), 2 );
232 my @cos2 = $obj->remove_Correlates();
233 ok( $cos2[ 0 ], $co1 );
234 ok( $cos2[ 1 ], $co2 );
236 ok( $obj->each_Correlate(), 0 );
237 ok( $obj->remove_Correlates(), 0 );
242 my $m1 = Bio::Phenotype::Measure->new();
243 my $m2 = Bio::Phenotype::Measure->new();
245 ok( $m1->description( "desc" ) );
247 ok( $obj->each_Measure(), 0 );
249 ok( $obj->add_Measures( ( $m1, $m2 ) ) );
250 ok( $obj->each_Measure(), 2 );
251 my @ms = $obj->each_Measure();
252 ok( $ms[ 0 ], $m1 );
253 ok( $ms[ 1 ], $m2 );
254 ok( $ms[ 0 ]->description, "desc" );
255 ok( $obj->each_Measure(), 2 );
257 my @ms2 = $obj->remove_Measures();
258 ok( $ms2[ 0 ], $m1 );
259 ok( $ms2[ 1 ], $m2 );
261 ok( $obj->each_Measure(), 0 );
262 ok( $obj->remove_Measures(), 0 );
266 ok( $obj->each_keyword(), 0 );
268 ok( $obj->add_keywords( ( "A", "B" ) ) );
269 ok( $obj->each_keyword(), 2 );
270 my @ks = $obj->each_keyword();
271 ok( $ks[ 0 ], "A" );
272 ok( $ks[ 1 ], "B" );
273 ok( $obj->each_keyword(), 2 );
275 my @ks2 = $obj->remove_keywords();
276 ok( $ks2[ 0 ], "A" );
277 ok( $ks2[ 1 ], "B" );
279 ok( $obj->each_keyword(), 0 );
280 ok( $obj->remove_keywords(), 0 );
284 my $l1 = Bio::Annotation::DBLink->new();
285 my $l2 = Bio::Annotation::DBLink->new();
287 ok( $l1->comment( "comment" ) );
289 ok( $obj->each_DBLink(), 0 );
291 ok( $obj->add_DBLinks( ( $l1, $l2 ) ) );
292 ok( $obj->each_DBLink(), 2 );
293 my @ls = $obj->each_DBLink();
294 ok( $ls[ 0 ], $l1 );
295 ok( $ls[ 1 ], $l2 );
296 ok( $ls[ 0 ]->comment(), "comment" );
297 ok( $obj->each_DBLink(), 2 );
299 my @ls2 = $obj->remove_DBLinks();
300 ok( $ls2[ 0 ], $l1 );
301 ok( $ls2[ 1 ], $l2 );
303 ok( $obj->each_DBLink(), 0 );
304 ok( $obj->remove_DBLinks(), 0 );
308 ok( $obj->each_Genotype(), 0 );
310 ok( $obj->add_Genotypes( ( "A", "B" ) ) );
311 ok( $obj->each_Genotype(), 2 );
312 my @gts = $obj->each_Genotype();
313 ok( $gts[ 0 ], "A" );
314 ok( $gts[ 1 ], "B" );
315 ok( $obj->each_Genotype(), 2 );
317 my @gts2 = $obj->remove_Genotypes();
318 ok( $gts2[ 0 ], "A" );
319 ok( $gts2[ 1 ], "B" );
321 ok( $obj->each_Genotype(), 0 );
322 ok( $obj->remove_Genotypes(), 0 );