66 lines
2.5 KiB
Swift
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]
|
|
)
|
|
}
|