diff --git a/.directory b/.directory deleted file mode 100644 index aa3097b7..00000000 --- a/.directory +++ /dev/null @@ -1,3 +0,0 @@ -[Dolphin] -Timestamp=2014,7,25,13,13,54 -Version=3 diff --git a/.kateproject b/.kateproject deleted file mode 100644 index a526ff11..00000000 --- a/.kateproject +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "Yatta!" -, "files": [ { "git": 1 } ] -} diff --git a/.kateproject.d/notes.txt b/.kateproject.d/notes.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/Gruntfile.coffee b/Gruntfile.coffee index 1792633f..e8f4dc19 100644 --- a/Gruntfile.coffee +++ b/Gruntfile.coffee @@ -37,7 +37,7 @@ module.exports = (grunt) -> all: src: ['test/**/*.coffee'] options: - timeout: 3000 + timeout: 9999999 ignoreLeaks: false ui: 'bdd' reporter: 'list' @@ -67,7 +67,7 @@ module.exports = (grunt) -> extras: ["LICENSE-LGPL"] #undocumented: yes verbose: false - stats: false + stats: true src: ["./lib"] browserify: dist: diff --git a/dest/browser/Frameworks/JsonIwcYatta.js b/dest/browser/Frameworks/JsonIwcYatta.js index c5223178..a31f9efb 100644 --- a/dest/browser/Frameworks/JsonIwcYatta.js +++ b/dest/browser/Frameworks/JsonIwcYatta.js @@ -371,8 +371,8 @@ module.exports = function(HB) { parser = {}; execution_listener = []; Operation = (function() { - function Operation(_arg) { - this.creator = _arg['creator'], this.op_number = _arg['op_number']; + function Operation(uid) { + this.creator = uid['creator'], this.op_number = uid['op_number']; } Operation.prototype.getUid = function() { @@ -457,9 +457,9 @@ module.exports = function(HB) { return Delete; })(Operation); - parser['Delete'] = function(_arg) { + parser['Delete'] = function(o) { var deletes_uid, uid; - uid = _arg['uid'], deletes_uid = _arg['deletes']; + uid = o['uid'], deletes_uid = o['deletes']; return new Delete(uid, deletes_uid); }; Insert = (function(_super) { @@ -678,14 +678,13 @@ module.exports = function(HB) { if (typeof content === 'string') { word = HB.addOperation(new types.Word(HB.getNextOperationIdentifier(), content)).execute(); JsonType.__super__.val.call(this, name, word); - return content; } else if (typeof content === 'object') { json = HB.addOperation(JsonType(HB.getNextOperationIdentifier(), content)).execute(); JsonType.__super__.val.call(this, name, json); - return content; } else { throw new Error("You must not set " + (typeof content) + "-types in collaborative Json-objects!"); } + return this; } else { return JsonType.__super__.val.call(this, name, content); } diff --git a/dest/browser/Widgets/libs/DUIClient.js b/dest/browser/Widgets/libs/DUIClient.js index ab759f50..bcb8ecd4 100644 --- a/dest/browser/Widgets/libs/DUIClient.js +++ b/dest/browser/Widgets/libs/DUIClient.js @@ -21,9 +21,9 @@ DUIClient = function(){ var that = this; var _iwcClient = new iwc.Client(["*"]); _iwcClient._componentName = "duiclient-"+_widgetId; - + this.externalCallback = function(intent){}; - + /** * The target function when the intent is for updating widget state request */ @@ -35,6 +35,9 @@ DUIClient = function(){ this.updateState(intent); }; + this.getIwcClient = function(){ + return _iwcClient; + } /** * The target function when the intent is for getting the current widget state.
* The intent.extras object here is always a Json object. @@ -47,7 +50,7 @@ DUIClient = function(){ forMigration = true; } var states = this.getWidgetState(forMigration); - + var resIntent = {}; if (forMigration) resIntent = { @@ -67,10 +70,10 @@ DUIClient = function(){ "dataType":"", "extras":{"widgetId": _widgetId, "widgetStates": states} }; - + _iwcClient.publish(resIntent); }; - + /** * The target function when the intent is to inform a change in the scope of the application */ @@ -85,7 +88,7 @@ DUIClient = function(){ console.log("do sth before the widget is removed"); this.prepareMigration(); }; - + this._logOff = function(intent){ var states = this.getWidgetState(false); resIntent = { @@ -96,10 +99,10 @@ DUIClient = function(){ "dataType":"", "extras":{"widgetId": _widgetId, "widgetStates": states} }; - + _iwcClient.publish(resIntent); }; - + /** * The intent dispatcher and the callback function connected to the private field of iwc.Client.onIntent.
* This function is called once an intent is received by the iwc.Client and passed the first level filter of the iwc.Client.
@@ -109,7 +112,7 @@ DUIClient = function(){ that.externalCallback(intent); //does not accept global intents(global intents are processed by normal iwc.Client, normal iwc.Proxy and DUI manager) //does not accept intents that are not categorized as "DUI" - if ((typeof intent.flags != "undefined" && intent.flags.indexOf("PUBLISH_GLOBAL")!=-1) + if ((typeof intent.flags != "undefined" && intent.flags.indexOf("PUBLISH_GLOBAL")!=-1) || typeof intent.categories == "undefined" || intent.categories.indexOf("DUI") == -1) return; //then does not accept intents for other widgets @@ -128,7 +131,7 @@ DUIClient = function(){ that._prepareMigration(intent); return; } - }else if (typeof intent.extras.widgetId == "undefined"){ + }else if (typeof intent.extras.widgetId == "undefined"){ if (action == "DUI_LOG_OFF"){ that._logOff(intent); return; @@ -146,11 +149,11 @@ DUIClient = function(){ } } }; - + _iwcClient.connect(_iwcCallback); - + //remember to bind(this) the function when override - + /** * The function is called when the dui manager wants the widget states.
* Notice: avoid putting complex data and data structure to the state value, the browser and Java JSON encoder and parser might cause inconsistent input and output. @@ -160,9 +163,9 @@ DUIClient = function(){ this.getWidgetState = function(isForMigration){ console.log("the widget collects it is state and return, overwrite it"); var states = {}; - return states; + return states; }; - + /** * The function is called when there detected a application state change at the dui manager and the manager informs the widget about the change.
* Override this function to apply changes to the widget according to the valuable application state changes.
@@ -196,7 +199,7 @@ DUIClient = function(){ /** * The function is called when the dui manager asks the widget to update its states.
* Compared to the function DUIClient.finishMigration(), this is a typical normal state update for active widget on presence.
- * This method will be called as a callback for DUIClient#requireWidgetState(); or DUIClient#initOK() when it is not a migration. + * This method will be called as a callback for DUIClient#requireWidgetState(); or DUIClient#initOK() when it is not a migration. * Override this method to perform state update for each different widget. * @param intent The Intent object that contains infos of required widget states, the infos are in intent.extras.widgetStates e.g. {"state1":value1,"state2":value2}. * The object might contain appStates as well if there is any application state, get it in intent.extras.appStates e.g. {"appstate1":value1,"appstate2":value2}. @@ -210,7 +213,7 @@ DUIClient = function(){ console.log(appStates); console.log("update the widget state, widget need to overwrite it"); }; - + /** * The function is called to finish the Migration and update the widget state.
* Compared to the method DUIClient.updateState(), this method is a special widget state update for the widget that has just migrated.
@@ -227,10 +230,10 @@ DUIClient = function(){ console.log(appStates); console.log("the migration is done, the widget may need to perform special inits before update the widget state e.g. login to the lasServer again."); }; - + /** * The function to signal the dui manager that the preparation for the migration is ready on this widget.
- * This function should be called at the end of the overwritten function {@link DUIClient#prepareMigration}
+ * This function should be called at the end of the overwritten function {@link DUIClient#prepareMigration}
* Do not override this method unless there is really an unstoppable reason. */ this.prepareMigDone = function(){ @@ -263,7 +266,7 @@ DUIClient = function(){ }; _iwcClient.publish(intent); }; - + /** * An open interface to send any intent */ @@ -271,7 +274,7 @@ DUIClient = function(){ //or to send the intent to "duimanager" _iwcClient.publish(intent); }; - + /** * This function asks the framework for the states stored on the server. * Do not override it. @@ -287,7 +290,7 @@ DUIClient = function(){ }; _iwcClient.publish(intent); }; - + /** * Store the global app state * @param states the app state to be stored e.g. {"state1":value1, "state2":value2} @@ -303,7 +306,7 @@ DUIClient = function(){ }; _iwcClient.publish(intent); }; - + /** * Ask the dui manager for the app state. */ @@ -317,15 +320,15 @@ DUIClient = function(){ }; _iwcClient.publish(intent); }; - + /** * Override this function to do something when the requested app state comes. * @param appStates the json format of the app state:{"name1": value1, "name2": value2}; */ this.onAppState = function(appStates){}; - + /** - * call this function to register the duiclient to duimanager after all things are OK + * call this function to register the duiclient to duimanager after all things are OK */ this.initOK = function(){ var okIntent = { @@ -334,12 +337,12 @@ DUIClient = function(){ "component": "duimanager",// the overwritten dui manager from the iwc.Proxy should have the _componentName set to "duimanager" "data":"", "dataType":"", - "extras":{"widgetId": _widgetId} + "extras":{"widgetId": _widgetId} }; - + _iwcClient.publish(okIntent); }; - + /** * publish the intent in the domain of the user only */ @@ -355,7 +358,7 @@ DUIClient = function(){ _iwcClient.publish(intent); _iwcClient.publish(wrap); }; - + /** * register the call back function of the widget to the DUI client. */ diff --git a/dest/browser/Yatta_test.js b/dest/browser/Yatta_test.js index c107b8c5..35ca0fe5 100644 --- a/dest/browser/Yatta_test.js +++ b/dest/browser/Yatta_test.js @@ -409,8 +409,8 @@ module.exports = function(HB) { parser = {}; execution_listener = []; Operation = (function() { - function Operation(_arg) { - this.creator = _arg['creator'], this.op_number = _arg['op_number']; + function Operation(uid) { + this.creator = uid['creator'], this.op_number = uid['op_number']; } Operation.prototype.getUid = function() { @@ -495,9 +495,9 @@ module.exports = function(HB) { return Delete; })(Operation); - parser['Delete'] = function(_arg) { + parser['Delete'] = function(o) { var deletes_uid, uid; - uid = _arg['uid'], deletes_uid = _arg['deletes']; + uid = o['uid'], deletes_uid = o['deletes']; return new Delete(uid, deletes_uid); }; Insert = (function(_super) { @@ -716,14 +716,13 @@ module.exports = function(HB) { if (typeof content === 'string') { word = HB.addOperation(new types.Word(HB.getNextOperationIdentifier(), content)).execute(); JsonType.__super__.val.call(this, name, word); - return content; } else if (typeof content === 'object') { json = HB.addOperation(JsonType(HB.getNextOperationIdentifier(), content)).execute(); JsonType.__super__.val.call(this, name, json); - return content; } else { throw new Error("You must not set " + (typeof content) + "-types in collaborative Json-objects!"); } + return this; } else { return JsonType.__super__.val.call(this, name, content); } @@ -13200,156 +13199,142 @@ Yatta = require("../lib/Frameworks/JsonYatta.coffee"); Connector_uninitialized = require("../lib/Connectors/TestConnector.coffee"); -describe("JsonYatta", function() { - beforeEach(function(done) { - var i, _i, _ref; - this.last_user = 10; - this.users = []; - this.Connector = Connector_uninitialized(this.users); - for (i = _i = 0, _ref = this.last_user + 1; 0 <= _ref ? _i <= _ref : _i >= _ref; i = 0 <= _ref ? ++_i : --_i) { - this.users.push(new Yatta(i, this.Connector)); - } - return done(); - }); - return it("can handle many engines, many operations, concurrently (random)", function() { - var Connector, applyRandomOp, doSomething, doSomething_amount, found_error, generateDeleteOp, generateInsertOp, generateRandomOp, generateReplaceOp, i, j, number_of_created_operations, number_of_engines, number_of_test_cases_multiplier, ops, ops_per_msek, printOpsInExecutionOrder, repeat_this, time_now, times, u, user, user_number, users, _i, _j, _k, _l, _len, _m, _ref, _results; - number_of_test_cases_multiplier = 1; - repeat_this = 1 * number_of_test_cases_multiplier; - doSomething_amount = 200 * number_of_test_cases_multiplier; - number_of_engines = 12 + number_of_test_cases_multiplier - 1; - this.time = 0; - this.ops = 0; - users = []; - generateInsertOp = function(user_num) { - var chars, length, nextchar, pos, text; - chars = "1234567890"; - pos = _.random(0, users[user_num].val('name').length - 1); - length = 1; - nextchar = chars[_.random(0, chars.length - 1)]; - text = ""; - _(length).times(function() { - return text += nextchar; - }); - users[user_num].val('name').insertText(pos, text); - return null; - }; - generateReplaceOp = function(user_num) { - var chars, length, nextchar, text; - chars = "abcdefghijklmnopqrstuvwxyz"; - length = _.random(0, 10); - nextchar = chars[_.random(0, chars.length - 1)]; - text = ""; - _(length).times(function() { - return text += nextchar; - }); - return users[user_num].val('name').replaceText(text); - }; - generateDeleteOp = function(user_num) { - var length, ops1, pos; - if (users[user_num].val('name').val().length > 0) { - pos = _.random(0, users[user_num].val('name').val().length - 1); - length = 1; - ops1 = users[user_num].val('name').deleteText(pos, length); - } - return void 0; - }; - generateRandomOp = function(user_num) { - var i, op, op_gen; - op_gen = [generateDeleteOp, generateInsertOp, generateReplaceOp]; - i = _.random(op_gen.length - 1); - return op = op_gen[i](user_num); - }; - applyRandomOp = function(user_num) { - var user; - user = users[user_num]; - return user.getConnector().flushOneRandom(); - }; - doSomething = (function() { - return function() { - var choice, choices, user_num; - user_num = _.random(number_of_engines - 1); - choices = [applyRandomOp, generateRandomOp]; - choice = _.random(choices.length - 1); - return choices[choice](user_num); - }; - })(); - console.log(""); - _results = []; - for (times = _i = 1; 1 <= repeat_this ? _i <= repeat_this : _i >= repeat_this; times = 1 <= repeat_this ? ++_i : --_i) { - users = []; - Connector = Connector_uninitialized(users); - users.push(new Yatta(0, Connector)); - users[0].val('name', "initial"); - for (i = _j = 1; 1 <= number_of_engines ? _j < number_of_engines : _j > number_of_engines; i = 1 <= number_of_engines ? ++_j : --_j) { - users.push(new Yatta(i, Connector)); - } - found_error = false; - time_now = (new Date).getTime(); - for (i = _k = 1; 1 <= doSomething_amount ? _k <= doSomething_amount : _k >= doSomething_amount; i = 1 <= doSomething_amount ? ++_k : --_k) { - doSomething(); - } - for (user_number = _l = 0, _len = users.length; _l < _len; user_number = ++_l) { - user = users[user_number]; - user.getConnector().flushAll(); - } - this.time += (new Date()).getTime() - time_now; - number_of_created_operations = 0; - for (i = _m = 0, _ref = users.length; 0 <= _ref ? _m < _ref : _m > _ref; i = 0 <= _ref ? ++_m : --_m) { - number_of_created_operations += users[i].getConnector().getOpsInExecutionOrder().length; - } - this.ops += number_of_created_operations * users.length; - ops_per_msek = Math.floor(this.ops / this.time); - console.log(("" + times + "/" + repeat_this + ": Every collaborator (" + users.length + ") applied " + number_of_created_operations + " ops in a different order.") + (" Over all we consumed " + this.ops + " operations in " + (this.time / 1000) + " seconds (" + ops_per_msek + " ops/msek).")); - console.log(users[0].val('name').val()); - _results.push((function() { - var _len1, _n, _o, _ref1, _results1; - _results1 = []; - for (i = _n = 0, _ref1 = users.length - 1; 0 <= _ref1 ? _n < _ref1 : _n > _ref1; i = 0 <= _ref1 ? ++_n : --_n) { - if (users[i].val('name').val() !== users[i + 1].val('name').val()) { - printOpsInExecutionOrder = function(otnumber, otherotnumber) { - var j, o, ops, s, _len1, _len2, _o, _p; - ops = users[otnumber].getConnector().getOpsInExecutionOrder(); - for (_o = 0, _len1 = ops.length; _o < _len1; _o++) { - s = ops[_o]; - console.log(JSON.stringify(s)); - } - console.log(""); - s = "ops = ["; - for (j = _p = 0, _len2 = ops.length; _p < _len2; j = ++_p) { - o = ops[j]; - if (j !== 0) { - s += ", "; - } - s += "op" + j; - } - s += "]"; - console.log(s); - console.log("@users[@last_user].ot.applyOps ops"); - console.log("expect(@users[@last_user].ot.val('name')).to.equal(\"" + (users[otherotnumber].val('name')) + "\")"); - return ops; - }; - console.log(""); - console.log("Found an OT Puzzle!"); - console.log("OT states:"); - for (j = _o = 0, _len1 = users.length; _o < _len1; j = ++_o) { - u = users[j]; - console.log(("OT" + j + ": ") + u.val('name')); - } - console.log("\nOT execution order (" + i + "," + (i + 1) + "):"); - printOpsInExecutionOrder(i, i + 1); - console.log(""); - ops = printOpsInExecutionOrder(i + 1, i); - _results1.push(console.log("")); - } else { - _results1.push(void 0); - } - } - return _results1; - })()); - } - return _results; - }); -}); + +/* +describe "JsonYatta", -> + beforeEach (done)-> + @last_user = 10 + @users = [] + @Connector = Connector_uninitialized @users + for i in [0..(@last_user+1)] + @users.push(new Yatta i, @Connector) + + + done() + + it "can handle many engines, many operations, concurrently (random)", -> + number_of_test_cases_multiplier = 1 + repeat_this = 100 * number_of_test_cases_multiplier + doSomething_amount = 200 * number_of_test_cases_multiplier + number_of_engines = 12 + number_of_test_cases_multiplier - 1 + + @time = 0 + @ops = 0 + + users = [] + + generateInsertOp = (user_num)-> + chars = "1234567890" + + pos = _.random 0, (users[user_num].val('name').length-1) + length = 1 #_.random 0, 10 + + nextchar = chars[(_.random 0, (chars.length-1))] + + text = "" + _(length).times ()-> text += nextchar + + users[user_num].val('name').insertText pos, text + null + + generateReplaceOp = (user_num)-> + chars = "abcdefghijklmnopqrstuvwxyz" + length = _.random 0, 10 + + nextchar = chars[(_.random 0, (chars.length-1))] + + text = "" + _(length).times ()-> text += nextchar + users[user_num].val('name').replaceText text + + generateDeleteOp = (user_num)-> + if users[user_num].val('name').val().length > 0 + pos = _.random 0, (users[user_num].val('name').val().length-1) + length = 1 # _.random 0, ot.val('name').length - pos + ops1 = users[user_num].val('name').deleteText pos, length + undefined + + generateRandomOp = (user_num)-> + op_gen = [generateDeleteOp, generateInsertOp, generateReplaceOp] + i = _.random (op_gen.length - 1) + op = op_gen[i](user_num) + + applyRandomOp = (user_num)-> + user = users[user_num] + user.getConnector().flushOneRandom() + + doSomething = do ()-> + ()-> + user_num = _.random (number_of_engines-1) + choices = [applyRandomOp, generateRandomOp] + *if (users[user_num].buffer[user_num].length < maximum_ops_per_engine) + * choices = choices.concat generateRandomOp + + choice = _.random (choices.length-1) + + choices[choice](user_num) + + console.log "" + for times in [1..repeat_this] + *console.log "repeated_this x #{times} times" + users = [] + Connector = Connector_uninitialized users + users.push(new Yatta 0, Connector) + users[0].val('name',"initial") + for i in [1...number_of_engines] + users.push(new Yatta i, Connector) + + found_error = false + + *try + time_now = (new Date).getTime() + for i in [1..doSomething_amount] + doSomething() + + for user,user_number in users + user.getConnector().flushAll() + + @time += (new Date()).getTime() - time_now + + number_of_created_operations = 0 + for i in [0...(users.length)] + number_of_created_operations += users[i].getConnector().getOpsInExecutionOrder().length + @ops += number_of_created_operations*users.length + + ops_per_msek = Math.floor(@ops/@time) + console.log "#{times}/#{repeat_this}: Every collaborator (#{users.length}) applied #{number_of_created_operations} ops in a different order." + " Over all we consumed #{@ops} operations in #{@time/1000} seconds (#{ops_per_msek} ops/msek)." + + console.log users[0].val('name').val() + for i in [0...(users.length-1)] + if ((users[i].val('name').val() isnt users[i+1].val('name').val()) )# and (number_of_created_operations <= 6 or true)) or found_error + + printOpsInExecutionOrder = (otnumber, otherotnumber)-> + ops = users[otnumber].getConnector().getOpsInExecutionOrder() + for s in ops + console.log JSON.stringify s + console.log "" + s = "ops = [" + for o,j in ops + if j isnt 0 + s += ", " + s += "op#{j}" + s += "]" + console.log s + console.log "@users[@last_user].ot.applyOps ops" + console.log "expect(@users[@last_user].ot.val('name')).to.equal(\"#{users[otherotnumber].val('name')}\")" + ops + console.log "" + console.log "Found an OT Puzzle!" + console.log "OT states:" + for u,j in users + console.log "OT#{j}: "+u.val('name') + console.log "\nOT execution order (#{i},#{i+1}):" + printOpsInExecutionOrder i, i+1 + console.log "" + ops = printOpsInExecutionOrder i+1, i + + console.log "" + */ },{"../lib/Connectors/TestConnector.coffee":1,"../lib/Frameworks/JsonYatta.coffee":3,"chai":17,"sinon":50,"sinon-chai":49,"underscore":65}],67:[function(require,module,exports){ @@ -13373,155 +13358,343 @@ Yatta = require("../lib/Frameworks/TextYatta.coffee"); Connector_uninitialized = require("../lib/Connectors/TestConnector.coffee"); -describe("TextYatta", function() { - beforeEach(function(done) { - var i, _i, _ref; - this.last_user = 10; - this.users = []; - this.Connector = Connector_uninitialized(this.users); - for (i = _i = 0, _ref = this.last_user + 1; 0 <= _ref ? _i <= _ref : _i >= _ref; i = 0 <= _ref ? ++_i : --_i) { - this.users.push(new Yatta(i, this.Connector)); - } - return done(); - }); - it("handles inserts correctly", function() {}); - return it("can handle many engines, many operations, concurrently (random)", function() { - var Connector, applyRandomOp, doSomething, doSomething_amount, found_error, found_inconsistency, generateDeleteOp, generateInsertOp, generateRandomOp, generateReplaceOp, i, j, number_of_created_operations, number_of_engines, number_of_test_cases_multiplier, ops, ops_per_msek, printOpsInExecutionOrder, repeat_this, time_now, times, u, user, user_number, users, _i, _j, _k, _l, _len, _len1, _m, _n, _o, _ref, _ref1, _results; - number_of_test_cases_multiplier = 1; - repeat_this = 1 * number_of_test_cases_multiplier; - doSomething_amount = 500 * number_of_test_cases_multiplier; - number_of_engines = 12 + number_of_test_cases_multiplier - 1; + +/* +describe "TextYatta", -> + beforeEach (done)-> + @last_user = 10 + @users = [] + @Connector = Connector_uninitialized @users + for i in [0..(@last_user+1)] + @users.push(new Yatta i, @Connector) + done() + + it "handles inserts correctly", -> + + + it "can handle many engines, many operations, concurrently (random)", -> + number_of_test_cases_multiplier = 1 + repeat_this = 1 * number_of_test_cases_multiplier + doSomething_amount = 500 * number_of_test_cases_multiplier + number_of_engines = 12 + number_of_test_cases_multiplier - 1 + *maximum_ops_per_engine = 20 * number_of_test_cases_multiplier + + @time = 0 + @ops = 0 + users = [] + + generateInsertOp = (user_num)-> + chars = "1234567890" + + pos = _.random 0, (users[user_num].val().length-1) + length = 1 #_.random 0, 10 + + nextchar = chars[(_.random 0, (chars.length-1))] + + text = "" + _(length).times ()-> text += nextchar + + users[user_num].insertText pos, text + null + + generateReplaceOp = (user_num)-> + chars = "abcdefghijklmnopqrstuvwxyz" + length = _.random 0, 10 + + nextchar = chars[(_.random 0, (chars.length-1))] + + text = "" + _(length).times ()-> text += nextchar + users[user_num].replaceText text + + generateDeleteOp = (user_num)-> + if users[user_num].val().length > 0 + pos = _.random 0, (users[user_num].val().length-1) + length = 1 # _.random 0, ot.val().length - pos + ops1 = users[user_num].deleteText pos, length + undefined + + generateRandomOp = (user_num)-> + op_gen = [generateDeleteOp, generateInsertOp, generateReplaceOp] + i = _.random (op_gen.length - 1) + op = op_gen[i](user_num) + + applyRandomOp = (user_num)-> + user = users[user_num] + user.getConnector().flushOneRandom() + + doSomething = do ()-> + ()-> + user_num = _.random (number_of_engines-1) + choices = [applyRandomOp, generateRandomOp] + *if (users[user_num].buffer[user_num].length < maximum_ops_per_engine) + * choices = choices.concat generateRandomOp + + choice = _.random (choices.length-1) + + choices[choice](user_num) + + console.log "" + for times in [1..repeat_this] + *console.log "repeated_this x #{times} times" + users = [] + Connector = Connector_uninitialized users + for i in [0..number_of_engines] + users.push(new Yatta i, Connector) + + found_error = false + + *try + time_now = (new Date).getTime() + for i in [1..doSomething_amount] + doSomething() + + for user,user_number in users + user.getConnector().flushAll() + + @time += (new Date()).getTime() - time_now + + number_of_created_operations = 0 + for i in [0...(users.length)] + number_of_created_operations += users[i].getConnector().getOpsInExecutionOrder().length + @ops += number_of_created_operations*users.length + + ops_per_msek = Math.floor(@ops/@time) + console.log "#{times}/#{repeat_this}: Every collaborator (#{users.length}) applied #{number_of_created_operations} ops in a different order." + " Over all we consumed #{@ops} operations in #{@time/1000} seconds (#{ops_per_msek} ops/msek)." + + console.log users[0].val() + found_inconsistency = false + for i in [0...(users.length-1)] + if ((users[i].val() isnt users[i+1].val()) )# and (number_of_created_operations <= 6 or true)) or found_error + found_inconsistency =true + printOpsInExecutionOrder = (otnumber, otherotnumber)-> + ops = users[otnumber].getConnector().getOpsInExecutionOrder() + for s,j in ops + console.log "op#{j} = #{JSON.stringify s}" + console.log "" + s = "ops = [" + for o,j in ops + if j isnt 0 + s += ", " + s += "op#{j}" + s += "]" + console.log s + console.log "@users[@last_user].ot.applyOps ops" + console.log "expect(@users[@last_user].val()).to.equal(\"#{users[otherotnumber].val()}\")" + ops + console.log "" + console.log "Found an OT Puzzle!" + console.log "OT states:" + for u,j in users + console.log "OT#{j}: "+u.val() + console.log "\nOT execution order (#{i},#{i+1}):" + printOpsInExecutionOrder i, i+1 + console.log "" + ops = printOpsInExecutionOrder i+1, i + + console.log "" + if found_inconsistency + throw new Error "dtrn" + + * expect(users[i].ot.val()).to.equal(users[i+1].ot.val()) + */ + + +},{"../lib/Connectors/TestConnector.coffee":1,"../lib/Frameworks/TextYatta.coffee":4,"chai":17,"sinon":50,"sinon-chai":49,"underscore":65}],68:[function(require,module,exports){ +var Connector_uninitialized, Test, Yatta, chai, expect, should, sinon, sinonChai, _, + __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; + +chai = require('chai'); + +expect = chai.expect; + +should = chai.should(); + +sinon = require('sinon'); + +sinonChai = require('sinon-chai'); + +_ = require("underscore"); + +chai.use(sinonChai); + +Yatta = require("../lib/Frameworks/JsonYatta.coffee"); + +Connector_uninitialized = require("../lib/Connectors/TestConnector.coffee"); + +Test = (function() { + function Test() { + this.applyRandomOp = __bind(this.applyRandomOp, this); + this.generateRandomOp = __bind(this.generateRandomOp, this); + this.generateDeleteOp = __bind(this.generateDeleteOp, this); + this.generateReplaceOp = __bind(this.generateReplaceOp, this); + this.generateInsertOp = __bind(this.generateInsertOp, this); + this.number_of_test_cases_multiplier = 1; + this.repeat_this = 100 * this.number_of_test_cases_multiplier; + this.doSomething_amount = 200 * this.number_of_test_cases_multiplier; + this.number_of_engines = 12 + this.number_of_test_cases_multiplier - 1; this.time = 0; this.ops = 0; - users = []; - generateInsertOp = function(user_num) { - var chars, length, nextchar, pos, text; - chars = "1234567890"; - pos = _.random(0, users[user_num].val().length - 1); - length = 1; - nextchar = chars[_.random(0, chars.length - 1)]; - text = ""; - _(length).times(function() { - return text += nextchar; - }); - users[user_num].insertText(pos, text); - return null; - }; - generateReplaceOp = function(user_num) { - var chars, length, nextchar, text; - chars = "abcdefghijklmnopqrstuvwxyz"; - length = _.random(0, 10); - nextchar = chars[_.random(0, chars.length - 1)]; - text = ""; - _(length).times(function() { - return text += nextchar; - }); - return users[user_num].replaceText(text); - }; - generateDeleteOp = function(user_num) { - var length, ops1, pos; - if (users[user_num].val().length > 0) { - pos = _.random(0, users[user_num].val().length - 1); - length = 1; - ops1 = users[user_num].deleteText(pos, length); - } - return void 0; - }; - generateRandomOp = function(user_num) { - var i, op, op_gen; - op_gen = [generateDeleteOp, generateInsertOp, generateReplaceOp]; - i = _.random(op_gen.length - 1); - return op = op_gen[i](user_num); - }; - applyRandomOp = function(user_num) { - var user; - user = users[user_num]; - return user.getConnector().flushOneRandom(); - }; - doSomething = (function() { - return function() { - var choice, choices, user_num; - user_num = _.random(number_of_engines - 1); - choices = [applyRandomOp, generateRandomOp]; - choice = _.random(choices.length - 1); - return choices[choice](user_num); - }; - })(); - console.log(""); + this.reinitialize(); + } + + Test.prototype.reinitialize = function() { + var i, _i, _ref, _results; + this.users = []; + this.Connector = Connector_uninitialized(this.users); + this.users.push(new Yatta(0, this.Connector)); + this.users[0].val('name', "initial"); _results = []; - for (times = _i = 1; 1 <= repeat_this ? _i <= repeat_this : _i >= repeat_this; times = 1 <= repeat_this ? ++_i : --_i) { - users = []; - Connector = Connector_uninitialized(users); - for (i = _j = 0; 0 <= number_of_engines ? _j <= number_of_engines : _j >= number_of_engines; i = 0 <= number_of_engines ? ++_j : --_j) { - users.push(new Yatta(i, Connector)); - } - found_error = false; - time_now = (new Date).getTime(); - for (i = _k = 1; 1 <= doSomething_amount ? _k <= doSomething_amount : _k >= doSomething_amount; i = 1 <= doSomething_amount ? ++_k : --_k) { - doSomething(); - } - for (user_number = _l = 0, _len = users.length; _l < _len; user_number = ++_l) { - user = users[user_number]; - user.getConnector().flushAll(); - } - this.time += (new Date()).getTime() - time_now; - number_of_created_operations = 0; - for (i = _m = 0, _ref = users.length; 0 <= _ref ? _m < _ref : _m > _ref; i = 0 <= _ref ? ++_m : --_m) { - number_of_created_operations += users[i].getConnector().getOpsInExecutionOrder().length; - } - this.ops += number_of_created_operations * users.length; - ops_per_msek = Math.floor(this.ops / this.time); - console.log(("" + times + "/" + repeat_this + ": Every collaborator (" + users.length + ") applied " + number_of_created_operations + " ops in a different order.") + (" Over all we consumed " + this.ops + " operations in " + (this.time / 1000) + " seconds (" + ops_per_msek + " ops/msek).")); - console.log(users[0].val()); - found_inconsistency = false; - for (i = _n = 0, _ref1 = users.length - 1; 0 <= _ref1 ? _n < _ref1 : _n > _ref1; i = 0 <= _ref1 ? ++_n : --_n) { - if (users[i].val() !== users[i + 1].val()) { - found_inconsistency = true; - printOpsInExecutionOrder = function(otnumber, otherotnumber) { - var j, o, ops, s, _len1, _len2, _o, _p; - ops = users[otnumber].getConnector().getOpsInExecutionOrder(); - for (j = _o = 0, _len1 = ops.length; _o < _len1; j = ++_o) { - s = ops[j]; - console.log("op" + j + " = " + (JSON.stringify(s))); - } - console.log(""); - s = "ops = ["; - for (j = _p = 0, _len2 = ops.length; _p < _len2; j = ++_p) { - o = ops[j]; - if (j !== 0) { - s += ", "; - } - s += "op" + j; - } - s += "]"; - console.log(s); - console.log("@users[@last_user].ot.applyOps ops"); - console.log("expect(@users[@last_user].val()).to.equal(\"" + (users[otherotnumber].val()) + "\")"); - return ops; - }; - console.log(""); - console.log("Found an OT Puzzle!"); - console.log("OT states:"); - for (j = _o = 0, _len1 = users.length; _o < _len1; j = ++_o) { - u = users[j]; - console.log(("OT" + j + ": ") + u.val()); - } - console.log("\nOT execution order (" + i + "," + (i + 1) + "):"); - printOpsInExecutionOrder(i, i + 1); - console.log(""); - ops = printOpsInExecutionOrder(i + 1, i); - console.log(""); - } - } - if (found_inconsistency) { - throw new Error("dtrn"); - } else { - _results.push(void 0); - } + for (i = _i = 1, _ref = this.number_of_engines; 1 <= _ref ? _i < _ref : _i > _ref; i = 1 <= _ref ? ++_i : --_i) { + _results.push(this.users.push(new Yatta(i, this.Connector))); } return _results; + }; + + Test.prototype.getRandomText = function() { + var chars, length, nextchar, text; + chars = "abcdefghijklmnopqrstuvwxyz"; + length = _.random(0, 10); + nextchar = chars[_.random(0, chars.length - 1)]; + text = ""; + _(length).times(function() { + return text += nextchar; + }); + return text; + }; + + Test.prototype.generateInsertOp = function(user_num) { + var pos; + pos = _.random(0, this.users[user_num].val('name').val().length - 1); + this.users[user_num].val('name').insertText(pos, this.getRandomText()); + return null; + }; + + Test.prototype.generateReplaceOp = function(user_num) { + this.users[user_num].val('name').replaceText(this.getRandomText()); + return null; + }; + + Test.prototype.generateDeleteOp = function(user_num) { + var length, ops1, pos; + if (this.users[user_num].val('name').val().length > 0) { + pos = _.random(0, this.users[user_num].val('name').val().length - 1); + length = 1; + ops1 = this.users[user_num].val('name').deleteText(pos, length); + } + return void 0; + }; + + Test.prototype.generateRandomOp = function(user_num) { + var i, op, op_gen; + op_gen = [this.generateDeleteOp, this.generateInsertOp, this.generateReplaceOp]; + i = _.random(op_gen.length - 1); + return op = op_gen[i](user_num); + }; + + Test.prototype.applyRandomOp = function(user_num) { + var user; + user = this.users[user_num]; + return user.getConnector().flushOneRandom(); + }; + + Test.prototype.doSomething = function() { + var choice, choices, user_num; + user_num = _.random(this.number_of_engines - 1); + choices = [this.applyRandomOp, this.generateRandomOp]; + choice = _.random(choices.length - 1); + return choices[choice](user_num); + }; + + Test.prototype.flushAll = function() { + var user, user_number, _i, _len, _ref, _results; + _ref = this.users; + _results = []; + for (user_number = _i = 0, _len = _ref.length; _i < _len; user_number = ++_i) { + user = _ref[user_number]; + _results.push(user.getConnector().flushAll()); + } + return _results; + }; + + Test.prototype.run = function() { + var i, j, number_of_created_operations, ops, ops_per_msek, printOpsInExecutionOrder, time_now, times, u, _i, _j, _k, _ref, _ref1, _ref2, _results; + _results = []; + for (times = _i = 1, _ref = this.repeat_this; 1 <= _ref ? _i <= _ref : _i >= _ref; times = 1 <= _ref ? ++_i : --_i) { + this.reinitialize(); + time_now = (new Date).getTime(); + for (i = _j = 1, _ref1 = this.doSomething_amount; 1 <= _ref1 ? _j <= _ref1 : _j >= _ref1; i = 1 <= _ref1 ? ++_j : --_j) { + this.doSomething(); + } + this.flushAll(); + this.time += (new Date()).getTime() - time_now; + number_of_created_operations = 0; + for (i = _k = 0, _ref2 = this.users.length; 0 <= _ref2 ? _k < _ref2 : _k > _ref2; i = 0 <= _ref2 ? ++_k : --_k) { + number_of_created_operations += this.users[i].getConnector().getOpsInExecutionOrder().length; + } + this.ops += number_of_created_operations * this.users.length; + ops_per_msek = Math.floor(this.ops / this.time); + console.log(("" + times + "/" + this.repeat_this + ": Every collaborator (" + this.users.length + ") applied " + this.number_of_created_operations + " ops in a different order.") + (" Over all we consumed " + this.ops + " operations in " + (this.time / 1000) + " seconds (" + ops_per_msek + " ops/msek).")); + _results.push((function() { + var _l, _len, _m, _ref3, _results1; + _results1 = []; + for (i = _l = 0, _ref3 = this.users.length - 1; 0 <= _ref3 ? _l < _ref3 : _l > _ref3; i = 0 <= _ref3 ? ++_l : --_l) { + if (this.users[i].val('name').val() !== this.users[i + 1].val('name').val()) { + printOpsInExecutionOrder = function(otnumber, otherotnumber) { + var j, o, ops, s, _len, _len1, _m, _n; + ops = this.users[otnumber].getConnector().getOpsInExecutionOrder(); + for (_m = 0, _len = ops.length; _m < _len; _m++) { + s = ops[_m]; + console.log(JSON.stringify(s)); + } + console.log(""); + s = "ops = ["; + for (j = _n = 0, _len1 = ops.length; _n < _len1; j = ++_n) { + o = ops[j]; + if (j !== 0) { + s += ", "; + } + s += "op" + j; + } + s += "]"; + console.log(s); + console.log("@users[@last_user].ot.applyOps ops"); + console.log("expect(@users[@last_user].ot.val('name')).to.equal(\"" + (users[otherotnumber].val('name')) + "\")"); + return ops; + }; + console.log(""); + console.log("Found an OT Puzzle!"); + console.log("OT states:"); + for (j = _m = 0, _len = users.length; _m < _len; j = ++_m) { + u = users[j]; + console.log(("OT" + j + ": ") + u.val('name')); + } + console.log("\nOT execution order (" + i + "," + (i + 1) + "):"); + printOpsInExecutionOrder(i, i + 1); + console.log(""); + ops = printOpsInExecutionOrder(i + 1, i); + _results1.push(console.log("")); + } else { + _results1.push(void 0); + } + } + return _results1; + }).call(this)); + } + return _results; + }; + + return Test; + +})(); + +describe("JsonYatta", function() { + return it("can handle many engines, many operations, concurrently (random)", function() { + var yTest; + yTest = new Test(); + return yTest.run(); }); }); -},{"../lib/Connectors/TestConnector.coffee":1,"../lib/Frameworks/TextYatta.coffee":4,"chai":17,"sinon":50,"sinon-chai":49,"underscore":65}]},{},[66,67]); \ No newline at end of file +},{"../lib/Connectors/TestConnector.coffee":1,"../lib/Frameworks/JsonYatta.coffee":3,"chai":17,"sinon":50,"sinon-chai":49,"underscore":65}]},{},[66,67,68]); \ No newline at end of file diff --git a/dest/lib/lib/Connectors/IwcConnector.js.map b/dest/lib/lib/Connectors/IwcConnector.js.map index bb39ba37..52f44e93 100644 --- a/dest/lib/lib/Connectors/IwcConnector.js.map +++ b/dest/lib/lib/Connectors/IwcConnector.js.map @@ -6,5 +6,5 @@ "IwcConnector.coffee" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/dest/lib/lib/Connectors/TestConnector.js.map b/dest/lib/lib/Connectors/TestConnector.js.map index 69b39e9d..02e67f9e 100644 --- a/dest/lib/lib/Connectors/TestConnector.js.map +++ b/dest/lib/lib/Connectors/TestConnector.js.map @@ -6,5 +6,5 @@ "TestConnector.coffee" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/dest/lib/lib/Engine.js.map b/dest/lib/lib/Engine.js.map index 5a05d27c..5448dc4d 100644 --- a/dest/lib/lib/Engine.js.map +++ b/dest/lib/lib/Engine.js.map @@ -6,5 +6,5 @@ "Engine.coffee" ], "names": [], - "mappings": "AACA,IAAA,MAAA;;AAAA;AACe,EAAA,gBAAE,EAAF,EAAO,MAAP,GAAA;AACX,IADY,IAAC,CAAA,KAAA,EACb,CAAA;AAAA,IADiB,IAAC,CAAA,SAAA,MAClB,CAAA;AAAA,IAAA,IAAC,CAAA,eAAD,GAAmB,EAAnB,CADW;EAAA,CAAb;;AAAA,mBAGA,cAAA,GAAgB,SAAC,IAAD,GAAA;AACd,QAAA,UAAA;AAAA,IAAA,UAAA,GAAa,IAAC,CAAA,MAAO,CAAA,IAAI,CAAC,IAAL,CAArB,CAAA;AACA,IAAA,IAAG,kBAAH;aACE,UAAA,CAAW,IAAX,EADF;KAAA,MAAA;AAGE,YAAU,IAAA,KAAA,CAAO,0CAAA,GAAyC,IAAI,CAAC,IAA9C,GAAoD,mBAApD,GAAsE,CAAA,IAAI,CAAC,SAAL,CAAe,IAAf,CAAA,CAAtE,GAA2F,GAAlG,CAAV,CAHF;KAFc;EAAA,CAHhB,CAAA;;AAAA,mBAWA,QAAA,GAAU,SAAC,QAAD,GAAA;AACR,QAAA,sCAAA;AAAA,IAAA,GAAA,GAAM,EAAN,CAAA;AACA,SAAA,+CAAA;uBAAA;AACE,MAAA,GAAG,CAAC,IAAJ,CAAS,IAAC,CAAA,cAAD,CAAgB,CAAhB,CAAT,CAAA,CADF;AAAA,KADA;AAGA,SAAA,4CAAA;kBAAA;AACE,MAAA,IAAC,CAAA,EAAE,CAAC,YAAJ,CAAiB,CAAjB,CAAA,CADF;AAAA,KAHA;AAKA,SAAA,4CAAA;kBAAA;AACE,MAAA,IAAG,CAAA,CAAK,CAAC,OAAF,CAAA,CAAP;AACE,QAAA,IAAC,CAAA,eAAe,CAAC,IAAjB,CAAsB,CAAtB,CAAA,CADF;OADF;AAAA,KALA;WAQA,IAAC,CAAA,OAAD,CAAA,EATQ;EAAA,CAXV,CAAA;;AAAA,mBAsBA,OAAA,GAAS,SAAA,GAAA;AACP,QAAA,qDAAA;AAAA;WAAM,IAAN,GAAA;AACE,MAAA,UAAA,GAAa,IAAC,CAAA,eAAe,CAAC,MAA9B,CAAA;AAAA,MACA,WAAA,GAAc,EADd,CAAA;AAEA;AAAA,WAAA,2CAAA;sBAAA;AACE,QAAA,IAAG,CAAA,EAAM,CAAC,OAAH,CAAA,CAAP;AACE,UAAA,WAAW,CAAC,IAAZ,CAAiB,EAAjB,CAAA,CADF;SADF;AAAA,OAFA;AAAA,MAKA,IAAC,CAAA,eAAD,GAAmB,WALnB,CAAA;AAMA,MAAA,IAAG,IAAC,CAAA,eAAe,CAAC,MAAjB,KAA2B,UAA9B;AACE,cADF;OAAA,MAAA;8BAAA;OAPF;IAAA,CAAA;oBADO;EAAA,CAtBT,CAAA;;AAAA,mBAiCA,OAAA,GAAS,SAAC,OAAD,GAAA;AAEP,QAAA,CAAA;AAAA,IAAA,CAAA,GAAI,IAAC,CAAA,cAAD,CAAgB,OAAhB,CAAJ,CAAA;AAAA,IACA,IAAC,CAAA,EAAE,CAAC,YAAJ,CAAiB,CAAjB,CADA,CAAA;AAEA,IAAA,IAAG,CAAA,CAAK,CAAC,OAAF,CAAA,CAAP;AACE,MAAA,IAAC,CAAA,eAAe,CAAC,IAAjB,CAAsB,CAAtB,CAAA,CADF;KAFA;WAIA,IAAC,CAAA,OAAD,CAAA,EANO;EAAA,CAjCT,CAAA;;gBAAA;;IADF,CAAA;;AAAA,MA6CM,CAAC,OAAP,GAAiB,MA7CjB,CAAA" + "mappings": "AAIA,IAAA,MAAA;;AAAA;AACe,EAAA,gBAAE,EAAF,EAAO,MAAP,GAAA;AACX,IADY,IAAC,CAAA,KAAA,EACb,CAAA;AAAA,IADiB,IAAC,CAAA,SAAA,MAClB,CAAA;AAAA,IAAA,IAAC,CAAA,eAAD,GAAmB,EAAnB,CADW;EAAA,CAAb;;AAAA,mBAGA,cAAA,GAAgB,SAAC,IAAD,GAAA;AACd,QAAA,UAAA;AAAA,IAAA,UAAA,GAAa,IAAC,CAAA,MAAO,CAAA,IAAI,CAAC,IAAL,CAArB,CAAA;AACA,IAAA,IAAG,kBAAH;aACE,UAAA,CAAW,IAAX,EADF;KAAA,MAAA;AAGE,YAAU,IAAA,KAAA,CAAO,0CAAA,GAAyC,IAAI,CAAC,IAA9C,GAAoD,mBAApD,GAAsE,CAAA,IAAI,CAAC,SAAL,CAAe,IAAf,CAAA,CAAtE,GAA2F,GAAlG,CAAV,CAHF;KAFc;EAAA,CAHhB,CAAA;;AAAA,mBAUA,QAAA,GAAU,SAAC,QAAD,GAAA;AACR,QAAA,sCAAA;AAAA,IAAA,GAAA,GAAM,EAAN,CAAA;AACA,SAAA,+CAAA;uBAAA;AACE,MAAA,GAAG,CAAC,IAAJ,CAAS,IAAC,CAAA,cAAD,CAAgB,CAAhB,CAAT,CAAA,CADF;AAAA,KADA;AAGA,SAAA,4CAAA;kBAAA;AACE,MAAA,IAAC,CAAA,EAAE,CAAC,YAAJ,CAAiB,CAAjB,CAAA,CADF;AAAA,KAHA;AAKA,SAAA,4CAAA;kBAAA;AACE,MAAA,IAAG,CAAA,CAAK,CAAC,OAAF,CAAA,CAAP;AACE,QAAA,IAAC,CAAA,eAAe,CAAC,IAAjB,CAAsB,CAAtB,CAAA,CADF;OADF;AAAA,KALA;WAQA,IAAC,CAAA,OAAD,CAAA,EATQ;EAAA,CAVV,CAAA;;AAAA,mBAqBA,OAAA,GAAS,SAAA,GAAA;AACP,QAAA,qDAAA;AAAA;WAAM,IAAN,GAAA;AACE,MAAA,UAAA,GAAa,IAAC,CAAA,eAAe,CAAC,MAA9B,CAAA;AAAA,MACA,WAAA,GAAc,EADd,CAAA;AAEA;AAAA,WAAA,2CAAA;sBAAA;AACE,QAAA,IAAG,CAAA,EAAM,CAAC,OAAH,CAAA,CAAP;AACE,UAAA,WAAW,CAAC,IAAZ,CAAiB,EAAjB,CAAA,CADF;SADF;AAAA,OAFA;AAAA,MAKA,IAAC,CAAA,eAAD,GAAmB,WALnB,CAAA;AAMA,MAAA,IAAG,IAAC,CAAA,eAAe,CAAC,MAAjB,KAA2B,UAA9B;AACE,cADF;OAAA,MAAA;8BAAA;OAPF;IAAA,CAAA;oBADO;EAAA,CArBT,CAAA;;AAAA,mBAgCA,OAAA,GAAS,SAAC,OAAD,GAAA;AAEP,QAAA,CAAA;AAAA,IAAA,CAAA,GAAI,IAAC,CAAA,cAAD,CAAgB,OAAhB,CAAJ,CAAA;AAAA,IACA,IAAC,CAAA,EAAE,CAAC,YAAJ,CAAiB,CAAjB,CADA,CAAA;AAEA,IAAA,IAAG,CAAA,CAAK,CAAC,OAAF,CAAA,CAAP;AACE,MAAA,IAAC,CAAA,eAAe,CAAC,IAAjB,CAAsB,CAAtB,CAAA,CADF;KAFA;WAIA,IAAC,CAAA,OAAD,CAAA,EANO;EAAA,CAhCT,CAAA;;gBAAA;;IADF,CAAA;;AAAA,MA4CM,CAAC,OAAP,GAAiB,MA5CjB,CAAA" } \ No newline at end of file diff --git a/dest/lib/lib/Frameworks/JsonYatta.js.map b/dest/lib/lib/Frameworks/JsonYatta.js.map index 0031273a..c9bbaec4 100644 --- a/dest/lib/lib/Frameworks/JsonYatta.js.map +++ b/dest/lib/lib/Frameworks/JsonYatta.js.map @@ -6,5 +6,5 @@ "JsonYatta.coffee" ], "names": [], - "mappings": "AACA,IAAA,0DAAA;;AAAA,wBAAA,GAA2B,OAAA,CAAQ,2BAAR,CAA3B,CAAA;;AAAA,aACA,GAAgB,OAAA,CAAQ,yBAAR,CADhB,CAAA;;AAAA,MAEA,GAAS,OAAA,CAAQ,kBAAR,CAFT,CAAA;;AAAA;AAKe,EAAA,mBAAC,OAAD,EAAU,SAAV,GAAA;AACX,QAAA,iCAAA;AAAA,IAAA,IAAC,CAAA,EAAD,GAAU,IAAA,aAAA,CAAc,OAAd,CAAV,CAAA;AAAA,IACA,UAAA,GAAa,wBAAA,CAAyB,IAAC,CAAA,EAA1B,CADb,CAAA;AAAA,IAEA,IAAC,CAAA,MAAD,GAAc,IAAA,MAAA,CAAO,IAAC,CAAA,EAAR,EAAY,UAAU,CAAC,MAAvB,CAFd,CAAA;AAAA,IAGA,IAAC,CAAA,SAAD,GAAiB,IAAA,SAAA,CAAU,IAAC,CAAA,MAAX,EAAmB,IAAC,CAAA,EAApB,EAAwB,UAAU,CAAC,kBAAnC,EAAuD,IAAvD,CAHjB,CAAA;AAAA,IAIA,SAAA,GAAY,IAAC,CAAA,SAAS,CAAC,cAAX,CAAA,CAJZ,CAAA;AAKA,IAAA,IAAO,iBAAP;AACE,MAAA,UAAA,GAAiB,IAAA,UAAU,CAAC,KAAK,CAAC,QAAjB,CAA0B,IAAC,CAAA,EAAE,CAAC,0BAAJ,CAAA,CAA1B,CAAjB,CAAA;AAAA,MACA,IAAC,CAAA,EAAE,CAAC,YAAJ,CAAiB,UAAjB,CADA,CAAA;AAAA,MAEA,UAAU,CAAC,OAAX,CAAA,CAFA,CAAA;AAAA,MAGA,IAAC,CAAA,YAAD,GAAgB,UAHhB,CADF;KAAA,MAAA;AAME,MAAA,IAAC,CAAA,YAAD,GAAgB,IAAC,CAAA,EAAE,CAAC,YAAJ,CAAiB,SAAjB,CAAhB,CANF;KANW;EAAA,CAAb;;AAAA,sBAcA,cAAA,GAAgB,SAAA,GAAA;WACd,IAAC,CAAA,aADa;EAAA,CAdhB,CAAA;;AAAA,sBAiBA,SAAA,GAAW,SAAA,GAAA;WACT,IAAC,CAAA,OADQ;EAAA,CAjBX,CAAA;;AAAA,sBAoBA,YAAA,GAAc,SAAA,GAAA;WACZ,IAAC,CAAA,UADW;EAAA,CApBd,CAAA;;AAAA,sBAuBA,gBAAA,GAAkB,SAAA,GAAA;WAChB,IAAC,CAAA,GADe;EAAA,CAvBlB,CAAA;;AAAA,sBA0BA,SAAA,GAAW,SAAA,GAAA;WACT,IAAC,CAAA,EAAE,CAAC,SAAJ,CAAA,EADS;EAAA,CA1BX,CAAA;;AAAA,sBA6BA,GAAA,GAAK,SAAC,IAAD,EAAO,OAAP,GAAA;WACH,IAAC,CAAA,YAAY,CAAC,GAAd,CAAkB,IAAlB,EAAwB,OAAxB,EADG;EAAA,CA7BL,CAAA;;mBAAA;;IALF,CAAA;;;EAqCA,MAAM,CAAE,SAAR,GAAoB;CArCpB;;AAAA,MAsCM,CAAC,OAAP,GAAiB,SAtCjB,CAAA" + "mappings": "AACA,IAAA,0DAAA;;AAAA,wBAAA,GAA2B,OAAA,CAAQ,2BAAR,CAA3B,CAAA;;AAAA,aACA,GAAgB,OAAA,CAAQ,yBAAR,CADhB,CAAA;;AAAA,MAEA,GAAS,OAAA,CAAQ,kBAAR,CAFT,CAAA;;AAAA;AAQe,EAAA,mBAAC,OAAD,EAAU,SAAV,GAAA;AACX,QAAA,iCAAA;AAAA,IAAA,IAAC,CAAA,EAAD,GAAU,IAAA,aAAA,CAAc,OAAd,CAAV,CAAA;AAAA,IACA,UAAA,GAAa,wBAAA,CAAyB,IAAC,CAAA,EAA1B,CADb,CAAA;AAAA,IAEA,IAAC,CAAA,MAAD,GAAc,IAAA,MAAA,CAAO,IAAC,CAAA,EAAR,EAAY,UAAU,CAAC,MAAvB,CAFd,CAAA;AAAA,IAGA,IAAC,CAAA,SAAD,GAAiB,IAAA,SAAA,CAAU,IAAC,CAAA,MAAX,EAAmB,IAAC,CAAA,EAApB,EAAwB,UAAU,CAAC,kBAAnC,EAAuD,IAAvD,CAHjB,CAAA;AAAA,IAIA,SAAA,GAAY,IAAC,CAAA,SAAS,CAAC,cAAX,CAAA,CAJZ,CAAA;AAKA,IAAA,IAAO,iBAAP;AACE,MAAA,UAAA,GAAiB,IAAA,UAAU,CAAC,KAAK,CAAC,QAAjB,CAA0B,IAAC,CAAA,EAAE,CAAC,0BAAJ,CAAA,CAA1B,CAAjB,CAAA;AAAA,MACA,IAAC,CAAA,EAAE,CAAC,YAAJ,CAAiB,UAAjB,CADA,CAAA;AAAA,MAEA,UAAU,CAAC,OAAX,CAAA,CAFA,CAAA;AAAA,MAGA,IAAC,CAAA,YAAD,GAAgB,UAHhB,CADF;KAAA,MAAA;AAME,MAAA,IAAC,CAAA,YAAD,GAAgB,IAAC,CAAA,EAAE,CAAC,YAAJ,CAAiB,SAAjB,CAAhB,CANF;KANW;EAAA,CAAb;;AAAA,sBAcA,cAAA,GAAgB,SAAA,GAAA;WACd,IAAC,CAAA,aADa;EAAA,CAdhB,CAAA;;AAAA,sBAiBA,SAAA,GAAW,SAAA,GAAA;WACT,IAAC,CAAA,OADQ;EAAA,CAjBX,CAAA;;AAAA,sBAoBA,YAAA,GAAc,SAAA,GAAA;WACZ,IAAC,CAAA,UADW;EAAA,CApBd,CAAA;;AAAA,sBAuBA,gBAAA,GAAkB,SAAA,GAAA;WAChB,IAAC,CAAA,GADe;EAAA,CAvBlB,CAAA;;AAAA,sBA0BA,SAAA,GAAW,SAAA,GAAA;WACT,IAAC,CAAA,EAAE,CAAC,SAAJ,CAAA,EADS;EAAA,CA1BX,CAAA;;AAAA,sBA6BA,GAAA,GAAK,SAAC,IAAD,EAAO,OAAP,GAAA;WACH,IAAC,CAAA,YAAY,CAAC,GAAd,CAAkB,IAAlB,EAAwB,OAAxB,EADG;EAAA,CA7BL,CAAA;;mBAAA;;IARF,CAAA;;;EAwCA,MAAM,CAAE,SAAR,GAAoB;CAxCpB;;AAAA,MAyCM,CAAC,OAAP,GAAiB,SAzCjB,CAAA" } \ No newline at end of file diff --git a/dest/lib/lib/Frameworks/TextYatta.js.map b/dest/lib/lib/Frameworks/TextYatta.js.map index 1b8517f2..e893a569 100644 --- a/dest/lib/lib/Frameworks/TextYatta.js.map +++ b/dest/lib/lib/Frameworks/TextYatta.js.map @@ -6,5 +6,5 @@ "TextYatta.coffee" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/dest/lib/lib/HistoryBuffer.js.map b/dest/lib/lib/HistoryBuffer.js.map index 72229cfe..3f763df5 100644 --- a/dest/lib/lib/HistoryBuffer.js.map +++ b/dest/lib/lib/HistoryBuffer.js.map @@ -6,5 +6,5 @@ "HistoryBuffer.coffee" ], "names": [], - "mappings": "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" + "mappings": "AAMA,IAAA,aAAA;;AAAA;AAMe,EAAA,uBAAE,OAAF,GAAA;AACX,IADY,IAAC,CAAA,UAAA,OACb,CAAA;AAAA,IAAA,IAAC,CAAA,iBAAD,GAAqB,EAArB,CAAA;AAAA,IACA,IAAC,CAAA,MAAD,GAAU,EADV,CAAA;AAAA,IAEA,IAAC,CAAA,gBAAD,GAAoB,EAFpB,CADW;EAAA,CAAb;;AAAA,0BAQA,SAAA,GAAW,SAAA,GAAA;WACT,IAAC,CAAA,QADQ;EAAA,CARX,CAAA;;AAAA,0BAcA,mBAAA,GAAqB,SAAA,GAAA;AACnB,QAAA,oBAAA;AAAA,IAAA,GAAA,GAAM,EAAN,CAAA;AACA;AAAA,SAAA,YAAA;uBAAA;AACE,MAAA,GAAI,CAAA,IAAA,CAAJ,GAAY,GAAZ,CADF;AAAA,KADA;WAGA,IAJmB;EAAA,CAdrB,CAAA;;AAAA,0BAoBA,MAAA,GAAQ,SAAA,GAAA;AACN,QAAA,qCAAA;AAAA,IAAA,IAAA,GAAO,EAAP,CAAA;AACA;AAAA,SAAA,cAAA;0BAAA;AACE,WAAA,gBAAA;2BAAA;AACE,QAAA,IAAG,CAAA,KAAI,CAAM,QAAA,CAAS,QAAT,CAAN,CAAP;AACE,UAAA,IAAI,CAAC,IAAL,CAAU,CAAC,CAAC,MAAF,CAAA,CAAV,CAAA,CADF;SADF;AAAA,OADF;AAAA,KADA;WAKA,KANM;EAAA,CApBR,CAAA;;AAAA,0BAiCA,0BAAA,GAA4B,SAAC,OAAD,GAAA;AAC1B,QAAA,GAAA;AAAA,IAAA,IAAO,eAAP;AACE,MAAA,OAAA,GAAU,IAAC,CAAA,OAAX,CADF;KAAA;AAEA,IAAA,IAAO,uCAAP;AACE,MAAA,IAAC,CAAA,iBAAkB,CAAA,OAAA,CAAnB,GAA8B,CAA9B,CADF;KAFA;AAAA,IAIA,GAAA,GAAM;AAAA,MACF,SAAA,EAAY,OADV;AAAA,MAEF,WAAA,EAAc,IAAC,CAAA,iBAAkB,CAAA,OAAA,CAF/B;KAJN,CAAA;AAAA,IAQA,IAAC,CAAA,iBAAkB,CAAA,OAAA,CAAnB,EARA,CAAA;WASA,IAV0B;EAAA,CAjC5B,CAAA;;AAAA,0BA8CA,YAAA,GAAc,SAAC,GAAD,GAAA;AACZ,QAAA,IAAA;AAAA,IAAA,IAAG,GAAA,YAAe,MAAlB;6DACwB,CAAA,GAAG,CAAC,SAAJ,WADxB;KAAA,MAEK,IAAO,WAAP;AAAA;KAAA,MAAA;AAEH,YAAU,IAAA,KAAA,CAAM,kCAAN,CAAV,CAFG;KAHO;EAAA,CA9Cd,CAAA;;AAAA,0BAuDA,YAAA,GAAc,SAAC,CAAD,GAAA;AACZ,IAAA,IAAO,8BAAP;AACE,MAAA,IAAC,CAAA,MAAO,CAAA,CAAC,CAAC,OAAF,CAAR,GAAqB,EAArB,CADF;KAAA;AAEA,IAAA,IAAO,yCAAP;AACE,MAAA,IAAC,CAAA,iBAAkB,CAAA,CAAC,CAAC,OAAF,CAAnB,GAAgC,CAAhC,CADF;KAFA;AAMA,IAAA,IAAG,2CAAH;AACE,YAAU,IAAA,KAAA,CAAM,oCAAN,CAAV,CADF;KANA;AAAA,IAQA,IAAC,CAAA,MAAO,CAAA,CAAC,CAAC,OAAF,CAAW,CAAA,CAAC,CAAC,SAAF,CAAnB,GAAkC,CARlC,CAAA;AASA,IAAA,IAAG,MAAA,CAAA,CAAQ,CAAC,SAAT,KAAsB,QAAtB,IAAmC,CAAC,CAAC,OAAF,KAAe,IAAC,CAAA,SAAD,CAAA,CAArD;AACE,MAAA,IAAC,CAAA,iBAAkB,CAAA,CAAC,CAAC,OAAF,CAAnB,EAAA,CADF;KATA;WAWA,EAZY;EAAA,CAvDd,CAAA;;uBAAA;;IANF,CAAA;;AAAA,MA2EM,CAAC,OAAP,GAAiB,aA3EjB,CAAA" } \ No newline at end of file diff --git a/dest/lib/lib/Types/BasicTypes.js b/dest/lib/lib/Types/BasicTypes.js index 2835ec2b..bb006adb 100644 --- a/dest/lib/lib/Types/BasicTypes.js +++ b/dest/lib/lib/Types/BasicTypes.js @@ -6,8 +6,8 @@ module.exports = function(HB) { parser = {}; execution_listener = []; Operation = (function() { - function Operation(_arg) { - this.creator = _arg['creator'], this.op_number = _arg['op_number']; + function Operation(uid) { + this.creator = uid['creator'], this.op_number = uid['op_number']; } Operation.prototype.getUid = function() { @@ -92,9 +92,9 @@ module.exports = function(HB) { return Delete; })(Operation); - parser['Delete'] = function(_arg) { + parser['Delete'] = function(o) { var deletes_uid, uid; - uid = _arg['uid'], deletes_uid = _arg['deletes']; + uid = o['uid'], deletes_uid = o['deletes']; return new Delete(uid, deletes_uid); }; Insert = (function(_super) { diff --git a/dest/lib/lib/Types/BasicTypes.js.map b/dest/lib/lib/Types/BasicTypes.js.map index 642d33a8..27ee1b05 100644 --- a/dest/lib/lib/Types/BasicTypes.js.map +++ b/dest/lib/lib/Types/BasicTypes.js.map @@ -6,5 +6,5 @@ "BasicTypes.coffee" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/dest/lib/lib/Types/JsonTypes.js b/dest/lib/lib/Types/JsonTypes.js index a71a3827..586d0018 100644 --- a/dest/lib/lib/Types/JsonTypes.js +++ b/dest/lib/lib/Types/JsonTypes.js @@ -32,14 +32,13 @@ module.exports = function(HB) { if (typeof content === 'string') { word = HB.addOperation(new types.Word(HB.getNextOperationIdentifier(), content)).execute(); JsonType.__super__.val.call(this, name, word); - return content; } else if (typeof content === 'object') { json = HB.addOperation(JsonType(HB.getNextOperationIdentifier(), content)).execute(); JsonType.__super__.val.call(this, name, json); - return content; } else { throw new Error("You must not set " + (typeof content) + "-types in collaborative Json-objects!"); } + return this; } else { return JsonType.__super__.val.call(this, name, content); } diff --git a/dest/lib/lib/Types/JsonTypes.js.map b/dest/lib/lib/Types/JsonTypes.js.map index aa38c378..825193f9 100644 --- a/dest/lib/lib/Types/JsonTypes.js.map +++ b/dest/lib/lib/Types/JsonTypes.js.map @@ -6,5 +6,5 @@ "JsonTypes.coffee" ], "names": [], - "mappings": "AAAA,IAAA,wBAAA;EAAA;iSAAA;;AAAA,wBAAA,GAA2B,OAAA,CAAQ,oBAAR,CAA3B,CAAA;;AAAA,MAEM,CAAC,OAAP,GAAiB,SAAC,EAAD,GAAA;AACf,MAAA,mCAAA;AAAA,EAAA,UAAA,GAAa,wBAAA,CAAyB,EAAzB,CAAb,CAAA;AAAA,EACA,KAAA,GAAQ,UAAU,CAAC,KADnB,CAAA;AAAA,EAEA,MAAA,GAAS,UAAU,CAAC,MAFpB,CAAA;AAAA,EAIM;AACJ,+BAAA,CAAA;;AAAa,IAAA,kBAAC,GAAD,EAAM,aAAN,GAAA;AACX,UAAA,OAAA;AAAA,MAAA,0CAAM,GAAN,CAAA,CAAA;AACA,MAAA,IAAG,qBAAH;AACE,QAAA,IAAG,MAAA,CAAA,aAAA,KAA0B,QAA7B;AACE,gBAAU,IAAA,KAAA,CAAO,wEAAA,GAAuE,CAAA,MAAA,CAAA,aAAA,CAAvE,GAA6F,GAApG,CAAV,CADF;SAAA;AAEA,aAAA,qBAAA;kCAAA;AACE,UAAA,IAAC,CAAA,GAAD,CAAK,IAAL,EAAW,CAAX,CAAA,CADF;AAAA,SAHF;OAFW;IAAA,CAAb;;AAAA,uBAQA,GAAA,GAAK,SAAC,IAAD,EAAO,OAAP,GAAA;AACH,UAAA,UAAA;AAAA,MAAA,IAAG,cAAA,IAAU,iBAAb;AACE,QAAA,IAAG,MAAA,CAAA,OAAA,KAAkB,QAArB;AACE,UAAA,IAAA,GAAO,EAAE,CAAC,YAAH,CAAoB,IAAA,KAAK,CAAC,IAAN,CAAW,EAAE,CAAC,0BAAH,CAAA,CAAX,EAA4C,OAA5C,CAApB,CAAwE,CAAC,OAAzE,CAAA,CAAP,CAAA;AAAA,UACA,kCAAM,IAAN,EAAY,IAAZ,CADA,CAAA;iBAEA,QAHF;SAAA,MAIK,IAAG,MAAA,CAAA,OAAA,KAAkB,QAArB;AACH,UAAA,IAAA,GAAO,EAAE,CAAC,YAAH,CAAgB,QAAA,CAAS,EAAE,CAAC,0BAAH,CAAA,CAAT,EAA0C,OAA1C,CAAhB,CAAkE,CAAC,OAAnE,CAAA,CAAP,CAAA;AAAA,UACA,kCAAM,IAAN,EAAY,IAAZ,CADA,CAAA;iBAEA,QAHG;SAAA,MAAA;AAKH,gBAAU,IAAA,KAAA,CAAO,mBAAA,GAAkB,CAAA,MAAA,CAAA,OAAA,CAAlB,GAAkC,uCAAzC,CAAV,CALG;SALP;OAAA,MAAA;eAYE,kCAAM,IAAN,EAAY,OAAZ,EAZF;OADG;IAAA,CARL,CAAA;;AAAA,uBAuBA,MAAA,GAAQ,SAAA,GAAA;aACN;AAAA,QACE,MAAA,EAAS,UADX;AAAA,QAEE,KAAA,EAAQ,IAAC,CAAA,MAAD,CAAA,CAFV;QADM;IAAA,CAvBR,CAAA;;oBAAA;;KADqB,KAAK,CAAC,WAJ7B,CAAA;AAAA,EAkCA,MAAO,CAAA,UAAA,CAAP,GAAqB,SAAC,IAAD,GAAA;AACnB,QAAA,GAAA;AAAA,IACU,MACN,KADF,MADF,CAAA;WAGI,IAAA,QAAA,CAAS,GAAT,EAJe;EAAA,CAlCrB,CAAA;AAAA,EAyCA,KAAM,CAAA,UAAA,CAAN,GAAoB,QAzCpB,CAAA;SA2CA,WA5Ce;AAAA,CAFjB,CAAA" + "mappings": "AAAA,IAAA,wBAAA;EAAA;iSAAA;;AAAA,wBAAA,GAA2B,OAAA,CAAQ,oBAAR,CAA3B,CAAA;;AAAA,MAEM,CAAC,OAAP,GAAiB,SAAC,EAAD,GAAA;AACf,MAAA,mCAAA;AAAA,EAAA,UAAA,GAAa,wBAAA,CAAyB,EAAzB,CAAb,CAAA;AAAA,EACA,KAAA,GAAQ,UAAU,CAAC,KADnB,CAAA;AAAA,EAEA,MAAA,GAAS,UAAU,CAAC,MAFpB,CAAA;AAAA,EAOM;AACJ,+BAAA,CAAA;;AAAa,IAAA,kBAAC,GAAD,EAAM,aAAN,GAAA;AACX,UAAA,OAAA;AAAA,MAAA,0CAAM,GAAN,CAAA,CAAA;AACA,MAAA,IAAG,qBAAH;AACE,QAAA,IAAG,MAAA,CAAA,aAAA,KAA0B,QAA7B;AACE,gBAAU,IAAA,KAAA,CAAO,wEAAA,GAAuE,CAAA,MAAA,CAAA,aAAA,CAAvE,GAA6F,GAApG,CAAV,CADF;SAAA;AAEA,aAAA,qBAAA;kCAAA;AACE,UAAA,IAAC,CAAA,GAAD,CAAK,IAAL,EAAW,CAAX,CAAA,CADF;AAAA,SAHF;OAFW;IAAA,CAAb;;AAAA,uBAuBA,GAAA,GAAK,SAAC,IAAD,EAAO,OAAP,GAAA;AACH,UAAA,UAAA;AAAA,MAAA,IAAG,cAAA,IAAU,iBAAb;AACE,QAAA,IAAG,MAAA,CAAA,OAAA,KAAkB,QAArB;AACE,UAAA,IAAA,GAAO,EAAE,CAAC,YAAH,CAAoB,IAAA,KAAK,CAAC,IAAN,CAAW,EAAE,CAAC,0BAAH,CAAA,CAAX,EAA4C,OAA5C,CAApB,CAAwE,CAAC,OAAzE,CAAA,CAAP,CAAA;AAAA,UACA,kCAAM,IAAN,EAAY,IAAZ,CADA,CADF;SAAA,MAGK,IAAG,MAAA,CAAA,OAAA,KAAkB,QAArB;AACH,UAAA,IAAA,GAAO,EAAE,CAAC,YAAH,CAAgB,QAAA,CAAS,EAAE,CAAC,0BAAH,CAAA,CAAT,EAA0C,OAA1C,CAAhB,CAAkE,CAAC,OAAnE,CAAA,CAAP,CAAA;AAAA,UACA,kCAAM,IAAN,EAAY,IAAZ,CADA,CADG;SAAA,MAAA;AAIH,gBAAU,IAAA,KAAA,CAAO,mBAAA,GAAkB,CAAA,MAAA,CAAA,OAAA,CAAlB,GAAkC,uCAAzC,CAAV,CAJG;SAHL;eAQA,KATF;OAAA,MAAA;eAWE,kCAAM,IAAN,EAAY,OAAZ,EAXF;OADG;IAAA,CAvBL,CAAA;;AAAA,uBAqCA,MAAA,GAAQ,SAAA,GAAA;aACN;AAAA,QACE,MAAA,EAAS,UADX;AAAA,QAEE,KAAA,EAAQ,IAAC,CAAA,MAAD,CAAA,CAFV;QADM;IAAA,CArCR,CAAA;;oBAAA;;KADqB,KAAK,CAAC,WAP7B,CAAA;AAAA,EAmDA,MAAO,CAAA,UAAA,CAAP,GAAqB,SAAC,IAAD,GAAA;AACnB,QAAA,GAAA;AAAA,IACU,MACN,KADF,MADF,CAAA;WAGI,IAAA,QAAA,CAAS,GAAT,EAJe;EAAA,CAnDrB,CAAA;AAAA,EA0DA,KAAM,CAAA,UAAA,CAAN,GAAoB,QA1DpB,CAAA;SA4DA,WA7De;AAAA,CAFjB,CAAA" } \ No newline at end of file diff --git a/dest/lib/lib/Types/StructuredTypes.js.map b/dest/lib/lib/Types/StructuredTypes.js.map index 711ef48a..80898716 100644 --- a/dest/lib/lib/Types/StructuredTypes.js.map +++ b/dest/lib/lib/Types/StructuredTypes.js.map @@ -6,5 +6,5 @@ "StructuredTypes.coffee" ], "names": [], - "mappings": "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" + "mappings": "AAAA,IAAA,yBAAA;EAAA;iSAAA;;AAAA,yBAAA,GAA4B,OAAA,CAAQ,qBAAR,CAA5B,CAAA;;AAAA,MAEM,CAAC,OAAP,GAAiB,SAAC,EAAD,GAAA;AACf,MAAA,yFAAA;AAAA,EAAA,WAAA,GAAc,yBAAA,CAA0B,EAA1B,CAAd,CAAA;AAAA,EACA,KAAA,GAAQ,WAAW,CAAC,KADpB,CAAA;AAAA,EAEA,MAAA,GAAS,WAAW,CAAC,MAFrB,CAAA;AAAA,EAOM;AACJ,iCAAA,CAAA;;AAAa,IAAA,oBAAC,GAAD,GAAA;AACX,MAAA,IAAC,CAAA,GAAD,GAAO,EAAP,CAAA;AAAA,MACA,4CAAM,GAAN,CADA,CADW;IAAA,CAAb;;AAAA,yBAIA,GAAA,GAAK,SAAC,IAAD,EAAO,OAAP,GAAA;AACH,UAAA,sBAAA;AAAA,MAAA,IAAG,eAAH;AACE,QAAA,IAAO,sBAAP;AACE,UAAA,EAAE,CAAC,YAAH,CAAoB,IAAA,OAAA,CAAQ,EAAE,CAAC,0BAAH,CAAA,CAAR,EAAyC,IAAzC,EAA4C,IAA5C,CAApB,CAAqE,CAAC,OAAtE,CAAA,CAAA,CADF;SAAA;eAEA,IAAC,CAAA,GAAI,CAAA,IAAA,CAAK,CAAC,OAAX,CAAmB,OAAnB,EAHF;OAAA,MAIK,IAAG,YAAH;qDACO,CAAE,GAAZ,CAAA,WADG;OAAA,MAAA;AAGH,QAAA,MAAA,GAAS,EAAT,CAAA;AACA;AAAA,aAAA,aAAA;0BAAA;AACE,UAAA,MAAO,CAAA,IAAA,CAAP,GAAe,CAAC,CAAC,GAAF,CAAA,CAAf,CADF;AAAA,SADA;eAGA,OANG;OALF;IAAA,CAJL,CAAA;;sBAAA;;KADuB,KAAK,CAAC,UAP/B,CAAA;AAAA,EA+BM;AACJ,8BAAA,CAAA;;AAAa,IAAA,iBAAC,GAAD,EAAM,WAAN,EAAoB,IAApB,GAAA;AACX,MAD8B,IAAC,CAAA,OAAA,IAC/B,CAAA;AAAA,MAAA,IAAC,CAAA,aAAD,CAAe,aAAf,EAA8B,WAA9B,CAAA,CAAA;AAAA,MACA,yCAAM,GAAN,CADA,CADW;IAAA,CAAb;;AAAA,sBAIA,OAAA,GAAS,SAAA,GAAA;AACP,UAAA,iCAAA;AAAA,MAAA,IAAG,CAAA,IAAK,CAAA,uBAAD,CAAA,CAAP;AACE,eAAO,KAAP,CADF;OAAA,MAAA;AAGE,QAAA,KAAA,GAAQ,IAAC,CAAA,WAAW,CAAC,MAAb,CAAA,CAAR,CAAA;AAAA,QACA,KAAK,CAAC,SAAN,GAAmB,GAAA,GAAE,KAAK,CAAC,SAAR,GAAmB,MAAnB,GAAwB,IAAC,CAAA,IAD5C,CAAA;AAEA,QAAA,IAAO,8BAAP;AACE,UAAA,OAAA,GAAU,IAAC,CAAA,WAAW,CAAC,MAAb,CAAA,CAAV,CAAA;AAAA,UACA,OAAO,CAAC,SAAR,GAAqB,GAAA,GAAE,OAAO,CAAC,SAAV,GAAqB,MAArB,GAA0B,IAAC,CAAA,IAA3B,GAAiC,YADtD,CAAA;AAAA,UAEA,OAAA,GAAU,IAAC,CAAA,WAAW,CAAC,MAAb,CAAA,CAFV,CAAA;AAAA,UAGA,OAAO,CAAC,SAAR,GAAqB,GAAA,GAAE,OAAO,CAAC,SAAV,GAAqB,MAArB,GAA0B,IAAC,CAAA,IAA3B,GAAiC,MAHtD,CAAA;AAAA,UAIA,GAAA,GAAM,EAAE,CAAC,YAAH,CAAoB,IAAA,KAAK,CAAC,SAAN,CAAgB,OAAhB,EAAyB,MAAzB,EAAoC,OAApC,CAApB,CAJN,CAAA;AAAA,UAKA,GAAA,GAAM,EAAE,CAAC,YAAH,CAAoB,IAAA,KAAK,CAAC,SAAN,CAAgB,OAAhB,EAAyB,GAAzB,EAA8B,MAA9B,CAApB,CAA4D,CAAC,OAA7D,CAAA,CALN,CAAA;AAAA,UAMA,GAAG,CAAC,OAAJ,CAAA,CANA,CAAA;AAAA,UAOA,IAAC,CAAA,WAAW,CAAC,GAAI,CAAA,IAAC,CAAA,IAAD,CAAjB,GAA0B,EAAE,CAAC,YAAH,CAAoB,IAAA,cAAA,CAAe,MAAf,EAA0B,KAA1B,EAAiC,GAAjC,EAAsC,GAAtC,CAApB,CAA8D,CAAC,OAA/D,CAAA,CAP1B,CADF;SAFA;eAWA,sCAAA,SAAA,EAdF;OADO;IAAA,CAJT,CAAA;;AAAA,sBAqBA,MAAA,GAAQ,SAAA,GAAA;aACN;AAAA,QACE,MAAA,EAAS,SADX;AAAA,QAEE,KAAA,EAAQ,IAAC,CAAA,MAAD,CAAA,CAFV;AAAA,QAGE,aAAA,EAAgB,IAAC,CAAA,WAAW,CAAC,MAAb,CAAA,CAHlB;AAAA,QAIE,MAAA,EAAS,IAAC,CAAA,IAJZ;QADM;IAAA,CArBR,CAAA;;mBAAA;;KADoB,KAAK,CAAC,UA/B5B,CAAA;AAAA,EA6DA,MAAO,CAAA,SAAA,CAAP,GAAoB,SAAC,IAAD,GAAA;AAClB,QAAA,sBAAA;AAAA,IACkB,mBAAhB,cADF,EAEU,WAAR,MAFF,EAGW,YAAT,OAHF,CAAA;WAKI,IAAA,OAAA,CAAQ,GAAR,EAAa,WAAb,EAA0B,IAA1B,EANc;EAAA,CA7DpB,CAAA;AAAA,EAwEM;AACJ,kCAAA,CAAA;;AAAa,IAAA,qBAAC,GAAD,EAAM,SAAN,EAAiB,GAAjB,EAAsB,IAAtB,EAA4B,IAA5B,EAAkC,MAAlC,GAAA;AACX,MAAA,IAAG,mBAAA,IAAe,aAAlB;AACE,QAAA,IAAC,CAAA,aAAD,CAAe,WAAf,EAA4B,SAA5B,CAAA,CAAA;AAAA,QACA,IAAC,CAAA,aAAD,CAAe,KAAf,EAAsB,GAAtB,CADA,CADF;OAAA,MAAA;AAIE,QAAA,IAAC,CAAA,SAAD,GAAa,EAAE,CAAC,YAAH,CAAoB,IAAA,KAAK,CAAC,SAAN,CAAgB,EAAE,CAAC,0BAAH,CAAA,CAAhB,EAAiD,MAAjD,EAA4D,MAA5D,CAApB,CAAb,CAAA;AAAA,QACA,IAAC,CAAA,GAAD,GAAa,EAAE,CAAC,YAAH,CAAoB,IAAA,KAAK,CAAC,SAAN,CAAgB,EAAE,CAAC,0BAAH,CAAA,CAAhB,EAAiD,IAAC,CAAA,SAAlD,EAA6D,MAA7D,CAApB,CADb,CAAA;AAAA,QAEA,IAAC,CAAA,SAAS,CAAC,OAAX,GAAqB,IAAC,CAAA,GAFtB,CAAA;AAAA,QAGA,IAAC,CAAA,SAAS,CAAC,OAAX,CAAA,CAHA,CAAA;AAAA,QAIA,IAAC,CAAA,GAAG,CAAC,OAAL,CAAA,CAJA,CAJF;OAAA;AAAA,MAUA,6CAAM,GAAN,EAAW,IAAX,EAAiB,IAAjB,EAAuB,MAAvB,CAVA,CADW;IAAA,CAAb;;AAAA,0BAcA,gBAAA,GAAkB,SAAA,GAAA;aAChB,IAAC,CAAA,GAAG,CAAC,QADW;IAAA,CAdlB,CAAA;;AAAA,0BAkBA,iBAAA,GAAmB,SAAA,GAAA;aACjB,IAAC,CAAA,SAAS,CAAC,QADM;IAAA,CAlBnB,CAAA;;AAAA,0BAuBA,OAAA,GAAS,SAAA,GAAA;AACP,UAAA,SAAA;AAAA,MAAA,CAAA,GAAI,IAAC,CAAA,SAAS,CAAC,OAAf,CAAA;AAAA,MACA,MAAA,GAAS,EADT,CAAA;AAEA,aAAM,CAAA,KAAO,IAAC,CAAA,GAAd,GAAA;AACE,QAAA,MAAM,CAAC,IAAP,CAAY,CAAZ,CAAA,CAAA;AAAA,QACA,CAAA,GAAI,CAAC,CAAC,OADN,CADF;MAAA,CAFA;aAKA,OANO;IAAA,CAvBT,CAAA;;AAAA,0BAkCA,sBAAA,GAAwB,SAAC,QAAD,GAAA;AACtB,UAAA,CAAA;AAAA,MAAA,CAAA,GAAI,IAAC,CAAA,SAAS,CAAC,OAAf,CAAA;AACA,MAAA,IAAG,QAAA,GAAW,CAAd;AACE,eAAM,IAAN,GAAA;AACE,UAAA,CAAA,GAAI,CAAC,CAAC,OAAN,CAAA;AACA,UAAA,IAAG,CAAA,CAAK,CAAC,SAAF,CAAA,CAAP;AACE,YAAA,QAAA,IAAY,CAAZ,CADF;WADA;AAGA,UAAA,IAAG,QAAA,KAAY,CAAf;AACE,kBADF;WAHA;AAKA,UAAA,IAAG,CAAA,YAAa,KAAK,CAAC,SAAtB;AACE,kBAAU,IAAA,KAAA,CAAM,yDAAN,CAAV,CADF;WANF;QAAA,CADF;OADA;aAUA,EAXsB;IAAA,CAlCxB,CAAA;;uBAAA;;KADwB,KAAK,CAAC,OAxEhC,CAAA;AAAA,EA+HM;AACJ,qCAAA,CAAA;;AAAa,IAAA,wBAAC,eAAD,EAAkB,GAAlB,EAAuB,SAAvB,EAAkC,GAAlC,EAAuC,IAAvC,EAA6C,IAA7C,EAAmD,MAAnD,GAAA;AACX,MAAA,gDAAM,GAAN,EAAW,SAAX,EAAsB,GAAtB,EAA2B,IAA3B,EAAiC,IAAjC,EAAuC,MAAvC,CAAA,CAAA;AACA,MAAA,IAAG,uBAAH;AACE,QAAA,IAAC,CAAA,OAAD,CAAS,eAAT,CAAA,CADF;OAFW;IAAA,CAAb;;AAAA,6BAKA,OAAA,GAAS,SAAC,OAAD,GAAA;AACP,UAAA,KAAA;AAAA,MAAA,CAAA,GAAI,IAAC,CAAA,gBAAD,CAAA,CAAJ,CAAA;AAAA,MACA,EAAA,GAAS,IAAA,WAAA,CAAY,OAAZ,EAAqB,IAArB,EAAwB,EAAE,CAAC,0BAAH,CAAA,CAAxB,EAAyD,CAAzD,EAA4D,CAAC,CAAC,OAA9D,CADT,CAAA;aAEA,EAAE,CAAC,YAAH,CAAgB,EAAhB,CAAmB,CAAC,OAApB,CAAA,EAHO;IAAA,CALT,CAAA;;AAAA,6BAUA,GAAA,GAAK,SAAA,GAAA;AACH,UAAA,CAAA;AAAA,MAAA,CAAA,GAAI,IAAC,CAAA,gBAAD,CAAA,CAAJ,CAAA;AACA,MAAA,IAAG,CAAA,YAAa,KAAK,CAAC,SAAtB;AACE,cAAU,IAAA,KAAA,CAAM,MAAN,CAAV,CADF;OADA;aAGA,CAAC,CAAC,GAAF,CAAA,EAJG;IAAA,CAVL,CAAA;;AAAA,6BAgBA,MAAA,GAAQ,SAAA,GAAA;AACN,UAAA,IAAA;AAAA,MAAA,IAAA,GACE;AAAA,QACE,MAAA,EAAQ,gBADV;AAAA,QAEE,KAAA,EAAQ,IAAC,CAAA,MAAD,CAAA,CAFV;AAAA,QAGE,WAAA,EAAc,IAAC,CAAA,SAAS,CAAC,MAAX,CAAA,CAHhB;AAAA,QAIE,KAAA,EAAQ,IAAC,CAAA,GAAG,CAAC,MAAL,CAAA,CAJV;OADF,CAAA;AAOA,MAAA,IAAG,sBAAA,IAAc,sBAAjB;AACE,QAAA,IAAK,CAAA,MAAA,CAAL,GAAe,IAAC,CAAA,OAAO,CAAC,MAAT,CAAA,CAAf,CAAA;AAAA,QACA,IAAK,CAAA,MAAA,CAAL,GAAe,IAAC,CAAA,OAAO,CAAC,MAAT,CAAA,CADf,CADF;OAPA;AAUA,MAAA,IAAG,qBAAA,IAAa,IAAC,CAAA,MAAD,KAAa,IAAC,CAAA,OAA9B;AACE,QAAA,IAAK,CAAA,QAAA,CAAL,GAAiB,IAAC,CAAA,MAAM,CAAC,MAAR,CAAA,CAAjB,CADF;OAVA;aAYA,KAbM;IAAA,CAhBR,CAAA;;0BAAA;;KAD2B,YA/H7B,CAAA;AAAA,EA+JA,MAAO,CAAA,gBAAA,CAAP,GAA2B,SAAC,IAAD,GAAA;AACzB,QAAA,gDAAA;AAAA,IACc,eAAZ,UADF,EAEU,WAAR,MAFF,EAGU,YAAR,OAHF,EAIU,YAAR,OAJF,EAKa,cAAX,SALF,EAMgB,iBAAd,YANF,EAOU,WAAR,MAPF,CAAA;WASI,IAAA,cAAA,CAAe,OAAf,EAAwB,GAAxB,EAA6B,SAA7B,EAAwC,GAAxC,EAA6C,IAA7C,EAAmD,IAAnD,EAAyD,MAAzD,EAVqB;EAAA,CA/J3B,CAAA;AAAA,EAgLM;AACJ,kCAAA,CAAA;;AAAa,IAAA,qBAAC,OAAD,EAAU,MAAV,EAAkB,GAAlB,EAAuB,IAAvB,EAA6B,IAA7B,EAAmC,MAAnC,GAAA;AACX,MAAA,IAAC,CAAA,aAAD,CAAe,SAAf,EAA0B,OAA1B,CAAA,CAAA;AAAA,MACA,IAAC,CAAA,aAAD,CAAe,QAAf,EAAyB,MAAzB,CADA,CAAA;AAEA,MAAA,IAAG,CAAA,CAAK,cAAA,IAAU,cAAV,IAAoB,iBAArB,CAAP;AACE,cAAU,IAAA,KAAA,CAAM,gEAAN,CAAV,CADF;OAFA;AAAA,MAIA,6CAAM,GAAN,EAAW,IAAX,EAAiB,IAAjB,EAAuB,MAAvB,CAJA,CADW;IAAA,CAAb;;AAAA,0BAOA,GAAA,GAAK,SAAA,GAAA;aACH,IAAC,CAAA,QADE;IAAA,CAPL,CAAA;;AAAA,0BAUA,OAAA,GAAS,SAAC,OAAD,GAAA;aACP,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,OAAhB,EADO;IAAA,CAVT,CAAA;;AAAA,0BAaA,OAAA,GAAS,SAAA,GAAA;AACP,UAAA,KAAA;AAAA,MAAA,IAAG,CAAA,IAAK,CAAA,uBAAD,CAAA,CAAP;AACE,eAAO,KAAP,CADF;OAAA,MAAA;;eAGU,CAAC,kBAAmB,IAAC,CAAA;SAA7B;AAAA,QACA,0CAAA,SAAA,CADA,CAAA;eAEA,KALF;OADO;IAAA,CAbT,CAAA;;AAAA,0BAyBA,MAAA,GAAQ,SAAA,GAAA;AACN,UAAA,IAAA;AAAA,MAAA,IAAA,GACE;AAAA,QACE,MAAA,EAAQ,aADV;AAAA,QAEE,SAAA,EAAW,IAAC,CAAA,OAAO,CAAC,MAAT,CAAA,CAFb;AAAA,QAGE,gBAAA,EAAmB,IAAC,CAAA,MAAM,CAAC,MAAR,CAAA,CAHrB;AAAA,QAIE,MAAA,EAAQ,IAAC,CAAA,OAAO,CAAC,MAAT,CAAA,CAJV;AAAA,QAKE,MAAA,EAAQ,IAAC,CAAA,OAAO,CAAC,MAAT,CAAA,CALV;AAAA,QAME,KAAA,EAAQ,IAAC,CAAA,MAAD,CAAA,CANV;OADF,CAAA;AASA,MAAA,IAAG,qBAAA,IAAa,IAAC,CAAA,MAAD,KAAa,IAAC,CAAA,OAA9B;AACE,QAAA,IAAK,CAAA,QAAA,CAAL,GAAiB,IAAC,CAAA,MAAM,CAAC,MAAR,CAAA,CAAjB,CADF;OATA;aAWA,KAZM;IAAA,CAzBR,CAAA;;uBAAA;;KADwB,KAAK,CAAC,OAhLhC,CAAA;AAAA,EAwNA,MAAO,CAAA,aAAA,CAAP,GAAwB,SAAC,IAAD,GAAA;AACtB,QAAA,wCAAA;AAAA,IACc,eAAZ,UADF,EAEqB,cAAnB,iBAFF,EAGU,WAAR,MAHF,EAIU,YAAR,OAJF,EAKU,YAAR,OALF,EAMa,cAAX,SANF,CAAA;WAQI,IAAA,WAAA,CAAY,OAAZ,EAAqB,MAArB,EAA6B,GAA7B,EAAkC,IAAlC,EAAwC,IAAxC,EAA8C,MAA9C,EATkB;EAAA,CAxNxB,CAAA;AAAA,EAqOA,KAAM,CAAA,aAAA,CAAN,GAAuB,WArOvB,CAAA;AAAA,EAsOA,KAAM,CAAA,YAAA,CAAN,GAAsB,UAtOtB,CAAA;AAAA,EAuOA,KAAM,CAAA,gBAAA,CAAN,GAA0B,cAvO1B,CAAA;AAAA,EAwOA,KAAM,CAAA,aAAA,CAAN,GAAuB,WAxOvB,CAAA;SA0OA,YA3Oe;AAAA,CAFjB,CAAA" } \ No newline at end of file diff --git a/dest/lib/lib/Types/TextTypes.js.map b/dest/lib/lib/Types/TextTypes.js.map index 832c95a6..fa08c19a 100644 --- a/dest/lib/lib/Types/TextTypes.js.map +++ b/dest/lib/lib/Types/TextTypes.js.map @@ -6,5 +6,5 @@ "TextTypes.coffee" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/dest/lib/lib/Types/XmlTypes.js.map b/dest/lib/lib/Types/XmlTypes.js.map index 26fe7563..b2e79ce4 100644 --- a/dest/lib/lib/Types/XmlTypes.js.map +++ b/dest/lib/lib/Types/XmlTypes.js.map @@ -6,5 +6,5 @@ "XmlTypes.coffee" ], "names": [], - "mappings": "AAiJkB" + "mappings": "AAqKkB" } \ No newline at end of file diff --git a/dest/test/test/JsonYatta_test.js b/dest/test/test/JsonYatta_test.js index 51caa96f..ff26ad9e 100644 --- a/dest/test/test/JsonYatta_test.js +++ b/dest/test/test/JsonYatta_test.js @@ -19,155 +19,141 @@ Connector_uninitialized = require("../lib/Connectors/TestConnector.coffee"); - describe("JsonYatta", function() { - beforeEach(function(done) { - var i, _i, _ref; - this.last_user = 10; - this.users = []; - this.Connector = Connector_uninitialized(this.users); - for (i = _i = 0, _ref = this.last_user + 1; 0 <= _ref ? _i <= _ref : _i >= _ref; i = 0 <= _ref ? ++_i : --_i) { - this.users.push(new Yatta(i, this.Connector)); - } - return done(); - }); - return it("can handle many engines, many operations, concurrently (random)", function() { - var Connector, applyRandomOp, doSomething, doSomething_amount, found_error, generateDeleteOp, generateInsertOp, generateRandomOp, generateReplaceOp, i, j, number_of_created_operations, number_of_engines, number_of_test_cases_multiplier, ops, ops_per_msek, printOpsInExecutionOrder, repeat_this, time_now, times, u, user, user_number, users, _i, _j, _k, _l, _len, _m, _ref, _results; - number_of_test_cases_multiplier = 1; - repeat_this = 1 * number_of_test_cases_multiplier; - doSomething_amount = 200 * number_of_test_cases_multiplier; - number_of_engines = 12 + number_of_test_cases_multiplier - 1; - this.time = 0; - this.ops = 0; - users = []; - generateInsertOp = function(user_num) { - var chars, length, nextchar, pos, text; - chars = "1234567890"; - pos = _.random(0, users[user_num].val('name').length - 1); - length = 1; - nextchar = chars[_.random(0, chars.length - 1)]; - text = ""; - _(length).times(function() { - return text += nextchar; - }); - users[user_num].val('name').insertText(pos, text); - return null; - }; - generateReplaceOp = function(user_num) { - var chars, length, nextchar, text; - chars = "abcdefghijklmnopqrstuvwxyz"; - length = _.random(0, 10); - nextchar = chars[_.random(0, chars.length - 1)]; - text = ""; - _(length).times(function() { - return text += nextchar; - }); - return users[user_num].val('name').replaceText(text); - }; - generateDeleteOp = function(user_num) { - var length, ops1, pos; - if (users[user_num].val('name').val().length > 0) { - pos = _.random(0, users[user_num].val('name').val().length - 1); - length = 1; - ops1 = users[user_num].val('name').deleteText(pos, length); - } - return void 0; - }; - generateRandomOp = function(user_num) { - var i, op, op_gen; - op_gen = [generateDeleteOp, generateInsertOp, generateReplaceOp]; - i = _.random(op_gen.length - 1); - return op = op_gen[i](user_num); - }; - applyRandomOp = function(user_num) { - var user; - user = users[user_num]; - return user.getConnector().flushOneRandom(); - }; - doSomething = (function() { - return function() { - var choice, choices, user_num; - user_num = _.random(number_of_engines - 1); - choices = [applyRandomOp, generateRandomOp]; - choice = _.random(choices.length - 1); - return choices[choice](user_num); - }; - })(); - console.log(""); - _results = []; - for (times = _i = 1; 1 <= repeat_this ? _i <= repeat_this : _i >= repeat_this; times = 1 <= repeat_this ? ++_i : --_i) { - users = []; - Connector = Connector_uninitialized(users); - users.push(new Yatta(0, Connector)); - users[0].val('name', "initial"); - for (i = _j = 1; 1 <= number_of_engines ? _j < number_of_engines : _j > number_of_engines; i = 1 <= number_of_engines ? ++_j : --_j) { - users.push(new Yatta(i, Connector)); - } - found_error = false; - time_now = (new Date).getTime(); - for (i = _k = 1; 1 <= doSomething_amount ? _k <= doSomething_amount : _k >= doSomething_amount; i = 1 <= doSomething_amount ? ++_k : --_k) { - doSomething(); - } - for (user_number = _l = 0, _len = users.length; _l < _len; user_number = ++_l) { - user = users[user_number]; - user.getConnector().flushAll(); - } - this.time += (new Date()).getTime() - time_now; - number_of_created_operations = 0; - for (i = _m = 0, _ref = users.length; 0 <= _ref ? _m < _ref : _m > _ref; i = 0 <= _ref ? ++_m : --_m) { - number_of_created_operations += users[i].getConnector().getOpsInExecutionOrder().length; - } - this.ops += number_of_created_operations * users.length; - ops_per_msek = Math.floor(this.ops / this.time); - console.log(("" + times + "/" + repeat_this + ": Every collaborator (" + users.length + ") applied " + number_of_created_operations + " ops in a different order.") + (" Over all we consumed " + this.ops + " operations in " + (this.time / 1000) + " seconds (" + ops_per_msek + " ops/msek).")); - console.log(users[0].val('name').val()); - _results.push((function() { - var _len1, _n, _o, _ref1, _results1; - _results1 = []; - for (i = _n = 0, _ref1 = users.length - 1; 0 <= _ref1 ? _n < _ref1 : _n > _ref1; i = 0 <= _ref1 ? ++_n : --_n) { - if (users[i].val('name').val() !== users[i + 1].val('name').val()) { - printOpsInExecutionOrder = function(otnumber, otherotnumber) { - var j, o, ops, s, _len1, _len2, _o, _p; - ops = users[otnumber].getConnector().getOpsInExecutionOrder(); - for (_o = 0, _len1 = ops.length; _o < _len1; _o++) { - s = ops[_o]; - console.log(JSON.stringify(s)); - } - console.log(""); - s = "ops = ["; - for (j = _p = 0, _len2 = ops.length; _p < _len2; j = ++_p) { - o = ops[j]; - if (j !== 0) { - s += ", "; - } - s += "op" + j; - } - s += "]"; - console.log(s); - console.log("@users[@last_user].ot.applyOps ops"); - console.log("expect(@users[@last_user].ot.val('name')).to.equal(\"" + (users[otherotnumber].val('name')) + "\")"); - return ops; - }; - console.log(""); - console.log("Found an OT Puzzle!"); - console.log("OT states:"); - for (j = _o = 0, _len1 = users.length; _o < _len1; j = ++_o) { - u = users[j]; - console.log(("OT" + j + ": ") + u.val('name')); - } - console.log("\nOT execution order (" + i + "," + (i + 1) + "):"); - printOpsInExecutionOrder(i, i + 1); - console.log(""); - ops = printOpsInExecutionOrder(i + 1, i); - _results1.push(console.log("")); - } else { - _results1.push(void 0); - } - } - return _results1; - })()); - } - return _results; - }); - }); + + /* + describe "JsonYatta", -> + beforeEach (done)-> + @last_user = 10 + @users = [] + @Connector = Connector_uninitialized @users + for i in [0..(@last_user+1)] + @users.push(new Yatta i, @Connector) + + + done() + + it "can handle many engines, many operations, concurrently (random)", -> + number_of_test_cases_multiplier = 1 + repeat_this = 100 * number_of_test_cases_multiplier + doSomething_amount = 200 * number_of_test_cases_multiplier + number_of_engines = 12 + number_of_test_cases_multiplier - 1 + + @time = 0 + @ops = 0 + + users = [] + + generateInsertOp = (user_num)-> + chars = "1234567890" + + pos = _.random 0, (users[user_num].val('name').length-1) + length = 1 #_.random 0, 10 + + nextchar = chars[(_.random 0, (chars.length-1))] + + text = "" + _(length).times ()-> text += nextchar + + users[user_num].val('name').insertText pos, text + null + + generateReplaceOp = (user_num)-> + chars = "abcdefghijklmnopqrstuvwxyz" + length = _.random 0, 10 + + nextchar = chars[(_.random 0, (chars.length-1))] + + text = "" + _(length).times ()-> text += nextchar + users[user_num].val('name').replaceText text + + generateDeleteOp = (user_num)-> + if users[user_num].val('name').val().length > 0 + pos = _.random 0, (users[user_num].val('name').val().length-1) + length = 1 # _.random 0, ot.val('name').length - pos + ops1 = users[user_num].val('name').deleteText pos, length + undefined + + generateRandomOp = (user_num)-> + op_gen = [generateDeleteOp, generateInsertOp, generateReplaceOp] + i = _.random (op_gen.length - 1) + op = op_gen[i](user_num) + + applyRandomOp = (user_num)-> + user = users[user_num] + user.getConnector().flushOneRandom() + + doSomething = do ()-> + ()-> + user_num = _.random (number_of_engines-1) + choices = [applyRandomOp, generateRandomOp] + *if (users[user_num].buffer[user_num].length < maximum_ops_per_engine) + * choices = choices.concat generateRandomOp + + choice = _.random (choices.length-1) + + choices[choice](user_num) + + console.log "" + for times in [1..repeat_this] + *console.log "repeated_this x #{times} times" + users = [] + Connector = Connector_uninitialized users + users.push(new Yatta 0, Connector) + users[0].val('name',"initial") + for i in [1...number_of_engines] + users.push(new Yatta i, Connector) + + found_error = false + + *try + time_now = (new Date).getTime() + for i in [1..doSomething_amount] + doSomething() + + for user,user_number in users + user.getConnector().flushAll() + + @time += (new Date()).getTime() - time_now + + number_of_created_operations = 0 + for i in [0...(users.length)] + number_of_created_operations += users[i].getConnector().getOpsInExecutionOrder().length + @ops += number_of_created_operations*users.length + + ops_per_msek = Math.floor(@ops/@time) + console.log "#{times}/#{repeat_this}: Every collaborator (#{users.length}) applied #{number_of_created_operations} ops in a different order." + " Over all we consumed #{@ops} operations in #{@time/1000} seconds (#{ops_per_msek} ops/msek)." + + console.log users[0].val('name').val() + for i in [0...(users.length-1)] + if ((users[i].val('name').val() isnt users[i+1].val('name').val()) )# and (number_of_created_operations <= 6 or true)) or found_error + + printOpsInExecutionOrder = (otnumber, otherotnumber)-> + ops = users[otnumber].getConnector().getOpsInExecutionOrder() + for s in ops + console.log JSON.stringify s + console.log "" + s = "ops = [" + for o,j in ops + if j isnt 0 + s += ", " + s += "op#{j}" + s += "]" + console.log s + console.log "@users[@last_user].ot.applyOps ops" + console.log "expect(@users[@last_user].ot.val('name')).to.equal(\"#{users[otherotnumber].val('name')}\")" + ops + console.log "" + console.log "Found an OT Puzzle!" + console.log "OT states:" + for u,j in users + console.log "OT#{j}: "+u.val('name') + console.log "\nOT execution order (#{i},#{i+1}):" + printOpsInExecutionOrder i, i+1 + console.log "" + ops = printOpsInExecutionOrder i+1, i + + console.log "" + */ }).call(this); diff --git a/dest/test/test/TextYatta_test.js b/dest/test/test/TextYatta_test.js index 167e0ad9..1803bab4 100644 --- a/dest/test/test/TextYatta_test.js +++ b/dest/test/test/TextYatta_test.js @@ -19,154 +19,145 @@ Connector_uninitialized = require("../lib/Connectors/TestConnector.coffee"); - describe("TextYatta", function() { - beforeEach(function(done) { - var i, _i, _ref; - this.last_user = 10; - this.users = []; - this.Connector = Connector_uninitialized(this.users); - for (i = _i = 0, _ref = this.last_user + 1; 0 <= _ref ? _i <= _ref : _i >= _ref; i = 0 <= _ref ? ++_i : --_i) { - this.users.push(new Yatta(i, this.Connector)); - } - return done(); - }); - it("handles inserts correctly", function() {}); - return it("can handle many engines, many operations, concurrently (random)", function() { - var Connector, applyRandomOp, doSomething, doSomething_amount, found_error, found_inconsistency, generateDeleteOp, generateInsertOp, generateRandomOp, generateReplaceOp, i, j, number_of_created_operations, number_of_engines, number_of_test_cases_multiplier, ops, ops_per_msek, printOpsInExecutionOrder, repeat_this, time_now, times, u, user, user_number, users, _i, _j, _k, _l, _len, _len1, _m, _n, _o, _ref, _ref1, _results; - number_of_test_cases_multiplier = 1; - repeat_this = 1 * number_of_test_cases_multiplier; - doSomething_amount = 500 * number_of_test_cases_multiplier; - number_of_engines = 12 + number_of_test_cases_multiplier - 1; - this.time = 0; - this.ops = 0; - users = []; - generateInsertOp = function(user_num) { - var chars, length, nextchar, pos, text; - chars = "1234567890"; - pos = _.random(0, users[user_num].val().length - 1); - length = 1; - nextchar = chars[_.random(0, chars.length - 1)]; - text = ""; - _(length).times(function() { - return text += nextchar; - }); - users[user_num].insertText(pos, text); - return null; - }; - generateReplaceOp = function(user_num) { - var chars, length, nextchar, text; - chars = "abcdefghijklmnopqrstuvwxyz"; - length = _.random(0, 10); - nextchar = chars[_.random(0, chars.length - 1)]; - text = ""; - _(length).times(function() { - return text += nextchar; - }); - return users[user_num].replaceText(text); - }; - generateDeleteOp = function(user_num) { - var length, ops1, pos; - if (users[user_num].val().length > 0) { - pos = _.random(0, users[user_num].val().length - 1); - length = 1; - ops1 = users[user_num].deleteText(pos, length); - } - return void 0; - }; - generateRandomOp = function(user_num) { - var i, op, op_gen; - op_gen = [generateDeleteOp, generateInsertOp, generateReplaceOp]; - i = _.random(op_gen.length - 1); - return op = op_gen[i](user_num); - }; - applyRandomOp = function(user_num) { - var user; - user = users[user_num]; - return user.getConnector().flushOneRandom(); - }; - doSomething = (function() { - return function() { - var choice, choices, user_num; - user_num = _.random(number_of_engines - 1); - choices = [applyRandomOp, generateRandomOp]; - choice = _.random(choices.length - 1); - return choices[choice](user_num); - }; - })(); - console.log(""); - _results = []; - for (times = _i = 1; 1 <= repeat_this ? _i <= repeat_this : _i >= repeat_this; times = 1 <= repeat_this ? ++_i : --_i) { - users = []; - Connector = Connector_uninitialized(users); - for (i = _j = 0; 0 <= number_of_engines ? _j <= number_of_engines : _j >= number_of_engines; i = 0 <= number_of_engines ? ++_j : --_j) { - users.push(new Yatta(i, Connector)); - } - found_error = false; - time_now = (new Date).getTime(); - for (i = _k = 1; 1 <= doSomething_amount ? _k <= doSomething_amount : _k >= doSomething_amount; i = 1 <= doSomething_amount ? ++_k : --_k) { - doSomething(); - } - for (user_number = _l = 0, _len = users.length; _l < _len; user_number = ++_l) { - user = users[user_number]; - user.getConnector().flushAll(); - } - this.time += (new Date()).getTime() - time_now; - number_of_created_operations = 0; - for (i = _m = 0, _ref = users.length; 0 <= _ref ? _m < _ref : _m > _ref; i = 0 <= _ref ? ++_m : --_m) { - number_of_created_operations += users[i].getConnector().getOpsInExecutionOrder().length; - } - this.ops += number_of_created_operations * users.length; - ops_per_msek = Math.floor(this.ops / this.time); - console.log(("" + times + "/" + repeat_this + ": Every collaborator (" + users.length + ") applied " + number_of_created_operations + " ops in a different order.") + (" Over all we consumed " + this.ops + " operations in " + (this.time / 1000) + " seconds (" + ops_per_msek + " ops/msek).")); - console.log(users[0].val()); - found_inconsistency = false; - for (i = _n = 0, _ref1 = users.length - 1; 0 <= _ref1 ? _n < _ref1 : _n > _ref1; i = 0 <= _ref1 ? ++_n : --_n) { - if (users[i].val() !== users[i + 1].val()) { - found_inconsistency = true; - printOpsInExecutionOrder = function(otnumber, otherotnumber) { - var j, o, ops, s, _len1, _len2, _o, _p; - ops = users[otnumber].getConnector().getOpsInExecutionOrder(); - for (j = _o = 0, _len1 = ops.length; _o < _len1; j = ++_o) { - s = ops[j]; - console.log("op" + j + " = " + (JSON.stringify(s))); - } - console.log(""); - s = "ops = ["; - for (j = _p = 0, _len2 = ops.length; _p < _len2; j = ++_p) { - o = ops[j]; - if (j !== 0) { - s += ", "; - } - s += "op" + j; - } - s += "]"; - console.log(s); - console.log("@users[@last_user].ot.applyOps ops"); - console.log("expect(@users[@last_user].val()).to.equal(\"" + (users[otherotnumber].val()) + "\")"); - return ops; - }; - console.log(""); - console.log("Found an OT Puzzle!"); - console.log("OT states:"); - for (j = _o = 0, _len1 = users.length; _o < _len1; j = ++_o) { - u = users[j]; - console.log(("OT" + j + ": ") + u.val()); - } - console.log("\nOT execution order (" + i + "," + (i + 1) + "):"); - printOpsInExecutionOrder(i, i + 1); - console.log(""); - ops = printOpsInExecutionOrder(i + 1, i); - console.log(""); - } - } - if (found_inconsistency) { - throw new Error("dtrn"); - } else { - _results.push(void 0); - } - } - return _results; - }); - }); + + /* + describe "TextYatta", -> + beforeEach (done)-> + @last_user = 10 + @users = [] + @Connector = Connector_uninitialized @users + for i in [0..(@last_user+1)] + @users.push(new Yatta i, @Connector) + done() + + it "handles inserts correctly", -> + + + it "can handle many engines, many operations, concurrently (random)", -> + number_of_test_cases_multiplier = 1 + repeat_this = 1 * number_of_test_cases_multiplier + doSomething_amount = 500 * number_of_test_cases_multiplier + number_of_engines = 12 + number_of_test_cases_multiplier - 1 + *maximum_ops_per_engine = 20 * number_of_test_cases_multiplier + + @time = 0 + @ops = 0 + users = [] + + generateInsertOp = (user_num)-> + chars = "1234567890" + + pos = _.random 0, (users[user_num].val().length-1) + length = 1 #_.random 0, 10 + + nextchar = chars[(_.random 0, (chars.length-1))] + + text = "" + _(length).times ()-> text += nextchar + + users[user_num].insertText pos, text + null + + generateReplaceOp = (user_num)-> + chars = "abcdefghijklmnopqrstuvwxyz" + length = _.random 0, 10 + + nextchar = chars[(_.random 0, (chars.length-1))] + + text = "" + _(length).times ()-> text += nextchar + users[user_num].replaceText text + + generateDeleteOp = (user_num)-> + if users[user_num].val().length > 0 + pos = _.random 0, (users[user_num].val().length-1) + length = 1 # _.random 0, ot.val().length - pos + ops1 = users[user_num].deleteText pos, length + undefined + + generateRandomOp = (user_num)-> + op_gen = [generateDeleteOp, generateInsertOp, generateReplaceOp] + i = _.random (op_gen.length - 1) + op = op_gen[i](user_num) + + applyRandomOp = (user_num)-> + user = users[user_num] + user.getConnector().flushOneRandom() + + doSomething = do ()-> + ()-> + user_num = _.random (number_of_engines-1) + choices = [applyRandomOp, generateRandomOp] + *if (users[user_num].buffer[user_num].length < maximum_ops_per_engine) + * choices = choices.concat generateRandomOp + + choice = _.random (choices.length-1) + + choices[choice](user_num) + + console.log "" + for times in [1..repeat_this] + *console.log "repeated_this x #{times} times" + users = [] + Connector = Connector_uninitialized users + for i in [0..number_of_engines] + users.push(new Yatta i, Connector) + + found_error = false + + *try + time_now = (new Date).getTime() + for i in [1..doSomething_amount] + doSomething() + + for user,user_number in users + user.getConnector().flushAll() + + @time += (new Date()).getTime() - time_now + + number_of_created_operations = 0 + for i in [0...(users.length)] + number_of_created_operations += users[i].getConnector().getOpsInExecutionOrder().length + @ops += number_of_created_operations*users.length + + ops_per_msek = Math.floor(@ops/@time) + console.log "#{times}/#{repeat_this}: Every collaborator (#{users.length}) applied #{number_of_created_operations} ops in a different order." + " Over all we consumed #{@ops} operations in #{@time/1000} seconds (#{ops_per_msek} ops/msek)." + + console.log users[0].val() + found_inconsistency = false + for i in [0...(users.length-1)] + if ((users[i].val() isnt users[i+1].val()) )# and (number_of_created_operations <= 6 or true)) or found_error + found_inconsistency =true + printOpsInExecutionOrder = (otnumber, otherotnumber)-> + ops = users[otnumber].getConnector().getOpsInExecutionOrder() + for s,j in ops + console.log "op#{j} = #{JSON.stringify s}" + console.log "" + s = "ops = [" + for o,j in ops + if j isnt 0 + s += ", " + s += "op#{j}" + s += "]" + console.log s + console.log "@users[@last_user].ot.applyOps ops" + console.log "expect(@users[@last_user].val()).to.equal(\"#{users[otherotnumber].val()}\")" + ops + console.log "" + console.log "Found an OT Puzzle!" + console.log "OT states:" + for u,j in users + console.log "OT#{j}: "+u.val() + console.log "\nOT execution order (#{i},#{i+1}):" + printOpsInExecutionOrder i, i+1 + console.log "" + ops = printOpsInExecutionOrder i+1, i + + console.log "" + if found_inconsistency + throw new Error "dtrn" + + * expect(users[i].ot.val()).to.equal(users[i+1].ot.val()) + */ }).call(this); diff --git a/dest/test/test/Yatta_test.js b/dest/test/test/Yatta_test.js new file mode 100644 index 00000000..372a1d6f --- /dev/null +++ b/dest/test/test/Yatta_test.js @@ -0,0 +1,197 @@ +(function() { + var Connector_uninitialized, Test, Yatta, chai, expect, should, sinon, sinonChai, _, + __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; + + chai = require('chai'); + + expect = chai.expect; + + should = chai.should(); + + sinon = require('sinon'); + + sinonChai = require('sinon-chai'); + + _ = require("underscore"); + + chai.use(sinonChai); + + Yatta = require("../lib/Frameworks/JsonYatta.coffee"); + + Connector_uninitialized = require("../lib/Connectors/TestConnector.coffee"); + + Test = (function() { + function Test() { + this.applyRandomOp = __bind(this.applyRandomOp, this); + this.generateRandomOp = __bind(this.generateRandomOp, this); + this.generateDeleteOp = __bind(this.generateDeleteOp, this); + this.generateReplaceOp = __bind(this.generateReplaceOp, this); + this.generateInsertOp = __bind(this.generateInsertOp, this); + this.number_of_test_cases_multiplier = 1; + this.repeat_this = 100 * this.number_of_test_cases_multiplier; + this.doSomething_amount = 200 * this.number_of_test_cases_multiplier; + this.number_of_engines = 12 + this.number_of_test_cases_multiplier - 1; + this.time = 0; + this.ops = 0; + this.reinitialize(); + } + + Test.prototype.reinitialize = function() { + var i, _i, _ref, _results; + this.users = []; + this.Connector = Connector_uninitialized(this.users); + this.users.push(new Yatta(0, this.Connector)); + this.users[0].val('name', "initial"); + _results = []; + for (i = _i = 1, _ref = this.number_of_engines; 1 <= _ref ? _i < _ref : _i > _ref; i = 1 <= _ref ? ++_i : --_i) { + _results.push(this.users.push(new Yatta(i, this.Connector))); + } + return _results; + }; + + Test.prototype.getRandomText = function() { + var chars, length, nextchar, text; + chars = "abcdefghijklmnopqrstuvwxyz"; + length = _.random(0, 10); + nextchar = chars[_.random(0, chars.length - 1)]; + text = ""; + _(length).times(function() { + return text += nextchar; + }); + return text; + }; + + Test.prototype.generateInsertOp = function(user_num) { + var pos; + pos = _.random(0, this.users[user_num].val('name').val().length - 1); + this.users[user_num].val('name').insertText(pos, this.getRandomText()); + return null; + }; + + Test.prototype.generateReplaceOp = function(user_num) { + this.users[user_num].val('name').replaceText(this.getRandomText()); + return null; + }; + + Test.prototype.generateDeleteOp = function(user_num) { + var length, ops1, pos; + if (this.users[user_num].val('name').val().length > 0) { + pos = _.random(0, this.users[user_num].val('name').val().length - 1); + length = 1; + ops1 = this.users[user_num].val('name').deleteText(pos, length); + } + return void 0; + }; + + Test.prototype.generateRandomOp = function(user_num) { + var i, op, op_gen; + op_gen = [this.generateDeleteOp, this.generateInsertOp, this.generateReplaceOp]; + i = _.random(op_gen.length - 1); + return op = op_gen[i](user_num); + }; + + Test.prototype.applyRandomOp = function(user_num) { + var user; + user = this.users[user_num]; + return user.getConnector().flushOneRandom(); + }; + + Test.prototype.doSomething = function() { + var choice, choices, user_num; + user_num = _.random(this.number_of_engines - 1); + choices = [this.applyRandomOp, this.generateRandomOp]; + choice = _.random(choices.length - 1); + return choices[choice](user_num); + }; + + Test.prototype.flushAll = function() { + var user, user_number, _i, _len, _ref, _results; + _ref = this.users; + _results = []; + for (user_number = _i = 0, _len = _ref.length; _i < _len; user_number = ++_i) { + user = _ref[user_number]; + _results.push(user.getConnector().flushAll()); + } + return _results; + }; + + Test.prototype.run = function() { + var i, j, number_of_created_operations, ops, ops_per_msek, printOpsInExecutionOrder, time_now, times, u, _i, _j, _k, _ref, _ref1, _ref2, _results; + _results = []; + for (times = _i = 1, _ref = this.repeat_this; 1 <= _ref ? _i <= _ref : _i >= _ref; times = 1 <= _ref ? ++_i : --_i) { + this.reinitialize(); + time_now = (new Date).getTime(); + for (i = _j = 1, _ref1 = this.doSomething_amount; 1 <= _ref1 ? _j <= _ref1 : _j >= _ref1; i = 1 <= _ref1 ? ++_j : --_j) { + this.doSomething(); + } + this.flushAll(); + this.time += (new Date()).getTime() - time_now; + number_of_created_operations = 0; + for (i = _k = 0, _ref2 = this.users.length; 0 <= _ref2 ? _k < _ref2 : _k > _ref2; i = 0 <= _ref2 ? ++_k : --_k) { + number_of_created_operations += this.users[i].getConnector().getOpsInExecutionOrder().length; + } + this.ops += number_of_created_operations * this.users.length; + ops_per_msek = Math.floor(this.ops / this.time); + console.log(("" + times + "/" + this.repeat_this + ": Every collaborator (" + this.users.length + ") applied " + this.number_of_created_operations + " ops in a different order.") + (" Over all we consumed " + this.ops + " operations in " + (this.time / 1000) + " seconds (" + ops_per_msek + " ops/msek).")); + _results.push((function() { + var _l, _len, _m, _ref3, _results1; + _results1 = []; + for (i = _l = 0, _ref3 = this.users.length - 1; 0 <= _ref3 ? _l < _ref3 : _l > _ref3; i = 0 <= _ref3 ? ++_l : --_l) { + if (this.users[i].val('name').val() !== this.users[i + 1].val('name').val()) { + printOpsInExecutionOrder = function(otnumber, otherotnumber) { + var j, o, ops, s, _len, _len1, _m, _n; + ops = this.users[otnumber].getConnector().getOpsInExecutionOrder(); + for (_m = 0, _len = ops.length; _m < _len; _m++) { + s = ops[_m]; + console.log(JSON.stringify(s)); + } + console.log(""); + s = "ops = ["; + for (j = _n = 0, _len1 = ops.length; _n < _len1; j = ++_n) { + o = ops[j]; + if (j !== 0) { + s += ", "; + } + s += "op" + j; + } + s += "]"; + console.log(s); + console.log("@users[@last_user].ot.applyOps ops"); + console.log("expect(@users[@last_user].ot.val('name')).to.equal(\"" + (users[otherotnumber].val('name')) + "\")"); + return ops; + }; + console.log(""); + console.log("Found an OT Puzzle!"); + console.log("OT states:"); + for (j = _m = 0, _len = users.length; _m < _len; j = ++_m) { + u = users[j]; + console.log(("OT" + j + ": ") + u.val('name')); + } + console.log("\nOT execution order (" + i + "," + (i + 1) + "):"); + printOpsInExecutionOrder(i, i + 1); + console.log(""); + ops = printOpsInExecutionOrder(i + 1, i); + _results1.push(console.log("")); + } else { + _results1.push(void 0); + } + } + return _results1; + }).call(this)); + } + return _results; + }; + + return Test; + + })(); + + describe("JsonYatta", function() { + return it("can handle many engines, many operations, concurrently (random)", function() { + var yTest; + yTest = new Test(); + return yTest.run(); + }); + }); + +}).call(this); diff --git a/doc/alphabetical_index.html b/doc/alphabetical_index.html index ed252263..633c0991 100644 --- a/doc/alphabetical_index.html +++ b/doc/alphabetical_index.html @@ -42,6 +42,21 @@ + - - -
-

- ~ -(void) -new HistoryBuffer(initial_content) -

-
-

Creates an HB with initial operations that represent the initial_value.

-
-
-

Parameters:

- -

See also:

- -
-
- @@ -200,7 +155,11 @@ getUserId()

- +
+

Get the user id with wich the History Buffer was initialized.

+
+
+

@@ -209,7 +168,11 @@ getOperationCounter()

- +
+

Get the operation counter that describes the current state of the document.

+
+
+

@@ -230,7 +193,7 @@

Get the number of operations that were created by a user. Accordingly you will get the next operation number that is expected from that user. -You'll get new results only if you added the operation with $addOperation.

+This will increment the operation counter.

@@ -257,7 +220,7 @@ You'll get new results only if you added the operation with $addOperation.

Add an operation to the HB. Note that this will not link it against -other operations (it wont be executable)

+other operations (it wont executed)

@@ -265,7 +228,7 @@ other operations (it wont be executable)

@@ -166,7 +187,11 @@ val()

- +
+

@returns [Json] A Json object.

+
+
+

@@ -175,7 +200,12 @@ setReplaceManager(op)

- +
+

In most cases you would embed a Word in a Replaceable, wich is handled by the ReplaceManager in order +to provide replace functionality.

+
+
+

@@ -189,7 +219,7 @@

diff --git a/lib/Connectors/IwcConnector.coffee b/lib/Connectors/IwcConnector.coffee index 6a7e8832..181b1005 100644 --- a/lib/Connectors/IwcConnector.coffee +++ b/lib/Connectors/IwcConnector.coffee @@ -16,7 +16,11 @@ createIwcConnector = (callback)-> root_element = null received_HB = null - + # + # The Iwc Connector adds support for the Inter-Widget-Communication protocol that is used in the Role-SDK. + # @see http://dbis.rwth-aachen.de/cms/projects/the-xmpp-experience#interwidget-communication + # @see http://dbis.rwth-aachen.de/cms/projects/ROLE + # class IwcConnector constructor: (@engine, @HB, @execution_listener, @yatta)-> @duiClient = duiClient diff --git a/lib/Connectors/TestConnector.coffee b/lib/Connectors/TestConnector.coffee index 8c7e3680..bb65f557 100644 --- a/lib/Connectors/TestConnector.coffee +++ b/lib/Connectors/TestConnector.coffee @@ -2,6 +2,10 @@ _ = require "underscore" module.exports = (user_list)-> + + # + # A trivial Connector that simulates network delay. + # class TestConnector constructor: (@engine, @HB, @execution_listener)-> send_ = (o)=> diff --git a/lib/Engine.coffee b/lib/Engine.coffee index 1982260e..eba4be12 100644 --- a/lib/Engine.coffee +++ b/lib/Engine.coffee @@ -1,4 +1,7 @@ +# +# The Engine handles how and in which order to execute operations and add operations to the HistoryBuffer. +# class Engine constructor: (@HB, @parser)-> @unprocessed_ops = [] @@ -10,7 +13,6 @@ class Engine else throw new Error "You forgot to specify a parser for type #{json.type}. The message is #{JSON.stringify json}." - # TODO: applyOps: (ops_json)-> ops = [] for o in ops_json diff --git a/lib/Frameworks/JsonYatta.coffee b/lib/Frameworks/JsonYatta.coffee index d07a4857..fb918316 100644 --- a/lib/Frameworks/JsonYatta.coffee +++ b/lib/Frameworks/JsonYatta.coffee @@ -3,6 +3,9 @@ json_types_uninitialized = require "../Types/JsonTypes.coffee" HistoryBuffer = require "../HistoryBuffer.coffee" Engine = require "../Engine.coffee" +# +# Framework for arbitrary Json data-structures. +# class JsonYatta constructor: (user_id, Connector)-> @HB = new HistoryBuffer user_id diff --git a/lib/Frameworks/TextYatta.coffee b/lib/Frameworks/TextYatta.coffee index 064f7589..7c9ab9de 100644 --- a/lib/Frameworks/TextYatta.coffee +++ b/lib/Frameworks/TextYatta.coffee @@ -3,6 +3,9 @@ text_types_uninitialized = require "../Types/TextTypes.coffee" HistoryBuffer = require "../HistoryBuffer.coffee" Engine = require "../Engine.coffee" +# +# Framework for Text Datastructures. +# class TextYatta constructor: (user_id, Connector)-> @HB = new HistoryBuffer user_id diff --git a/lib/HistoryBuffer.coffee b/lib/HistoryBuffer.coffee index 5a3b7563..79e43159 100644 --- a/lib/HistoryBuffer.coffee +++ b/lib/HistoryBuffer.coffee @@ -5,21 +5,25 @@ # @note The HistoryBuffer is commonly abbreviated to HB. # class HistoryBuffer - # @overload new HistoryBuffer() - # Creates an empty HB. - # @param {Object} user_id Creator of the HB. - # @overload new HistoryBuffer(initial_content) - # Creates an HB with initial operations that represent the initial_value. - # @param {Array} initial_content Initial content of the DUC - # @see DUC DUC - Document Under Collaboration + + # + # Creates an empty HB. + # @param {Object} user_id Creator of the HB. + # constructor: (@user_id)-> @operation_counter = {} @buffer = {} @change_listeners = [] + # + # Get the user id with wich the History Buffer was initialized. + # getUserId: ()-> @user_id + # + # Get the operation counter that describes the current state of the document. + # getOperationCounter: ()-> res = {} for user,ctn of @operation_counter @@ -34,9 +38,10 @@ class HistoryBuffer json.push o.toJson() json + # # Get the number of operations that were created by a user. # Accordingly you will get the next operation number that is expected from that user. - # You'll get new results only if you added the operation with $addOperation. + # This will increment the operation counter. # getNextOperationIdentifier: (user_id)-> if not user_id? @@ -59,7 +64,7 @@ class HistoryBuffer throw new Error "This type of uid is not defined!" # Add an operation to the HB. Note that this will not link it against - # other operations (it wont be executable) + # other operations (it wont executed) addOperation: (o)-> if not @buffer[o.creator]? @buffer[o.creator] = {} diff --git a/lib/Types/BasicTypes.coffee b/lib/Types/BasicTypes.coffee index 9c33f418..2408d627 100644 --- a/lib/Types/BasicTypes.coffee +++ b/lib/Types/BasicTypes.coffee @@ -6,15 +6,29 @@ module.exports = (HB)-> # # A generic interface to operations. # + # An operation has the following methods: + # toJson: encodes an operation (needed only if instance of this operation is sent). + # execute: execute the effects of this operations. Good examples are Insert-type and AddName-type + # val: in the case that the operation holds a value + # + # Furthermore an encodable operation has a parser. + # class Operation # @param {Object} uid A unique identifier # @see HistoryBuffer.getNextOperationIdentifier - constructor: ({'creator': @creator, 'op_number' : @op_number})-> + constructor: (uid)-> + { + 'creator': @creator + 'op_number' : @op_number + } = uid # Computes a unique identifier (uid). getUid: ()-> { 'creator': @creator, 'op_number': @op_number } + # + # Notify the all the listeners. + # execute: ()-> @is_executed = true for l in execution_listener @@ -22,13 +36,14 @@ module.exports = (HB)-> @ # - # Operations may depend on other operations (linked lists, etc.). The saveOperation and validateSavedOperations methods provide + # Operations may depend on other operations (linked lists, etc.). + # The saveOperation and validateSavedOperations methods provide # an easy way to refer to these operations via an uid or object reference. # # For example: We can create a new Delete operation that deletes the operation $o like this # - var d = new Delete(uid, $o); or # - var d = new Delete(uid, $o.getUid()); - # Either way we want to access $o via d.deletes. This is possible after calling validateSavedOperations. + # Either way we want to access $o via d.deletes. In the second case validateSavedOperations must be called first. # # @overload saveOperation(name, op_uid) # @param {String} name The name of the operation. After validating (with validateSavedOperations) the instantiated operation will be accessible via this[name]. @@ -38,9 +53,12 @@ module.exports = (HB)-> # @param {Operation} op An Operation object # saveOperation: (name, op)-> + + # # Every instance of $Operation must have an $execute function. # We use duck-typing to check if op is instantiated since there # could exist multiple classes of $Operation + # if op?.execute? # is instantiated @[name] = op @@ -73,7 +91,7 @@ module.exports = (HB)-> # - # A simple delete-type operation. + # A simple Delete-type operation that deletes an Insert-type operation. # class Delete extends Operation constructor: (uid, deletes)-> @@ -91,6 +109,9 @@ module.exports = (HB)-> 'deletes': @deletes.getUid() } + # + # Apply the deletion. + # execute: ()-> if @validateSavedOperations() @deletes.applyDelete @ @@ -100,9 +121,13 @@ module.exports = (HB)-> false # - # Define how to parse $Delete operations. + # Define how to parse Delete operations. # - parser['Delete'] = ({'uid' : uid, 'deletes': deletes_uid})-> + parser['Delete'] = (o)-> + { + 'uid' : uid + 'deletes': deletes_uid + } = o new Delete uid, deletes_uid # @@ -115,12 +140,15 @@ module.exports = (HB)-> # - The complete-list (abbrev. cl) maintains all operations # class Insert extends Operation + + # # @param {Object} creator A unique user identifier # @param {Integer} op_number This Number was assigned via getNextOperationIdentifier(). # @param {Operation} prev_cl The predecessor of this operation in the complete-list (cl) # @param {Operation} next_cl The successor of this operation in the complete-list (cl) # # @see HistoryBuffer.getNextOperationIdentifier + # constructor: (uid, prev_cl, next_cl, origin)-> @saveOperation 'prev_cl', prev_cl @saveOperation 'next_cl', next_cl diff --git a/lib/Types/JsonTypes.coffee b/lib/Types/JsonTypes.coffee index 59fb4b17..f3301966 100644 --- a/lib/Types/JsonTypes.coffee +++ b/lib/Types/JsonTypes.coffee @@ -5,6 +5,9 @@ module.exports = (HB)-> types = text_types.types parser = text_types.parser + # + # Manages Object-like values. + # class JsonType extends types.MapManager constructor: (uid, initial_value)-> super uid @@ -14,18 +17,32 @@ module.exports = (HB)-> for name,o of initial_value @val name, o + # + # Get this as a Json object. Note that none of the values of the result is of type Operation. + # @overload val() + # @results [Json] + # + # Get value of a property. + # @overload val(name) + # @param {String} name Name of the object property. + # @results [JsonType|WordType] + # + # Set a new property. + # @overload val(name, content) + # @param {String} name Name of the object property. + # @param {Object|String} content Content of the object property. + # val: (name, content)-> if name? and content? if typeof content is 'string' word = HB.addOperation(new types.Word HB.getNextOperationIdentifier(), content).execute() super name, word - content else if typeof content is 'object' json = HB.addOperation(JsonType HB.getNextOperationIdentifier(), content).execute() super name, json - content else throw new Error "You must not set #{typeof content}-types in collaborative Json-objects!" + @ else super name, content diff --git a/lib/Types/StructuredTypes.coffee b/lib/Types/StructuredTypes.coffee index 78a6a48d..eb798e78 100644 --- a/lib/Types/StructuredTypes.coffee +++ b/lib/Types/StructuredTypes.coffee @@ -5,6 +5,9 @@ module.exports = (HB)-> types = basic_types.types parser = basic_types.parser + # + # Manages map like objects. E.g. Json-Type and XML attributes. + # class MapManager extends types.Operation constructor: (uid)-> @map = {} @@ -23,6 +26,12 @@ module.exports = (HB)-> result[name] = o.val() result + # + # When a new property in a map manager is created, then the uids of the inserted Operations + # must be unique (think about concurrent operations). Therefore only an AddName operation is allowed to + # add a property in a MapManager. If two AddName operations on the same MapManager name happen concurrently + # only one will AddName operation will be executed. + # class AddName extends types.Operation constructor: (uid, map_manager, @name)-> @saveOperation 'map_manager', map_manager @@ -61,7 +70,9 @@ module.exports = (HB)-> } = json new AddName uid, map_manager, name - + # + # Manages a list of Insert-type operations. + # class ListManager extends types.Insert constructor: (uid, beginning, end, prev, next, origin)-> if beginning? and end? @@ -110,7 +121,13 @@ module.exports = (HB)-> throw new Error "position parameter exceeded the length of the document!" o - + # + # Adds support for replace. The ReplaceManager manages Replaceable operations. + # Each Replaceable holds a value that is now replaceable. + # + # The Word-type has implemented support for replace + # @see Word + # class ReplaceManager extends ListManager constructor: (initial_content, uid, beginning, end, prev, next, origin)-> super uid, beginning, end, prev, next, origin @@ -157,7 +174,8 @@ module.exports = (HB)-> # - # Extends the basic Insert type. + # The ReplaceManager manages Replaceables. + # @see ReplaceManager # class Replaceable extends types.Insert constructor: (content, parent, uid, prev, next, origin)-> @@ -167,8 +185,6 @@ module.exports = (HB)-> throw new Error "You must define content, prev, and next for Replaceable-types!" super uid, prev, next, origin - # - # val: ()-> @content diff --git a/lib/Types/TextTypes.coffee b/lib/Types/TextTypes.coffee index 1aa6a2c0..c3fc33cd 100644 --- a/lib/Types/TextTypes.coffee +++ b/lib/Types/TextTypes.coffee @@ -13,7 +13,7 @@ module.exports = (HB)-> parser["TextDelete"] = parser["Delete"] # - # Extends the basic Insert type. + # Extends the basic Insert type to an operation that holds a text value # class TextInsert extends types.Insert constructor: (@content, uid, prev, next, origin)-> @@ -67,20 +67,26 @@ module.exports = (HB)-> } = json new TextInsert content, uid, prev, next, origin + # + # Handles a Text-like data structures with support for insertText/deleteText at a word-position. + # class Word extends types.ListManager constructor: (uid, initial_content, beginning, end, prev, next, origin)-> super uid, beginning, end, prev, next, origin if initial_content? @insertText 0, initial_content - - # inserts a + # + # Inserts a string into the word + # insertText: (position, content)-> o = @getOperationByPosition position for c in content op = new TextInsert c, HB.getNextOperationIdentifier(), o.prev_cl, o HB.addOperation(op).execute() - # Creates a set of delete operations + # + # Deletes a part of the word. + # deleteText: (position, length)-> o = @getOperationByPosition position @@ -93,6 +99,13 @@ module.exports = (HB)-> o = o.next_cl d.toJson() + # + # Replace the content of this word with another one. Concurrent replacements are not merged! + # Only one of the replacements will be used. + # + # Can only be used if the ReplaceManager was set! + # @see Word.setReplaceManager + # replaceText: (text)-> if @replace_manager? word = HB.addOperation(new Word HB.getNextOperationIdentifier()).execute() @@ -101,6 +114,9 @@ module.exports = (HB)-> else throw new Error "This type is currently not maintained by a ReplaceManager!" + # + # @returns [Json] A Json object. + # val: ()-> c = for o in @toArray() if o.val? @@ -109,6 +125,10 @@ module.exports = (HB)-> "" c.join('') + # + # In most cases you would embed a Word in a Replaceable, wich is handled by the ReplaceManager in order + # to provide replace functionality. + # setReplaceManager: (op)-> @saveOperation 'replace_manager', op @validateSavedOperations diff --git a/package.json b/package.json index f941321e..bfa59e36 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Yatta", "version": "0.0.1", - "description": "", + "description": "A Collaboration Framework for arbitrary data structures that is NOT based on the Operational Transformation.", "main": "lib/index.js", "scripts": { "test": "grunt test" @@ -14,7 +14,8 @@ "OT", "Complex Data Structures", "XML", - "collaboration" + "collaboration", + "Yata" ], "author": "Kevin Jahns", "license": "LGPL", @@ -23,8 +24,6 @@ }, "homepage": "https://github.com/DadaMonad/Yatta", "dependencies": { - "underscore": "^1.6.0", - "grunt-contrib-connect": "~0.8.0" }, "devDependencies": { "grunt-contrib-coffee": "^0.10.1", @@ -39,6 +38,8 @@ "grunt-coffeelint": "0.0.10", "mocha": "^1.20.1", "browserify": "^4.2.0", - "grunt-codo": "^0.2.0" + "grunt-codo": "^0.2.0", + "underscore": "^1.6.0", + "grunt-contrib-connect": "~0.8.0" } } diff --git a/test/JsonYatta_test.coffee b/test/JsonYatta_test.coffee index 6a6ca682..deb91af9 100644 --- a/test/JsonYatta_test.coffee +++ b/test/JsonYatta_test.coffee @@ -9,7 +9,7 @@ chai.use(sinonChai) Yatta = require "../lib/Frameworks/JsonYatta.coffee" Connector_uninitialized = require "../lib/Connectors/TestConnector.coffee" - +### describe "JsonYatta", -> beforeEach (done)-> @last_user = 10 @@ -17,14 +17,15 @@ describe "JsonYatta", -> @Connector = Connector_uninitialized @users for i in [0..(@last_user+1)] @users.push(new Yatta i, @Connector) + + done() it "can handle many engines, many operations, concurrently (random)", -> number_of_test_cases_multiplier = 1 - repeat_this = 1 * number_of_test_cases_multiplier + repeat_this = 100 * number_of_test_cases_multiplier doSomething_amount = 200 * number_of_test_cases_multiplier number_of_engines = 12 + number_of_test_cases_multiplier - 1 - #maximum_ops_per_engine = 20 * number_of_test_cases_multiplier @time = 0 @ops = 0 @@ -142,3 +143,4 @@ describe "JsonYatta", -> ops = printOpsInExecutionOrder i+1, i console.log "" +### diff --git a/test/TextYatta_test.coffee b/test/TextYatta_test.coffee index 9529374c..57da8f87 100644 --- a/test/TextYatta_test.coffee +++ b/test/TextYatta_test.coffee @@ -9,7 +9,7 @@ chai.use(sinonChai) Yatta = require "../lib/Frameworks/TextYatta.coffee" Connector_uninitialized = require "../lib/Connectors/TestConnector.coffee" - +### describe "TextYatta", -> beforeEach (done)-> @last_user = 10 @@ -149,3 +149,4 @@ describe "TextYatta", -> # expect(users[i].ot.val()).to.equal(users[i+1].ot.val()) +### diff --git a/test/Yatta_test.coffee b/test/Yatta_test.coffee new file mode 100644 index 00000000..b5b16b0c --- /dev/null +++ b/test/Yatta_test.coffee @@ -0,0 +1,132 @@ +chai = require('chai') +expect = chai.expect +should = chai.should() +sinon = require('sinon') +sinonChai = require('sinon-chai') +_ = require "underscore" + +chai.use(sinonChai) + +Yatta = require "../lib/Frameworks/JsonYatta.coffee" +Connector_uninitialized = require "../lib/Connectors/TestConnector.coffee" + +class Test + constructor: ()-> + @number_of_test_cases_multiplier = 1 + @repeat_this = 100 * @number_of_test_cases_multiplier + @doSomething_amount = 200 * @number_of_test_cases_multiplier + @number_of_engines = 12 + @number_of_test_cases_multiplier - 1 + + @time = 0 + @ops = 0 + + @reinitialize() + + reinitialize: ()-> + + @users = [] + @Connector = Connector_uninitialized @users + @users.push(new Yatta 0, @Connector) + @users[0].val('name',"initial") + for i in [1...@number_of_engines] + @users.push(new Yatta i, @Connector) + + getRandomText: ()-> + chars = "abcdefghijklmnopqrstuvwxyz" + length = _.random 0, 10 + nextchar = chars[(_.random 0, (chars.length-1))] + text = "" + _(length).times ()-> text += nextchar + text + + generateInsertOp: (user_num)=> + pos = _.random 0, (@users[user_num].val('name').val().length-1) + @users[user_num].val('name').insertText pos, @getRandomText() + null + + generateReplaceOp: (user_num)=> + @users[user_num].val('name').replaceText @getRandomText() + null + + generateDeleteOp: (user_num)=> + if @users[user_num].val('name').val().length > 0 + pos = _.random 0, (@users[user_num].val('name').val().length-1) # TODO!!!! + length = 1 # _.random 0, ot.val('name').length - pos TODO:!!! + ops1 = @users[user_num].val('name').deleteText pos, length + undefined + + generateRandomOp: (user_num)=> + op_gen = [@generateDeleteOp, @generateInsertOp, @generateReplaceOp] + i = _.random (op_gen.length - 1) + op = op_gen[i](user_num) + + applyRandomOp: (user_num)=> + user = @users[user_num] + user.getConnector().flushOneRandom() + + doSomething: ()-> + user_num = _.random (@number_of_engines-1) + choices = [@applyRandomOp, @generateRandomOp] + choice = _.random (choices.length-1) + choices[choice](user_num) + + flushAll: ()-> + for user,user_number in @users + user.getConnector().flushAll() + + run: ()-> + for times in [1..@repeat_this] + @reinitialize() + time_now = (new Date).getTime() + for i in [1..@doSomething_amount] + @doSomething() + + @flushAll() + + @time += (new Date()).getTime() - time_now + + number_of_created_operations = 0 + for i in [0...(@users.length)] + number_of_created_operations += @users[i].getConnector().getOpsInExecutionOrder().length + @ops += number_of_created_operations*@users.length + + ops_per_msek = Math.floor(@ops/@time) + console.log "#{times}/#{@repeat_this}: Every collaborator (#{@users.length}) applied #{@number_of_created_operations} ops in a different order." + " Over all we consumed #{@ops} operations in #{@time/1000} seconds (#{ops_per_msek} ops/msek)." + + #console.log users[0].val('name').val() + for i in [0...(@users.length-1)] + if ((@users[i].val('name').val() isnt @users[i+1].val('name').val()) )# and (number_of_created_operations <= 6 or true)) or found_error + + printOpsInExecutionOrder = (otnumber, otherotnumber)-> + ops = @users[otnumber].getConnector().getOpsInExecutionOrder() + for s in ops + console.log JSON.stringify s + console.log "" + s = "ops = [" + for o,j in ops + if j isnt 0 + s += ", " + s += "op#{j}" + s += "]" + console.log s + console.log "@users[@last_user].ot.applyOps ops" + console.log "expect(@users[@last_user].ot.val('name')).to.equal(\"#{users[otherotnumber].val('name')}\")" + ops + console.log "" + console.log "Found an OT Puzzle!" + console.log "OT states:" + for u,j in users + console.log "OT#{j}: "+u.val('name') + console.log "\nOT execution order (#{i},#{i+1}):" + printOpsInExecutionOrder i, i+1 + console.log "" + ops = printOpsInExecutionOrder i+1, i + + console.log "" + + +describe "JsonYatta", -> + + it "can handle many engines, many operations, concurrently (random)", -> + yTest = new Test() + yTest.run()