TranscripteurVoskTest.kt
104 lignes · 3101 octets
package fr.ebii.card2vcf.audio import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertNull import kotlin.test.assertTrue /** * Tests JVM des méthodes de parsing JSON de Vosk et du fake. * N'instancie pas TranscripteurVosk (nécessite un Context Android + lib native). */ class TranscripteurVoskTest { // --- Parsing "partial" --- @Test fun parsagePartielNormal() { val json = """{"partial":"bonjour le"}""" assertEquals("bonjour le", TranscripteurVosk.parsagePartiel(json)) } @Test fun parsagePartielAvecEspaces() { val json = """{ "partial" : "comment allez vous" }""" assertEquals("comment allez vous", TranscripteurVosk.parsagePartiel(json)) } @Test fun parsagePartielVideRetourneNull() { val json = """{"partial":""}""" assertNull(TranscripteurVosk.parsagePartiel(json)) } @Test fun parsagePartielJsonInvalidRetourneNull() { assertNull(TranscripteurVosk.parsagePartiel("not json at all")) assertNull(TranscripteurVosk.parsagePartiel("")) assertNull(TranscripteurVosk.parsagePartiel("{}")) } // --- Parsing "text" (résultat final) --- @Test fun parsageTexteFinal() { val json = """{"text":"bonjour le monde"}""" assertEquals("bonjour le monde", TranscripteurVosk.parsageTexte(json)) } @Test fun parsageTexteVide() { val json = """{"text":""}""" assertEquals("", TranscripteurVosk.parsageTexte(json)) } @Test fun parsageTexteJsonInvalidRetourneVide() { assertEquals("", TranscripteurVosk.parsageTexte("not json")) assertEquals("", TranscripteurVosk.parsageTexte("")) } @Test fun parsageTexteAvecChampsSupplementaires() { // Vosk peut renvoyer des champs supplémentaires (résultats détaillés) val json = """{"result":[],"text":"merci beaucoup"}""" assertEquals("merci beaucoup", TranscripteurVosk.parsageTexte(json)) } // --- Fake --- @Test fun fakeDisponibleParDefaut() { val fake = TranscripteurLocalFake() assertEquals(TranscripteurLocal.Etat.DISPONIBLE, fake.etat) } @Test fun fakeIndisponible() { val fake = TranscripteurLocalFake(disponible = false) assertEquals(TranscripteurLocal.Etat.INDISPONIBLE, fake.etat) } @Test fun fakeAccepteEchantillons() { val fake = TranscripteurLocalFake() assertNull(fake.accepterEchantillons(ShortArray(160), 160)) assertNull(fake.accepterEchantillons(ShortArray(160), 160)) assertEquals(2, fake.nombreBuffersRecus()) } @Test fun fakeFinaliserRetourneTexte() { val fake = TranscripteurLocalFake() assertEquals("transcription simulée", fake.finaliser()) } @Test fun fakeReinitialiser() { val fake = TranscripteurLocalFake() fake.accepterEchantillons(ShortArray(100), 100) fake.reinitialiser() assertTrue(fake.reinitialiseAppele) assertEquals(0, fake.nombreBuffersRecus()) } }
GitRust