59 lines
1.0 KiB
Bash
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
|
|
|