Skip to content

Instantly share code, notes, and snippets.

@adyatlov
Created December 21, 2014 15:52
Show Gist options
  • Save adyatlov/ffb0851c6e22469cf662 to your computer and use it in GitHub Desktop.
Save adyatlov/ffb0851c6e22469cf662 to your computer and use it in GitHub Desktop.
"use strict";
describe("Test Boundary", function() {
var bol0 = new Boundary(0, "(");
var bor0 = new Boundary(0, ")");
var bcl0 = new Boundary(0, "[");
var bcr0 = new Boundary(0, "]");
var bol1 = new Boundary(1, "(");
var bor1 = new Boundary(1, ")");
var bcl1 = new Boundary(1, "[");
var bcr1 = new Boundary(1, "]");
var b0 = [bol0, bor0, bcl0, bcr0];
var b1 = [bol1, bor1, bcl1, bcr1];
var b = b0.concat(b1);
var bl0 = [bol0, bcl0];
var br0 = [bor0, bcr0];
it("same are always equal", function() {
for (var i = 0; i < b.length; i++) {
expect(b[i].lessThan(b[i])).toBe(0);
}
});
it ("providing the same value right are at least less", function() {
for (var i = 0; i < bl0.length; i++) {
for (var j = 0; j < br0.length; j++) {
expect(br0[i].lessThan(bl0[j])).toBeGreaterThan(-1);
}
}
});
it("providing the same value [ === ]", function() {
expect(bcl0.lessThan(bcr0)).toBe(0);
});
it("every 0 < every 1)", function() {
for (var i = 0; i < b0.length; i++) {
for (var j = 0; j < b1.length; j++) {
expect(b0[i].lessThan(b1[j])).toBe(1);
}
}
});
it("if b1 < b2, then b2 > b1)", function() {
for (var i = 0; i < b.length; i++) {
for (var j = 0; j < b.length; j++) {
expect(b[i].lessThan(b[j])).toBe(-1 * b[j].lessThan(b[i]));
}
}
});
});
describe("Test Interval", function() {
var bol0 = new Boundary(0, "(");
var bor0 = new Boundary(0, ")");
var bcl0 = new Boundary(0, "[");
var bcr0 = new Boundary(0, "]");
var bol1 = new Boundary(1, "(");
var bor1 = new Boundary(1, ")");
var bcl1 = new Boundary(1, "[");
var bcr1 = new Boundary(1, "]");
var bol2 = new Boundary(2, "(");
var bor2 = new Boundary(2, ")");
var bcl2 = new Boundary(2, "[");
var bcr2 = new Boundary(2, "]");
var bol3 = new Boundary(3, "(");
var bor3 = new Boundary(3, ")");
var bcl3 = new Boundary(3, "[");
var bcr3 = new Boundary(3, "]");
var bl0 = [bol0, bcl0];
var bl1 = [bol1, bcl1];
var br1 = [bor1, bcr1];
var br2 = [bor2, bcr2];
var br3 = [bor3, bcr3];
it("intervals intersects themselves", function() {
for (var i = 0; i < bl0.length; i++) {
for (var j = 0; j < br1.length; j++) {
var interval = new Interval(bl0[i], br1[j]);
expect(interval.intersects(interval)).toBe(true);
}
}
});
it("All |0,2| intervals intersects all |1,3| intervals", function() {
for (var l0 = 0; l0 < bl0.length; l0++) {
for (var r2 = 0; r2 < br2.length; r2++) {
for (var l1 = 0; l1 < bl1.length; l1++) {
for (var r3 = 0; r3 < br3.length; r3++) {
var interval1 = new Interval(bl0[l0], br2[r2]);
var interval2 = new Interval(bl1[l1], br3[r3]);
expect(interval1.intersects(interval2)).toBe(true);
}
}
}
}
});
it("(0,1] and [1,2) intersect", function() {
var interval1 = new Interval(bol0, bcr1);
var interval2 = new Interval(bcl1, bor2);
expect(interval1.intersects(interval2)).toBe(true);
});
it("(0,1) and [1,2) don't intersec", function() {
var interval1 = new Interval(bol0, bor1);
var interval2 = new Interval(bcl1, bor2);
expect(interval1.intersects(interval2)).toBe(false);
});
it("(0,1) and (1,2) don't intersec", function() {
var interval1 = new Interval(bol0, bor1);
var interval2 = new Interval(bol1, bor2);
expect(interval1.intersects(interval2)).toBe(false);
});
it("(0,1] and (1,2) don't intersec", function() {
var interval1 = new Interval(bol0, bcr1);
var interval2 = new Interval(bol1, bor2);
expect(interval1.intersects(interval2)).toBe(false);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment