, , , . , , , , , . , , "test-" ( -, ), .
, :
sqrt
-, , .
", , , , , "
TDD , . TDD'er :
" , , "
:
void testSqrt () {
if (sqrt(9.0) == 3.0) {
printf("ALL IS FINE AND DANDY HERE");
}
else {
printf("THE SYSTEM IS DOWN! THE SYSTEM IS DOWN!");
}
}
sqrt ... 3 9! ,
float sqrt(float n) {
long i; float x, y;
const float f = 1.5;
x = n/2.0;
y = n;
i = *(long *)&y;
i = 0x5f3759df-(i >> 1);
y = *(float *) &i;
y = y*(f-(x*y*y));
y = y*(f-(x*y*y));
return n * y;
}
float sqrt(float n) {
float n_t = n/2.0;
int i = *(int*)&n;
i = 0x5f375a86 - (i>>1);
n = *(float*)&i;
n = n*(1.5f-n_t*n*n);
return n;
}
, 3 3, . , .