Add worldwide instrument catalog
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import MusicAssistantCore
|
||||
import XCTest
|
||||
|
||||
final class LocalInstrumentCatalogTests: XCTestCase {
|
||||
func testWorldwideCatalogCoversRequiredRegionsAndInstrumentTypes() {
|
||||
let catalog = LocalInstrumentCatalog()
|
||||
let expectedRegions = [
|
||||
"Western", "Middle East", "Africa", "South Asia", "East Asia", "Southeast Asia", "Latin America", "Modern"
|
||||
]
|
||||
let expectedInstrumentIDs = [
|
||||
"piano", "oud", "djembe", "sitar", "erhu", "angklung", "charango", "bagpipes", "synthesizer"
|
||||
]
|
||||
|
||||
XCTAssertGreaterThanOrEqual(catalog.items.count, 200)
|
||||
XCTAssertTrue(expectedRegions.allSatisfy { region in
|
||||
catalog.items.contains { $0.regionOrigin?.contains(region) == true }
|
||||
})
|
||||
XCTAssertTrue(expectedInstrumentIDs.allSatisfy { id in
|
||||
catalog.items.contains { $0.id == id }
|
||||
})
|
||||
}
|
||||
|
||||
func testWorldwideCatalogHasUniqueStableInstrumentIDs() {
|
||||
let items = LocalInstrumentCatalog.worldwideItems
|
||||
|
||||
XCTAssertEqual(Set(items.map(\.id)).count, items.count)
|
||||
XCTAssertTrue(items.allSatisfy { !$0.name.isEmpty && !$0.familyCategory.isEmpty })
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user