77 lines
1.4 KiB
Bash
Executable File
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
|
|
|
|
|