1 var tape = require("tape");
\r
3 var float = require("..");
\r
5 tape.test("float", function(test) {
\r
8 test.test(test.name + " - typed array", function(test) {
\r
9 runTest(float, test);
\r
13 test.test(test.name + " - fallback", function(test) {
\r
14 var F32 = global.Float32Array,
\r
15 F64 = global.Float64Array;
\r
16 delete global.Float32Array;
\r
17 delete global.Float64Array;
\r
18 runTest(float({}), test);
\r
19 global.Float32Array = F32;
\r
20 global.Float64Array = F64;
\r
24 function runTest(float, test) {
\r
37 test.test(test.name + " - using 32 bits", function(test) {
\r
39 3.4028234663852886e+38,
\r
40 1.1754943508222875e-38,
\r
41 1.1754946310819804e-39
\r
43 .forEach(function(value) {
\r
44 var strval = value === 0 && 1 / value < 0 ? "-0" : value.toString();
\r
46 checkValue(value, 4, float.readFloatLE, float.writeFloatLE, Buffer.prototype.writeFloatLE),
\r
47 "should write and read back " + strval + " (32 bit LE)"
\r
50 checkValue(value, 4, float.readFloatBE, float.writeFloatBE, Buffer.prototype.writeFloatBE),
\r
51 "should write and read back " + strval + " (32 bit BE)"
\r
57 test.test(test.name + " - using 64 bits", function(test) {
\r
59 1.7976931348623157e+308,
\r
60 2.2250738585072014e-308,
\r
61 2.2250738585072014e-309
\r
63 .forEach(function(value) {
\r
64 var strval = value === 0 && 1 / value < 0 ? "-0" : value.toString();
\r
66 checkValue(value, 8, float.readDoubleLE, float.writeDoubleLE, Buffer.prototype.writeDoubleLE),
\r
67 "should write and read back " + strval + " (64 bit LE)"
\r
70 checkValue(value, 8, float.readDoubleBE, float.writeDoubleBE, Buffer.prototype.writeDoubleBE),
\r
71 "should write and read back " + strval + " (64 bit BE)"
\r
80 function checkValue(value, size, read, write, write_comp) {
\r
81 var buffer = new Buffer(size);
\r
82 write(value, buffer, 0);
\r
83 var value_comp = read(buffer, 0);
\r
84 var strval = value === 0 && 1 / value < 0 ? "-0" : value.toString();
\r
85 if (value !== value) {
\r
86 if (value_comp === value_comp)
\r
88 } else if (value_comp !== value)
\r
91 var buffer_comp = new Buffer(size);
\r
92 write_comp.call(buffer_comp, value, 0);
\r
93 for (var i = 0; i < size; ++i)
\r
94 if (buffer[i] !== buffer_comp[i]) {
\r
95 console.error(">", buffer, buffer_comp);
\r