OcrPostProcessingTest.swift
77 lignes · 2526 octets
import XCTest @testable import Card2vcf final class OcrPostProcessingTest: XCTestCase { func testExtraitEmailEtTelephone() { let text = """ Jean Dupont Directeur 06 12 34 56 78 jean.dupont@acme.fr https://acme.fr """ let r = OcrPostProcessor.process(text) XCTAssertTrue(r.emails.contains("jean.dupont@acme.fr")) XCTAssertTrue(r.phones.contains { $0.contains("0612345678") }) XCTAssertTrue(r.urls.contains("https://acme.fr")) } func testMultiEmails() { let r = OcrPostProcessor.process("a@b.fr et c@d.fr") XCTAssertEqual(2, r.emails.count) } func testLignesNettoyees() { let r = OcrPostProcessor.process(" ligne1 \n\n ligne2 ") XCTAssertEqual(["ligne1", "ligne2"], r.lines) } func testNeFusionnePasTelephoneEtCodePostalSurLignesVoisines() { let text = """ Jean Dupont Tél. 04 75 35 12 34 07200 Aubenas """ let r = OcrPostProcessor.process(text) XCTAssertEqual(["0475351234"], r.phones) } func testNeFusionnePasNumeroDeRueEtTelephone() { let text = """ 245 04 75 35 12 34 """ let r = OcrPostProcessor.process(text) XCTAssertEqual(["0475351234"], r.phones) } func testIgnoreCodePostalSeul() { let r = OcrPostProcessor.process("07200 Aubenas") XCTAssertEqual([], r.phones) } func testRejetteLongueursImplausiblesSansIndicatif() { // 9 chiffres, 11 chiffres, ou 10 chiffres sans 0 initial : pas des numéros FR let r = OcrPostProcessor.process("123 45 67 89\n0 12 34 56 78 90\n61 23 45 67 89") XCTAssertEqual([], r.phones) } func testExtraitCarteDimoCommeSurAppareil() { let text = """ dimo SOFTWARE Jean Pau! GENOUX Directeur Général/CEO jpgenoux@dimosoftware.com Mobile : +33 (0)6 74 64 05 44 / Tél. : +33 (0)4 72 86 O1 92 Siège Social 561, alée des Noisetiers - 69 760 Limonest - France www.dimosoftware.fr """ let r = OcrPostProcessor.process(text) XCTAssertEqual(["jpgenoux@dimosoftware.com"], r.emails) XCTAssertTrue(r.phones.contains { $0 == "+33674640544" || $0.hasSuffix("674640544") }) XCTAssertTrue(r.phones.contains { $0.contains("472860192") || $0.hasSuffix("472860192") }) XCTAssertTrue(r.urls.contains { $0.contains("dimosoftware.fr") }) } }
GitRust