imrishabh18/corne-keyboard

The code defines and renders two surface-mount chip components with SMT pads, silkscreen outlines, and 3D CAD models (OBJ and STEP) for PCB assembly.

Version
2.0.21
License
unset
Stars
1

scripts/normalize-via-transitions.test.ts

import { expect, test } from 'bun:test'
import { normalizeViaTransitions } from './normalize-via-transitions.mjs'
const makeRoute = (drift: number) => [{
  route: [{x:6.283041185844342,y:-13.12593027765996,z:1},
    {x:6.283041185844342,y:-13.12593027765996+drift,z:0}],
  vias:[{x:6.283041185844342,y:-13.12593027765996}],
}]
test('normalizes the measured failure to its existing via without mutating input',()=>{
  const input=makeRoute(-0.000037279622707);const before=structuredClone(input)
  const output=normalizeViaTransitions(input)
  expect(output[0].route[0].y).toBe(output[0].route[1].y)
  expect(input).toEqual(before)
  expect(output[0].vias).toEqual(input[0].vias)
})
test('preserves real layer-transition errors for the router to reject',()=>{
  const input=makeRoute(0.01)
  expect(normalizeViaTransitions(input)).toBe(input)
})
test('does not invent a via where none is recorded',()=>{
  const input=makeRoute(0.00001);input[0].vias=[]
  expect(normalizeViaTransitions(input)).toBe(input)
})