Files
Upsilon/liba/test/double.c
Romain Goyet 27b9675709 [liba] Nicer port softfloat.h header
Change-Id: I347b181ce8b69d5274e590edcac5ed32af867662
2017-08-03 13:10:30 +02:00

18 lines
880 B
C

#include <quiz.h>
#include <assert.h>
QUIZ_CASE(double_arithmetic) {
assert(sizeof(double) == 8); // Our softfloat header assumes double == float64_t
assert(3.12+2.00001 - 5.12001 < 0.0000000001);
assert(1e106+1e104 - 1.01e106 < 0.0000000001);
assert(1e-106+1e-104 - 1.01e104 < 0.0000000001);
assert(3.12345678901234567890/2.0000000000000001 - 1.56172839450617276136 < 0.0000000001);
assert(1.09876e206/2.45678e207 - 0.04472358127304846180773 < 0.0000000001);
assert(3.12345678901234567890*2.0000000000000001 - 6.24691357802469167014 < 0.0000000001);
assert(1.09876e106*2.45678e107 - 2.6994115928e213 < 0.0000000001);
assert(-3.12345678901234567890+2.0000000000000001 == -1.1234567890123457);
assert(-1e36+1e34 + 9.9e35 < 0.0000000001);
assert(3.12345678901234567890-2.0000000000000001 == 1.1234567890123457);
assert(1e36-1e34 - 9.9e35 < 0.0000000001);
}