push_swap/tester.sh

77 lines
1.4 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 1 10
run_test_case 2 10
run_test_case 3 10
run_test_case 4 10
run_test_case 5 10
run_test_case 6 10
run_test_case 7 10
run_test_case 8 10
run_test_case 9 10
run_test_case 10 10
run_test_case 20 10
run_test_case 30 10
run_test_case 40 10
run_test_case 50 10
run_test_case 60 10
run_test_case 70 10
run_test_case 80 10
run_test_case 90 10
run_test_case 100 10
run_test_case 200 10
run_test_case 300 10
run_test_case 400 10
run_test_case 500 10