| /* |
| * 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; |