push_swap/tester.sh

55 lines
1.0 KiB
Bash
Executable File

#!/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 -e "$1,\t$AVG,\t$MAX,\t$MIN"
echo "List size: $1 Iterations: $ITER avg: $AVG max: $MAX min: $MIN"
# echo "Max: $MAX"
# echo "Min: $MIN"
# echo "Average: $AVG"
# echo "--------------------------------"
# echo "Max Args: $MAX_ARGS"
# echo "--------------------------------"
# echo ""
}
run_test_case 500 1000