28 lines
1,013 B
TypeScript
28 lines
1,013 B
TypeScript
|
|
import { describe, expect, it } from 'vitest'
|
||
|
|
import { dedupe } from '../../server/utils/geocoding'
|
||
|
|
|
||
|
|
const place = (label: string, lat: number, lon: number) => ({ label, lat, lon })
|
||
|
|
|
||
|
|
describe('dedupe', () => {
|
||
|
|
it('elimine deux entrees au meme libelle', () => {
|
||
|
|
expect(dedupe([place('Lille', 50.63, 3.05), place('lille', 47.1, 2.2)])).toHaveLength(1)
|
||
|
|
})
|
||
|
|
|
||
|
|
it('elimine deux entrees a la meme position malgre des libelles differents', () => {
|
||
|
|
const r = dedupe([
|
||
|
|
place('Bruxelles, Belgique', 50.846, 4.352),
|
||
|
|
place('Bruxelles-Capitale, Belgique', 50.848, 4.351),
|
||
|
|
])
|
||
|
|
expect(r).toHaveLength(1)
|
||
|
|
})
|
||
|
|
|
||
|
|
it('conserve deux villes homonymes reellement distinctes', () => {
|
||
|
|
const r = dedupe([place('Lille, France', 50.63, 3.05), place('Lille, Belgique', 50.72, 3.20)])
|
||
|
|
expect(r).toHaveLength(2)
|
||
|
|
})
|
||
|
|
|
||
|
|
it('preserve l ordre d entree', () => {
|
||
|
|
const r = dedupe([place('A', 1, 1), place('B', 2, 2), place('C', 3, 3)])
|
||
|
|
expect(r.map(p => p.label)).toEqual(['A', 'B', 'C'])
|
||
|
|
})
|
||
|
|
})
|