Server : nginx/1.20.1 System : Linux ccpf-production-2021 5.4.0-148-generic #165-Ubuntu SMP Tue Apr 18 08:53:12 UTC 2023 x86_64 User : forge ( 1000) PHP Version : 7.4.21 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/lib/node_modules/npm/node_modules/stream-iterate/ |
var tape = require('tape')
var from = require('from2')
var iterate = require('./')
tape('merge sort', function (t) {
var a = from.obj(['a', 'b', 'd', 'e', 'g', 'h'])
var b = from.obj(['b', 'c', 'f'])
var output = []
var readA = iterate(a)
var readB = iterate(b)
var loop = function () {
readA(function (err, dataA, nextA) {
if (err) throw err
readB(function (err, dataB, nextB) {
if (err) throw err
if (!dataA && !dataB) {
t.same(output, ['a', 'b', 'b', 'c', 'd', 'e', 'f', 'g', 'h'], 'sorts list')
t.end()
return
}
if (!dataB || dataA < dataB) {
output.push(dataA)
nextA()
return loop()
}
if (!dataA || dataA > dataB) {
output.push(dataB)
nextB()
return loop()
}
output.push(dataA)
output.push(dataB)
nextA()
nextB()
loop()
})
})
}
loop()
})
tape('error handling', function (t) {
var a = from.obj(['a', 'b', 'd', 'e', 'g', 'h'])
var read = iterate(a)
a.destroy(new Error('oh no'))
read(function (err) {
t.ok(err, 'had error')
t.same(err.message, 'oh no')
t.end()
})
})