const { computeErasureIntervals, combineErasureIntervals, } = require("../src/erasure") const sum = (a, b) => a + b describe("number adding", () => { describe("number summation", () => { it("adds 1 + 2 to equal 3", () => { expect(sum(1, 2)).toBe(3) }) }) }) describe("erasure", () => { it("computes simple erasure intervals", () => { const points = [[0, 0], [100, 100]] const erasureCenter = [50, 50] const erasureRadius = 25 * Math.SQRT2 const erasureIntervals = computeErasureIntervals( points, erasureCenter, erasureRadius, ) expect(erasureIntervals).toStrictEqual({ 0: [[0.25, 0.75]] }) }) it("computes complex erasure intervals", () => { const points = [[0, 0], [100, 100], [0, 200]] const erasureCenter = [100, 100] const erasureRadius = 25 * Math.SQRT2 const erasureIntervals = computeErasureIntervals( points, erasureCenter, erasureRadius, ) expect(erasureIntervals).toStrictEqual({ 0: [[0.75, 1]], 1: [[0, 0.25]] }) }) it("computes erasure intervals when point projection is not on the segment", () => { const points = [[800, 400], [800, 450], [800, 500]] const erasureCenter = [800, 432] const erasureRadius = 20 //* Math.SQRT2 const erasureIntervals = computeErasureIntervals( points, erasureCenter, erasureRadius, ) expect(erasureIntervals).toStrictEqual({ 0: [[0.24, 1]], 1: [[0, 0.04]] }) }) it("computes erasure intervals ???", () => { const points = [[100, 100], [1100, 100]] const erasureCenter = [448, 86] const erasureRadius = 100 const erasureIntervals = computeErasureIntervals( points, erasureCenter, erasureRadius, ) expect(erasureIntervals).toStrictEqual({ 0: [[0.2489848496441075, 0.4470151503558925]], }) }) it("combines distinct intervals", () => { const i1 = { 0: [[0.1, 0.6]] } const i2 = { 0: [[0.7, 0.8]] } const combined = combineErasureIntervals(i1, i2) const expected = { 0: [[0.1, 0.6], [0.7, 0.8]] } expect(combined).toStrictEqual(expected) }) it("combines overlapping intervals", () => { const i1 = { 0: [[0.1, 0.6]] } const i2 = { 0: [[0.5, 0.8]] } const combined = combineErasureIntervals(i1, i2) const expected = { 0: [[0.1, 0.8]] } expect(combined).toStrictEqual(expected) }) it("combines overlapping inside intervals", () => { const i1 = { 0: [[0.1, 0.6]] } const i2 = { 0: [[0.2, 0.3]] } const combined = combineErasureIntervals(i1, i2) const expected = { 0: [[0.1, 0.6]] } expect(combined).toStrictEqual(expected) }) })