proportionate
Version:
Convenience methods for dealing with proportions (a part, share, or number considered in comparative relation to a whole).
39 lines (35 loc) • 1.63 kB
JavaScript
var chai;
chai = require("chai");
chai.should();
describe("Proportionate arrays", function() {
it("should index directly on a one-to-one mapping", function() {
require("../lib").arrays();
[].proportionate(0, 3).should.equal(1);
[].proportionate(1, 3).should.equal(1);
[].proportionate(2, 3).should.equal(2);
[].proportionate(3, 3).should.equal(3);
});
it("should only index extremes when extremes are met", function() {
require("../lib/arrays");
[].proportionate(0, 6).should.equal(1);
[].proportionate(1, 6).should.equal(1);
[].proportionate(2, 6).should.equal(1);
[].proportionate(3, 6).should.equal(2);
[].proportionate(4, 6).should.equal(2);
[].proportionate(5, 6).should.equal(3);
[].proportionate(6, 6).should.equal(3);
[].proportionate(6, 7).should.equal(3);
});
it("should skip items when the max is small", function() {
require("../lib").arrays();
[].proportionate(0, 3).should.equal(1);
[].proportionate(1, 3).should.equal(3);
[].proportionate(2, 3).should.equal(7);
[].proportionate(3, 3).should.equal(10);
});
it("should clamp to the extremes when out of bounds", function() {
require("../lib").arrays();
[].proportionate(-1, 3).should.equal(1);
[].proportionate(4, 3).should.equal(3);
});
});