{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-bp2019/src/client/reactive/test/active-groups/union.spec.js"],"names":["chai","expect","sinon","sinonChai","select","getValueClass","use","ValueHolder","timeout","range1","min","max","range2","view1","data","view2","v1","v2","v3","union","now","v4"],"mappings":"AAAA;;;;;;;;;;;;;;;;;AAEOA,gB;AAAOC,kB,sBAAAA,M;;AACPC,iB;;AACAC,qB;;AAGAC,kB;;AACEC,yB,mBAAAA,a;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAHT,+FAAKC,GAAL,wFAASH,SAAT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,gBAAII,cAAc,+GAAlB;;;;;;;;;;;;;;;;;AAEA,0FAAS,iBAAT,EAA4B,YAAW;AACnC,kFAAG,qBAAH,EAA0B,YAAW;AAAA;AAAA;;AACjC,yBAAKC,OAAL,CAAa,KAAb;;AAEA,wBAAIC,SAAS;AACTC,6BAAK,CADI;AAETC,6BAAK;AAFI,qBAAb;AAIA,wBAAIC,SAAS;AACTF,6BAAK,EADI;AAETC,6BAAK;AAFI,qBAAb;AAIA,wBAAIE,0BAAQ,oLAAON,WAAP,EAAR,aAAmC,UAASO,IAAT,EAAe;AAAA;;AAClD,+BAAO,0MAAcA,IAAd,eAA4B,0MAAcL,MAAd,SAAnC;AACH,qBAFG,EAAJ;AAGA,wBAAIM,0BAAQ,oLAAOR,WAAP,EAAR,aAAmC,UAASO,IAAT,EAAe;AAAA;;AAClD,+BAAO,0MAAcA,IAAd,eAA4B,0MAAcF,MAAd,SAAnC;AACH,qBAFG,EAAJ;AAGA,wBAAII,KAAK,+FAAIT,WAAJ,EAAgB,EAAhB,CAAT;AACA,wBAAIU,KAAK,+FAAIV,WAAJ,EAAgB,EAAhB,CAAT;AACA,wBAAIW,KAAK,+FAAIX,WAAJ,EAAgB,EAAhB,CAAT;AACA,wBAAIY,kFAAQ,uFAAMA,KAAN,iFAAYJ,KAAZ,EAAR,CAAJ;AACA,6NAAO,uFAAMK,GAAN,EAAP,iCAAqC,CAArC;AACA,kNAAO,uFAAMA,GAAN,EAAP,iGAA+BJ,EAA/B;AACA,kNAAO,uFAAMI,GAAN,EAAP,iGAA+BH,EAA/B;AACA,kNAAO,uFAAMG,GAAN,EAAP,iGAA+BF,EAA/B;;AAEA;AACA,uHAAW,CAAC,CAAZ;AACA,6NAAO,uFAAME,GAAN,EAAP,iCAAqC,CAArC;AACA,kNAAO,uFAAMA,GAAN,EAAP,iGAA+BH,EAA/B;AACA,kNAAO,uFAAMG,GAAN,EAAP,iGAA+BF,EAA/B;;AAEA;AACA,uHAAW,CAAC,CAAZ;AACA,6NAAO,uFAAME,GAAN,EAAP,iCAAqC,CAArC;AACA,kNAAO,uFAAMA,GAAN,EAAP,iGAA+BF,EAA/B;;AAEA;AACA,uHAAW,EAAX;AACA,6NAAO,uFAAME,GAAN,EAAP,iCAAqC,CAArC;AACA,kNAAO,uFAAMA,GAAN,EAAP,iGAA+BJ,EAA/B;AACA,kNAAO,uFAAMI,GAAN,EAAP,iGAA+BF,EAA/B;;AAEA;AACA,wBAAIG,KAAK,+FAAId,WAAJ,EAAgB,EAAhB,CAAT;AACA,6NAAO,uFAAMa,GAAN,EAAP,iCAAqC,CAArC;AACA,kNAAO,uFAAMA,GAAN,EAAP,iGAA+BJ,EAA/B;AACA,kNAAO,uFAAMI,GAAN,EAAP,iGAA+BF,EAA/B;AACA,kNAAO,uFAAME,GAAN,EAAP,iGAA+BC,EAA/B;;AAEA;AACA,iIAAa,EAAb;AACA,iIAAa,EAAb;;AAEA,6NAAO,uFAAMD,GAAN,EAAP,iCAAqC,CAArC;AACA,kNAAO,uFAAMA,GAAN,EAAP,iGAA+BJ,EAA/B;AACH,iBAxDD;AAyDH,aA1DD","file":"union.spec.js","sourcesContent":["\"enable aexpr\";\n\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 { getValueClass } from './class-factory.js';\nvar ValueHolder = getValueClass();\n\ndescribe('.union operator', function() {\n    it('ValueHolder example', function() {\n        this.timeout(10000);\n\n        var range1 = {\n            min: 0,\n            max: 25\n        };\n        var range2 = {\n            min: 15,\n            max: 50\n        };\n        var view1 = select(ValueHolder).filter(function(data) {\n            return range1.min <= data.value && data.value <= range1.max;\n        });\n        var view2 = select(ValueHolder).filter(function(data) {\n            return range2.min <= data.value && data.value <= range2.max;\n        });\n        var v1 = new ValueHolder(10);\n        var v2 = new ValueHolder(20);\n        var v3 = new ValueHolder(30);\n        var union = view1.union(view2);\n        expect(union.now()).to.have.lengthOf(3);\n        expect(union.now()).to.include(v1);\n        expect(union.now()).to.include(v2);\n        expect(union.now()).to.include(v3);\n\n        // remove a value that is contained in only one upstream\n        v1.value = -1;\n        expect(union.now()).to.have.lengthOf(2);\n        expect(union.now()).to.include(v2);\n        expect(union.now()).to.include(v3);\n\n        // remove a value from both upstreams\n        v2.value = -1;\n        expect(union.now()).to.have.lengthOf(1);\n        expect(union.now()).to.include(v3);\n\n        // add a value to one upstream\n        v1.value = 10;\n        expect(union.now()).to.have.lengthOf(2);\n        expect(union.now()).to.include(v1);\n        expect(union.now()).to.include(v3);\n\n        // add a value to both upstreams\n        var v4 = new ValueHolder(20);\n        expect(union.now()).to.have.lengthOf(3);\n        expect(union.now()).to.include(v1);\n        expect(union.now()).to.include(v3);\n        expect(union.now()).to.include(v4);\n\n        // remove multiple values at once\n        range1.max = 15;\n        range2.min = 35;\n\n        expect(union.now()).to.have.lengthOf(1);\n        expect(union.now()).to.include(v1);\n    });\n});\n"]}