2003-04-30 Bernhard Held <bernhard@bernhardheld.de>
* support/regression/tests/float.c: workaround 33 bit hex constant
+ * support/regression/tests/simplefloat.c: fix division for host
2003-04-29 Scott Dattalo <scott@dattalo.com>
/** Simple set of tests for floating pt.
*/
#include <testfwk.h>
+#include <math.h>
+
+#if (PORT_HOST)
+# define FCOMP(a,b) (fabsf((a) - (b)) < ((b) * 1e-10))
+#else
+ /* Testing floats for equality is normally a bug,
+ but too keep this test simple we dare it. And
+ it works with the exception of the division on
+ the host port. */
+# define FCOMP(a,b) ((a) == (b))
+#endif
void
testCmp(void)
void
testDiv(void)
{
-#if !PORT_HOST
-#if defined __mcs51 && !defined (SDCC_STACK_AUTO)
+#if defined (__mcs51) && !defined (SDCC_STACK_AUTO)
idata at 0xd0
#endif
volatile float left;
left = 17;
right = 343;
- ASSERT(left/right == (17.0/343.0));
- ASSERT(right/left == (343.0/17.0));
+ ASSERT(FCOMP(left/right, (17.0/343.0)));
+ ASSERT(FCOMP(right/left, (343.0/17.0)));
right = 17;
- ASSERT(left/right == 1.0);
-#endif
+ ASSERT(FCOMP(left/right, 1.0));
}
void