import MusicAssistantCore import XCTest final class LocalLanguageCatalogTests: XCTestCase { func testWorldwideCatalogSearchesArabicTermsAndRegionalCategories() { let catalog = LocalLanguageCatalog() let expectedCategories: Set = [ "Middle East & North Africa", "Europe", "South Asia", "East Asia", "Southeast Asia", "Africa", "Americas", "Oceania & Pacific" ] XCTAssertGreaterThan(catalog.items.count, 70) XCTAssertTrue(expectedCategories.isSubset(of: Set(catalog.familyCategories))) XCTAssertEqual(catalog.languages(matching: "عربي").map(\.id), ["arabic"]) XCTAssertEqual(catalog.languages(matching: "한국어").map(\.id), ["korean"]) XCTAssertEqual( catalog.languages(matching: "", familyCategory: "South Asia").map(\.id), [ "bengali", "gujarati", "hindi", "kannada", "malayalam", "marathi", "nepali", "pashto", "punjabi", "sinhala", "tamil", "telugu", "urdu" ] ) } func testDeselectingLanguageRemovesItsLinkedDialects() { var project = SongProject( title: "Language Project", idea: "Use Arabic and English", languages: [ LanguageSelection(id: "arabic", name: "Arabic"), LanguageSelection(id: "english", name: "English") ], dialects: [ DialectSelection(id: "levantine", name: "Levantine", languageID: "arabic"), DialectSelection(id: "us-english", name: "US English", languageID: "english") ] ) project.removeLanguage(id: "arabic") XCTAssertEqual(project.languages.map(\.id), ["english"]) XCTAssertEqual(project.dialects.map(\.id), ["us-english"]) } }