lodash-contrib
Version:
The brass buckles on lodash's utility belt
142 lines (130 loc) • 5.53 kB
JavaScript
var _ = require('../..');
var assert = require('assert');
describe("lodash.util.operators", function () {
it("addContrib", function() {
assert.equal(_.addContrib(1, 1), 2, '1 + 1 = 2');
assert.equal(_.addContrib(3, 5), 8, '3 + 5 = 8');
assert.equal(_.addContrib(1, 2, 3, 4), 10, 'adds multiple operands');
});
it("sub", function() {
assert.equal(_.sub(1, 1), 0, '1 - 1 = 0');
assert.equal(_.sub(5, 3), 2, '5 - 3 = 2');
assert.equal(_.sub(10, 9, 8, 7), -14, 'subtracts multiple operands');
});
it("mul", function() {
assert.equal(_.mul(1, 1), 1, '1 * 1 = 1');
assert.equal(_.mul(5, 3), 15, '5 * 3 = 15');
assert.equal(_.mul(1, 2, 3, 4), 24, 'multiplies multiple operands');
});
it("div", function() {
assert.equal(_.div(1, 1), 1, '1 / 1 = 1');
assert.equal(_.div(15, 3), 5, '15 / 3 = 5');
assert.equal(_.div(15, 0), Infinity, '15 / 0 = Infinity');
assert.equal(_.div(24, 2, 2, 2), 3, 'divides multiple operands');
});
it("mod", function() {
assert.equal(_.mod(3, 2), 1, '3 / 2 = 1');
assert.equal(_.mod(15, 3), 0, '15 / 3 = 0');
});
it("inc", function() {
assert.equal(_.inc(1), 2, '++1 = 2');
assert.equal(_.inc(15), 16, '++15 = 16');
});
it("dec", function() {
assert.equal(_.dec(2), 1, '--2 = 1');
assert.equal(_.dec(15), 14, '--15 = 15');
});
it("neg", function() {
assert.equal(_.neg(2), -2, 'opposite of 2');
assert.equal(_.neg(-2), 2, 'opposite of -2');
assert.equal(_.neg(true), -1, 'opposite of true');
});
it("eqContrib", function() {
assert.equal(_.eqContrib(1, 1), true, '1 == 1');
assert.equal(_.eqContrib(1, true), true, '1 == true');
assert.equal(_.eqContrib(1, false), false, '1 != false');
assert.equal(_.eqContrib(1, '1'), true, '1 == "1"');
assert.equal(_.eqContrib(1, 'one'), false, '1 != "one"');
assert.equal(_.eqContrib(0, 0), true, '0 == 0');
assert.equal(_.eqContrib(0, false), true, '0 == false');
assert.equal(_.eqContrib(0, '0'), true, '0 == "0"');
assert.equal(_.eqContrib({}, {}), false, '{} == {}');
assert.equal(_.eqContrib(0, 0, 1), false, 'compares a list of arguments');
});
it("seq", function() {
assert.equal(_.seq(1, 1), true, '1 === 1');
assert.equal(_.seq(1, '1'), false, '1 !== "1"');
assert.equal(_.seq(0, 0, 1), false, 'compares a list of arguments');
});
it("neq", function() {
assert.equal(_.neq('a', 'b'), true, '"a" != "b"');
assert.equal(_.neq(1, '1'), false, '1 == "1"');
assert.equal(_.neq(0, 0, 1), true, 'compares a list of arguments');
});
it("sneq", function() {
assert.equal(_.sneq('a', 'b'), true, '"a" !== "b"');
assert.equal(_.sneq(1, '1'), true, '1 !== "1"');
assert.equal(_.sneq(0, 0, 1), true, 'compares a list of arguments');
});
it("not", function() {
assert.equal(_.not(true), false, 'converts true to false');
assert.equal(_.not(false), true, 'converts false to true');
assert.equal(_.not('truthy'), false, 'converts truthy values to false');
assert.equal(_.not(null), true, 'converts falsy values to true');
});
it("gtContrib", function() {
assert.equal(_.gtContrib(3, 2), true, '3 > 2');
assert.equal(_.gtContrib(1, 3), false, '1 > 3');
assert.equal(_.gtContrib(1, 2, 1), false, 'compares a list of arguments');
});
it("ltContrib", function() {
assert.equal(_.ltContrib(3, 2), false, '3 < 2');
assert.equal(_.ltContrib(1, 3), true, '1 < 3');
assert.equal(_.ltContrib(1, 2, 1), false, 'compares a list of arguments');
});
it("gteContrib", function() {
assert.equal(_.gteContrib(3, 2), true, '3 >= 2');
assert.equal(_.gteContrib(1, 3), false, '1 >= 3');
assert.equal(_.gteContrib(3, 3), true, '3 >= 3');
assert.equal(_.gteContrib(2, 3, 1), false, 'compares a list of arguments');
});
it("lteContrib", function() {
assert.equal(_.lteContrib(3, 2), false, '3 <= 2');
assert.equal(_.lteContrib(1, 3), true, '1 <= 3');
assert.equal(_.lteContrib(3, 3), true, '3 <= 3');
assert.equal(_.lteContrib(2, 2, 1), false, 'compares a list of arguments');
});
it("bitwiseAnd", function() {
assert.equal(_.bitwiseAnd(1, 1), 1, '1 & 1');
assert.equal(_.bitwiseAnd(1, 0), 0, '1 & 0');
assert.equal(_.bitwiseAnd(1, 1, 0), 0, 'operates on multiple arguments');
});
it("bitwiseOr", function() {
assert.equal(_.bitwiseOr(1, 1), 1, '1 | 1');
assert.equal(_.bitwiseOr(1, 0), 1, '1 | 0');
assert.equal(_.bitwiseOr(1, 1, 2), 3, 'operates on multiple arguments');
});
it("bitwiseXor", function() {
assert.equal(_.bitwiseXor(1, 1), 0, '1 ^ 1');
assert.equal(_.bitwiseXor(1, 2), 3, '1 ^ 2');
assert.equal(_.bitwiseXor(1, 2, 3), 0, 'operates on multiple arguments');
});
it("bitwiseNot", function() {
assert.equal(_.bitwiseNot(1), -2, '~1');
assert.equal(_.bitwiseNot(2), -3, '~2');
});
it("bitwiseLeft", function() {
assert.equal(_.bitwiseLeft(1, 1), 2, '1 << 1');
assert.equal(_.bitwiseLeft(1, 0), 1, '1 << 0');
assert.equal(_.bitwiseLeft(1, 1, 1), 4, 'operates on multiple arguments');
});
it("bitwiseRight", function() {
assert.equal(_.bitwiseRight(1, 1), 0, '1 >> 1');
assert.equal(_.bitwiseRight(2, 1), 1, '2 >> 1');
assert.equal(_.bitwiseRight(3, 1, 1), 0, 'operates on multiple arguments');
});
it("bitwiseZ", function() {
assert.equal(_.bitwiseZ(-1, 1), 2147483647, '-1 >>> 1');
assert.equal(_.bitwiseZ(-1, 1, 1), 1073741823, 'operates on multiple arguments');
});
});