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