4NK_IA_front/tests/deduplication.test.ts
4NK IA 78d4310137 feat: ajout déduplication des entités extraites
- Déduplication déterministe des identités, adresses, dates, entreprises, signatures et références
- Implémentation dans src/services/ruleNer.ts et src/services/backendApi.ts
- Clés de normalisation: prénom+nom, rue+CP+ville, nom+SIRET, type+valeur
- Test ciblé tests/deduplication.test.ts pour valider la fonctionnalité
- Documentation complète dans docs/deduplication_entites.md
- Correction des tests existants (supertest, extractEntitiesFromText)
- Compilation validée et services opérationnels
2025-09-19 13:29:39 +00:00

22 lines
876 B
TypeScript

import { describe, it, expect } from 'vitest'
import { runRuleNER } from '../src/services/ruleNer'
describe('Déduplication des entités', () => {
it('élimine les doublons d\'identités et d\'adresses', () => {
const text = `
Vendeur : Jean Dupont\n
Acheteur : Jean Dupont\n
Domicilié 1 rue de la Paix, 75001 Paris\n
Adresse 1 Rue de la Paix, 75001 Paris
`
const result = runRuleNER('doc-1', text)
const identityKeys = new Set(result.identities.map(i => `${(i.firstName||'').toLowerCase()}|${(i.lastName||'').toLowerCase()}`))
const addressKeys = new Set(result.addresses.map(a => `${(a.street||'').toLowerCase()}|${a.postalCode}|${(a.city||'').toLowerCase()}|${(a.country||'').toLowerCase()}`))
expect(result.identities.length).toBe(identityKeys.size)
expect(result.addresses.length).toBe(addressKeys.size)
})
})