Files
music-assistant/Tests/MusicAssistantCoreTests/ArabicLyricsFixtures.swift
T

66 lines
2.5 KiB
Swift

import MusicAssistantCore
struct ArabicLyricsFixture {
let dialectName: String
let lyrics: String
let settings: ArabicPronunciationSettings
let expectedLyrics: String
let expectedNotes: [ArabicPronunciationProcessingNote]
}
enum ArabicLyricsFixtures {
static let all: [ArabicLyricsFixture] = [
levantine,
egyptian,
gulf,
maghrebi
]
private static let levantine = ArabicLyricsFixture(
dialectName: "Levantine Arabic",
lyrics: "\u{0634}\u{064F}\u{0648} \u{0628}\u{064E}\u{062F}\u{0651}\u{064E}\u{0643}",
settings: ArabicPronunciationSettings(
isEnabled: true,
diacritizationPolicy: .pronunciationTargeted,
tanweenPolicy: .preserveUserInput,
preservedSpellings: ["\u{0634}\u{064F}\u{0648}"]
),
expectedLyrics: "\u{0634}\u{064F}\u{0648} \u{0628}\u{064E}\u{062F}\u{064E}\u{0651}\u{0643}",
expectedNotes: [.preservedSpellingsProtected(count: 1)]
)
private static let egyptian = ArabicLyricsFixture(
dialectName: "Egyptian Arabic",
lyrics: "\u{0625}\u{0650}\u{0632}\u{0651}\u{064E}\u{0627}\u{064A}\u{064E}\u{0643}",
settings: ArabicPronunciationSettings(
isEnabled: true,
diacritizationPolicy: .pronunciationTargeted
),
expectedLyrics: "\u{0625}\u{0650}\u{0632}\u{064E}\u{0651}\u{0627}\u{064A}\u{064E}\u{0643}",
expectedNotes: []
)
private static let gulf = ArabicLyricsFixture(
dialectName: "Gulf Arabic",
lyrics: "\u{0648}\u{064E}\u{064A}\u{0652}\u{0646}\u{064E}\u{0643} \u{0634}\u{064F}\u{0643}\u{0652}\u{0631}\u{064B}\u{0627}",
settings: ArabicPronunciationSettings(
isEnabled: true,
diacritizationPolicy: .pronunciationTargeted,
tanweenPolicy: .removeWhenUnwanted
),
expectedLyrics: "\u{0648}\u{064E}\u{064A}\u{0652}\u{0646}\u{064E}\u{0643} \u{0634}\u{064F}\u{0643}\u{0652}\u{0631}\u{0627}",
expectedNotes: []
)
private static let maghrebi = ArabicLyricsFixture(
dialectName: "Maghrebi Arabic",
lyrics: "\u{0634}\u{0646}\u{0648} \u{0628}\u{063A}\u{064A}\u{062A}\u{064A}",
settings: ArabicPronunciationSettings(
isEnabled: true,
diacritizationPolicy: .fullTashkeel
),
expectedLyrics: "\u{0634}\u{0646}\u{0648} \u{0628}\u{063A}\u{064A}\u{062A}\u{064A}",
expectedNotes: [.fullTashkeelNeedsReview]
)
}