use Test::More 'no_plan'; use strict; use warnings; BEGIN { use_ok("Religion::Bible::Reference"); } { my $bibref = bibref("Jn 1:10-11,20-21,23"); is( $bibref->stringify, "John 1:10-11, 20-21, 23", "Jn 1:10-11,20-21,23 stringification" ); { # iterate scalarly my $iterator = $bibref->iterator; isa_ok($iterator, 'Religion::Bible::Reference::Iterator', '->iterator'); my @verses = (10, 11, 20, 21, 23); while (my $verse = $iterator->next) { is($verse, (shift @verses), "iterator result scalar context"); } } { # iterate listwise my $iterator = $bibref->iterator; isa_ok($iterator, 'Religion::Bible::Reference::Iterator', '->iterator'); my @verses = (10, 11, 20, 21, 23); while (my @verse = $iterator->next) { is_deeply( \@verse, [ 'John', 1, (shift @verses) ], "iterator result list context" ); } } is( $bibref->stringify, "John 1:10-11, 20-21, 23", "Jn 1:10-11,20-21,23 stringification -- unchanged" ); } { my $bibref = bibref("Jn 1"); my $iterator = $bibref->iterator; isa_ok($iterator, 'Religion::Bible::Reference::Iterator', '->iterator'); my $count; $count++ while $iterator->next; is($count, 51, "Iterating whole chapters works"); }