Import initial : code en production sur Hetzner
This commit is contained in:
commit
cf6ee64e31
43 changed files with 14404 additions and 0 deletions
41
test/unit/midpoint.spec.ts
Normal file
41
test/unit/midpoint.spec.ts
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
import { describe, expect, it } from 'vitest'
|
||||
import { midpointAt } from '../../shared/polyline'
|
||||
import type { Coord } from '../../shared/types'
|
||||
|
||||
describe('midpointAt', () => {
|
||||
it('renvoie le point unique quand un seul est fourni', () => {
|
||||
expect(midpointAt([[1, 2]], 0.5)).toEqual([1, 2])
|
||||
})
|
||||
|
||||
it('renvoie le milieu geometrique sur une ligne droite reguliere', () => {
|
||||
const coords: Coord[] = [[0, 0], [10, 0]]
|
||||
expect(midpointAt(coords, 0.5)).toEqual([5, 0])
|
||||
})
|
||||
|
||||
it('renvoie le vrai milieu de distance sur un trace inegal', () => {
|
||||
// Trajet : 0 -> 10 (long), puis 10 -> 11 (court)
|
||||
// Distance totale = 11, milieu a 5.5, donc sur le premier segment
|
||||
const coords: Coord[] = [[0, 0], [10, 0], [11, 0]]
|
||||
const mid = midpointAt(coords, 0.5)
|
||||
expect(mid[0]).toBeCloseTo(5.5, 5)
|
||||
expect(mid[1]).toBeCloseTo(0, 5)
|
||||
})
|
||||
|
||||
it('renvoie le point de debut avec ratio 0', () => {
|
||||
const coords: Coord[] = [[0, 0], [10, 0], [20, 5]]
|
||||
expect(midpointAt(coords, 0)).toEqual([0, 0])
|
||||
})
|
||||
|
||||
it('renvoie le point de fin avec ratio 1', () => {
|
||||
const coords: Coord[] = [[0, 0], [10, 0], [20, 5]]
|
||||
expect(midpointAt(coords, 1)).toEqual([20, 5])
|
||||
})
|
||||
|
||||
it('gere un trace en forme de coude', () => {
|
||||
// 0,0 -> 10,0 -> 10,10 : total = 20, milieu = 10 = fin du premier segment
|
||||
const coords: Coord[] = [[0, 0], [10, 0], [10, 10]]
|
||||
const mid = midpointAt(coords, 0.5)
|
||||
expect(mid[0]).toBeCloseTo(10, 5)
|
||||
expect(mid[1]).toBeCloseTo(0, 5)
|
||||
})
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue