#!/bin/sh

if [ $# -ne 1 ]; then
    echo "Usage: $0 <data_file>"
    exit 1
fi

input_file=$1

if [ ! -f "$input_file" ]; then
    echo "Error: File '$input_file' not found!"
    exit 1
fi

st=0
sum=0
single=0
free=0
num=0

while read -r line; do
    name=$(echo "$line" | awk '{print $1}')
    if [[ "$name" == *"System"* ]]; then
        decimal_num=$(echo "$line" | grep -Eo '[0-9]*\.[0-9]+')
        st=$(echo "scale=2; $st + $decimal_num" | bc)
        num=$((num + 1))
        #echo "$num"
        #echo "Bytes: $bytes, Microseconds: $usecs, KB/s: $kbs"
    elif [[ "$name" == *"Sum"* ]]; then
        decimal_num=$(echo "$line" | grep -Eo '[0-9]*\.[0-9]+')
        sum=$(echo "scale=2; $sum + $decimal_num" | bc)
        #sum=$((sum + name))
        #echo "$sum"
        #echo "free Microseconds: $usecs"
    elif [[ "$name" == *"Single"* ]]; then
        decimal_num=$(echo "$line" | grep -Eo '[0-9]*\.[0-9]+')
        single=$(echo "scale=2; $single + $decimal_num" | bc)
        #echo "$single"
    elif [[ "$name" == *"free"* ]]; then
        decimal_num=$(echo "$line" | grep -Eo '[0-9]*\.[0-9]+')
        free=$(echo "scale=2; $free + $decimal_num" | bc)
        #free=$((free + name))
        #echo "$free"
    fi
        
done < "$input_file"

#echo $num
st=$(echo "scale=2; $st / $num" | bc)
sum=$(echo "scale=2; $sum / $num" | bc)
single=$(echo "scale=2; $single / $num" | bc)
free=$(echo "scale=2; $free / $num" | bc)
#
echo "System time:               $st" "s"
echo "Sum Throughput:            $sum" "MB/s"
echo "Single process Throughput: $single" "MB/s"
echo "free latency:              $free" "us"
