node/test/parallel/test-writefloat.js
cjihrig 6540fb9f1f test: s/ASSERT/assert/
This commit addresses an inconsistency with eight tests. These
tests use the assert module, but named the variable ASSERT. This
goes against the project's typical coding style, and negatively
impacts global find and replace updates.

PR-URL: https://github.com/nodejs/node/pull/10544
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Jackson Tian <shyvo1987@gmail.com>
Reviewed-By: Prince John Wesley <princejohnwesley@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2017-01-02 09:52:31 -05:00

115 lines
3.6 KiB
JavaScript

'use strict';
/*
* Tests to verify we're writing floats correctly
*/
require('../common');
const assert = require('assert');
function test(clazz) {
var buffer = new clazz(8);
buffer.writeFloatBE(1, 0);
buffer.writeFloatLE(1, 4);
assert.equal(0x3f, buffer[0]);
assert.equal(0x80, buffer[1]);
assert.equal(0x00, buffer[2]);
assert.equal(0x00, buffer[3]);
assert.equal(0x00, buffer[4]);
assert.equal(0x00, buffer[5]);
assert.equal(0x80, buffer[6]);
assert.equal(0x3f, buffer[7]);
buffer.writeFloatBE(1 / 3, 0);
buffer.writeFloatLE(1 / 3, 4);
assert.equal(0x3e, buffer[0]);
assert.equal(0xaa, buffer[1]);
assert.equal(0xaa, buffer[2]);
assert.equal(0xab, buffer[3]);
assert.equal(0xab, buffer[4]);
assert.equal(0xaa, buffer[5]);
assert.equal(0xaa, buffer[6]);
assert.equal(0x3e, buffer[7]);
buffer.writeFloatBE(3.4028234663852886e+38, 0);
buffer.writeFloatLE(3.4028234663852886e+38, 4);
assert.equal(0x7f, buffer[0]);
assert.equal(0x7f, buffer[1]);
assert.equal(0xff, buffer[2]);
assert.equal(0xff, buffer[3]);
assert.equal(0xff, buffer[4]);
assert.equal(0xff, buffer[5]);
assert.equal(0x7f, buffer[6]);
assert.equal(0x7f, buffer[7]);
buffer.writeFloatLE(1.1754943508222875e-38, 0);
buffer.writeFloatBE(1.1754943508222875e-38, 4);
assert.equal(0x00, buffer[0]);
assert.equal(0x00, buffer[1]);
assert.equal(0x80, buffer[2]);
assert.equal(0x00, buffer[3]);
assert.equal(0x00, buffer[4]);
assert.equal(0x80, buffer[5]);
assert.equal(0x00, buffer[6]);
assert.equal(0x00, buffer[7]);
buffer.writeFloatBE(0 * -1, 0);
buffer.writeFloatLE(0 * -1, 4);
assert.equal(0x80, buffer[0]);
assert.equal(0x00, buffer[1]);
assert.equal(0x00, buffer[2]);
assert.equal(0x00, buffer[3]);
assert.equal(0x00, buffer[4]);
assert.equal(0x00, buffer[5]);
assert.equal(0x00, buffer[6]);
assert.equal(0x80, buffer[7]);
buffer.writeFloatBE(Infinity, 0);
buffer.writeFloatLE(Infinity, 4);
assert.equal(0x7F, buffer[0]);
assert.equal(0x80, buffer[1]);
assert.equal(0x00, buffer[2]);
assert.equal(0x00, buffer[3]);
assert.equal(0x00, buffer[4]);
assert.equal(0x00, buffer[5]);
assert.equal(0x80, buffer[6]);
assert.equal(0x7F, buffer[7]);
assert.equal(Infinity, buffer.readFloatBE(0));
assert.equal(Infinity, buffer.readFloatLE(4));
buffer.writeFloatBE(-Infinity, 0);
buffer.writeFloatLE(-Infinity, 4);
// Darwin ia32 does the other kind of NaN.
// Compiler bug. No one really cares.
assert(0xFF === buffer[0] || 0x7F === buffer[0]);
assert.equal(0x80, buffer[1]);
assert.equal(0x00, buffer[2]);
assert.equal(0x00, buffer[3]);
assert.equal(0x00, buffer[4]);
assert.equal(0x00, buffer[5]);
assert.equal(0x80, buffer[6]);
assert.equal(0xFF, buffer[7]);
assert.equal(-Infinity, buffer.readFloatBE(0));
assert.equal(-Infinity, buffer.readFloatLE(4));
buffer.writeFloatBE(NaN, 0);
buffer.writeFloatLE(NaN, 4);
// Darwin ia32 does the other kind of NaN.
// Compiler bug. No one really cares.
assert(0x7F === buffer[0] || 0xFF === buffer[0]);
// mips processors use a slightly different NaN
assert(0xC0 === buffer[1] || 0xBF === buffer[1]);
assert(0x00 === buffer[2] || 0xFF === buffer[2]);
assert(0x00 === buffer[3] || 0xFF === buffer[3]);
assert(0x00 === buffer[4] || 0xFF === buffer[4]);
assert(0x00 === buffer[5] || 0xFF === buffer[5]);
assert(0xC0 === buffer[6] || 0xBF === buffer[6]);
// Darwin ia32 does the other kind of NaN.
// Compiler bug. No one really cares.
assert(0x7F === buffer[7] || 0xFF === buffer[7]);
assert.ok(isNaN(buffer.readFloatBE(0)));
assert.ok(isNaN(buffer.readFloatLE(4)));
}
test(Buffer);