replace.asynct.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. var es = require('../')
  2. , it = require('it-is').style('colour')
  3. , d = require('ubelt')
  4. , spec = require('stream-spec')
  5. var next = process.nextTick
  6. var fizzbuzz = '12F4BF78FB11F1314FB1617F19BF2223FB26F2829FB3132F34BF3738FB41F4344FB4647F49BF5253FB56F5859FB6162F64BF6768FB71F7374FB7677F79BF8283FB86F8889FB9192F94BF9798FB'
  7. , fizz7buzz = '12F4BFseven8FB11F1314FB161sevenF19BF2223FB26F2829FB3132F34BF3seven38FB41F4344FB464sevenF49BF5253FB56F5859FB6162F64BF6seven68FBseven1Fseven3seven4FBseven6sevensevenFseven9BF8283FB86F8889FB9192F94BF9seven98FB'
  8. exports ['fizz buzz'] = function (test) {
  9. var readThis = d.map(1, 100, function (i) {
  10. return (
  11. ! (i % 3 || i % 5) ? "FB" :
  12. !(i % 3) ? "F" :
  13. !(i % 5) ? "B" :
  14. ''+i
  15. )
  16. }) //array of multiples of 3 < 100
  17. var reader = es.readArray(readThis)
  18. var join = es.wait(function (err, string){
  19. it(string).equal(fizzbuzz)
  20. test.done()
  21. })
  22. reader.pipe(join)
  23. }
  24. exports ['fizz buzz replace'] = function (test) {
  25. var split = es.split(/(1)/)
  26. var replace = es.replace('7', 'seven')
  27. // var x = spec(replace).through()
  28. split
  29. .pipe(replace)
  30. .pipe(es.join(function (err, string) {
  31. it(string).equal(fizz7buzz)
  32. }))
  33. replace.on('close', function () {
  34. // x.validate()
  35. test.done()
  36. })
  37. split.write(fizzbuzz)
  38. split.end()
  39. }
  40. require('./helper')(module)