node/test/parallel/test-writefloat.js
cjihrig 2f8bc9a7bc
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-31 20:04:29 -05:00

114 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);