Model manual auto musical parameters
This commit is contained in:
@@ -279,4 +279,32 @@ final class SongProjectModelTests: XCTestCase {
|
||||
XCTAssertEqual(project.dialects(forLanguageID: arabic.id), [])
|
||||
XCTAssertEqual(project.languageIDs, ["english"])
|
||||
}
|
||||
|
||||
func testMusicalParametersSupportManualAndAutoModes() {
|
||||
var project = SongProject(
|
||||
id: "project-8",
|
||||
title: "Musical Parameters",
|
||||
idea: "Control tempo and harmony"
|
||||
)
|
||||
|
||||
project.setBPMManually(104)
|
||||
project.setKeyManually("D")
|
||||
project.setScaleAutomatic()
|
||||
project.setMaqamManually("Bayati")
|
||||
|
||||
XCTAssertEqual(project.bpm, ManualAutoValue(mode: .manual, value: 104))
|
||||
XCTAssertEqual(project.key, ManualAutoValue(mode: .manual, value: "D"))
|
||||
XCTAssertEqual(project.scale, ManualAutoValue(mode: .auto))
|
||||
XCTAssertEqual(project.maqam, ManualAutoValue(mode: .manual, value: "Bayati"))
|
||||
|
||||
project.setBPMAutomatic()
|
||||
project.setKeyAutomatic()
|
||||
project.setScaleManually("minor")
|
||||
project.setMaqamAutomatic()
|
||||
|
||||
XCTAssertEqual(project.bpm, ManualAutoValue(mode: .auto))
|
||||
XCTAssertEqual(project.key, ManualAutoValue(mode: .auto))
|
||||
XCTAssertEqual(project.scale, ManualAutoValue(mode: .manual, value: "minor"))
|
||||
XCTAssertEqual(project.maqam, ManualAutoValue(mode: .auto))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user