Skip to content
Snippets Groups Projects
example.test.js 1.82 KiB
Newer Older
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("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)
  })