Zum Inhalt

apple/PhysarumApp/Tests/LocksTests.swift

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