Ich bin kein englischer Muttersprachler. In meiner Muttersprache sind mir einige Begriffe bekannt, die sich auf die Bedingung beziehen, die zum Stoppen einer Rekursion geprüft wurde, und auf die Bedingung, die für extreme, unwahrscheinliche oder sehr einfache Fälle geprüft wurde. Auf Englisch bin ich auf die Begriffe "Kantenfall", "Eckfall", "Grenzfall" und "Basisfall" gestoßen, aber ich kann die Unterschiede nicht ganz herausfinden, und was wird verwendet, um sich auf was zu beziehen; Ich würde gerne eine Zusammenfassung der Unterschiede zwischen ihnen bekommen.
Insbesondere würde ich mich sehr freuen, wenn jemand Anmerkungen für die Zeilen im folgenden Codebeispiel bereitstellen könnte:
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);
}
Ich denke es ist:
- Gesundheitsüberprüfung
- Eingabeprüfung
- Grenzfall? Edge-Fall? Eckkoffer?
- Basisfall? Grenzfall?
- Eckkoffer? Edge-Fall?
terminology
Eiche
quelle
quelle
Antworten:
Ich bin auch keine englische Muttersprachlerin. Aber laut Wikipedia:
Die Nomenklatur scheint also völlig verwirrt zu sein, obwohl der Eckfall etwas anderes zu bedeuten scheint (eine Kombination von Werten) als Rand- und Grenzfälle, die definitiv Synonyme sind. Es ist wahrscheinlich sicher zu sagen, dass Kanten-, Ecken- und Grenzfälle in der allgemeinen Sprache dasselbe sind. Jemand könnte bedeuten, von jedem etwas anderes zu sagen, aber es gibt kaum eine gemeinsame Vereinbarung.
Ihre 1) und 2) sind das, was Sie geschrieben haben, 3) ist ein Rand- / Grenzfall, 4) ist ein Basisfall und 5) ist ein Sonderfall.
quelle
Unabhängig von den Unterschieden zwischen den Wörtern hängt die Beschreibung eines Tests von der Semantik (Bedeutung) des Tests und nicht vom genauen Code ab. Davon abgesehen verstehe ich sie wie folgt:
sqrt(-1)
undlog(-1)
undefiniert ist.[ $# -gt 0 ]
überprüft, ob Sie mindestens einen Eingabeparameter haben, bei dem es sich auch um eine Sicherheitsüberprüfung für einen Befehl wiefind
oder handeln kannmail
.log(1 + the smallest floating point number)
.quelle
import cmath; assert(cmath.log(-1) == 3.141592653589793j)