{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-markus/src/client/reactive/test/active-groups/complex.spec.js"],"names":["chai","expect","sinon","sinonChai","select","AddExpr","NegExpr","NumExpr","use","seventeen","adExpr","threshold","selection","expr","result","now","manualSelectionSize","enter","item","mappedSelection","map","addExpr","numExpr","log","five","eleven","expr2","newFive","destroy"],"mappings":"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","file":"complex.spec.js","sourcesContent":["\"enable aexpr\";\nimport chai, {expect} from 'src/external/chai.js';\nimport sinon from 'src/external/sinon-3.2.1.js';\nimport sinonChai from 'src/external/sinon-chai.js';\nchai.use(sinonChai);\n\nimport select from 'active-group';\nimport { AddExpr, NegExpr, NumExpr } from './expr.js';\n\ndescribe('complex example', function() {\n    it('runs an empty program', function() {\n\n      var seventeen = new NumExpr(17);\n        var adExpr = new AddExpr(\n            new NegExpr(\n                seventeen\n            ),\n            new NumExpr(42)\n        );\n\n        var threshold = 10;\n        var selection = select(AddExpr)\n          .filter(expr => expr.result() > threshold);\n        expect(selection.now()).to.have.length(1);\n\n      var manualSelectionSize = 0;\n        selection\n            .enter(item => manualSelectionSize++)\n            .exit(item => manualSelectionSize--);\n\n        expect(manualSelectionSize).to.equal(1);\n\n        var mappedSelection = selection.map(function(addExpr) {\n            return new NumExpr(addExpr.result());\n        })\n            .enter(function(numExpr) {\n                console.log('new NumExpr through mapping', numExpr);\n            });\n\n        expect(mappedSelection.now()).to.have.lengthOf(1);\n        mappedSelection.now().forEach(function(numExpr) {\n            expect(numExpr.result()).to.equal(25);\n        });\n\n        var five = new NumExpr(5);\n        var expr = new AddExpr(\n            five,\n            adExpr\n        );\n        expect(expr.result()).to.equal(30);\n        expect(selection.now()).to.have.lengthOf(2);\n        expect(manualSelectionSize).to.equal(2);\n\n        expect(mappedSelection.now()).to.have.lengthOf(2);\n        mappedSelection.now().forEach(function(numExpr) {\n            expect(\n                numExpr.result() === 25 ||\n                numExpr.result() === 30\n            ).to.be.true;\n        });\n        five.val = -30;\n        expect(expr.result()).to.equal(-5);\n        expect(selection.now()).to.not.include(expr);\n        expect(selection.now()).to.have.lengthOf(1);\n        expect(manualSelectionSize).to.equal(1);\n\n        expect(mappedSelection.now()).to.have.lengthOf(1);\n        mappedSelection.now().forEach(function(numExpr) {\n            expect(numExpr.result()).to.equal(25);\n        });\n\n        seventeen.val = 70;\n        expect(expr.result()).to.equal(-58);\n        expect(selection.now()).to.have.lengthOf(0);\n        expect(manualSelectionSize).to.equal(0);\n\n        expect(mappedSelection.now()).to.have.lengthOf(0);\n\n        var eleven = new NegExpr(\n          new NegExpr(\n            new NumExpr(11)\n          )\n        );\n        var expr2 = new AddExpr(\n            eleven,\n            new NumExpr(0)\n        );\n        expect(expr2.result()).to.equal(11);\n        expect(selection.now()).to.have.lengthOf(1);\n        expect(manualSelectionSize).to.equal(1);\n\n        expect(mappedSelection.now()).to.have.lengthOf(1);\n        mappedSelection.now().forEach(function(numExpr) {\n            expect(numExpr.result()).to.equal(11);\n        });\n\n        var newFive = new NumExpr(5);\n        eleven.expr = newFive;\n        expect(expr2.result()).to.equal(-5);\n        expect(selection.now()).to.have.lengthOf(0);\n        expect(manualSelectionSize).to.equal(0);\n\n        expect(mappedSelection.now()).to.have.lengthOf(0);\n\n        newFive.val = -11;\n        expect(expr2.result()).to.equal(11);\n        expect(selection.now()).to.have.lengthOf(1);\n        expect(manualSelectionSize).to.equal(1);\n\n        expect(mappedSelection.now()).to.have.lengthOf(1);\n        mappedSelection.now().forEach(function(numExpr) {\n            expect(numExpr.result()).to.equal(11);\n        });\n\n        expr2.destroy();\n        expr2.destroy();\n        expect(selection.now()).to.have.lengthOf(0);\n        expect(manualSelectionSize).to.equal(0);\n\n        expect(mappedSelection.now()).to.have.lengthOf(0);\n    });\n});\n"]}