UNPKG

multi-key-cache

Version:

A JavaScript (JS) cache that can have multiple complex values as keys

1 lines 44.2 kB
{"filter":false,"title":"tests.js","tooltip":"/tests/tests.js","undoManager":{"mark":183,"position":183,"stack":[[{"start":{"row":0,"column":0},"end":{"row":191,"column":3},"action":"insert","lines":["var Similar = require('../src/similar');","","describe(\"MapOrSimilar Class\", () => {"," describe(\"map may or may not exist\", () => {"," var MapOrSimilar = require('../src/map-or-similar'),"," mapOrSimilar = new MapOrSimilar();",""," if (!!Map) {"," it(\"chose Map because it exists\", () => { expect(mapOrSimilar instanceof Map).toEqual(true); });"," }"," else {"," it(\"chose Similar because Map does not exist\", () => { expect(mapOrSimilar instanceof Similar).toEqual(true); });"," }"," });",""," describe(\"force similar\", () => {"," process.env.TEST_MAPORSIMILAR = true;"," var MapOrSimilar = require('../src/similar'),"," mapOrSimilar = new MapOrSimilar();",""," it(\"was forced to similar\", () => { expect(mapOrSimilar instanceof Similar).toEqual(true); });"," });","});","","","describe(\"Similar Class\", () => {",""," // SET"," describe(\"SET\", () => {"," describe(\"simple keys\", () => {"," var similar = new Similar(),"," entry = { key: 'stringkey', val: 'stringval' };",""," similar.set(entry.key, entry.val);",""," it(\"has proper length\", () => { expect(similar.list.length).toEqual(1); });"," it(\"has proper size\", () => { expect(similar.size).toEqual(1); });"," it(\"has proper key\", () => { expect(similar.list[0].key).toEqual(entry.key); });"," it(\"has proper val\", () => { expect(similar.list[0].val).toEqual(entry.val); });"," it(\"has proper lastItem\", () => { expect(similar.lastItem.key).toEqual(entry.key); expect(similar.lastItem.val).toEqual(entry.val); });"," it(\"resolves has() correctly\", () => { expect(similar.has(entry.key)).toEqual(true); expect(similar.has(entry.val)).toEqual(false); });"," it(\"resolves get() correctly\", () => { expect(similar.get(entry.key)).toEqual(entry.val); });",""," });",""," describe(\"complex keys\", () => {"," var similar = new Similar(),"," entry = { key: { prop: ['a', 'b'] }, val: { prop: 'val1' } };",""," similar.set(entry.key, entry.val);",""," it(\"has proper length\", () => { expect(similar.list.length).toEqual(1); });"," it(\"has proper size\", () => { expect(similar.size).toEqual(1); });"," it(\"has proper key\", () => { expect(similar.list[0].key).toEqual(entry.key); });"," it(\"has proper val\", () => { expect(similar.list[0].val).toEqual(entry.val); });"," it(\"has proper lastItem\", () => { expect(similar.lastItem.key).toEqual(entry.key); expect(similar.lastItem.val).toEqual(entry.val); });"," it(\"resolves has() correctly\", () => { expect(similar.has(entry.key)).toEqual(true); expect(similar.has(entry.val)).toEqual(false); });"," it(\"resolves get() correctly\", () => { expect(similar.get(entry.key)).toEqual(entry.val); });",""," if (!!Map) {"," var map = new Map();"," map.set(entry.key, entry.val);"," it(\"matches Map get()\", () => { expect(similar.get(entry.key)).toEqual(map.get(entry.key)); });"," it(\"matches Map has()\", () => { expect(similar.has(entry.key)).toEqual(map.has(entry.key)); });"," }"," });",""," describe(\"undefined keys and values\", () => {"," var similar = new Similar(),"," entry = { key: undefined, val: undefined };",""," similar.set(entry.key, entry.val);",""," it(\"has proper length\", () => { expect(similar.list.length).toEqual(1); });"," it(\"has proper size\", () => { expect(similar.size).toEqual(1); });"," it(\"has proper key\", () => { expect(similar.list[0].key).toEqual(entry.key); });"," it(\"has proper val\", () => { expect(similar.list[0].val).toEqual(entry.val); });"," it(\"has proper lastItem\", () => { expect(similar.lastItem.key).toEqual(entry.key); expect(similar.lastItem.val).toEqual(entry.val); });"," it(\"resolves has() correctly\", () => { expect(similar.has(entry.key)).toEqual(true); expect(similar.has(null)).toEqual(false); });"," it(\"resolves get() correctly\", () => { expect(similar.get(entry.key)).toEqual(entry.val); });",""," if (!!Map) {"," var map = new Map();"," map.set(entry.key, entry.val);"," it(\"matches Map get()\", () => { expect(similar.get(entry.key)).toEqual(map.get(entry.key)); });"," it(\"matches Map has()\", () => { expect(similar.has(entry.key)).toEqual(map.has(entry.key)); });"," }"," });",""," describe(\"same keys (replace)\", () => {"," var similar = new Similar(),"," key = { key: { prop: ['a', 'b'] }},"," val1 = 'val1',"," val2 = 'val2';",""," similar.set(key, val1);"," similar.set(key, val2);"," similar.set(key, val1);"," similar.set(key, val2);",""," it(\"has proper length\", () => { expect(similar.list.length).toEqual(1); });"," it(\"has proper size\", () => { expect(similar.size).toEqual(1); });"," it(\"has proper key\", () => { expect(similar.list[0].key).toEqual(key); });"," it(\"has proper val\", () => { expect(similar.list[0].val).toEqual(val2); });"," it(\"has proper lastItem\", () => { expect(similar.lastItem.key).toEqual(key); expect(similar.lastItem.val).toEqual(val2); });"," it(\"resolves has() correctly\", () => { expect(similar.has(key)).toEqual(true); expect(similar.has(val2)).toEqual(false); });"," it(\"resolves get() correctly\", () => { expect(similar.get(key)).toEqual(val2); });",""," if (!!Map) {"," var map = new Map();",""," map.set(key, val1);"," map.set(key, val2);"," map.set(key, val1);"," map.set(key, val2);",""," it(\"matches Map get()\", () => { expect(similar.get(key)).toEqual(map.get(key)); });"," it(\"matches Map has()\", () => { expect(similar.has(key)).toEqual(map.has(key)); });"," }"," });"," });",""," // DELETE"," describe(\"DELETE\", () => {"," describe(\"simple key\", () => {"," var similar = new Similar(),"," entry = { key: 'stringkey', val: 'stringval' };",""," similar.set(entry.key, entry.val);"," similar.delete(entry.key);",""," it(\"has proper length\", () => { expect(similar.list.length).toEqual(0); });"," it(\"has proper size\", () => { expect(similar.size).toEqual(0); });"," it(\"has proper lastItem\", () => { expect(similar.lastItem).toEqual(undefined); });"," it(\"resolves has() correctly\", () => { expect(similar.has(entry.key)).toEqual(false); expect(similar.has(undefined)).toEqual(false); });"," it(\"resolves get() correctly\", () => { expect(similar.get(entry.key)).toEqual(undefined); });"," });",""," describe(\"complex key\", () => {"," var similar = new Similar(),"," entry1 = { key: ['a','b'], val: { prop: 'propval' } },"," entry2 = { key: ['x','y'], val: { prop: 'propval2' } };",""," similar.set(entry1.key, entry1.val);"," similar.set(entry2.key, entry2.val);"," similar.delete(entry1.key);",""," it(\"has proper length\", () => { expect(similar.list.length).toEqual(1); });"," it(\"has proper size\", () => { expect(similar.size).toEqual(1); });"," it(\"has proper lastItem\", () => { expect(similar.lastItem.key).toEqual(entry2.key); });"," it(\"resolves entry1 has() correctly\", () => { expect(similar.has(entry1.key)).toEqual(false); });"," it(\"resolves entry1 get() correctly\", () => { expect(similar.get(entry1.key)).toEqual(undefined); });"," it(\"resolves entry2 has() correctly\", () => { expect(similar.has(entry2.key)).toEqual(true); });"," it(\"resolves entry2 get() correctly\", () => { expect(similar.get(entry2.key)).toEqual(entry2.val); });",""," if (!!Map) {"," var map = new Map();",""," map.set(entry1.key, entry1.val);"," map.set(entry2.key, entry2.val);"," map.delete(entry1.key);",""," it(\"matches Map entry1 has() correctly\", () => { expect(similar.has(entry1.key)).toEqual(map.has(entry1.key)); });"," it(\"matches Map entry1 get() correctly\", () => { expect(similar.get(entry1.key)).toEqual(map.get(entry1.key)); });"," it(\"matches Map entry2 has() correctly\", () => { expect(similar.has(entry2.key)).toEqual(similar.has(entry2.key)); });"," it(\"matches Map entry2 get() correctly\", () => { expect(similar.get(entry2.key)).toEqual(similar.get(entry2.key)); });"," }"," });",""," describe(\"from empty cache\", () => {"," var similar = new Similar(),"," entry = { key: 'stringkey', val: 'stringval' };",""," similar.delete(entry.key);",""," it(\"has proper length\", () => { expect(similar.list.length).toEqual(0); });"," it(\"has proper size\", () => { expect(similar.size).toEqual(0); });"," it(\"has proper lastItem\", () => { expect(similar.lastItem).toEqual(undefined); });"," it(\"resolves has() correctly\", () => { expect(similar.has(entry.key)).toEqual(false); expect(similar.has(undefined)).toEqual(false); });"," it(\"resolves get() correctly\", () => { expect(similar.get(entry.key)).toEqual(undefined); });",""," if (!!Map) {"," var map = new Map();",""," map.delete(entry.key);",""," it(\"resolves has() correctly\", () => { expect(map.has(entry.key)).toEqual(false); expect(map.has(undefined)).toEqual(false); });"," it(\"resolves get() correctly\", () => { expect(map.get(entry.key)).toEqual(undefined); });"," }"," });"," });","});"],"id":1}],[{"start":{"row":0,"column":4},"end":{"row":0,"column":11},"action":"remove","lines":["Similar"],"id":2},{"start":{"row":0,"column":4},"end":{"row":0,"column":5},"action":"insert","lines":["M"]}],[{"start":{"row":0,"column":5},"end":{"row":0,"column":6},"action":"insert","lines":["u"],"id":3}],[{"start":{"row":0,"column":6},"end":{"row":0,"column":7},"action":"insert","lines":["l"],"id":4}],[{"start":{"row":0,"column":7},"end":{"row":0,"column":8},"action":"insert","lines":["t"],"id":5}],[{"start":{"row":0,"column":8},"end":{"row":0,"column":9},"action":"insert","lines":["i"],"id":6}],[{"start":{"row":0,"column":9},"end":{"row":0,"column":10},"action":"insert","lines":["K"],"id":7}],[{"start":{"row":0,"column":10},"end":{"row":0,"column":11},"action":"insert","lines":["e"],"id":8}],[{"start":{"row":0,"column":11},"end":{"row":0,"column":12},"action":"insert","lines":["y"],"id":9}],[{"start":{"row":0,"column":12},"end":{"row":0,"column":13},"action":"insert","lines":["C"],"id":10}],[{"start":{"row":0,"column":13},"end":{"row":0,"column":14},"action":"insert","lines":["a"],"id":11}],[{"start":{"row":0,"column":14},"end":{"row":0,"column":15},"action":"insert","lines":["c"],"id":12}],[{"start":{"row":0,"column":15},"end":{"row":0,"column":16},"action":"insert","lines":["h"],"id":13}],[{"start":{"row":0,"column":16},"end":{"row":0,"column":17},"action":"insert","lines":["e"],"id":14}],[{"start":{"row":0,"column":36},"end":{"row":0,"column":43},"action":"remove","lines":["similar"],"id":15},{"start":{"row":0,"column":36},"end":{"row":0,"column":37},"action":"insert","lines":["m"]}],[{"start":{"row":0,"column":37},"end":{"row":0,"column":38},"action":"insert","lines":["u"],"id":16}],[{"start":{"row":0,"column":38},"end":{"row":0,"column":39},"action":"insert","lines":["l"],"id":17}],[{"start":{"row":0,"column":39},"end":{"row":0,"column":40},"action":"insert","lines":["t"],"id":18}],[{"start":{"row":0,"column":40},"end":{"row":0,"column":41},"action":"insert","lines":["i"],"id":19}],[{"start":{"row":0,"column":41},"end":{"row":0,"column":42},"action":"insert","lines":["-"],"id":20}],[{"start":{"row":0,"column":42},"end":{"row":0,"column":43},"action":"insert","lines":["k"],"id":21}],[{"start":{"row":0,"column":43},"end":{"row":0,"column":44},"action":"insert","lines":["e"],"id":22}],[{"start":{"row":0,"column":44},"end":{"row":0,"column":45},"action":"insert","lines":["y"],"id":23}],[{"start":{"row":0,"column":45},"end":{"row":0,"column":46},"action":"insert","lines":["-"],"id":24}],[{"start":{"row":0,"column":46},"end":{"row":0,"column":47},"action":"insert","lines":["c"],"id":25}],[{"start":{"row":0,"column":47},"end":{"row":0,"column":48},"action":"insert","lines":["a"],"id":26}],[{"start":{"row":0,"column":48},"end":{"row":0,"column":49},"action":"insert","lines":["c"],"id":27}],[{"start":{"row":0,"column":49},"end":{"row":0,"column":50},"action":"insert","lines":["h"],"id":28}],[{"start":{"row":0,"column":50},"end":{"row":0,"column":51},"action":"insert","lines":["e"],"id":29}],[{"start":{"row":2,"column":0},"end":{"row":3,"column":0},"action":"remove","lines":["describe(\"MapOrSimilar Class\", () => {",""],"id":30}],[{"start":{"row":21,"column":0},"end":{"row":22,"column":0},"action":"remove","lines":["});",""],"id":31}],[{"start":{"row":21,"column":0},"end":{"row":189,"column":3},"action":"remove","lines":["","","describe(\"Similar Class\", () => {",""," // SET"," describe(\"SET\", () => {"," describe(\"simple keys\", () => {"," var similar = new Similar(),"," entry = { key: 'stringkey', val: 'stringval' };",""," similar.set(entry.key, entry.val);",""," it(\"has proper length\", () => { expect(similar.list.length).toEqual(1); });"," it(\"has proper size\", () => { expect(similar.size).toEqual(1); });"," it(\"has proper key\", () => { expect(similar.list[0].key).toEqual(entry.key); });"," it(\"has proper val\", () => { expect(similar.list[0].val).toEqual(entry.val); });"," it(\"has proper lastItem\", () => { expect(similar.lastItem.key).toEqual(entry.key); expect(similar.lastItem.val).toEqual(entry.val); });"," it(\"resolves has() correctly\", () => { expect(similar.has(entry.key)).toEqual(true); expect(similar.has(entry.val)).toEqual(false); });"," it(\"resolves get() correctly\", () => { expect(similar.get(entry.key)).toEqual(entry.val); });",""," });",""," describe(\"complex keys\", () => {"," var similar = new Similar(),"," entry = { key: { prop: ['a', 'b'] }, val: { prop: 'val1' } };",""," similar.set(entry.key, entry.val);",""," it(\"has proper length\", () => { expect(similar.list.length).toEqual(1); });"," it(\"has proper size\", () => { expect(similar.size).toEqual(1); });"," it(\"has proper key\", () => { expect(similar.list[0].key).toEqual(entry.key); });"," it(\"has proper val\", () => { expect(similar.list[0].val).toEqual(entry.val); });"," it(\"has proper lastItem\", () => { expect(similar.lastItem.key).toEqual(entry.key); expect(similar.lastItem.val).toEqual(entry.val); });"," it(\"resolves has() correctly\", () => { expect(similar.has(entry.key)).toEqual(true); expect(similar.has(entry.val)).toEqual(false); });"," it(\"resolves get() correctly\", () => { expect(similar.get(entry.key)).toEqual(entry.val); });",""," if (!!Map) {"," var map = new Map();"," map.set(entry.key, entry.val);"," it(\"matches Map get()\", () => { expect(similar.get(entry.key)).toEqual(map.get(entry.key)); });"," it(\"matches Map has()\", () => { expect(similar.has(entry.key)).toEqual(map.has(entry.key)); });"," }"," });",""," describe(\"undefined keys and values\", () => {"," var similar = new Similar(),"," entry = { key: undefined, val: undefined };",""," similar.set(entry.key, entry.val);",""," it(\"has proper length\", () => { expect(similar.list.length).toEqual(1); });"," it(\"has proper size\", () => { expect(similar.size).toEqual(1); });"," it(\"has proper key\", () => { expect(similar.list[0].key).toEqual(entry.key); });"," it(\"has proper val\", () => { expect(similar.list[0].val).toEqual(entry.val); });"," it(\"has proper lastItem\", () => { expect(similar.lastItem.key).toEqual(entry.key); expect(similar.lastItem.val).toEqual(entry.val); });"," it(\"resolves has() correctly\", () => { expect(similar.has(entry.key)).toEqual(true); expect(similar.has(null)).toEqual(false); });"," it(\"resolves get() correctly\", () => { expect(similar.get(entry.key)).toEqual(entry.val); });",""," if (!!Map) {"," var map = new Map();"," map.set(entry.key, entry.val);"," it(\"matches Map get()\", () => { expect(similar.get(entry.key)).toEqual(map.get(entry.key)); });"," it(\"matches Map has()\", () => { expect(similar.has(entry.key)).toEqual(map.has(entry.key)); });"," }"," });",""," describe(\"same keys (replace)\", () => {"," var similar = new Similar(),"," key = { key: { prop: ['a', 'b'] }},"," val1 = 'val1',"," val2 = 'val2';",""," similar.set(key, val1);"," similar.set(key, val2);"," similar.set(key, val1);"," similar.set(key, val2);",""," it(\"has proper length\", () => { expect(similar.list.length).toEqual(1); });"," it(\"has proper size\", () => { expect(similar.size).toEqual(1); });"," it(\"has proper key\", () => { expect(similar.list[0].key).toEqual(key); });"," it(\"has proper val\", () => { expect(similar.list[0].val).toEqual(val2); });"," it(\"has proper lastItem\", () => { expect(similar.lastItem.key).toEqual(key); expect(similar.lastItem.val).toEqual(val2); });"," it(\"resolves has() correctly\", () => { expect(similar.has(key)).toEqual(true); expect(similar.has(val2)).toEqual(false); });"," it(\"resolves get() correctly\", () => { expect(similar.get(key)).toEqual(val2); });",""," if (!!Map) {"," var map = new Map();",""," map.set(key, val1);"," map.set(key, val2);"," map.set(key, val1);"," map.set(key, val2);",""," it(\"matches Map get()\", () => { expect(similar.get(key)).toEqual(map.get(key)); });"," it(\"matches Map has()\", () => { expect(similar.has(key)).toEqual(map.has(key)); });"," }"," });"," });",""," // DELETE"," describe(\"DELETE\", () => {"," describe(\"simple key\", () => {"," var similar = new Similar(),"," entry = { key: 'stringkey', val: 'stringval' };",""," similar.set(entry.key, entry.val);"," similar.delete(entry.key);",""," it(\"has proper length\", () => { expect(similar.list.length).toEqual(0); });"," it(\"has proper size\", () => { expect(similar.size).toEqual(0); });"," it(\"has proper lastItem\", () => { expect(similar.lastItem).toEqual(undefined); });"," it(\"resolves has() correctly\", () => { expect(similar.has(entry.key)).toEqual(false); expect(similar.has(undefined)).toEqual(false); });"," it(\"resolves get() correctly\", () => { expect(similar.get(entry.key)).toEqual(undefined); });"," });",""," describe(\"complex key\", () => {"," var similar = new Similar(),"," entry1 = { key: ['a','b'], val: { prop: 'propval' } },"," entry2 = { key: ['x','y'], val: { prop: 'propval2' } };",""," similar.set(entry1.key, entry1.val);"," similar.set(entry2.key, entry2.val);"," similar.delete(entry1.key);",""," it(\"has proper length\", () => { expect(similar.list.length).toEqual(1); });"," it(\"has proper size\", () => { expect(similar.size).toEqual(1); });"," it(\"has proper lastItem\", () => { expect(similar.lastItem.key).toEqual(entry2.key); });"," it(\"resolves entry1 has() correctly\", () => { expect(similar.has(entry1.key)).toEqual(false); });"," it(\"resolves entry1 get() correctly\", () => { expect(similar.get(entry1.key)).toEqual(undefined); });"," it(\"resolves entry2 has() correctly\", () => { expect(similar.has(entry2.key)).toEqual(true); });"," it(\"resolves entry2 get() correctly\", () => { expect(similar.get(entry2.key)).toEqual(entry2.val); });",""," if (!!Map) {"," var map = new Map();",""," map.set(entry1.key, entry1.val);"," map.set(entry2.key, entry2.val);"," map.delete(entry1.key);",""," it(\"matches Map entry1 has() correctly\", () => { expect(similar.has(entry1.key)).toEqual(map.has(entry1.key)); });"," it(\"matches Map entry1 get() correctly\", () => { expect(similar.get(entry1.key)).toEqual(map.get(entry1.key)); });"," it(\"matches Map entry2 has() correctly\", () => { expect(similar.has(entry2.key)).toEqual(similar.has(entry2.key)); });"," it(\"matches Map entry2 get() correctly\", () => { expect(similar.get(entry2.key)).toEqual(similar.get(entry2.key)); });"," }"," });",""," describe(\"from empty cache\", () => {"," var similar = new Similar(),"," entry = { key: 'stringkey', val: 'stringval' };",""," similar.delete(entry.key);",""," it(\"has proper length\", () => { expect(similar.list.length).toEqual(0); });"," it(\"has proper size\", () => { expect(similar.size).toEqual(0); });"," it(\"has proper lastItem\", () => { expect(similar.lastItem).toEqual(undefined); });"," it(\"resolves has() correctly\", () => { expect(similar.has(entry.key)).toEqual(false); expect(similar.has(undefined)).toEqual(false); });"," it(\"resolves get() correctly\", () => { expect(similar.get(entry.key)).toEqual(undefined); });",""," if (!!Map) {"," var map = new Map();",""," map.delete(entry.key);",""," it(\"resolves has() correctly\", () => { expect(map.has(entry.key)).toEqual(false); expect(map.has(undefined)).toEqual(false); });"," it(\"resolves get() correctly\", () => { expect(map.get(entry.key)).toEqual(undefined); });"," }"," });"," });","});"],"id":32}],[{"start":{"row":2,"column":0},"end":{"row":2,"column":4},"action":"remove","lines":[" "],"id":33},{"start":{"row":3,"column":0},"end":{"row":3,"column":4},"action":"remove","lines":[" "]},{"start":{"row":4,"column":0},"end":{"row":4,"column":4},"action":"remove","lines":[" "]},{"start":{"row":6,"column":0},"end":{"row":6,"column":4},"action":"remove","lines":[" "]},{"start":{"row":7,"column":0},"end":{"row":7,"column":4},"action":"remove","lines":[" "]},{"start":{"row":8,"column":0},"end":{"row":8,"column":4},"action":"remove","lines":[" "]},{"start":{"row":9,"column":0},"end":{"row":9,"column":4},"action":"remove","lines":[" "]},{"start":{"row":10,"column":0},"end":{"row":10,"column":4},"action":"remove","lines":[" "]},{"start":{"row":11,"column":0},"end":{"row":11,"column":4},"action":"remove","lines":[" "]},{"start":{"row":12,"column":0},"end":{"row":12,"column":4},"action":"remove","lines":[" "]},{"start":{"row":14,"column":0},"end":{"row":14,"column":4},"action":"remove","lines":[" "]},{"start":{"row":15,"column":0},"end":{"row":15,"column":4},"action":"remove","lines":[" "]},{"start":{"row":16,"column":0},"end":{"row":16,"column":4},"action":"remove","lines":[" "]},{"start":{"row":17,"column":0},"end":{"row":17,"column":4},"action":"remove","lines":[" "]},{"start":{"row":19,"column":0},"end":{"row":19,"column":4},"action":"remove","lines":[" "]},{"start":{"row":20,"column":0},"end":{"row":20,"column":4},"action":"remove","lines":[" "]}],[{"start":{"row":14,"column":0},"end":{"row":20,"column":3},"action":"remove","lines":["describe(\"force similar\", () => {"," process.env.TEST_MAPORSIMILAR = true;"," var MapOrSimilar = require('../src/similar'),"," mapOrSimilar = new MapOrSimilar();",""," it(\"was forced to similar\", () => { expect(mapOrSimilar instanceof Similar).toEqual(true); });","});"],"id":34}],[{"start":{"row":13,"column":0},"end":{"row":14,"column":0},"action":"remove","lines":["",""],"id":35}],[{"start":{"row":12,"column":3},"end":{"row":13,"column":0},"action":"remove","lines":["",""],"id":36}],[{"start":{"row":2,"column":10},"end":{"row":2,"column":33},"action":"remove","lines":["map may or may not exis"],"id":37},{"start":{"row":2,"column":10},"end":{"row":2,"column":11},"action":"insert","lines":["D"]}],[{"start":{"row":2,"column":11},"end":{"row":2,"column":12},"action":"insert","lines":["E"],"id":38}],[{"start":{"row":2,"column":12},"end":{"row":2,"column":13},"action":"insert","lines":["L"],"id":39}],[{"start":{"row":2,"column":13},"end":{"row":2,"column":14},"action":"insert","lines":["E"],"id":40}],[{"start":{"row":2,"column":14},"end":{"row":2,"column":15},"action":"insert","lines":["T"],"id":41}],[{"start":{"row":2,"column":15},"end":{"row":2,"column":16},"action":"insert","lines":["E"],"id":42}],[{"start":{"row":2,"column":16},"end":{"row":2,"column":17},"action":"remove","lines":["t"],"id":43}],[{"start":{"row":4,"column":8},"end":{"row":4,"column":20},"action":"remove","lines":["mapOrSimilar"],"id":44},{"start":{"row":4,"column":8},"end":{"row":4,"column":21},"action":"insert","lines":["MultiKeyCache"]}],[{"start":{"row":4,"column":8},"end":{"row":4,"column":9},"action":"remove","lines":["M"],"id":45},{"start":{"row":4,"column":8},"end":{"row":4,"column":9},"action":"insert","lines":["M"]}],[{"start":{"row":4,"column":28},"end":{"row":4,"column":40},"action":"remove","lines":["MapOrSimilar"],"id":46},{"start":{"row":4,"column":28},"end":{"row":4,"column":41},"action":"insert","lines":["MultiKeyCache"]}],[{"start":{"row":3,"column":8},"end":{"row":4,"column":8},"action":"remove","lines":["MapOrSimilar = require('../src/map-or-similar'),"," "],"id":47}],[{"start":{"row":3,"column":8},"end":{"row":3,"column":9},"action":"remove","lines":["M"],"id":48}],[{"start":{"row":3,"column":8},"end":{"row":3,"column":9},"action":"insert","lines":["m"],"id":49}],[{"start":{"row":3,"column":44},"end":{"row":4,"column":0},"action":"remove","lines":["",""],"id":50}],[{"start":{"row":3,"column":44},"end":{"row":4,"column":0},"action":"insert","lines":["",""],"id":51},{"start":{"row":4,"column":0},"end":{"row":4,"column":4},"action":"insert","lines":[" "]}],[{"start":{"row":4,"column":4},"end":{"row":5,"column":0},"action":"insert","lines":["",""],"id":52},{"start":{"row":5,"column":0},"end":{"row":5,"column":4},"action":"insert","lines":[" "]}],[{"start":{"row":5,"column":4},"end":{"row":5,"column":17},"action":"insert","lines":["multiKeyCache"],"id":53}],[{"start":{"row":5,"column":17},"end":{"row":5,"column":18},"action":"insert","lines":["."],"id":54}],[{"start":{"row":5,"column":18},"end":{"row":5,"column":19},"action":"insert","lines":["s"],"id":55}],[{"start":{"row":5,"column":19},"end":{"row":5,"column":20},"action":"insert","lines":["e"],"id":56}],[{"start":{"row":5,"column":20},"end":{"row":5,"column":21},"action":"insert","lines":["t"],"id":57}],[{"start":{"row":5,"column":21},"end":{"row":5,"column":22},"action":"insert","lines":["("],"id":58}],[{"start":{"row":5,"column":22},"end":{"row":5,"column":23},"action":"insert","lines":[")"],"id":59}],[{"start":{"row":5,"column":23},"end":{"row":5,"column":24},"action":"insert","lines":[";"],"id":60}],[{"start":{"row":5,"column":24},"end":{"row":6,"column":0},"action":"insert","lines":["",""],"id":61},{"start":{"row":6,"column":0},"end":{"row":6,"column":4},"action":"insert","lines":[" "]}],[{"start":{"row":5,"column":22},"end":{"row":5,"column":23},"action":"insert","lines":["'"],"id":62}],[{"start":{"row":5,"column":23},"end":{"row":5,"column":24},"action":"insert","lines":["a"],"id":63}],[{"start":{"row":5,"column":24},"end":{"row":5,"column":25},"action":"insert","lines":["'"],"id":64}],[{"start":{"row":5,"column":25},"end":{"row":5,"column":26},"action":"insert","lines":[","],"id":65}],[{"start":{"row":5,"column":26},"end":{"row":5,"column":27},"action":"insert","lines":[" "],"id":66}],[{"start":{"row":5,"column":27},"end":{"row":5,"column":28},"action":"insert","lines":["'"],"id":67}],[{"start":{"row":5,"column":28},"end":{"row":5,"column":29},"action":"insert","lines":["b"],"id":68}],[{"start":{"row":5,"column":29},"end":{"row":5,"column":30},"action":"insert","lines":["'"],"id":69}],[{"start":{"row":5,"column":30},"end":{"row":5,"column":31},"action":"insert","lines":[","],"id":70}],[{"start":{"row":5,"column":31},"end":{"row":5,"column":32},"action":"insert","lines":[" "],"id":71}],[{"start":{"row":5,"column":32},"end":{"row":5,"column":33},"action":"insert","lines":["'"],"id":72}],[{"start":{"row":5,"column":33},"end":{"row":5,"column":34},"action":"insert","lines":["c"],"id":73}],[{"start":{"row":5,"column":34},"end":{"row":5,"column":35},"action":"insert","lines":["'"],"id":74}],[{"start":{"row":5,"column":35},"end":{"row":5,"column":36},"action":"insert","lines":[","],"id":75}],[{"start":{"row":5,"column":36},"end":{"row":5,"column":37},"action":"insert","lines":[" "],"id":76}],[{"start":{"row":5,"column":22},"end":{"row":5,"column":23},"action":"insert","lines":["["],"id":77}],[{"start":{"row":5,"column":36},"end":{"row":5,"column":37},"action":"insert","lines":["]"],"id":78}],[{"start":{"row":5,"column":39},"end":{"row":5,"column":40},"action":"insert","lines":["1"],"id":79}],[{"start":{"row":5,"column":40},"end":{"row":5,"column":41},"action":"insert","lines":["2"],"id":80}],[{"start":{"row":5,"column":41},"end":{"row":5,"column":42},"action":"insert","lines":["3"],"id":81}],[{"start":{"row":5,"column":4},"end":{"row":5,"column":44},"action":"remove","lines":["multiKeyCache.set(['a', 'b', 'c'], 123);"],"id":82},{"start":{"row":5,"column":4},"end":{"row":5,"column":44},"action":"insert","lines":["multiKeyCache.set(['a', 'b', 'c'], 123);"]}],[{"start":{"row":5,"column":44},"end":{"row":6,"column":0},"action":"insert","lines":["",""],"id":83},{"start":{"row":6,"column":0},"end":{"row":6,"column":4},"action":"insert","lines":[" "]}],[{"start":{"row":6,"column":4},"end":{"row":6,"column":44},"action":"insert","lines":["multiKeyCache.set(['a', 'b', 'c'], 123);"],"id":84}],[{"start":{"row":6,"column":41},"end":{"row":6,"column":42},"action":"remove","lines":["3"],"id":85}],[{"start":{"row":6,"column":40},"end":{"row":6,"column":41},"action":"remove","lines":["2"],"id":86}],[{"start":{"row":6,"column":39},"end":{"row":6,"column":40},"action":"remove","lines":["1"],"id":87}],[{"start":{"row":6,"column":39},"end":{"row":6,"column":40},"action":"insert","lines":["3"],"id":88}],[{"start":{"row":6,"column":40},"end":{"row":6,"column":41},"action":"insert","lines":["4"],"id":89}],[{"start":{"row":6,"column":41},"end":{"row":6,"column":42},"action":"insert","lines":["5"],"id":90}],[{"start":{"row":6,"column":4},"end":{"row":6,"column":44},"action":"remove","lines":["multiKeyCache.set(['a', 'b', 'c'], 345);"],"id":91},{"start":{"row":6,"column":4},"end":{"row":6,"column":44},"action":"insert","lines":["multiKeyCache.set(['a', 'b', 'c'], 345);"]}],[{"start":{"row":6,"column":44},"end":{"row":7,"column":0},"action":"insert","lines":["",""],"id":92},{"start":{"row":7,"column":0},"end":{"row":7,"column":4},"action":"insert","lines":[" "]}],[{"start":{"row":7,"column":4},"end":{"row":7,"column":44},"action":"insert","lines":["multiKeyCache.set(['a', 'b', 'c'], 345);"],"id":93}],[{"start":{"row":7,"column":18},"end":{"row":7,"column":21},"action":"remove","lines":["set"],"id":96},{"start":{"row":7,"column":18},"end":{"row":7,"column":19},"action":"insert","lines":["d"]}],[{"start":{"row":7,"column":19},"end":{"row":7,"column":20},"action":"insert","lines":["e"],"id":97}],[{"start":{"row":7,"column":20},"end":{"row":7,"column":21},"action":"insert","lines":["l"],"id":98}],[{"start":{"row":7,"column":21},"end":{"row":7,"column":22},"action":"insert","lines":["e"],"id":99}],[{"start":{"row":7,"column":22},"end":{"row":7,"column":23},"action":"insert","lines":["t"],"id":100}],[{"start":{"row":7,"column":23},"end":{"row":7,"column":24},"action":"insert","lines":["e"],"id":101}],[{"start":{"row":7,"column":42},"end":{"row":7,"column":45},"action":"remove","lines":["345"],"id":102}],[{"start":{"row":7,"column":41},"end":{"row":7,"column":42},"action":"remove","lines":[" "],"id":103}],[{"start":{"row":7,"column":40},"end":{"row":7,"column":41},"action":"remove","lines":[","],"id":104}],[{"start":{"row":13,"column":8},"end":{"row":13,"column":121},"action":"remove","lines":["it(\"chose Similar because Map does not exist\", () => { expect(mapOrSimilar instanceof Similar).toEqual(true); });"],"id":105}],[{"start":{"row":9,"column":0},"end":{"row":14,"column":5},"action":"remove","lines":[" if (!!Map) {"," it(\"chose Map because it exists\", () => { expect(mapOrSimilar instanceof Map).toEqual(true); });"," }"," else {"," "," }"],"id":106},{"start":{"row":9,"column":0},"end":{"row":9,"column":113},"action":"insert","lines":["it(\"chose Similar because Map does not exist\", () => { expect(mapOrSimilar instanceof Similar).toEqual(true); });"]}],[{"start":{"row":9,"column":0},"end":{"row":9,"column":4},"action":"insert","lines":[" "],"id":107}],[{"start":{"row":9,"column":8},"end":{"row":9,"column":48},"action":"remove","lines":["chose Similar because Map does not exist"],"id":108},{"start":{"row":9,"column":8},"end":{"row":9,"column":9},"action":"insert","lines":["n"]}],[{"start":{"row":9,"column":9},"end":{"row":9,"column":10},"action":"insert","lines":["o"],"id":109}],[{"start":{"row":9,"column":10},"end":{"row":9,"column":11},"action":"insert","lines":[" "],"id":110}],[{"start":{"row":9,"column":11},"end":{"row":9,"column":12},"action":"insert","lines":["k"],"id":111}],[{"start":{"row":9,"column":12},"end":{"row":9,"column":13},"action":"insert","lines":["e"],"id":112}],[{"start":{"row":9,"column":13},"end":{"row":9,"column":14},"action":"insert","lines":["y"],"id":113}],[{"start":{"row":9,"column":14},"end":{"row":9,"column":15},"action":"insert","lines":["s"],"id":114}],[{"start":{"row":9,"column":15},"end":{"row":9,"column":16},"action":"insert","lines":[" "],"id":115}],[{"start":{"row":9,"column":16},"end":{"row":9,"column":17},"action":"insert","lines":["s"],"id":116}],[{"start":{"row":9,"column":17},"end":{"row":9,"column":18},"action":"insert","lines":["h"],"id":117}],[{"start":{"row":9,"column":18},"end":{"row":9,"column":19},"action":"insert","lines":["o"],"id":118}],[{"start":{"row":9,"column":19},"end":{"row":9,"column":20},"action":"insert","lines":["u"],"id":119}],[{"start":{"row":9,"column":20},"end":{"row":9,"column":21},"action":"insert","lines":["l"],"id":120}],[{"start":{"row":9,"column":21},"end":{"row":9,"column":22},"action":"insert","lines":["d"],"id":121}],[{"start":{"row":9,"column":8},"end":{"row":9,"column":22},"action":"remove","lines":["no keys should"],"id":122},{"start":{"row":9,"column":8},"end":{"row":9,"column":9},"action":"insert","lines":["s"]}],[{"start":{"row":9,"column":9},"end":{"row":9,"column":10},"action":"insert","lines":["h"],"id":123}],[{"start":{"row":9,"column":10},"end":{"row":9,"column":11},"action":"insert","lines":["o"],"id":124}],[{"start":{"row":9,"column":11},"end":{"row":9,"column":12},"action":"insert","lines":["u"],"id":125}],[{"start":{"row":9,"column":12},"end":{"row":9,"column":13},"action":"insert","lines":["l"],"id":126}],[{"start":{"row":9,"column":13},"end":{"row":9,"column":14},"action":"insert","lines":["d"],"id":127}],[{"start":{"row":9,"column":14},"end":{"row":9,"column":15},"action":"insert","lines":[" "],"id":128}],[{"start":{"row":9,"column":15},"end":{"row":9,"column":16},"action":"insert","lines":["n"],"id":129}],[{"start":{"row":9,"column":16},"end":{"row":9,"column":17},"action":"insert","lines":["o"],"id":130}],[{"start":{"row":9,"column":17},"end":{"row":9,"column":18},"action":"insert","lines":[" "],"id":131}],[{"start":{"row":9,"column":18},"end":{"row":9,"column":19},"action":"insert","lines":["l"],"id":132}],[{"start":{"row":9,"column":19},"end":{"row":9,"column":20},"action":"insert","lines":["o"],"id":133}],[{"start":{"row":9,"column":20},"end":{"row":9,"column":21},"action":"insert","lines":["n"],"id":134}],[{"start":{"row":9,"column":21},"end":{"row":9,"column":22},"action":"insert","lines":["g"],"id":135}],[{"start":{"row":9,"column":22},"end":{"row":9,"column":23},"action":"insert","lines":["e"],"id":136}],[{"start":{"row":9,"column":23},"end":{"row":9,"column":24},"action":"insert","lines":["r"],"id":137}],[{"start":{"row":9,"column":24},"end":{"row":9,"column":25},"action":"insert","lines":[" "],"id":138}],[{"start":{"row":9,"column":25},"end":{"row":9,"column":26},"action":"insert","lines":["h"],"id":139}],[{"start":{"row":9,"column":26},"end":{"row":9,"column":27},"action":"insert","lines":["a"],"id":140}],[{"start":{"row":9,"column":27},"end":{"row":9,"column":28},"action":"insert","lines":["v"],"id":141}],[{"start":{"row":9,"column":28},"end":{"row":9,"column":29},"action":"insert","lines":["e"],"id":142}],[{"start":{"row":9,"column":29},"end":{"row":9,"column":30},"action":"insert","lines":[" "],"id":143}],[{"start":{"row":9,"column":30},"end":{"row":9,"column":31},"action":"insert","lines":["k"],"id":144}],[{"start":{"row":9,"column":31},"end":{"row":9,"column":32},"action":"insert","lines":["e"],"id":145}],[{"start":{"row":9,"column":32},"end":{"row":9,"column":33},"action":"insert","lines":["y"],"id":146}],[{"start":{"row":9,"column":33},"end":{"row":9,"column":34},"action":"insert","lines":["s"],"id":147}],[{"start":{"row":9,"column":52},"end":{"row":9,"column":83},"action":"remove","lines":["mapOrSimilar instanceof Similar"],"id":148},{"start":{"row":9,"column":52},"end":{"row":9,"column":65},"action":"insert","lines":["multiKeyCache"]}],[{"start":{"row":9,"column":65},"end":{"row":9,"column":66},"action":"insert","lines":["."],"id":149}],[{"start":{"row":9,"column":66},"end":{"row":9,"column":67},"action":"insert","lines":["k"],"id":150}],[{"start":{"row":9,"column":67},"end":{"row":9,"column":68},"action":"insert","lines":["e"],"id":151}],[{"start":{"row":9,"column":68},"end":{"row":9,"column":69},"action":"insert","lines":["y"],"id":152}],[{"start":{"row":9,"column":69},"end":{"row":9,"column":70},"action":"insert","lines":["s"],"id":153}],[{"start":{"row":9,"column":70},"end":{"row":9,"column":71},"action":"insert","lines":["("],"id":154}],[{"start":{"row":9,"column":71},"end":{"row":9,"column":72},"action":"insert","lines":[")"],"id":155}],[{"start":{"row":9,"column":72},"end":{"row":9,"column":73},"action":"insert","lines":["."],"id":156}],[{"start":{"row":9,"column":73},"end":{"row":9,"column":74},"action":"insert","lines":["l"],"id":157}],[{"start":{"row":9,"column":74},"end":{"row":9,"column":75},"action":"insert","lines":["e"],"id":158}],[{"start":{"row":9,"column":75},"end":{"row":9,"column":76},"action":"insert","lines":["n"],"id":159}],[{"start":{"row":9,"column":76},"end":{"row":9,"column":77},"action":"insert","lines":["g"],"id":160}],[{"start":{"row":9,"column":77},"end":{"row":9,"column":78},"action":"insert","lines":["t"],"id":161}],[{"start":{"row":9,"column":78},"end":{"row":9,"column":79},"action":"insert","lines":["h"],"id":162}],[{"start":{"row":9,"column":89},"end":{"row":9,"column":93},"action":"remove","lines":["true"],"id":163},{"start":{"row":9,"column":89},"end":{"row":9,"column":90},"action":"insert","lines":["0"]}],[{"start":{"row":8,"column":0},"end":{"row":8,"column":1},"action":"insert","lines":["c"],"id":164}],[{"start":{"row":8,"column":1},"end":{"row":8,"column":2},"action":"insert","lines":["o"],"id":165}],[{"start":{"row":8,"column":2},"end":{"row":8,"column":3},"action":"insert","lines":["n"],"id":166}],[{"start":{"row":8,"column":3},"end":{"row":8,"column":4},"action":"insert","lines":["s"],"id":167}],[{"start":{"row":8,"column":4},"end":{"row":8,"column":5},"action":"insert","lines":["o"],"id":168}],[{"start":{"row":8,"column":5},"end":{"row":8,"column":6},"action":"insert","lines":["l"],"id":169}],[{"start":{"row":8,"column":6},"end":{"row":8,"column":7},"action":"insert","lines":["e"],"id":170}],[{"start":{"row":8,"column":7},"end":{"row":8,"column":8},"action":"insert","lines":["."],"id":171}],[{"start":{"row":8,"column":8},"end":{"row":8,"column":9},"action":"insert","lines":["l"],"id":172}],[{"start":{"row":8,"column":9},"end":{"row":8,"column":10},"action":"insert","lines":["o"],"id":173}],[{"start":{"row":8,"column":10},"end":{"row":8,"column":11},"action":"insert","lines":["g"],"id":174}],[{"start":{"row":8,"column":11},"end":{"row":8,"column":12},"action":"insert","lines":["("],"id":175}],[{"start":{"row":8,"column":12},"end":{"row":8,"column":13},"action":"insert","lines":[")"],"id":176}],[{"start":{"row":8,"column":13},"end":{"row":8,"column":14},"action":"insert","lines":[";"],"id":177}],[{"start":{"row":8,"column":12},"end":{"row":8,"column":32},"action":"insert","lines":["multiKeyCache.keys()"],"id":178}],[{"start":{"row":4,"column":0},"end":{"row":4,"column":4},"action":"remove","lines":[" "],"id":179},{"start":{"row":8,"column":34},"end":{"row":8,"column":38},"action":"remove","lines":[" "]}],[{"start":{"row":8,"column":12},"end":{"row":8,"column":13},"action":"insert","lines":["'"],"id":180}],[{"start":{"row":8,"column":13},"end":{"row":8,"column":14},"action":"insert","lines":["!"],"id":181}],[{"start":{"row":8,"column":14},"end":{"row":8,"column":15},"action":"insert","lines":["!"],"id":182}],[{"start":{"row":8,"column":15},"end":{"row":8,"column":16},"action":"insert","lines":["'"],"id":183}],[{"start":{"row":8,"column":16},"end":{"row":8,"column":17},"action":"insert","lines":[","],"id":184}],[{"start":{"row":8,"column":17},"end":{"row":8,"column":18},"action":"insert","lines":[" "],"id":185}],[{"start":{"row":8,"column":0},"end":{"row":8,"column":40},"action":"remove","lines":["console.log('!!', multiKeyCache.keys());"],"id":186}],[{"start":{"row":6,"column":18},"end":{"row":6,"column":24},"action":"insert","lines":["cache."],"id":193}],[{"start":{"row":5,"column":23},"end":{"row":5,"column":24},"action":"insert","lines":["."],"id":192}],[{"start":{"row":5,"column":22},"end":{"row":5,"column":23},"action":"insert","lines":["e"],"id":191}],[{"start":{"row":5,"column":21},"end":{"row":5,"column":22},"action":"insert","lines":["h"],"id":190}],[{"start":{"row":5,"column":20},"end":{"row":5,"column":21},"action":"insert","lines":["c"],"id":189}],[{"start":{"row":5,"column":19},"end":{"row":5,"column":20},"action":"insert","lines":["a"],"id":188}],[{"start":{"row":5,"column":18},"end":{"row":5,"column":19},"action":"insert","lines":["c"],"id":187}]]},"ace":{"folds":[],"scrolltop":0,"scrollleft":0,"selection":{"start":{"row":8,"column":0},"end":{"row":8,"column":0},"isBackwards":false},"options":{"guessTabSize":true,"useWrapMode":false,"wrapToView":true},"firstLineState":0},"timestamp":1454543503118,"hash":"b0aa7bf24c0145f3209e177798eaf7106e703197"}