1 # -*-Perl-*- mode (to keep my emacs happy)
4 # test for Bio::Tools::Primer3.pm
5 # written by Rob Edwards
9 use vars qw($NUMTESTS $DEBUG $ERROR $XML_ERROR);
13 eval { require Test; };
20 plan tests => $NUMTESTS;
22 eval { require Clone; };
24 warn("Clone not installed. This means that the module is not usable. Skipping tests\n");
30 foreach ( $Test::ntest..$NUMTESTS) {
31 skip("Missing dependencies. Skipping tests",1);
37 require Bio::Tools::Primer3;
40 my ($p3, $num, $primer);
42 ok $p3 = Bio::Tools::Primer3->new(-file => File::Spec->catfile(qw(t data primer3_output.txt)));
43 ok $num = $p3->number_of_results;
44 ok $num, 5, "Got $num";
45 ok $num = $p3->all_results;
46 ok defined $num, 1, "Can't get all results";
47 ok $num = $p3->primer_results(1);
48 ok defined $num, 1, "Can't get results for 1";
49 ok $primer = $p3->next_primer;
50 ok ref($primer) eq "Bio::Seq::PrimedSeq", 1,
51 "reference for primer stream is not right";
54 my $left_primer = $primer->get_primer('left');
56 # get the sequence for that primer. This is a test to verify behavior
57 # on the bioperl list in or about 050315
58 my $seqobj = $left_primer->seq();
60 my $seq = $seqobj->seq();
62 my $other_left_primer = $primer->get_primer();
64 # a different way to access the primers in the stream
65 my $alt = $p3->primer_results(0,'PRIMER_LEFT_INPUT');
68 ok $primer = $p3->next_primer;
70 my $left_primer_seq = $primer->get_primer('left')->seq;
71 ok $left_primer_seq->seq, "GAGGGTAACACGCTGGTCAT";