waterline-postgresql
Version:
PostgreSQL Adapter for Sails and Waterline
138 lines (104 loc) • 2.7 kB
JavaScript
var test = require("tap").test;
var ap = require('../');
var pa = ap.pa;
var apa = ap.apa;
var partial = ap.partial;
var partialRight = ap.partialRight;
var curry = ap.curry;
var curryRight = ap.curryRight;
function one(x, y) {
return x * 2 + y
}
function two(x, y, z, w) {
return x * 2 + (y + z) * w
}
function three(x, y) {
return this.z * (x * 2 + y)
}
var z = {
z: 10
};
test("ap function", function (t) {
var apOne = ap([3], one);
t.equal(apOne(4),
3 * 2 + 4);
var apTwo = ap([3,4], two);
t.equal(apTwo(5, 6),
3 * 2 + (4 + 5) * 6);
var apThree = ap([3], three);
t.equal(apThree.call(z, 4),
10 * (3 * 2 + 4));
t.end();
});
test("pa function", function (t) {
var paOne = pa([3], one);
t.equal(paOne(4),
4 * 2 + 3);
var paTwo = pa([3,4], two);
t.equal(paTwo(5, 6),
5 * 2 + (6 + 3) * 4);
var paThree = pa([3], three);
t.equal(paThree.call(z, 4),
10 * (4 * 2 + 3));
t.end();
});
test("apa function", function (t) {
var apaOne = apa([3], [4], one);
t.equal(apaOne(),
3 * 2 + 4);
var apaTwo = apa([3], [4], two);
t.equal(apaTwo(5, 6),
3 * 2 + (5 + 6) * 4);
var apaThree = apa([3], [4], three);
t.equal(apaThree.call(z),
10 * (3 * 2 + 4));
t.end();
});
test("partial function", function (t) {
var apOne = partial(one, 3);
t.equal(apOne(4),
3 * 2 + 4);
var apTwo = partial(two, 3, 4);
t.equal(apTwo(5, 6),
3 * 2 + (4 + 5) * 6);
var apThree = partial(three, 3);
t.equal(apThree.call(z, 4),
10 * (3 * 2 + 4));
t.end();
});
test("partialRight function", function (t) {
var paOne = partialRight(one, 3);
t.equal(paOne(4),
4 * 2 + 3);
var paTwo = partialRight(two, 3, 4);
t.equal(paTwo(5, 6),
5 * 2 + (6 + 3) * 4);
var paThree = partialRight(three, 3);
t.equal(paThree.call(z, 4),
10 * (4 * 2 + 3));
t.end();
});
test("curry function", function (t) {
var apOne = curry(one)(3);
t.equal(apOne(4),
3 * 2 + 4, "curry one");
var apTwo = curry(two)(3, 4);
t.equal(apTwo(5, 6),
3 * 2 + (4 + 5) * 6, "curry two");
var apThree = curry(three)(3);
t.equal(apThree.call(z, 4),
10 * (3 * 2 + 4), "curry three");
t.end();
});
test("curryRight function", function (t) {
var paOne = curryRight(one)(3);
t.equal(paOne(4),
4 * 2 + 3);
var paTwo = curryRight(two)(3, 4);
t.equal(paTwo(5, 6),
5 * 2 + (6 + 3) * 4);
var paThree = curryRight(three)(3);
t.equal(paThree.call(z, 4),
10 * (4 * 2 + 3));
t.end();
});