simplebench/results_to_text: improve view of the table

Move to generic format for floats and percentage for error.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20201021145859.11201-19-vsementsov@virtuozzo.com>
Acked-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
Vladimir Sementsov-Ogievskiy 2020-10-21 17:58:56 +03:00 committed by Max Reitz
parent 8e979febb0
commit 96be1aeec7

View File

@ -16,11 +16,22 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import math
def format_value(x, stdev):
stdev_pr = stdev / x * 100
if stdev_pr < 1.5:
# don't care too much
return f'{x:.2g}'
else:
return f'{x:.2g} ± {math.ceil(stdev_pr)}%'
def result_to_text(result): def result_to_text(result):
"""Return text representation of bench_one() returned dict.""" """Return text representation of bench_one() returned dict."""
if 'average' in result: if 'average' in result:
s = '{:.2f} +- {:.2f}'.format(result['average'], result['stdev']) s = format_value(result['average'], result['stdev'])
if 'n-failed' in result: if 'n-failed' in result:
s += '\n({} failed)'.format(result['n-failed']) s += '\n({} failed)'.format(result['n-failed'])
return s return s