{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-core/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"]}