From 33ac159055219fcb0c1959b3d23dad04792a27f3 Mon Sep 17 00:00:00 2001 From: whaffman Date: Tue, 19 Nov 2024 17:34:34 +0100 Subject: [PATCH] tester and cas if n==2 --- src/sort/sortmore.c | 3 +- tester.sh | 76 +++++++++++++++++++++++++++++++-------------- 2 files changed, 54 insertions(+), 25 deletions(-) diff --git a/src/sort/sortmore.c b/src/sort/sortmore.c index 401644e..5e4580d 100644 --- a/src/sort/sortmore.c +++ b/src/sort/sortmore.c @@ -92,7 +92,8 @@ void common_rotations(int *shortest_a, int *shortest_b, t_state *state) void sortmore(t_state *state) { push_all_but_3_b(state); - sort3(state); + if (ft_lstsize(state->a) == 3) + sort3(state); while (state->b) b_merge_a(best_merge_a(state), state); rotate_a_to_top(state); diff --git a/tester.sh b/tester.sh index 2eec12d..2bc74e3 100644 --- a/tester.sh +++ b/tester.sh @@ -1,30 +1,58 @@ #!/bin/bash # This script is used to test the program -# test case 1 -echo "Test case 1" -MAX=0 -MIN=10000 -for i in {1..100} -do - ARG=$(shuf -i 0-1000 -n 500) - N=$(./push_swap $ARG | wc -l) - if [ $N -gt $MAX ] - then - if [ $N -gt 5500 ]; then - echo "Max: $N | $(echo $ARG | tr -d '\n')" +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 - MAX=$N - fi - if [ $N -lt $MIN ] - then - MIN=$N - fi - AVG=$((AVG + N)) -done -AVG=$((AVG / 100)) -echo "Max: $MAX" -echo "Min: $MIN" -echo "Average: $AVG" + 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