1
0
Fork 0

Tests for part

This commit is contained in:
Joost De Cock 2018-08-12 17:02:49 +02:00
parent 081c0cf69e
commit 89e4dc9482
8 changed files with 189 additions and 73 deletions

View file

@ -1,81 +1,81 @@
var expect = require("chai").expect;
var freesewing = require("../dist/index.js");
var utils = freesewing.utils;
let expect = require("chai").expect;
let freesewing = require("../dist/index.js");
let utils = freesewing.utils;
it("Should return the correct macro name", () => {
expect(utils.macroName("test")).to.equal("_macro_test");
});
it("Should find the intersection of two endless line segments", () => {
var a = new freesewing.Point(10, 20);
var b = new freesewing.Point(20, 24);
var c = new freesewing.Point(90, 19);
var d = new freesewing.Point(19, 70);
var X = freesewing.utils.beamsCross(a, b, c, d);
let a = new freesewing.Point(10, 20);
let b = new freesewing.Point(20, 24);
let c = new freesewing.Point(90, 19);
let d = new freesewing.Point(19, 70);
let X = freesewing.utils.beamsCross(a, b, c, d);
expect(X.x).to.equal(60.49);
expect(X.y).to.equal(40.2);
});
it("Should detect parallel lines", () => {
var a = new freesewing.Point(10, 20);
var b = new freesewing.Point(20, 20);
var c = new freesewing.Point(90, 40);
var d = new freesewing.Point(19, 40);
let a = new freesewing.Point(10, 20);
let b = new freesewing.Point(20, 20);
let c = new freesewing.Point(90, 40);
let d = new freesewing.Point(19, 40);
expect(freesewing.utils.beamsCross(a, b, c, d)).to.equal(false);
expect(freesewing.utils.linesCross(a, b, c, d)).to.equal(false);
});
it("Should detect vertical lines", () => {
var a = new freesewing.Point(10, 20);
var b = new freesewing.Point(10, 90);
var c = new freesewing.Point(90, 40);
var d = new freesewing.Point(19, 40);
var X = freesewing.utils.beamsCross(a, b, c, d);
let a = new freesewing.Point(10, 20);
let b = new freesewing.Point(10, 90);
let c = new freesewing.Point(90, 40);
let d = new freesewing.Point(19, 40);
let X = freesewing.utils.beamsCross(a, b, c, d);
expect(X.x).to.equal(10);
expect(X.y).to.equal(40);
var X = freesewing.utils.beamsCross(c, d, a, b);
X = freesewing.utils.beamsCross(c, d, a, b);
expect(X.x).to.equal(10);
});
it("Should swap direction prior to finding beam intersection", () => {
var a = new freesewing.Point(10, 20);
var b = new freesewing.Point(00, 90);
var c = new freesewing.Point(90, 40);
var d = new freesewing.Point(19, 40);
var X = freesewing.utils.beamsCross(a, b, c, d);
let a = new freesewing.Point(10, 20);
let b = new freesewing.Point(00, 90);
let c = new freesewing.Point(90, 40);
let d = new freesewing.Point(19, 40);
let X = freesewing.utils.beamsCross(a, b, c, d);
expect(X.x).to.equal(7.14);
expect(X.y).to.equal(40);
});
it("Should return false when two lines don't intersect", () => {
var a = new freesewing.Point(10, 20);
var b = new freesewing.Point(20, 24);
var c = new freesewing.Point(90, 19);
var d = new freesewing.Point(19, 70);
let a = new freesewing.Point(10, 20);
let b = new freesewing.Point(20, 24);
let c = new freesewing.Point(90, 19);
let d = new freesewing.Point(19, 70);
expect(freesewing.utils.linesCross(a, b, c, d)).to.equal(false);
});
it("Should find the intersection of two line segments", () => {
var a = new freesewing.Point(10, 10);
var b = new freesewing.Point(90, 74);
var c = new freesewing.Point(90, 19);
var d = new freesewing.Point(11, 70);
var X = freesewing.utils.beamsCross(a, b, c, d);
let a = new freesewing.Point(10, 10);
let b = new freesewing.Point(90, 74);
let c = new freesewing.Point(90, 19);
let d = new freesewing.Point(11, 70);
let X = freesewing.utils.beamsCross(a, b, c, d);
expect(X.x).to.equal(51.95);
expect(X.y).to.equal(43.56);
});
it("Should find the intersection of an endles line and a give Y-value", () => {
var a = new freesewing.Point(10, 10);
var b = new freesewing.Point(90, 74);
var X = freesewing.utils.beamCrossesY(a, b, 69);
let a = new freesewing.Point(10, 10);
let b = new freesewing.Point(90, 74);
let X = freesewing.utils.beamCrossesY(a, b, 69);
expect(X.x).to.equal(83.75);
expect(X.y).to.equal(69);
});
it("Should detect horizontal lines never pass a give Y-value", () => {
var a = new freesewing.Point(10, 10);
var b = new freesewing.Point(90, 10);
let a = new freesewing.Point(10, 10);
let b = new freesewing.Point(90, 10);
expect(freesewing.utils.beamCrossesY(a, b, 69)).to.equal(false);
});