-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexample.js
70 lines (53 loc) · 1.36 KB
/
example.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
var randomName = require('random-name')
var Iterator = require('async-iterator')
var shasum = require('shasum')
var test = require('tape')
var assert = require('assert')
var fs = require('fs')
try {
fs.unlinkSync('/tmp/whatever-test.json.sst')
} catch (_) {}
var l = 200, array = [], names = {}
while(l --) {
var n = randomName(), d = new Date() + '_' + Math.random() + '-' + shasum(n)
names[n] = d
array.push({key: n, value: d })
}
array.sort(function (a, b) {
return a.key < b.key ? -1 : a.key > b.key ? 1 : 0
})
var it = Iterator(function (i, cb) {
cb(null, array[i])
})
var SST = require('./')
SST.createSST('/tmp/whatever-test.json.sst', it, function (err, sst) {
console.log('READY', err, sst)
test('forward', function (t) {
var it = sst.iterator()
t.plan(200)
var i = 0
;(function next () {
it.next(function (err, item) {
if(item == null)
return t.end()
t.deepEqual(item, array[i++])
next()
})
})();
})
test('reverse', function (t) {
var it = sst.iterator({reverse: true})
t.plan(200)
var i = array.length
;(function next () {
it.next(function (err, item) {
if(item == null)
return t.end()
--i
t.deepEqual(item, array[i])
assert.deepEqual(item, array[i])
next()
})
})();
})
})