From afa878537980dd6a5743e27bba2e9b302a9c3c9d Mon Sep 17 00:00:00 2001 From: Maoake Teriierooiterai Date: Thu, 15 Jan 2026 18:42:15 +0100 Subject: [PATCH] need to fix --- .gitignore | 1 - Makefile | 3 +- algorithms/medium/medium_algo.c | 5 +- algorithms/medium/sort_utils.c | 39 ++- algorithms/medium/sort_utils_tree.c | 119 +++++++ algorithms/medium/sort_utils_two.c | 18 + arggs.txt | 500 ++++++++++++++++++++++++++++ args.txt | 500 ++++++++++++++++++++++++++++ includes/medium_headers.h | 4 + playtest.sh | 455 +++++++++++++++++++++++++ 10 files changed, 1633 insertions(+), 11 deletions(-) create mode 100644 algorithms/medium/sort_utils_tree.c create mode 100644 arggs.txt create mode 100644 args.txt create mode 100755 playtest.sh diff --git a/.gitignore b/.gitignore index 899ac03..7f6b8e5 100644 --- a/.gitignore +++ b/.gitignore @@ -61,7 +61,6 @@ dkms.conf push_swap checker checker_linux -playtest.sh # File obj obj/ diff --git a/Makefile b/Makefile index d9f4608..f12ef23 100644 --- a/Makefile +++ b/Makefile @@ -39,7 +39,8 @@ CHECKER_FILES = check_error.c verif_flag.c verif_is_digit.c verif_overflow.c ver STACK_UTILS = push.c rev_rotate.c rotate.c stack_add.c stack_remove.c stacks_len.c swap.c -MEDIUM_ALGO = utils_medium.c utils_struct_tab.c utils_medium_two.c sort_utils.c sort_utils_two.c medium_algo.c +MEDIUM_ALGO = utils_medium.c utils_struct_tab.c utils_medium_two.c sort_utils.c sort_utils_two.c medium_algo.c \ + sort_utils_tree.c COMPLEX_ALGO = radix.c diff --git a/algorithms/medium/medium_algo.c b/algorithms/medium/medium_algo.c index 58ba0cd..a64393b 100644 --- a/algorithms/medium/medium_algo.c +++ b/algorithms/medium/medium_algo.c @@ -13,7 +13,7 @@ #include "push_swap.h" #include "medium_headers.h" #include - +#include static int path_to_end(t_stacks *stacks, int max_range, int range, char c) { t_stack *tmp; @@ -95,6 +95,7 @@ void bucket_algo(t_stacks *stacks, t_tab *preset, int range) tmp = preset; while(stacks->a) pb(stacks); + //stacks->print = 0; while (preset) { push_range_to_b(stacks, preset, range); @@ -106,7 +107,5 @@ void bucket_algo(t_stacks *stacks, t_tab *preset, int range) free(preset); preset = tmp; } - while (stacks->b) - pa(stacks); return ; } diff --git a/algorithms/medium/sort_utils.c b/algorithms/medium/sort_utils.c index 2b64157..157b3ee 100644 --- a/algorithms/medium/sort_utils.c +++ b/algorithms/medium/sort_utils.c @@ -12,6 +12,22 @@ #include "push_swap.h" #include "medium_headers.h" +#include + +static int move_next(t_stack *tmp, int value) +{ + int i; + + i = 0; + if (tmp->previous->value < value) + return (70000); + while (tmp->value < value) + { + tmp = tmp->next; + i++; + } + return (i); +} static int number_move_reverse(t_stacks *stacks, int value, char start_end) { @@ -22,11 +38,7 @@ static int number_move_reverse(t_stacks *stacks, int value, char start_end) tmp = stacks->a; if (start_end == 's') { - while (tmp->value < value) - { - tmp = tmp->next; - i++; - } + i = move_next(tmp, value); } else { @@ -40,7 +52,7 @@ static int number_move_reverse(t_stacks *stacks, int value, char start_end) return (i); } -static int sort_path(t_stacks *stacks, int value) +int sort_path(t_stacks *stacks, int value) { int start_path; int end_path; @@ -75,10 +87,25 @@ static void sort_little_pile(t_stacks *stacks) void push_range_to_b(t_stacks *stacks, t_tab *one_preset, int range) { + int value; + int i; + + i = 0; while (one_preset->nb_in > 0) { + if (i > 0) + { + value = get_value_finded(stacks, one_preset, range); + opti_path(stacks, one_preset, range, value); + } normal_move_path(stacks, one_preset, range); + opti2_move_path(stacks, one_preset, range); sort_little_pile(stacks); + while (stacks->a->value > stacks->a->previous->value) + ra(stacks); one_preset->nb_in--; + i++; + if (!check_order(stacks->a)) + return ; } } diff --git a/algorithms/medium/sort_utils_tree.c b/algorithms/medium/sort_utils_tree.c new file mode 100644 index 0000000..f124006 --- /dev/null +++ b/algorithms/medium/sort_utils_tree.c @@ -0,0 +1,119 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* sort_utils_tree.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mteriier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2026/01/15 12:20:06 by mteriier #+# #+# */ +/* Updated: 2026/01/15 12:20:07 by mteriier ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include "push_swap.h" +#include "medium_headers.h" +#include + +void opti2_move_path(t_stacks *stacks, t_tab *one_preset, int range) +{ + int value; + int len; + + value = stacks->b->value; + len = stack_a_len(stacks); + if (in_range(value, one_preset->max_range, range) && len > 0) + { + while (value < stacks->a->previous->value && !check_order(stacks->a)) + rra(stacks); + } +} +static int get_pre_move_b(t_stacks *stacks, t_tab *one_preset, int range) +{ + int i; + t_stack *tmp; + + i = 0; + tmp = assign_stack(stacks, 'b'); + if (wich_path(stacks, one_preset->max_range, range, 'b')) + { + while (!in_range(tmp->value, one_preset->max_range, range)) + { + i++; + tmp = tmp->next; + } + } + else + while (!in_range(tmp->value, one_preset->max_range, range)) + { + i++; + tmp = tmp->previous; + } + return (i); +} + +static int get_pre_move_a(t_stacks *stacks, int val) +{ + int i; + t_stack *tmp; + + i = 0; + tmp = assign_stack(stacks, 'a'); + if (sort_path(stacks, val)) + { + while (val > tmp->value) + { + i++; + tmp = tmp->next; + } + } + else + { + tmp = tmp->previous; + while (val < tmp->value) + { + i++; + tmp = tmp->previous; + } + } + return (i); +} + +static int get_min_move(t_stacks *stacks, t_tab *one_preset, int range, int val) +{ + int b; + int a; + a = get_pre_move_a(stacks, val); + b = get_pre_move_b(stacks, one_preset, range); + if (a < b) + return (a); + else + return (b); +} + +void opti_path(t_stacks *stacks, t_tab *one_preset, int range, int val) +{ + int move; + int i; + + i = 0; + if (sort_path(stacks, val) + && wich_path(stacks, one_preset->max_range, range, 'b')) + { + move = get_min_move(stacks, one_preset, range, val); + while (i < move) + { + rr(stacks); + i++; + } + } + else if (!sort_path(stacks, val) + && !wich_path(stacks, one_preset->max_range, range, 'b')) + { + move = get_min_move(stacks, one_preset, range, val); + while (i < move) + { + rrr(stacks); + i++; + } + } +} diff --git a/algorithms/medium/sort_utils_two.c b/algorithms/medium/sort_utils_two.c index ae14501..27125a5 100644 --- a/algorithms/medium/sort_utils_two.c +++ b/algorithms/medium/sort_utils_two.c @@ -12,6 +12,24 @@ #include "push_swap.h" #include "medium_headers.h" +#include +int get_value_finded(t_stacks *stacks, t_tab *one_preset, int range) +{ + int value; + t_stack *tmp; + + tmp = assign_stack(stacks, 'b'); + if (wich_path(stacks, one_preset->max_range, range, 'b')) + { + while (!in_range(tmp->value, one_preset->max_range, range)) + tmp = tmp->next; + } + else + while (!in_range(tmp->value, one_preset->max_range, range)) + tmp = tmp->previous; + value = tmp->value; + return (value); +} void normal_move_path(t_stacks *stacks, t_tab *one_preset, int range) { diff --git a/arggs.txt b/arggs.txt new file mode 100644 index 0000000..14c18e7 --- /dev/null +++ b/arggs.txt @@ -0,0 +1,500 @@ +2274 +5953 +9628 +4802 +1713 +532 +8760 +4036 +3385 +724 +6261 +5005 +6245 +7492 +8651 +8907 +3466 +3704 +2575 +8020 +8413 +2057 +3114 +7857 +9276 +1990 +9674 +5660 +6539 +4399 +668 +8864 +5003 +3123 +6364 +4006 +9045 +699 +4978 +6518 +2192 +8226 +779 +2526 +3413 +9033 +964 +5810 +5444 +4586 +9250 +270 +9088 +6923 +2094 +3090 +7384 +9226 +713 +280 +6308 +6619 +2430 +734 +5024 +9322 +2423 +8611 +155 +702 +1433 +1948 +5891 +4065 +4449 +8391 +8829 +2343 +4436 +451 +4472 +6897 +4262 +9737 +6251 +2514 +6343 +2328 +8502 +1934 +7367 +1746 +8162 +4089 +4874 +652 +6940 +1076 +215 +108 +3560 +8249 +6324 +14 +9897 +1441 +1172 +3584 +5009 +9067 +8978 +1204 +749 +4872 +3071 +35 +5018 +2861 +9358 +4716 +1370 +7683 +1861 +5160 +1929 +3513 +2625 +8538 +1490 +2436 +4327 +1695 +8245 +1266 +2093 +3253 +5279 +3208 +8101 +3544 +4822 +6651 +2720 +8036 +5182 +5725 +3941 +1809 +8557 +9594 +2812 +2071 +6305 +6922 +5041 +5203 +7080 +543 +4898 +6557 +2769 +9649 +557 +181 +2715 +4257 +7401 +5069 +1431 +6502 +122 +3034 +8791 +6630 +3182 +585 +5795 +7750 +4685 +9686 +9297 +2745 +2216 +4625 +8904 +3797 +3450 +6465 +8292 +2051 +9244 +8214 +1467 +1293 +7551 +4098 +5142 +8874 +8627 +917 +5445 +2970 +3622 +9372 +7902 +6409 +443 +8410 +8827 +7007 +9790 +2694 +3950 +3847 +9423 +9873 +3221 +1538 +7300 +773 +6891 +4542 +2475 +5294 +4132 +853 +7174 +8971 +730 +5175 +8878 +1174 +2126 +1723 +425 +272 +573 +7559 +6543 +571 +3270 +5285 +1874 +9419 +2632 +8142 +6450 +4853 +7120 +3237 +2870 +6133 +7853 +4229 +3921 +6121 +5671 +2556 +4103 +2649 +225 +4766 +153 +2195 +1087 +2765 +9591 +7869 +1528 +8099 +6100 +3503 +3580 +4393 +918 +9178 +3833 +6052 +5807 +9313 +4772 +5547 +9927 +7905 +1055 +7901 +2721 +9093 +9152 +2804 +8010 +9168 +9818 +5828 +7545 +9461 +7856 +3974 +4460 +6571 +9312 +7606 +9400 +916 +4941 +535 +5383 +57 +7261 +5404 +7100 +7930 +6601 +8692 +1010 +4028 +1975 +895 +1036 +7428 +4078 +884 +8655 +9431 +4878 +4736 +6513 +299 +3891 +5361 +8780 +6243 +9994 +9279 +6340 +2733 +1738 +2288 +8161 +1006 +8620 +6652 +3735 +4890 +8988 +9334 +8858 +6661 +883 +3781 +5731 +6455 +4520 +6165 +7355 +6124 +4434 +193 +3016 +1665 +9676 +466 +4338 +8328 +8340 +3390 +9925 +6080 +7472 +7235 +9350 +5320 +7411 +8935 +296 +4366 +7912 +444 +5380 +4521 +1739 +325 +5717 +3142 +1613 +1379 +5722 +4418 +5289 +2962 +9291 +9577 +6126 +491 +5376 +9830 +542 +2795 +8879 +4467 +8007 +3738 +9390 +9249 +4233 +1043 +2230 +4903 +6722 +564 +7691 +2687 +1235 +7372 +9575 +9351 +7656 +2188 +4395 +5537 +9645 +8187 +3769 +1265 +5084 +9293 +1065 +5241 +326 +1254 +6004 +8062 +464 +9248 +8374 +1896 +3058 +9678 +8972 +7061 +5097 +1081 +5506 +3557 +3615 +405 +9215 +7999 +8554 +9931 +5462 +424 +1053 +9190 +4011 +5337 +8294 +7753 +8587 +4177 +8631 +9573 +1589 +7757 +503 +9452 +845 +6069 +5384 +5653 +4196 +2938 +9739 +2428 +3049 +2069 +3694 +6712 +212 +5546 +9061 +9472 +9749 +9973 +6476 +4332 +5889 +3356 +323 +5509 +486 +7558 +4757 +1255 +596 +8610 +703 +5264 +4798 +7932 diff --git a/args.txt b/args.txt new file mode 100644 index 0000000..9d8166f --- /dev/null +++ b/args.txt @@ -0,0 +1,500 @@ +467 +484 +199 +244 +257 +411 +228 +384 +27 +476 +402 +315 +57 +353 +23 +72 +35 +187 +254 +103 +262 +148 +239 +369 +251 +334 +299 +347 +290 +419 +0 +223 +269 +282 +150 +371 +475 +130 +123 +85 +311 +414 +11 +256 +32 +91 +47 +28 +195 +265 +89 +432 +452 +2 +404 +366 +153 +121 +160 +468 +161 +126 +168 +466 +86 +97 +427 +326 +3 +487 +87 +338 +110 +227 +492 +441 +417 +38 +349 +261 +118 +497 +443 +403 +45 +117 +92 +274 +410 +197 +59 +145 +146 +181 +433 +69 +473 +119 +336 +209 +454 +436 +43 +132 +98 +8 +293 +260 +276 +264 +500 +406 +51 +412 +465 +439 +166 +407 +382 +186 +164 +182 +284 +55 +36 +83 +285 +106 +34 +105 +243 +175 +400 +494 +429 +215 +397 +7 +351 +280 +221 +79 +26 +319 +122 +499 +210 +365 +66 +107 +425 +234 +387 +291 +364 +24 +33 +287 +242 +62 +178 +250 +94 +288 +245 +226 +211 +398 +445 +191 +354 +415 +305 +143 +90 +281 +381 +188 +238 +163 +253 +458 +378 +25 +189 +271 +306 +61 +169 +461 +17 +431 +29 +70 +64 +41 +490 +292 +111 +177 +114 +255 +184 +272 +125 +225 +273 +496 +252 +361 +345 +206 +196 +22 +304 +42 +10 +379 +277 +142 +453 +437 +162 +60 +341 +418 +266 +52 +408 +219 +141 +49 +450 +368 +446 +258 +308 +116 +128 +322 +183 +423 +455 +464 +198 +389 +471 +459 +237 +44 +489 +15 +84 +179 +231 +451 +50 +185 +395 +317 +82 +297 +493 +396 +14 +263 +482 +448 +312 +377 +203 +320 +374 +176 +216 +76 +205 +140 +129 +240 +332 +428 +422 +330 +217 +248 +200 +390 +383 +156 +53 +401 +135 +327 +170 +40 +48 +391 +328 +155 +56 +74 +77 +16 +30 +435 +355 +301 +167 +220 +235 +300 +289 +172 +131 +460 +246 +31 +194 +247 +485 +463 +359 +12 +134 +95 +249 +6 +307 +190 +373 +409 +342 +358 +88 +112 +5 +426 +20 +488 +120 +314 +421 +9 +420 +204 +78 +346 +154 +13 +115 +236 +63 +357 +474 +37 +386 +71 +495 +335 +147 +101 +149 +486 +385 +394 +372 +65 +302 +144 +449 +283 +405 +214 +376 +165 +356 +124 +380 +1 +208 +337 +102 +139 +478 +229 +202 +469 +375 +462 +440 +333 +201 +491 +457 +108 +158 +316 +275 +470 +350 +138 +171 +137 +113 +207 +267 +212 +136 +295 +442 +18 +151 +100 +438 +157 +68 +296 +241 +483 +99 +96 +321 +339 +39 +472 +294 +329 +233 +21 +259 +159 +298 +133 +286 +348 +230 +331 +73 +109 +367 +192 +416 +173 +268 +213 +75 +481 +58 +324 +480 +370 +270 +46 +278 +343 +323 +363 +81 +352 +325 +498 +444 +180 +232 +434 +392 +4 +279 +218 +127 +222 +174 +19 +224 +424 +456 +344 +54 +388 +430 +362 +67 +479 +360 +413 +310 +80 +193 +313 +477 +447 +303 +309 +104 +399 +318 +93 +393 +340 diff --git a/includes/medium_headers.h b/includes/medium_headers.h index cc218ac..4dc3890 100644 --- a/includes/medium_headers.h +++ b/includes/medium_headers.h @@ -29,7 +29,11 @@ void sort_from_left(t_stacks *stacks); void sort_from_right(t_stacks *stacks); void push_range_to_b(t_stacks *stacks, t_tab *one_preset, int range); void normal_move_path(t_stacks *stacks, t_tab *one_preset, int range); +void opti_path(t_stacks *stacks, t_tab *one_preset, int range, int val); +void opti2_move_path(t_stacks *stacks, t_tab *one_preset, int range); +int sort_path(t_stacks *stacks, int value); t_stack *assign_stack(t_stacks *stacks, char c); +int get_value_finded(t_stacks *stacks, t_tab *one_preset, int range); /* MEDIUM UTILS FILES */ int range_bucket(t_stack *first); int get_first_lower(t_stack *first); diff --git a/playtest.sh b/playtest.sh new file mode 100755 index 0000000..71ef259 --- /dev/null +++ b/playtest.sh @@ -0,0 +1,455 @@ +#!/bin/bash + +while true +do + echo "==========================" + echo " 0 - ----- ONLY NEGATIF" + echo " 1 - ----- ONLY POSITIF" + echo " 2 - ------------ MIXTE" + echo " 3 - -------- SANS FLAG" + echo " 4 - ------ SIMUL ERROR" + echo " 5 - ------- TEST BENCH" + echo " 6 - TEST BENCH SORTIE" + echo " 7 - ------- TEST LEN 3" + echo " 8 - ------- TEST LEN 5" + echo " 9 - ----- TEST LEN 500" + echo "10 - ------ CLOSE TEST" + echo "ENTRER LE TEST QUE TU VEUX FAIRE : " + read nombre + + case "$nombre" in + 0) + echo "ONLY NEGATIF" + echo "#################################################" + echo "#################################################" + echo "========================" + echo "======TEST SIMPLE N=====" + echo "========================" + ARG="2147483647 -2147483648 8 9 -35 40 -20 7 5 30 10"; ./push_swap --simple $ARG | ./checker $ARG + ARG="-147 -71 -59 -194 -86 -14 -49 -32 -137 -113"; ./push_swap --simple $ARG | ./checker $ARG + ARG="-127 -57 -151 -163 -159 -66 -128 -147 -68 -83"; ./push_swap --simple $ARG | ./checker $ARG + ARG="-64 -109 -102 -176 -15 -19 -103 -38 -192 -37"; ./push_swap --simple $ARG | ./checker $ARG + + echo "========================" + echo "======TEST MEDIUM N=====" + echo "========================" + ARG="2147483647 -2147483648 8 9 -35 40 -20 7 5 30 10"; ./push_swap --medium $ARG | ./checker $ARG + ARG="-147 -71 -59 -194 -86 -14 -49 -32 -137 -113"; ./push_swap --medium $ARG | ./checker $ARG + ARG="-127 -57 -151 -163 -159 -66 -128 -147 -68 -83"; ./push_swap --medium $ARG | ./checker $ARG + ARG="-64 -109 -102 -176 -15 -19 -103 -38 -192 -37"; ./push_swap --medium $ARG | ./checker $ARG + + echo "========================" + echo "======TEST COMPLEX N====" + echo "========================" + ARG="2147483647 -2147483648 8 9 -35 40 -20 7 5 30 10"; ./push_swap --complex $ARG | ./checker $ARG + ARG="-147 -71 -59 -194 -86 -14 -49 -32 -137 -113"; ./push_swap --complex $ARG | ./checker $ARG + ARG="-127 -57 -151 -163 -159 -66 -128 -147 -68 -83"; ./push_swap --complex $ARG | ./checker $ARG + ARG="-64 -109 -102 -176 -15 -19 -103 -38 -192 -37"; ./push_swap --complex $ARG | ./checker $ARG + ;; + 1) + echo "#################################################" + echo "#################################################" + echo "ONLY POSITIF" + echo "#################################################" + echo "#################################################" + echo "========================" + echo "======TEST SIMPLE P=====" + echo "========================" + ARG="147 71 59 194 86 14 49 32 137 113"; ./push_swap --simple $ARG | ./checker $ARG + ARG="127 57 151 163 159 66 128 147 68 83"; ./push_swap --simple $ARG | ./checker $ARG + ARG="64 109 102 176 15 19 103 38 192 37"; ./push_swap --simple $ARG | ./checker $ARG + + echo "========================" + echo "======TEST MEDIUM P=====" + echo "========================" + ARG="147 71 59 194 86 14 49 32 137 113"; ./push_swap --medium $ARG | ./checker $ARG + ARG="127 57 151 163 159 66 128 147 68 83"; ./push_swap --medium $ARG | ./checker $ARG + ARG="64 109 102 176 15 19 103 38 192 37"; ./push_swap --medium $ARG | ./checker $ARG + + echo "========================" + echo "======TEST COMPLEX P====" + echo "========================" + ARG="147 71 59 194 86 14 49 32 137 113"; ./push_swap --complex $ARG | ./checker $ARG + ARG="127 57 151 163 159 66 128 147 68 83"; ./push_swap --complex $ARG | ./checker $ARG + ARG="64 109 102 176 15 19 103 38 192 37"; ./push_swap --complex $ARG | ./checker $ARG + ;; + 2) + echo "#################################################" + echo "#################################################" + echo "MIXTE" + echo "#################################################" + echo "#################################################" + + echo "========================" + echo "======TEST SIMPLE P=====" + echo "========================" + ARG="0 147 71 -59 194 -86 -14 49 32 137 113"; ./push_swap --simple $ARG | ./checker $ARG + ARG="127 57 -151 163 -159 0 66 -128 147 68 83"; ./push_swap --simple $ARG | ./checker $ARG + ARG="64 109 102 176 15 19 -103 38 192 37 0"; ./push_swap --simple $ARG | ./checker $ARG + + echo "========================" + echo "======TEST MEDIUM P=====" + echo "========================" + ARG="0 147 71 -59 194 86 14 49 32 137 113"; ./push_swap --medium $ARG | ./checker $ARG + ARG="127 57 151 -163 0 159 66 128 147 68 83"; ./push_swap --medium $ARG | ./checker $ARG + ARG="64 109 -102 176 15 19 -103 38 192 37 0"; ./push_swap --medium $ARG | ./checker $ARG + + echo "========================" + echo "======TEST COMPLEX P====" + echo "========================" + ARG="0 147 71 59 -194 86 14 49 32 137 113"; ./push_swap --complex $ARG | ./checker $ARG + ARG="127 57 151 0 163 159 -66 128 -147 68 83"; ./push_swap --complex $ARG | ./checker $ARG + ARG="64 -109 102 -176 15 19 -103 38 192 37 0"; ./push_swap --complex $ARG | ./checker $ARG + ;; + 3) + echo "#################################################" + echo "#################################################" + echo "SANS FLAG" + echo "#################################################" + echo "#################################################" + + ARG="0 147 71 -59 194 -86 -14 49 32 137 113"; ./push_swap $ARG | ./checker $ARG + ARG="127 57 -151 163 -159 0 66 -128 147 68 83"; ./push_swap $ARG | ./checker $ARG + ARG="64 109 102 176 15 19 -103 38 192 37 0"; ./push_swap $ARG | ./checker $ARG + ;; + 4) + echo "#################################################" + echo "#################################################" + echo "SIMUL ERROR ON PUSH_SWAP" + echo "#################################################" + echo "#################################################" + echo "DOUBLE FLAG" + + ARG="0 147 71 59 -194 86 14 49 32 137 113"; ./push_swap --complex --complex $ARG + ARG="0 147 71 59 -194 86 14 49 32 137 113"; ./push_swap --simple --simple $ARG + ARG="0 147 71 59 -194 86 14 49 32 137 113"; ./push_swap --medium --mediun $ARG + ARG="0 147 71 59 -194 86 14 49 32 137 113"; ./push_swap --adaptive --adaptive $ARG + ARG="0 147 71 59 -194 86 14 49 32 137 113"; ./push_swap --bench --bench $ARG + echo "#################################################" + echo "SAME TYPE FLAG" + + ARG="0 147 71 59 -194 86 14 49 32 137 113"; ./push_swap --simple --complex $ARG + echo "#################################################" + echo "TOO MUCH FLAG" + + ARG="0 147 71 59 -194 86 14 49 32 137 113"; ./push_swap --simple --bench --adaptive $ARG + echo "#################################################" + echo "WRONG FLAG" + + ARG="0 147 71 59 -194 86 14 49 32 137 113"; ./push_swap --simple --test --error $ARG + echo "#################################################" + echo "DOUBLE NUMBER" + + ARG="0 147 71 59 -194 86 14 49 32 137 0 113"; ./push_swap --simple --test --error $ARG + echo "#################################################" + echo "TEST WRONG INPUT ON THE NUMBERS" + ./push_swap --simple 5 3 4 2 d + ./push_swap --simple 5 3 c 4 2 + ./push_swap --simple v 5 3 4 2 + ./push_swap --simple 5 3 4 2 455313212345 + ./push_swap --simple 5 3 4 2 "++++432" + ./push_swap --simple 5 3 4 2 +++--43 + ./push_swap --simple 5 3 4 2 + + ;; + 5) + echo "#################################################" + echo "TEST BENCH" + echo "#################################################" + echo "========================" + echo "======TEST SIMPLE ======" + echo "========================" + ARG="147 71 59 194 86 14 49 32 137 113"; ./push_swap --simple --bench $ARG 1> test.txt + echo "#################################################" + ARG="127 57 151 163 159 66 128 147 68 83"; ./push_swap --simple --bench $ARG 1> test.txt + echo "#################################################" + ARG="64 109 102 176 15 19 103 38 192 37"; ./push_swap --simple --bench $ARG 1> test.txt + + echo "========================" + echo "======TEST MEDIUM ======" + echo "========================" + ARG="147 71 59 194 86 14 49 32 137 113"; ./push_swap --medium --bench $ARG 1> test.txt + echo "#################################################" + ARG="127 57 151 163 159 66 128 147 68 83"; ./push_swap --medium --bench $ARG 1> test.txt + echo "#################################################" + ARG="64 109 102 176 15 19 103 38 192 37"; ./push_swap --medium --bench $ARG 1> test.txt + + echo "========================" + echo "======TEST COMPLEX =====" + echo "========================" + ARG="147 71 59 194 86 14 49 32 137 113"; ./push_swap --complex --bench $ARG 1> test.txt + echo "#################################################" + ARG="127 57 151 163 159 66 128 147 68 83"; ./push_swap --complex --bench $ARG 1> test.txt + echo "#################################################" + ARG="64 109 102 176 15 19 103 38 192 37"; ./push_swap --complex --bench $ARG 1> test.txt + + echo "========================" + echo "======TEST ADAPTIV =====" + echo "========================" + echo "#################################################" + ARG="147 71 59 194 86 14 49 32 137 113"; ./push_swap --bench $ARG 1> test.txt + echo "#################################################" + ARG="127 57 151 163 159 66 128 147 68 83"; ./push_swap --bench $ARG 1> test.txt + echo "#################################################" + ARG="64 109 102 176 15 19 103 38 192 37"; ./push_swap --bench $ARG 1> test.txt + echo "#################################################" + rm test.txt + ;; + 6) + echo "#################################################" + echo "TEST BENCH SI SORTIE 2" + echo "#################################################" + ARG="147 71 59 194 86 14 49 32 137 113"; ./push_swap --bench $ARG > test.txt 2> bench.txt + echo "CAT BENCH bench.txt" + cat bench.txt + ARG="127 57 151 163 159 66 128 147 68 83"; ./push_swap --bench $ARG > test.txt 2> bench.txt + echo "CAT BENCH bench.txt" + cat bench.txt + ARG="64 109 102 176 15 19 103 38 192 37"; ./push_swap --bench $ARG > test.txt 2> bench.txt + echo "CAT BENCH bench.txt" + cat bench.txt + rm bench.txt + rm test.txt + ;; + 7) + echo "TEST LEN 3" + echo "#################################################" + echo "#################################################" + echo "========================" + echo "======TEST SIMPLE ======" + echo "========================" + ARG="2 0 1"; ./push_swap --simple $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="2 0 1"; ./push_swap --simple $ARG | wc -l + echo "##################" + ARG="0 4 2"; ./push_swap --simple $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="0 4 2"; ./push_swap --simple $ARG | wc -l + echo "##################" + ARG="27 5 -2"; ./push_swap --simple $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="27 5 -2"; ./push_swap --simple $ARG | wc -l + echo "##################" + ARG="17 20 0"; ./push_swap --simple $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="17 20 0"; ./push_swap --simple $ARG | wc -l + + echo "========================" + echo "======TEST MEDIUM ======" + echo "========================" + ARG="2 0 1"; ./push_swap --medium $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="2 0 1"; ./push_swap --medium $ARG | wc -l + echo "##################" + ARG="0 4 2"; ./push_swap --medium $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="0 4 2"; ./push_swap --medium $ARG | wc -l + echo "##################" + ARG="27 5 -2"; ./push_swap --medium $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="27 5 -2"; ./push_swap --medium $ARG | wc -l + echo "##################" + ARG="17 20 0"; ./push_swap --medium $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="17 20 0"; ./push_swap --medium $ARG | wc -l + + echo "========================" + echo "======TEST COMPLEX =====" + echo "========================" + ARG="2 0 1"; ./push_swap --complex $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="2 0 1"; ./push_swap --complex $ARG | wc -l + echo "##################" + ARG="0 4 2"; ./push_swap --complex $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="0 4 2"; ./push_swap --complex $ARG | wc -l + echo "##################" + ARG="27 5 -2"; ./push_swap --complex $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="27 5 -2"; ./push_swap --complex $ARG | wc -l + echo "##################" + ARG="17 20 0"; ./push_swap --complex $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="17 20 0"; ./push_swap --complex $ARG | wc -l + + echo "========================" + echo "======TEST ADAPTIV =====" + echo "========================" + ARG="2 0 1"; ./push_swap $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="2 0 1"; ./push_swap $ARG | wc -l + echo "##################" + ARG="0 4 2"; ./push_swap $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="0 4 2"; ./push_swap $ARG | wc -l + echo "##################" + ARG="27 5 -2"; ./push_swap $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="27 5 -2"; ./push_swap $ARG | wc -l + echo "##################" + ARG="17 20 0"; ./push_swap $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="17 20 0"; ./push_swap $ARG | wc -l + ;; + 8) + echo "TEST LEN 5" + echo "#################################################" + echo "#################################################" + echo "========================" + echo "======TEST SIMPLE ======" + echo "========================" + ARG="2 0 1 5 20"; ./push_swap --simple $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="2 0 1 5 20"; ./push_swap --simple $ARG | wc -l + echo "##################" + ARG="0 4 2 -100 7"; ./push_swap --simple $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="0 4 2 -100 7"; ./push_swap --simple $ARG | wc -l + echo "##################" + ARG="27 5 -2 10 3"; ./push_swap --simple $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="27 5 -2 10 3"; ./push_swap --simple $ARG | wc -l + echo "##################" + ARG="17 20 0 -400 -245"; ./push_swap --simple $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="17 20 0 -400 -245"; ./push_swap --simple $ARG | wc -l + + echo "========================" + echo "======TEST MEDIUM ======" + echo "========================" + ARG="2 0 1 5 20"; ./push_swap --medium $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="2 0 1 5 20"; ./push_swap --medium $ARG | wc -l + echo "##################" + ARG="0 4 2 -100 7"; ./push_swap --medium $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="0 4 2 -100 7"; ./push_swap --medium $ARG | wc -l + echo "##################" + ARG="27 5 -2 10 3"; ./push_swap --medium $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="27 5 -2 10 3"; ./push_swap --medium $ARG | wc -l + echo "##################" + ARG="17 20 0 -400 -245"; ./push_swap --medium $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="17 20 0 -400 -245"; ./push_swap --medium $ARG | wc -l + + echo "========================" + echo "======TEST COMPLEX =====" + echo "========================" + ARG="2 0 1 5 20"; ./push_swap --complex $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="2 0 1 5 20"; ./push_swap --complex $ARG | wc -l + echo "##################" + ARG="0 4 2 -100 7"; ./push_swap --complex $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="0 4 2 -100 7"; ./push_swap --complex $ARG | wc -l + echo "##################" + ARG="27 5 -2 10 3"; ./push_swap --complex $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="27 5 -2 10 3"; ./push_swap --complex $ARG | wc -l + echo "##################" + ARG="17 20 0 -400 -245"; ./push_swap --complex $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="17 20 0 -400 -245"; ./push_swap --complex $ARG | wc -l + + echo "========================" + echo "======TEST ADAPTIV =====" + echo "========================" + ARG="2 0 1 5 20"; ./push_swap $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="2 0 1 5 20"; ./push_swap $ARG | wc -l + echo "##################" + ARG="0 4 2 -100 7"; ./push_swap $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="0 4 2 -100 7"; ./push_swap $ARG | wc -l + echo "##################" + ARG="27 5 -2 10 3"; ./push_swap $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="27 5 -2 10 3"; ./push_swap $ARG | wc -l + echo "##################" + ARG="17 20 0 -400 -245"; ./push_swap $ARG | ./checker $ARG + echo -n "MOUVEMENT :" + ARG="17 20 0 -400 -245"; ./push_swap $ARG | wc -l + ;; + 9) + echo "TEST LEN 500" + echo "#################################################" + echo "#################################################" + + echo "========================" + echo "======TEST ADAPTIV =====" + echo "========================" + shuf -i 0-9999 -n 500 > args.txt ; ./push_swap $(cat args.txt) | ./checker $(cat args.txt) + echo -n "MOUVEMENT :" + ./push_swap $(cat args.txt) | wc -l + echo "##################" + shuf -i 0-9999 -n 500 > args.txt ; ./push_swap $(cat args.txt) | ./checker $(cat args.txt) + echo -n "MOUVEMENT :" + ./push_swap $(cat args.txt) | wc -l + echo "##################" + shuf -i 0-9999 -n 500 > args.txt ; ./push_swap $(cat args.txt) | ./checker $(cat args.txt) + echo -n "MOUVEMENT :" + ./push_swap $(cat args.txt) | wc -l + echo "##################" + shuf -i 0-9999 -n 500 > args.txt ; ./push_swap $(cat args.txt) | ./checker $(cat args.txt) + echo -n "MOUVEMENT :" + ./push_swap $(cat args.txt) | wc -l + echo "##################" + shuf -i 0-9999 -n 500 > args.txt ; ./push_swap $(cat args.txt) | ./checker $(cat args.txt) + echo -n "MOUVEMENT :" + ./push_swap $(cat args.txt) | wc -l + echo "##################" + shuf -i 0-9999 -n 500 > args.txt ; ./push_swap $(cat args.txt) | ./checker $(cat args.txt) + echo -n "MOUVEMENT :" + ./push_swap $(cat args.txt) | wc -l + echo "##################" + shuf -i 0-9999 -n 500 > args.txt ; ./push_swap $(cat args.txt) | ./checker $(cat args.txt) + echo -n "MOUVEMENT :" + ./push_swap $(cat args.txt) | wc -l + echo "##################" + shuf -i 0-9999 -n 500 > args.txt ; ./push_swap $(cat args.txt) | ./checker $(cat args.txt) + echo -n "MOUVEMENT :" + ./push_swap $(cat args.txt) | wc -l + echo "##################" + shuf -i 0-9999 -n 500 > args.txt ; ./push_swap $(cat args.txt) | ./checker $(cat args.txt) + echo -n "MOUVEMENT :" + ./push_swap $(cat args.txt) | wc -l + echo "##################" + shuf -i 0-9999 -n 500 > args.txt ; ./push_swap $(cat args.txt) | ./checker $(cat args.txt) + echo -n "MOUVEMENT :" + ./push_swap $(cat args.txt) | wc -l + echo "##################" + shuf -i 0-9999 -n 500 > args.txt ; ./push_swap $(cat args.txt) | ./checker $(cat args.txt) + echo -n "MOUVEMENT :" + ./push_swap $(cat args.txt) | wc -l + echo "##################" + shuf -i 0-9999 -n 500 > args.txt ; ./push_swap $(cat args.txt) | ./checker $(cat args.txt) + echo -n "MOUVEMENT :" + ./push_swap $(cat args.txt) | wc -l + echo "##################" + shuf -i 0-9999 -n 500 > args.txt ; ./push_swap $(cat args.txt) | ./checker $(cat args.txt) + echo -n "MOUVEMENT :" + ./push_swap $(cat args.txt) | wc -l + echo "##################" + shuf -i 0-9999 -n 500 > args.txt ; ./push_swap $(cat args.txt) | ./checker $(cat args.txt) + echo -n "MOUVEMENT :" + ./push_swap $(cat args.txt) | wc -l + echo "##################" + shuf -i 0-9999 -n 500 > args.txt ; ./push_swap $(cat args.txt) | ./checker $(cat args.txt) + echo -n "MOUVEMENT :" + ./push_swap $(cat args.txt) | wc -l + echo "##################" + shuf -i 0-9999 -n 500 > args.txt ; ./push_swap $(cat args.txt) | ./checker $(cat args.txt) + echo -n "MOUVEMENT :" + ./push_swap $(cat args.txt) | wc -l + rm args.txt + ;; + 10) + echo "Au revoir" + exit 0 + ;; + esac + echo "===============================" + echo "TAPE NIMPORTE POUR GO NEXT : " + read tape + clear +done \ No newline at end of file