ModelHandle/test/tests/io_test.js
2022-01-10 18:10:51 +01:00

124 lines
5.9 KiB
JavaScript

import * as assert from 'assert';
import * as OV from '../../source/engine/main.js';
import { GetArrayBufferFileContent } from '../utils/testutils.js';
export default function suite ()
{
describe ('IO Test', function () {
it ('Binary Reader', function () {
let buffer = GetArrayBufferFileContent ('bin/binary_content.bin');
let reader = new OV.BinaryReader (buffer, true);
assert.strictEqual (reader.GetByteLength (), 166);
assert.strictEqual (reader.ReadBoolean8 (), true);
assert.strictEqual (reader.ReadBoolean8 (), false);
assert.strictEqual (String.fromCharCode (reader.ReadCharacter8 ()), 'a');
assert.strictEqual (String.fromCharCode (reader.ReadCharacter8 ()), 'A');
assert.strictEqual (String.fromCharCode (reader.ReadUnsignedCharacter8 ()), 'a');
assert.strictEqual (String.fromCharCode (reader.ReadUnsignedCharacter8 ()), 'A');
assert.strictEqual (reader.ReadInteger16 (), 42);
assert.strictEqual (reader.ReadInteger16 (), -42);
assert.strictEqual (reader.ReadInteger16 (), 32000);
assert.strictEqual (reader.ReadInteger16 (), -32000);
assert.strictEqual (reader.ReadUnsignedInteger16 (), 42);
assert.strictEqual (reader.ReadUnsignedInteger16 (), 65494);
assert.strictEqual (reader.ReadUnsignedInteger16 (), 32000);
assert.strictEqual (reader.ReadUnsignedInteger16 (), 33536);
assert.strictEqual (reader.ReadInteger32 (), 42);
assert.strictEqual (reader.ReadInteger32 (), -42);
assert.strictEqual (reader.ReadInteger32 (), 32000);
assert.strictEqual (reader.ReadInteger32 (), -32000);
assert.strictEqual (reader.ReadInteger32 (), 2000000000);
assert.strictEqual (reader.ReadInteger32 (), -2000000000);
assert.strictEqual (reader.ReadUnsignedInteger32 (), 42);
assert.strictEqual (reader.ReadUnsignedInteger32 (), 4294967254);
assert.strictEqual (reader.ReadUnsignedInteger32 (), 32000);
assert.strictEqual (reader.ReadUnsignedInteger32 (), 4294935296);
assert.strictEqual (reader.ReadUnsignedInteger32 (), 2000000000);
assert.strictEqual (reader.ReadUnsignedInteger32 (), 2294967296);
assert.strictEqual (reader.ReadInteger32 (), 42);
assert.strictEqual (reader.ReadInteger32 (), -42);
assert.strictEqual (reader.ReadInteger32 (), 32000);
assert.strictEqual (reader.ReadInteger32 (), -32000);
assert.strictEqual (reader.ReadInteger32 (), 2000000000);
assert.strictEqual (reader.ReadInteger32 (), -2000000000);
assert.strictEqual (reader.ReadUnsignedInteger32 (), 42);
assert.strictEqual (reader.ReadUnsignedInteger32 (), 4294967254);
assert.strictEqual (reader.ReadUnsignedInteger32 (), 32000);
assert.strictEqual (reader.ReadUnsignedInteger32 (), 4294935296);
assert.strictEqual (reader.ReadUnsignedInteger32 (), 2000000000);
assert.strictEqual (reader.ReadUnsignedInteger32 (), 2294967296);
assert.strictEqual (reader.ReadFloat32 (), 42.0);
assert.strictEqual (reader.ReadFloat32 (), -42.0);
assert.strictEqual (reader.ReadFloat32 (), 12345.6787109375);
assert.strictEqual (reader.ReadFloat32 (), -12345.6787109375);
assert.strictEqual (reader.ReadDouble64 (), 42.0);
assert.strictEqual (reader.ReadDouble64 (), -42.0);
assert.strictEqual (reader.ReadDouble64 (), 12345.6789);
assert.strictEqual (reader.ReadDouble64 (), -12345.6789);
});
it ('Binary Writer', function () {
let writer = new OV.BinaryWriter (27, true);
writer.WriteBoolean8 (true);
writer.WriteCharacter8 (1);
writer.WriteUnsignedCharacter8 (2);
writer.WriteInteger16 (3);
writer.WriteUnsignedInteger16 (4);
writer.WriteInteger32 (5);
writer.WriteUnsignedInteger32 (6);
writer.WriteFloat32 (7.5);
writer.WriteDouble64 (8.5);
assert.ok (writer.End ());
let reader = new OV.BinaryReader (writer.GetBuffer (), true);
assert.strictEqual (reader.GetByteLength (), 27);
assert.strictEqual (reader.ReadBoolean8 (), true);
assert.strictEqual (reader.ReadCharacter8 (), 1);
assert.strictEqual (reader.ReadUnsignedCharacter8 (), 2);
assert.strictEqual (reader.ReadInteger16 (), 3);
assert.strictEqual (reader.ReadUnsignedInteger16 (), 4);
assert.strictEqual (reader.ReadInteger32 (), 5);
assert.strictEqual (reader.ReadUnsignedInteger32 (), 6);
assert.strictEqual (reader.ReadFloat32 (), 7.5);
assert.strictEqual (reader.ReadDouble64 (), 8.5);
});
it ('Utf8 Conversion', function () {
let str = 'example-\u2764-example';
let buffer = OV.Utf8StringToArrayBuffer (str);
assert.strictEqual (buffer.byteLength, 19);
let str2 = OV.ArrayBufferToUtf8String (buffer);
assert.strictEqual (str, str2);
assert.strictEqual (str.length, str2.length);
});
it ('File Name', function () {
assert.strictEqual (OV.GetFileName ('file.ext'), 'file.ext');
assert.strictEqual (OV.GetFileName ('folder1/folder2/file.ext'), 'file.ext');
assert.strictEqual (OV.GetFileName ('folder1\\folder2\\file.ext'), 'file.ext');
assert.strictEqual (OV.GetFileName ('https://example.com/file.ext'), 'file.ext');
assert.strictEqual (OV.GetFileName ('https://example.com/file.ext?param1=param2'), 'file.ext');
});
it ('File Extension', function () {
assert.strictEqual (OV.GetFileExtension ('file.ext'), 'ext');
assert.strictEqual (OV.GetFileExtension ('folder1/folder2/file.ext'), 'ext');
assert.strictEqual (OV.GetFileExtension ('folder1\\folder2\\file.ext'), 'ext');
assert.strictEqual (OV.GetFileExtension ('https://example.com/file.ext'), 'ext');
assert.strictEqual (OV.GetFileExtension ('https://example.com/file.ext?param1=param2'), 'ext');
});
});
}