def testDontMixPacks(self): packs = [ MediaPack("Foo", { "ni3.mp3": "ni3.mp3", "ma3.mp3": "ma3.mp3" }), MediaPack("Bar", {"hao3.mp3": "hao3.mp3"}) ] self.assertHasPartialReading(u"你好马", ["ni3.mp3", "ma3.mp3"], bestpackshouldbe=packs[0], mediapacks=packs)
def testRandomizeBestPackOnTie(self): pack1 = MediaPack("Foo", {"ni3.mp3": "PACK1.mp3"}) pack2 = MediaPack("Bar", {"ni3.mp3": "PACK2.mp3"}) gotpacks = [] for n in range(1, 10): gotpack, _, _ = PinyinAudioReadings([pack1, pack2], [".mp3", ".ogg"]).audioreading( englishdict.reading(u"你")) gotpacks.append(gotpack) # This test will nondeterministically fail (1/2)^10 = 0.01% of the time self.assertTrue(pack1 in gotpacks) self.assertTrue(pack2 in gotpacks)
def expandmediapacks(self, mediapacks=None, available_media=None, raw_available_media=default_raw_available_media, bestpackshouldbe=None): if mediapacks: return bestpackshouldbe, mediapacks elif available_media: pack = MediaPack("Test", available_media) return pack, [pack] else: pack = MediaPack( "Test", dict([(filename, filename) for filename in raw_available_media])) return pack, [pack]
def testUseBestPack(self): packs = [ MediaPack("Foo", { "xiao3.mp3": "xiao3.mp3", "ma3.mp3": "ma3.mp3" }), MediaPack( "Bar", { "ma3.mp3": "ma3.mp3", "ci2.mp3": "ci2.mp3", "dian3.mp3": "dian3.mp3" }) ] self.assertHasPartialReading(u"小马词典", ["ma3.mp3", "ci2.mp3", "dian3.mp3"], bestpackshouldbe=packs[1], mediapacks=packs)
def testUseSpokenToneRatherThanWrittenOne(self): mediapacks = [ MediaPack("Foo", { "ma2.mp3": "ma2.mp3", "ma3.mp3": "ma3.mp3" }) ] mediapack, output, mediamissingcount = PinyinAudioReadings( mediapacks, [".mp3"]).audioreadings( [Word(Pinyin("ma", ToneInfo(written=2, spoken=3)))])[0] self.assertEquals(mediapack, mediapacks[0]) self.assertEquals(mediamissingcount, 0) self.assertEquals(output, ["ma3.mp3"])