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