aboutsummaryrefslogtreecommitdiff
path: root/compute-tree-size-stats.sh
diff options
context:
space:
mode:
Diffstat (limited to 'compute-tree-size-stats.sh')
-rwxr-xr-xcompute-tree-size-stats.sh54
1 files changed, 54 insertions, 0 deletions
diff --git a/compute-tree-size-stats.sh b/compute-tree-size-stats.sh
new file mode 100755
index 0000000..62bbb44
--- /dev/null
+++ b/compute-tree-size-stats.sh
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+## SPDX-License-Identifier: CC0-1.0
+##
+## Copyright (C) 2025 Woj. Kosior <koszko@koszko.org>
+
+set -e
+
+RESULTS_PATH="$1"
+
+if [ "$2" = "--omit-packages-with-breaking-changes" ]; then
+ BAD_ROW_REG="n/a|BC-yes"
+else
+ BAD_ROW_REG="n/a"
+fi
+
+printf "DESCRIPTION"
+for MEASURE_TYPE in $(./helper.sh --get-measure-types); do
+ for AGGREGATION in MIN MAX AVG STD_DEV; do
+ printf ',%s-%s' "$MEASURE_TYPE" "$AGGREGATION"
+ done
+done
+
+echo
+
+for TREE_KIND in $(./helper.sh --get-tree-kinds); do
+ printf %s "$TREE_KIND" | ./helper.sh --make-tree-kind-description
+ for MEASURE_TYPE in $(./helper.sh --get-measure-types); do
+ COL_NAME="$TREE_KIND-$MEASURE_TYPE"
+ ./helper.sh --get-csv-columns \
+ "$RESULTS_PATH" "$COL_NAME" BREAKING-CHANGES |
+ grep -vE "$BAD_ROW_REG" | tail -n +2 | awk -F '[-,]' '
+ BEGIN {
+ min = 999999;
+ }
+ // {
+ count += 1;
+ sum += $2;
+ squares_sum += ($2)^2;
+ if ($2 > max) {
+ max = $2;
+ }
+ if ($2 < min) {
+ min = $2;
+ }
+ }
+ END {
+ std_dev = sqrt((squares_sum - sum^2 / count) / count);
+ printf ",%d,%d,%.1f,%.1f", min, max, (sum / count), std_dev;
+ }
+ '
+ done
+ echo
+done