6431baf664888cd93c85eb2005dc40a37449a0d6
[fw/sdcc] / support / regression / tests / float_trans.c
1 /* Test of transcendent float functions.
2    Original from Jesus Calvino-Fraga
3
4    func: SQRTF, LOGF, POWF, TANF
5 */
6 #include <testfwk.h>
7 #include <math.h>
8
9 #define {func} 1
10
11 void
12 testTrans(void)
13 {
14 #if !defined(SDCC_z80) && !PORT_HOST
15 # ifdef SQRTF
16       ASSERT(fabsf (sqrtf (5.0)     -   2.23606801) < 0.00001);
17 # endif
18 # ifdef LOGF
19     ASSERT(fabsf (logf (124.0)    -   4.82028150) < 0.00001);
20     ASSERT(fabsf (log10f (124.0)  -   2.09342169) < 0.00001);
21 # endif
22 # ifdef POWF
23     /*  too big for small modell */
24 #   ifndef SDCC_MODEL_SMALL
25       ASSERT(fabsf (powf (1.5, 2.0) -   2.24999976) < 0.00001);
26 #   endif
27 # endif
28 # ifdef TANF
29     ASSERT(fabsf (tanf (1.6)      - -34.23250579) < 0.00001);
30 # endif
31 #endif
32 }