Files

50 lines
1.4 KiB
Swift

import XCTest
@testable import LayoutKit
final class InfiniteScrollTests: XCTestCase {
func test_newPosition() throws {
let origins: [CGFloat] = [0, 20, 40, 60, 80]
XCTAssertEqual(
InfiniteScroll.getNewPosition(currentOffset: 10, origins: origins),
nil
)
XCTAssertEqual(
InfiniteScroll.getNewPosition(currentOffset: 9, origins: origins),
.init(offset: 69, page: 3)
)
XCTAssertEqual(
InfiniteScroll.getNewPosition(currentOffset: 0, origins: origins),
.init(offset: 60, page: 3)
)
XCTAssertEqual(
InfiniteScroll.getNewPosition(currentOffset: 70, origins: origins),
nil
)
XCTAssertEqual(
InfiniteScroll.getNewPosition(currentOffset: 71, origins: origins),
.init(offset: 11, page: 1)
)
XCTAssertEqual(
InfiniteScroll.getNewPosition(currentOffset: 80, origins: origins),
.init(offset: 20, page: 1)
)
}
func test_newPositionWithItemSpacing() throws {
let origins: [CGFloat] = [0, 21, 42, 63, 84]
XCTAssertEqual(
InfiniteScroll.getNewPosition(currentOffset: 9, origins: origins),
.init(offset: 72, page: 3)
)
}
func test_newPositionWithPadding() throws {
let origins: [CGFloat] = [10, 30, 50, 70, 90]
XCTAssertEqual(
InfiniteScroll.getNewPosition(currentOffset: 19, origins: origins),
.init(offset: 79, page: 3)
)
}
}