47 lines
1.7 KiB
Swift
47 lines
1.7 KiB
Swift
import MusicAssistantCore
|
|
import XCTest
|
|
|
|
final class LocalGenreStyleCatalogTests: XCTestCase {
|
|
func testWorldwideCatalogCoversMajorGenreAndStyleFamilies() {
|
|
let catalog = LocalGenreStyleCatalog()
|
|
let expectedFamilies: Set<String> = [
|
|
"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"]
|
|
)
|
|
}
|
|
}
|