blob: 87ae59b7901a3e90f39f3c98680f8af73c66a7d7 [file] [log] [blame]
/*
* A battery of tests for sucessful round-trip between writes and reads
*/
var mod_ctype = require('../../../ctio.js');
var ASSERT = require('assert');
/*
* What the heck, let's just test every value for 8-bits.
*/
function test8() {
var data = new Buffer(1);
var i;
for (i = 0; i < 256; i++) {
mod_ctype.wuint8(i, 'big', data, 0);
ASSERT.equal(i, mod_ctype.ruint8(data, 'big', 0));
mod_ctype.wuint8(i, 'little', data, 0);
ASSERT.equal(i, mod_ctype.ruint8(data, 'little', 0));
}
ASSERT.ok(true);
}
/*
* Test a random sample of 256 values in the 16-bit unsigned range
*/
function test16() {
var data = new Buffer(2);
var i = 0;
for (i = 0; i < 256; i++) {
var value = Math.round(Math.random() * Math.pow(2, 16));
mod_ctype.wuint16(value, 'big', data, 0);
ASSERT.equal(value, mod_ctype.ruint16(data, 'big', 0));
mod_ctype.wuint16(value, 'little', data, 0);
ASSERT.equal(value, mod_ctype.ruint16(data, 'little', 0));
}
}
/*
* Test a random sample of 256 values in the 32-bit unsigned range
*/
function test32() {
var data = new Buffer(4);
var i = 0;
for (i = 0; i < 256; i++) {
var value = Math.round(Math.random() * Math.pow(2, 32));
mod_ctype.wuint32(value, 'big', data, 0);
ASSERT.equal(value, mod_ctype.ruint32(data, 'big', 0));
mod_ctype.wuint32(value, 'little', data, 0);
ASSERT.equal(value, mod_ctype.ruint32(data, 'little', 0));
}
}
/*
* Test a random sample of 256 values in the 64-bit unsigned range
*/
function test64() {
var data = new Buffer(8);
var i = 0;
for (i = 0; i < 256; i++) {
var low = Math.round(Math.random() * Math.pow(2, 32));
var high = Math.round(Math.random() * Math.pow(2, 32));
mod_ctype.wuint64([high, low], 'big', data, 0);
var result = mod_ctype.ruint64(data, 'big', 0);
ASSERT.equal(high, result[0]);
ASSERT.equal(low, result[1]);
mod_ctype.wuint64([high, low], 'little', data, 0);
result = mod_ctype.ruint64(data, 'little', 0);
ASSERT.equal(high, result[0]);
ASSERT.equal(low, result[1]);
}
}
exports.test8 = test8;
exports.test16 = test16;
exports.test32 = test32;
exports.test64 = test64;