assert_isequal

Vérifie que les valeurs calculées et attendues sont égales.

📝 Syntaxe

  • assert_isequal(computed, expected)

  • res = assert_isequal(computed, expected)

  • [res, msg] = assert_isequal(computed, expected)

📥 Argument d'entrée

  • computed - une valeur de n'importe quel type à tester pour l'égalité.

  • expected - une valeur de n'importe quel type représentant le résultat attendu.

📤 Argument de sortie

  • res - une valeur logique : true si les valeurs sont égales, false sinon.

  • msg - une chaîne contenant le message d'erreur. Si res == true, alors msg == ''. Si res == false, alors msg contient le message d'échec de l'assertion.

📄 Description

assert_isequal lève une erreur si la valeur calculée n'est pas égale à la valeur attendue.

Cette fonction effectue un test d'égalité stricte qui vérifie le même type, les mêmes dimensions et les mêmes valeurs. Elle utilise la même logique que la fonction isequaln.

Contrairement aux opérateurs d'égalité standards, cette fonction gère correctement les valeurs NaN, en les considérant égales lorsque les deux valeurs contiennent NaN aux mêmes positions.

Cette fonction est essentielle pour les tests unitaires afin de vérifier que les résultats calculés correspondent exactement aux résultats attendus.

Fonction(s) utilisée(s)

isequaln

📚 Bibliographie

"Automated Software Testing for Matlab", Steven Eddins, 2009

💡 Exemples

Test d'égalité de matrices identiques :

A = eye(3, 3);
assert_isequal(A, A)

Test qui démontre la détection de différence de type :

A = eye(3, 3);
B = single(A);
try
    assert_isequal(A, B)
catch ME
    disp(['Error: ' ME.message])
end

Test de gestion de l'égalité avec NaN :

A = NaN;
B = A;
assert_isequal(A, B)

Utilisation des valeurs de retour pour gérer les résultats d'assertion :

[res, msg] = assert_isequal([1, 2, 3], [1, 2, 4]);
if res
    disp('Values are equal')
else
    disp(['Values are not equal: ' msg])
end

🔗 Voir aussi

isequaln, assert_isapprox, assert_istrue, assert_isfalse.

🕔 Historique

Version
📄 Description

1.0.0

version initiale

Last updated

Was this helpful?