blob: 87886c6de5768595f06ad1ee90893cea8b039fbe [file] [log] [blame]
#include <limits.h>
#define F 140
#define T 13
feq (float x, float y)
{
if (x == y)
return T;
else
return F;
}
fne (float x, float y)
{
if (x != y)
return T;
else
return F;
}
flt (float x, float y)
{
if (x < y)
return T;
else
return F;
}
fge (float x, float y)
{
if (x >= y)
return T;
else
return F;
}
fgt (float x, float y)
{
if (x > y)
return T;
else
return F;
}
fle (float x, float y)
{
if (x <= y)
return T;
else
return F;
}
float args[] =
{
0.0F,
1.0F,
-1.0F,
__FLT_MAX__,
__FLT_MIN__,
0.0000000000001F,
123456789.0F,
-987654321.0F
};
int correct_results[] =
{
T, F, F, T, F, T,
F, T, T, F, F, T,
F, T, F, T, T, F,
F, T, T, F, F, T,
F, T, T, F, F, T,
F, T, T, F, F, T,
F, T, T, F, F, T,
F, T, F, T, T, F,
F, T, F, T, T, F,
T, F, F, T, F, T,
F, T, F, T, T, F,
F, T, T, F, F, T,
F, T, F, T, T, F,
F, T, F, T, T, F,
F, T, T, F, F, T,
F, T, F, T, T, F,
F, T, T, F, F, T,
F, T, T, F, F, T,
T, F, F, T, F, T,
F, T, T, F, F, T,
F, T, T, F, F, T,
F, T, T, F, F, T,
F, T, T, F, F, T,
F, T, F, T, T, F,
F, T, F, T, T, F,
F, T, F, T, T, F,
F, T, F, T, T, F,
T, F, F, T, F, T,
F, T, F, T, T, F,
F, T, F, T, T, F,
F, T, F, T, T, F,
F, T, F, T, T, F,
F, T, F, T, T, F,
F, T, T, F, F, T,
F, T, F, T, T, F,
F, T, T, F, F, T,
T, F, F, T, F, T,
F, T, T, F, F, T,
F, T, T, F, F, T,
F, T, F, T, T, F,
F, T, F, T, T, F,
F, T, T, F, F, T,
F, T, F, T, T, F,
F, T, T, F, F, T,
F, T, F, T, T, F,
T, F, F, T, F, T,
F, T, T, F, F, T,
F, T, F, T, T, F,
F, T, F, T, T, F,
F, T, F, T, T, F,
F, T, F, T, T, F,
F, T, T, F, F, T,
F, T, F, T, T, F,
F, T, F, T, T, F,
T, F, F, T, F, T,
F, T, F, T, T, F,
F, T, T, F, F, T,
F, T, T, F, F, T,
F, T, T, F, F, T,
F, T, T, F, F, T,
F, T, T, F, F, T,
F, T, T, F, F, T,
F, T, T, F, F, T,
T, F, F, T, F, T,
};
int
main (void)
{
int i, j, *res = correct_results;
for (i = 0; i < 8; i++)
{
float arg0 = args[i];
for (j = 0; j < 8; j++)
{
float arg1 = args[j];
if (feq (arg0, arg1) != *res++)
abort ();
if (fne (arg0, arg1) != *res++)
abort ();
if (flt (arg0, arg1) != *res++)
abort ();
if (fge (arg0, arg1) != *res++)
abort ();
if (fgt (arg0, arg1) != *res++)
abort ();
if (fle (arg0, arg1) != *res++)
abort ();
}
}
exit (0);
}