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

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"]
)
}
}