Je ne suis pas natif anglophone. Dans ma langue maternelle, je connais certains termes utilisés pour faire référence à la condition vérifiée pour arrêter une récursivité, et à la condition vérifiée pour les cas extrêmes, improbables ou super simples. En anglais, j'ai rencontré les termes "Edge case", "corner case", "border case" et "base case", mais je ne peux pas vraiment comprendre les différences et ce qui est utilisé pour faire référence à quoi; J'adorerais avoir un résumé des différences entre eux.
En particulier, je serais très heureux si quelqu'un pouvait fournir des annotations pour les lignes dans l'exemple de code suivant:
int transmogrify(int n) {
1. assert(n <= 1000000);
2. if (n < 0) return -1;
3. if (n == 1000000) return PRE_CALC;
4. if (n == 0) return n+1; // For stopping the recursion
5. if (n == 1251) return 3077;
return transmogrify(n-1);
}
I pensez c'est:
Je ne suis pas non plus un anglophone natif. Mais selon Wikipedia:
Ainsi, la nomenclature semble être totalement confuse, même si le cas de coin semble signifier quelque chose d'un peu différent (une combinaison de valeurs) que les cas de bord et de limite, qui sont définitivement synonymes. Il est probablement prudent de dire que les cas de bord, de coin et de limite sont la même chose dans le discours commun. Quelqu'un pourrait vouloir dire des choses différentes par chacun d'eux, mais il n'y a pratiquement pas d'accord commun.
Vos 1) et 2) sont ce que vous avez écrit, 3) est un cas de bord/limite, 4) est un cas de base et 5) est un cas spécial.
Quelles que soient les différences entre les mots, ce que vous utiliseriez pour décrire un test dépend de la sémantique (signification) du test, pas du code exact - Dans l'exemple fourni, la signification de chacun des tests n'est pas évidente. Cela mis à part, voici comment je les comprends:
sqrt(-1)
= et log(-1)
ne sont pas définis.[ $# -gt 0 ]
Vérifie que vous avez obtenu au moins un paramètre d'entrée, qui peut également être un contrôle d'intégrité pour une commande comme find
ou mail
.log(1 + the smallest floating point number)
.