| |
| // unary |
| function testUnary(name) { |
| Module.print(name); |
| function doTest(x) { |
| Module.print(' ' + [x] + ' ==> ' + Module['_' + name](x)); |
| } |
| doTest(0); |
| doTest(1); |
| doTest(-1); |
| doTest(0.5); |
| doTest(-0.5); |
| doTest(1.4); |
| doTest(-1.4); |
| doTest(1.6); |
| doTest(-1.6); |
| doTest(5.1); |
| doTest(5.3); |
| doTest(5.7); |
| doTest(5.9); |
| doTest(-1 | 0); |
| doTest((-1 | 0) + 1); |
| doTest((-1 | 0) - 1); |
| } |
| testUnary('dfloor'); |
| |
| // binary |
| function testBinary(name) { |
| Module.print(name); |
| function doTest(x, y) { |
| Module.print(' ' + [x, y] + ' ==> ' + Module['_' + name](x, y)); |
| } |
| doTest(0, 0); |
| doTest(0, 1); |
| doTest(1, 0); |
| doTest(1, 1); |
| doTest(5, 6); |
| doTest(6, 5); |
| doTest(101, -12); |
| doTest(-12, 101); |
| doTest(-1, 5); |
| doTest(5, -1); |
| doTest(-1, -1); |
| doTest(0.12, 0.12); |
| doTest(0.812, 1); |
| doTest(1.821, 0); |
| doTest(1, 1.212); |
| doTest(5.543, 6); |
| doTest(6, 5.121); |
| doTest(101.001, -12); |
| doTest(-12.001, 101); |
| doTest(-1, 5.123); |
| doTest(5, -1.123); |
| doTest(-1, -1.123); |
| } |
| testBinary('dadd'); |
| testBinary('dsub'); |
| testBinary('dmul'); |
| testBinary('ddiv'); |
| //testBinary('dcopysign'); // TODO this uses tempDoublePtr, a global, which is not yet functional |
| testBinary('dmin'); |
| testBinary('dmax'); |
| |
| // comparisons |
| testBinary('deq'); |
| testBinary('dne'); |
| testBinary('dlt'); |
| testBinary('dle'); |
| testBinary('dgt'); |
| testBinary('dge'); |
| |
| // conversions |
| testUnary('int_to_double'); |
| testUnary('uint_to_double'); |
| testUnary('double_to_int'); |
| |
| Module.print('done.'); |
| |