£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyʦ•ꎅȮFÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~芩ÊǍí`ÔÑ©ú뙵'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶êםӼ㞪éUWŸÈË%DÒÕ¬ï‘]/Åcx ‰ï2ß]ä6G[]S£Ôϯrs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ ¯¹ægƒÛowЍø^d™ý½ßB7áyMä9ÜÖUã !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 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() }) })