import XCTest
@testable import Physarum
import PhysarumEngine
final class LocksTests: XCTestCase {
func testToggleAddsAndRemoves() {
let state = AppState()
XCTAssertFalse(state.isLocked(.moveSpeed(0)))
state.toggleLock(.moveSpeed(0))
XCTAssertTrue(state.isLocked(.moveSpeed(0)))
state.toggleLock(.moveSpeed(0))
XCTAssertFalse(state.isLocked(.moveSpeed(0)))
}
func testDistinctSpeciesIndicesLockIndependently() {
let state = AppState()
state.toggleLock(.moveSpeed(0))
XCTAssertTrue(state.isLocked(.moveSpeed(0)))
XCTAssertFalse(state.isLocked(.moveSpeed(1)))
XCTAssertFalse(state.isLocked(.moveSpeed(2)))
}
func testNonScalarParamsAreLockable() {
let state = AppState()
state.toggleLock(.spawnPattern)
state.toggleLock(.backgroundColor)
XCTAssertTrue(state.isLocked(.spawnPattern))
XCTAssertTrue(state.isLocked(.backgroundColor))
}
}