Zum Inhalt

apple/PhysarumApp/Tests/PlaylistDirectorTests.swift

import XCTest
@testable import Physarum

final class PlaylistDirectorTests: XCTestCase {
    func testShouldAdvanceAtOrAfterDwell() {
        XCTAssertFalse(PlaylistDirector.shouldAdvance(dwellElapsed: 59, dwell: 60))
        XCTAssertTrue(PlaylistDirector.shouldAdvance(dwellElapsed: 60, dwell: 60))
        XCTAssertTrue(PlaylistDirector.shouldAdvance(dwellElapsed: 61, dwell: 60))
    }

    func testNextIndexWraps() {
        XCTAssertEqual(PlaylistDirector.nextIndex(current: 0, count: 3, step: 1), 1)
        XCTAssertEqual(PlaylistDirector.nextIndex(current: 2, count: 3, step: 1), 0)
        XCTAssertEqual(PlaylistDirector.nextIndex(current: 0, count: 3, step: -1), 2)
        XCTAssertEqual(PlaylistDirector.nextIndex(current: 1, count: 3, step: -1), 0)
    }

    func testNextIndexEmptyListIsSafe() {
        XCTAssertEqual(PlaylistDirector.nextIndex(current: 0, count: 0, step: 1), 0)
    }
}