import MusicAssistantCore import XCTest final class LocalGenreStyleCatalogTests: XCTestCase { func testWorldwideCatalogCoversMajorGenreAndStyleFamilies() { let catalog = LocalGenreStyleCatalog() let expectedFamilies: Set = [ "Pop & Contemporary", "Rock & Alternative", "Electronic & Dance", "Hip Hop, R&B & Soul", "Jazz & Blues", "Country, Folk & Roots", "Latin & Caribbean", "Middle East & North Africa", "South Asian", "East Asian", "Southeast Asia & Oceania", "African", "Reggae & Caribbean", "Classical & Cinematic" ] XCTAssertGreaterThan(catalog.items.count, 180) XCTAssertTrue(expectedFamilies.isSubset(of: Set(catalog.familyCategories))) XCTAssertTrue(catalog.regionsOfOrigin.contains("Arab World")) XCTAssertTrue(catalog.regionsOfOrigin.contains("West Africa")) XCTAssertTrue(catalog.regionsOfOrigin.contains("South Asia")) XCTAssertTrue(catalog.regionsOfOrigin.contains("Latin America")) } func testCatalogSearchesAliasesArabicTermsAndCategoryRegionFilters() { let catalog = LocalGenreStyleCatalog() XCTAssertEqual(catalog.styles(matching: "dnb").map(\.id), ["drum-and-bass"]) XCTAssertEqual(catalog.styles(matching: "بوب عربي").map(\.id), ["arabic-pop"]) XCTAssertEqual( catalog.styles( matching: "", familyCategory: "Latin & Caribbean", regionOrigin: "Brazil" ).map(\.id), ["baile-funk", "bossa-nova", "samba"] ) } }