Name: js-handler/node_modules/restify/node_modules/lru-cache/test/foreach.js
| 1: | var test = require('tap').test |
| 2: | var LRU = require('../') |
| 3: | |
| 4: | test('forEach', function (t) { |
| 5: | var l = new LRU(5) |
| 6: | for (var i = 0; i < 10; i ++) { |
| 7: | l.set(i.toString(), i.toString(2)) |
| 8: | } |
| 9: | |
| 10: | var i = 9 |
| 11: | l.forEach(function (val, key, cache) { |
| 12: | t.equal(cache, l) |
| 13: | t.equal(key, i.toString()) |
| 14: | t.equal(val, i.toString(2)) |
| 15: | i -= 1 |
| 16: | }) |
| 17: | |
| 18: | // get in order of most recently used |
| 19: | l.get(6) |
| 20: | l.get(8) |
| 21: | |
| 22: | var order = [ 8, 6, 9, 7, 5 ] |
| 23: | var i = 0 |
| 24: | |
| 25: | l.forEach(function (val, key, cache) { |
| 26: | var j = order[i ++] |
| 27: | t.equal(cache, l) |
| 28: | t.equal(key, j.toString()) |
| 29: | t.equal(val, j.toString(2)) |
| 30: | }) |
| 31: | |
| 32: | t.end() |
| 33: | }) |
| 34: | |
| 35: | test('keys() and values()', function (t) { |
| 36: | var l = new LRU(5) |
| 37: | for (var i = 0; i < 10; i ++) { |
| 38: | l.set(i.toString(), i.toString(2)) |
| 39: | } |
| 40: | |
| 41: | t.similar(l.keys(), ['9', '8', '7', '6', '5']) |
| 42: | t.similar(l.values(), ['1001', '1000', '111', '110', '101']) |
| 43: | |
| 44: | // get in order of most recently used |
| 45: | l.get(6) |
| 46: | l.get(8) |
| 47: | |
| 48: | t.similar(l.keys(), ['8', '6', '9', '7', '5']) |
| 49: | t.similar(l.values(), ['1000', '110', '1001', '111', '101']) |
| 50: | |
| 51: | t.end() |
| 52: | }) |
