#!/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