| 49 | |
| 50 | |
| 51 | unittest(test_all) |
| 52 | { |
| 53 | fprintf(stderr, "Convert PI to double and back\n"); |
| 54 | uint8_t ar[8]; |
| 55 | float p = PI; |
| 56 | float2DoublePacked(p, ar); |
| 57 | float q = doublePacked2Float(ar); |
| 58 | assertEqualFloat(p, q, 0.0001); |
| 59 | |
| 60 | fprintf(stderr, "IEEE_NAN %f\n", 0.0 / 0.0); |
| 61 | // assertTrue(IEEE_NAN(0.0 / 0.0)); // -nan ? |
| 62 | |
| 63 | fprintf(stderr, "IEEE_INF\n"); |
| 64 | assertEqual(1, IEEE_INF(exp(800))); |
| 65 | assertEqual(-1, IEEE_INF(-exp(800))); |
| 66 | assertEqual(0, IEEE_INF(PI)); |
| 67 | |
| 68 | fprintf(stderr, "IEEE_PosINF\n"); |
| 69 | assertTrue(IEEE_PosINF(exp(800))); |
| 70 | |
| 71 | fprintf(stderr, "IEEE_NegINF\n"); |
| 72 | assertTrue(IEEE_NegINF(-exp(800))); |
| 73 | |
| 74 | // crash - AVR specific |
| 75 | // fprintf(stderr, "IEEE_Sign\n"); |
| 76 | // assertTrue(IEEE_Sign(PI)); |
| 77 | // assertTrue(IEEE_Sign(-PI)); |
| 78 | // |
| 79 | // fprintf(stderr, "IEEE_Exponent\n"); |
| 80 | // assertTrue(IEEE_Exponent(PI)); |
| 81 | // |
| 82 | // fprintf(stderr, "IEEE_Mantisse\n"); |
| 83 | // assertTrue(IEEE_Mantisse(PI)); |
| 84 | |
| 85 | // crash - AVR specific |
| 86 | // fprintf(stderr, "IEEE_POW2\n"); |
| 87 | // float f = 2; |
| 88 | // for (int i = 0; i < 20; i++) |
| 89 | // { |
| 90 | // fprintf(stderr, "%d\t%f\t", i, f); |
| 91 | // assertEqualFloat(f, IEEE_POW2(1, i), 0.0001); |
| 92 | // f *= 2; |
| 93 | // } |
| 94 | // |
| 95 | // fprintf(stderr, "IEEE_POW2fast\n"); |
| 96 | // f = 2; |
| 97 | // for (int i = 0; i < 20; i++) |
| 98 | // { |
| 99 | // fprintf(stderr, "%d\t%f\t", i, f); |
| 100 | // assertEqualFloat(f, IEEE_POW2fast(1, i), 0.0001); |
| 101 | // f *= 2; |
| 102 | // } |
| 103 | |
| 104 | } |
| 105 | |
| 106 | |
| 107 | unittest_main() |
nothing calls this directly
no test coverage detected