{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-active-expression-proxies/test/lang-test.js"],"names":["chai","expect","sinon","sinonChai","use","describe","it","o1","foo","bar","baz","o2","only1","both","only2","computeDiff","to","be","an","have","property","not","arr1","arr2","include","empty","s1","Set","s2","instanceof","has","true","m1","Map","m2","get","equal"],"mappings":"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","file":"lang-test.js","sourcesContent":["import 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 'src/client/lang/lang.js';\nimport 'src/client/lang/lang-ext.js';\n\ndescribe('lang', function() {\n\n  describe('computeDiff', function() {\n\n    describe('Object diff', function() {\n\n      it('compare Objects',  () => {\n        const o1 = { foo: 1, bar: 2,         baz: 4 };\n        const o2 = {                 bar: 3, baz: 4 };\n        \n        const [only1, both, only2] = o1.computeDiff(o2);\n        \n        expect(only1).to.be.an('object');\n        expect(only1).to.have.property('foo', 1);\n        expect(only1).to.have.property('bar', 2);\n        expect(only1).to.not.have.property('baz');\n\n        expect(both).to.be.an('object');\n        expect(both).to.not.have.property('foo');\n        expect(both).to.not.have.property('bar');\n        expect(both).to.have.property('baz', 4);\n\n        expect(only2).to.be.an('object');\n        expect(only2).to.not.have.property('foo');\n        expect(only2).to.have.property('bar', 3);\n        expect(only2).to.not.have.property('baz');\n\n      });\n\n    });\n\n    describe('Array diff', function() {\n\n      it('compare Arrays',  () => {\n        const arr1 = [1,2,3];\n        const arr2 = [2,3,4,5];\n        \n        const [only1, both, only2] = arr1.computeDiff(arr2);\n        \n        expect(only1).to.be.an('array')\n        expect(only1).to.have.property('length', 1);\n        expect(only1).to.include(1);\n\n        expect(both).to.be.an('array')\n        expect(both).to.have.property('length', 2);\n        expect(both).to.include(2);\n        expect(both).to.include(3);\n\n        expect(only2).to.be.an('array')\n        expect(only2).to.have.property('length', 2);\n        expect(only2).to.include(4);\n        expect(only2).to.include(5);\n      });\n\n      it('compare with empty Array',  () => {\n        const arr1 = [1,2,3];\n        const arr2 = [];\n        \n        const [only1, both, only2] = arr1.computeDiff(arr2);\n        \n        expect(only1).to.be.an('array')\n        expect(only1).to.have.property('length', 3);\n        expect(only1).to.include(1);\n        expect(only1).to.include(2);\n        expect(only1).to.include(3);\n\n        expect(both).to.be.an('array')\n        expect(both).to.be.empty;\n\n        expect(only2).to.be.an('array')\n        expect(only2).to.be.empty;\n      });\n\n      it('compare with empty Array',  () => {\n        const arr1 = [];\n        const arr2 = [3,4];\n        \n        const [only1, both, only2] = arr1.computeDiff(arr2);\n        \n        expect(only1).to.be.an('array')\n        expect(only1).to.be.empty;\n\n        expect(both).to.be.an('array')\n        expect(both).to.be.empty;\n\n        expect(only2).to.be.an('array')\n        expect(only2).to.include(3);\n        expect(only2).to.include(4);\n      });\n\n    });\n\n    describe('Set diff', function() {\n\n      it('compare Sets',  () => {\n        const s1 = new Set([1,2,3])\n        const s2 = new Set([2,3,4,5])\n        \n        const [only1, both, only2] = s1.computeDiff(s2);\n        \n        expect(only1).to.be.an.instanceof(Set);\n        expect(only1).to.have.property('size', 1);\n        expect(only1.has(1)).to.be.true;\n\n        expect(both).to.be.an.instanceof(Set);\n        expect(both).to.have.property('size', 2);\n        expect(both.has(2)).to.be.true;\n        expect(both.has(3)).to.be.true;\n\n        expect(only2).to.be.an.instanceof(Set);\n        expect(only2).to.have.property('size', 2);\n        expect(only2.has(4)).to.be.true;\n        expect(only2.has(5)).to.be.true;\n\n      });\n\n    });\n\n    describe('Map diff', function() {\n\n      it('compare Maps',  () => {\n        const m1 = new Map([[1,2],[3,4],[5,6]])\n        const m2 = new Map([      [3,4],      [5,7]])\n        \n        const [only1, both, only2] = m1.computeDiff(m2);\n        \n        expect(only1).to.be.an.instanceof(Map);\n        expect(only1).to.have.property('size', 2);\n        expect(only1.get(1)).to.equal(2);\n        expect(only1.get(5)).to.equal(6);\n\n        expect(both).to.be.an.instanceof(Map);\n        expect(both).to.have.property('size', 1);\n        expect(both.get(3)).to.equal(4);\n\n        expect(only2).to.be.an.instanceof(Map);\n        expect(only2).to.have.property('size', 1);\n        expect(only2.get(5)).to.equal(7);\n\n      });\n\n    });\n\n\n  });\n\n});\n"]}