1# -*- perl -*- 2 3use strict; 4use Set::IntSpan 1.17; 5 6my $N = 1; 7sub Not { print "not " } 8sub OK { print "ok ", $N++, "\n" } 9 10sub Table { map { [ split(' ', $_) ] } split(/\s*\n\s*/, shift) } 11 12my @Errors = Table <<TABLE; 131.2 syntax 141-2-3 syntax 151,,2 syntax 16-- syntax 17abc syntax 182,1 order 192-1 order 203-4,1-2 order 213,(-2 order 222-),3 order 23(-),1 order 24TABLE 25 26 27print "1..", 2 * @Errors, "\n"; 28Errors(); 29 30 31sub Errors 32{ 33 print "#errors\n"; 34 my($error, $message); 35 36 for $error (@Errors) 37 { 38 my($run_list, $expected) = @$error; 39 40 eval { new Set::IntSpan $run_list }; 41 printf "#%-20s %-12s -> %s", "new Set::Intspan", $run_list, $@; 42 $@ =~ /$expected/ or Not; OK; 43 44 my $valid = valid Set::IntSpan $run_list; 45 printf "#%-20s %-12s -> %s", "valid Set::Intspan", $run_list, $@; 46 ($valid or $@ !~ /$expected/) and Not; OK; 47 } 48} 49 50 51 52