example of array problem

This commit is contained in:
Sam Rang
2016-04-13 13:28:56 -05:00
parent 243b8ed24c
commit 6f0dc6d70f
4 changed files with 44 additions and 10 deletions

View File

@@ -5,6 +5,7 @@ abstract class ClassArray<T> extends Serializable<T> {
_fromJsObject(jsObjects: any): Serializable<T> {
for (let jsObject of jsObjects) {
this.elements.push(this.jsObjectToClass(jsObject));
console.log("Elements: " + this.elements);
}
return this;
}

View File

@@ -15,9 +15,13 @@ class Module extends Serializable<Module> {
keyActions: Serializable<KeyActions>;
_fromJsObject(jsObject: any): Module {
this.moduleId = jsObject.id;
this.moduleId = jsObject.moduleId;
this.role = PointerRole[<string> jsObject.pointerRole];
this.keyActions = new KeyActions().fromJsObject(jsObject.keyActions);
/*
console.log("ModuleId: "+this.moduleId);
console.log("PointerRole:"+PointerRole[this.role]);
*/
return this;
}
@@ -30,7 +34,7 @@ class Module extends Serializable<Module> {
_toJsObject(): any {
return {
id: this.moduleId,
moduleId: this.moduleId,
pointerRole: PointerRole[this.role],
keyActions: this.keyActions.toJsObject()
}
@@ -43,7 +47,7 @@ class Module extends Serializable<Module> {
}
toString(): string {
return `<Module id="${this.moduleId}">`;
return `<Module moduleId="${this.moduleId}" role="${this.role}">`;
}
}

View File

@@ -9,7 +9,7 @@ let assert = require('assert');
let fs = require('fs');
let uhkConfig = JSON.parse(fs.readFileSync('uhk-config.json'));
/*
let keyActions1Js = uhkConfig.keymaps[0].layers[0].modules[0].keyActions;
let keyActions1Ts: Serializable<KeyActions> = new KeyActions().fromJsObject(keyActions1Js);
let keyActions1Buffer = new UhkBuffer();
@@ -25,13 +25,34 @@ keyActions2Ts.toBinary(keyActions2Buffer);
fs.writeFileSync('uhk-config-serialized.json', JSON.stringify(keyActions2Js, undefined, 4));
let keyActions2BufferContent = keyActions1Buffer.getBufferContent();
fs.writeFileSync('uhk-config-serialized.bin', keyActions2BufferContent);
*/
let modulesbaseJs = uhkConfig.keymaps[0].layers[0].modules;
let modules1Ts: Serializable<Modules> = new Modules().fromJsObject(modulesbaseJs);
let modules1Js = modules1Ts.toJsObject();
let modules1Buffer = new UhkBuffer();
modules1Ts.toBinary(modules1Buffer);
let modules1BufferContent = modules1Buffer.getBufferContent();
fs.writeFileSync('uhk-config.bin', modules1BufferContent);
fs.writeFileSync('uhk-config-test.json',JSON.stringify(modules1Js,undefined,4));
modules1Buffer.offset = 0;
let modules2Ts = new Modules().fromBinary(modules1Buffer);
let modules2Js = modules2Ts.toJsObject();
let modules2Buffer = new UhkBuffer();
modules2Ts.toBinary(modules2Buffer);
fs.writeFileSync('uhk-config-serialized.json', JSON.stringify(modules2Js, undefined, 4));
let modules2BufferContent = modules1Buffer.getBufferContent();
fs.writeFileSync('uhk-config-serialized.bin', modules2BufferContent);
try {
assert.deepEqual(keyActions1Js, keyActions2Js);
/* wanted to also compare class->json & class->binary->class->json with original json */
assert.deepEqual(modulesbaseJs, modules1Js);
assert.deepEqual(modules1Js, modules2Js);
console.log('JSON configurations are identical.');
} catch (error) {
console.log('JSON configurations differ.');
}
let buffersContentsAreEqual = Buffer.compare(keyActions1BufferContent, keyActions2BufferContent) === 0;
let buffersContentsAreEqual = Buffer.compare(modules1BufferContent, modules2BufferContent) === 0;
console.log('Binary configurations ' + (buffersContentsAreEqual ? 'are identical' : 'differ') + '.');

View File

@@ -22,7 +22,7 @@
{
"modules": [
{
"id": 0,
"moduleId": 0,
"pointerRole": "move",
"keyActions": [
{
@@ -32,10 +32,18 @@
"keyActionType": "keystroke",
"scancode": 110
},
{
"keyActionType": "keystroke",
"scancode": 87
},
{
"keyActionType": "keystrokeModifiers",
"modifierMask":33
},
{
"keyActionType": "keystroke",
"scancode": 97
},
{
"keyActionType": "keystrokeWithModifiers",
"scancode": 120,
@@ -66,13 +74,13 @@
]
},
{
"id": 1,
"moduleId": 1,
"pointerRole": "scroll",
"keyActions": []
},
{
"id": 2,
"pointerRole": "move",
"moduleId": 2,
"pointerRole": "none",
"keyActions": []
}
]