johnny-five-electron
Version:
Temporary fork to support Electron (to be deprecated)
146 lines (106 loc) • 2.99 kB
JavaScript
var five = require("../lib/johnny-five.js");
var Fn = five.Fn;
exports["Fn"] = {
setUp: function(done) {
done();
},
tearDown: function(done) {
done();
},
map: function(test) {
test.expect(3);
test.equal(Fn.map(1009, 300, 1009, 0, 255), 255);
test.equal(Fn.map(300, 300, 1009, 0, 255), 0);
test.equal(Fn.map(500, 0, 1000, 0, 255), 127);
test.done();
},
fmap: function(test) {
test.expect(1);
test.equal(Fn.fmap(500, 0, 1000, 0, 255), 127.5);
test.done();
},
constrain: function(test) {
test.expect(5);
test.equal(Fn.constrain(100, 0, 255), 100);
test.equal(Fn.constrain(-1, 0, 255), 0);
test.equal(Fn.constrain(0, 0, 255), 0);
test.equal(Fn.constrain(256, 0, 255), 255);
test.equal(Fn.constrain(255, 0, 255), 255);
test.done();
},
range: function(test) {
test.expect(6);
var a = Fn.range(5);
var b = Fn.range(5, 10);
var c = Fn.range(3, 27, 3);
var d = Fn.range(0, -9, -1);
var e = Fn.range(0, -9, -3);
var f = Fn.range(0, -10, -2);
test.deepEqual(a, [ 0, 1, 2, 3, 4 ]);
test.deepEqual(b, [ 5, 6, 7, 8, 9, 10 ]);
test.deepEqual(c, [ 3, 6, 9, 12, 15, 18, 21, 24, 27 ]);
// Negative Range
test.deepEqual(d, [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]);
test.deepEqual(e, [0, -3, -6, -9]);
test.deepEqual(f, [0, -2, -4, -6, -8, -10]);
test.done();
},
prefixed: function(test) {
test.expect(4);
test.deepEqual(Fn.range.prefixed("A", 3), ["A0", "A1", "A2"]);
test.deepEqual(Fn.range.prefixed("A", 0, 3), ["A0", "A1", "A2", "A3"]);
test.deepEqual(Fn.range.prefixed("A", 0, 10, 2), ["A0", "A2", "A4", "A6", "A8", "A10"]);
test.deepEqual(Fn.range.prefixed("A", 0, 9, 3), ["A0", "A3", "A6", "A9"]);
test.done();
},
uid: function(test) {
test.expect(2);
var unique = 0;
var uids = [];
var uid;
for (var i = 0; i < 1000; i++) {
uid = Fn.uid();
if (uids.indexOf(uid) === -1) {
unique++;
}
uids.push(uid);
}
test.equal(unique, 1000);
test.equal(uids[0].length, 36);
test.done();
},
sum: function(test) {
test.expect(4);
var a = 0,
b = 1,
c = [],
d = [0,1];
test.equal(Fn.sum(a), 0);
test.equal(Fn.sum(b), 1);
test.equal(Fn.sum(c), 0);
test.equal(Fn.sum(d), 1);
test.done();
},
bitValue: function(test) {
test.expect(4);
var a = Fn.bitValue(0);
var b = Fn.bitValue(2);
var c = Fn.bitValue(7);
var d = Fn.bitValue(8);
test.equal(a, 1);
test.equal(b, 4);
test.equal(c, 128);
test.equal(d, 256);
test.done();
},
int16fromtwobytes: function(test) {
test.expect(6);
test.equal(Fn.int16(0, 0), 0);
test.equal(Fn.int16(0, 1), 1);
test.equal(Fn.int16(1, 4), 260);
test.equal(Fn.int16(8, 0), 2048);
test.equal(Fn.int16(255, 255), -1);
test.equal(Fn.int16(240, 240), -3856);
test.done();
},
};