14. 事前条件 (D言語の場合)
double divide(double a, double b)
in {
assert(!isNaN(a) && !isNaN(b));
assert(isFinite(a) || isFinite(b));
}
body {
return a / b;
}
a も b も NaN でない
かつ
a も b も有限の値
15. 事後条件 (D言語の場合)
double divide(double a, double b)
in {
assert(!isNaN(a) && !isNaN(b));
assert(isFinite(a) || isFinite(b));
}
out(res) {
assert(!isNaN(res));
}
body {
return a / b;
}
返却値resは
NaNではない