VimUnDoh\)&q'DPu[1-T&E assert.equal(m3(3), 'three')7777NJO_ NJN 5)var functional = require("../functional")5_ !NJN 5#var maps = require("../functional")5_ NJN 5var maps = require("../maps")5_NJN$Gexports['test curry defined numeber of arguments'] = function(assert) {- var sum = functional.curry(function(a, b) { return a + b }). assert.equal(sum(2, 2), 4, 'sum(2, 2) => 4'). assert.equal(sum(2)(4), 6, 'sum(2)(4) => 6')};Fexports['test curry unknown number of arguments'] = function(assert) {. var sum = functional.curry(function(a, b) {I return Array.prototype.reduce.call(arguments, function(sum, number) { return sum + number }, 0) }, Infinity)2 assert.equal(sum(2, 2)(), 4, 'sum(2, 2)() => 4')F assert.equal(sum(2, 4, 5)(-3)(1)(), 9, 'sum(2, 4, 5)(-3)(1)() => 9')};8exports['test continuous currying'] = function(assert) {- var sum = functional.curry(function(a, b) { return a + b }) var plus44 = sum(44)+ assert.equal(plus44(4), 48, 'curried 44')4 assert.equal(plus44(12), 56, 'continues to curry')A assert.equal(sum(2)()(20), 22, 'curried function is stateless')}if (module == require.main) require("test").run(exports)});5_NJN5_ NJN   5_ NJN  var m1 = maps.map()5_  NJN  var m1 = maps.map(1, '')5_ NJN  var m1 = maps.map(1, 'one')5_ NJN ! var m1 = maps.map(1, 'one', '')5_ "NJN $ var m1 = maps.map(1, 'one', 2, '')5_ $NJN   5_  NJN  var m2 = maps.map()5_ NJN  var m2 = maps.map(2, '')5_NJN  var m2 = maps.map(2, 'two')5_NJN  var m2 = maps.map(2, 'two', )5_NJN  var m2 = maps.map(3, 'two', )5_NJN ! var m2 = maps.map(3, 'three', )5_NJN  var m2 = maps.map(3, 'three' )5_NJN 5_NJN var m3 = maps.merge()5_NJN8 var greet = function(name){ return "hi: " + name; }5_NJN? var exclaim = function(statement){ return statement + "!"; }5_NJN2 var welcome = functional.compose(exclaim, greet)5_NJNF assert.equal(welcome('moe'), 'hi: moe!', 'returned expected result')5_NJN 5_NJN5_NJN assert.equal()5_NJN assert.equal(m3, 1)5_NJN 5_ NJN assert.equal()5_! NJN assert.equal(m3, 1)5_ "!NJN assert.equal(m3(), 1)5_!#"NJN assert.equal(m3(1), 1)5_"$#NJN assert.equal(m3(1), '')5_#%$NJN assert.equal(m3)5_$&%NJN assert.equal(m3())5_%'&NJN assert.equal(m3(2))5_&('NJN assert.equal(m3(2), '')5_')(NJO 5_(*)NJO assert.equal()5_)+*NJO assert.equal(m3())5_*,+NJO assert.equal(m3(3))5_+-,NJO  assert.equal(m3(3), '')5_,.- NJO  ,exports['test compose'] = function(assert) {5_-/.NJO'5_.0/NJO(5_/10NJO)5_021  vNJO assert.equal(m3(3), 'tree')5_132  vNJO assert.equal(m3(1), 'one')5_243  vNJO assert.equal(m3(1), 'one', '')5_354  vNJO assert.equal(m3(2), 'two')5_465  vNJO assert.equal(m3(2), 'two', '')5_576  vNJO assert.equal(m3(3), 'three')5_67   vNJO" assert.equal(m3(3), 'three', '')5