Votre test ligne 19 est complètement à coté de la plaque.

Mais votre code est extrêmement complexe pour rien.

- n'utilisez pas rand, c'est du C des années 70, c'est plus que casse-gueule
-...