Clear all cached times.
-=item cmpthese ( COUT, CODEHASHREF, [ STYLE ] )
+=item cmpthese ( COUNT, CODEHASHREF, [ STYLE ] )
=item cmpthese ( RESULTSHASHREF, [ STYLE ] )
clearcache clearallcache disablecache enablecache);
%EXPORT_TAGS=( all => [ @EXPORT, @EXPORT_OK ] ) ;
-$VERSION = 1.04;
+$VERSION = 1.05;
&init;
}
sub cmpthese{
- my ($results, $style) = ref $_[0] ? @_ : ( timethese( @_[0,1,2] ), $_[2] ) ;
+ my ($results, $style) =
+ ref $_ [0] ? @_
+ : (timethese (@_ [0, 1], @_ > 2 ? $_ [2] : "none"), $_ [2]);
$style = "" unless defined $style;
use warnings;
use strict;
use vars qw($foo $bar $baz $ballast);
-use Test::More tests => 159;
+use Test::More tests => 173;
use Benchmark qw(:all);
{
select(OUT);
my $start = times;
- my $chart = cmpthese( -0.1, { a => "++\$i", b => "\$i = sqrt(\$i++)" } ) ;
+ my $chart = cmpthese( -0.1, { a => "++\$i", b => "\$i = sqrt(\$i++)" }, "auto" ) ;
my $end = times;
select(STDOUT);
ok (($end - $start) > 0.05, "benchmarked code ran for over 0.05 seconds");
check_graph_vs_output ($chart, $got);
}
+# Not giving auto should suppress timethese results.
+{
+ select(OUT);
+ my $start = times;
+ my $chart = cmpthese( -0.1, { a => "++\$i", b => "\$i = sqrt(\$i++)" } ) ;
+ my $end = times;
+ select(STDOUT);
+ ok (($end - $start) > 0.05, "benchmarked code ran for over 0.05 seconds");
+
+ $got = $out->read();
+ # Remove any warnings about having too few iterations.
+ $got =~ s/\(warning:[^\)]+\)//gs;
+
+ unlike ($got, qr/running\W+a\W+b.*?for at least 0\.1 CPU second/s,
+ 'should not have title');
+ # Remove the title
+ $got =~ s/.*\.\.\.//s;
+ unlike ($got, $default_pattern, 'should not find default format somewhere');
+ like ($got, $graph_dissassembly, "Should find the output graph somewhere");
+ check_graph_vs_output ($chart, $got);
+}
+
{
$foo = $bar = 0;
select(OUT);