From 3ac50133c1f04483d209a7d65d06a802d90d6338 Mon Sep 17 00:00:00 2001 From: Steve Hancock Date: Sun, 5 Feb 2023 17:33:33 -0800 Subject: [PATCH] add iteration convergence statistics --- dev-bin/run_convergence_tests.pl | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/dev-bin/run_convergence_tests.pl b/dev-bin/run_convergence_tests.pl index 5562161a..88224335 100755 --- a/dev-bin/run_convergence_tests.pl +++ b/dev-bin/run_convergence_tests.pl @@ -327,6 +327,10 @@ sub run_test_cases { } my @skipped_cases; + my $run_count = 0; + my $iteration_total = 0; + my $iteration_maximum = 0; + my $iteration_maximum_case = ""; foreach my $sname ( sort @selected_cases ) { # remove any old tmp files for this case @@ -405,6 +409,14 @@ sub run_test_cases { $rexpect_files->{$sname} = $output; } print "$sname: converged on iteration $iteration $msg\n"; + + $run_count++; + $iteration_total += $iteration; + if ( $iteration > $iteration_maximum ) { + $iteration_maximum = $iteration; + $iteration_maximum_case = $sname; + } + last; } elsif ( $iteration < $iteration_max ) { @@ -431,7 +443,18 @@ sub run_test_cases { } } - print "...\n"; + print "-" x 31 . "\n"; + if ( $run_count > 0 ) { + my $iteration_mean = sprintf( "%.2f", $iteration_total / $run_count ); + my $spaces = " " x length($iteration_maximum_case); + print <> +$spaces converged on iteration $iteration_mean (average) +$iteration_maximum_case: converged on iteration $iteration_maximum (max) +EOM + } + + print "-" x 31 . "\n"; if (@failed_to_converge) { print <