Tablo jumo

J’avais besoin de contrôler que deux tableaux sont identiques, en taille et en contenu - marrant que ça n’arrive qu’aujourd’hui, d’ailleurs…
<code 4D>
//Arr_equal (arr1_p;arr2_p) -> bool
//$0 vrai si 2 tableaux sont égaux en taille et en contenu
C_BOOLÉEN($0)
C_POINTEUR($1;$2)
$0:=Faux
$arr1_p:=$1
$arr2_p:=$2
Si (Taille tableau($arr1_p->)=Taille tableau($arr2_p->))
TRIER TABLEAU($arr1_p->;>)
TRIER TABLEAU($arr2_p->;>)
C_BLOB($blb1_x;$blb2_x)
VARIABLE VERS BLOB($arr1_p->;$blb1_x)
VARIABLE VERS BLOB($arr2_p->;$blb2_x)
$digest1_t:=Generer digest($blb1_x;Digest SHA1)
$digest2_t:=Generer digest($blb2_x;Digest SHA1)
$0:=Str_equal ($digest1_t;$digest2_t)
Fin de si
//_
</code 4D>
Test unitaire :
<code 4D>
TABLEAU TEXTE($1_at;0)
TABLEAU TEXTE($2_at;0)
AJOUTER À TABLEAU($1_at;“toto”)
AJOUTER À TABLEAU($1_at;“titi”)
AJOUTER À TABLEAU($1_at;“tata”)
$1_at{0}:=“tutu”
COPIER TABLEAU($1_at;$2_at)
ASSERT(Arr_equal (->$1_at;->$2_at))
$2_at{0}:=“utut”
ASSERT(Non(Arr_equal (->$1_at;->$2_at)))
</code 4D>
En réalité, comme je ne sais si l’idée de passer par un digest est bonne mais que je sais que le partage de code excite particulièrement la critique, c’est plus une question qu’un partage. J’accepterai même sans m’énerver les remarques désobligeantes sur l’indigence du test unitaire.

PS : les rides de l’éditeur de code du forum se creusent et toujours pas de botox. Est-il déraisonnable d’espérer de 4D, sur le forum 4D fait avec 4D, un truc qui affiche dignement du code 4D ?