push_swap/tester.sh
2024-11-19 17:34:34 +01:00

59 lines
1.0 KiB
Bash

#!/bin/bash
# This script is used to test the program
run_test_case() {
echo "Test case $1"
MAX=0
MIN=10000000
AVG=0
ITER=$2
N=$1
MAX_ARGS=""
for i in $(seq 1 $ITER)
do
ARG=$(seq -1000 1000 | shuf -n $N)
OPS=$(./push_swap $ARG | wc -l)
OK=$(./push_swap $ARG | ./checker_linux $ARG)
if [ $OPS -gt $MAX ]
then
MAX_ARGS="Max: $OPS | $(echo $ARG | tr -d '\n')"
MAX=$OPS
fi
if [ $OPS -lt $MIN ]
then
MIN=$OPS
fi
AVG=$((AVG + OPS))
if [ $OK != "OK" ]
then
echo "================================"
echo "Error"
echo "Args: $ARG"
echo "Ops: $OPS"
echo "Checker: $OK"
echo "================================"
return
fi
done
AVG=$((AVG / ITER))
echo "Iterations: $ITER"
echo "Max: $MAX"
echo "Min: $MIN"
echo "Average: $AVG"
echo "--------------------------------"
echo "Max Args: $MAX_ARGS"
echo "--------------------------------"
echo ""
}
run_test_case 1 10
run_test_case 2 10
run_test_case 3 200
run_test_case 5 200
run_test_case 50 100
run_test_case 100 100
run_test_case 500 50