NetNewsWire/Modules/FoundationExtras/Tests/FoundationExtrasTests/ArrayExtensionsTests.swift
2024-07-06 21:07:05 -07:00

79 lines
1.7 KiB
Swift

//
// ArrayExtensionsTests.swift
//
//
// Created by Brent Simmons on 5/18/24.
//
import XCTest
import FoundationExtras
final class ArrayExtensionsTests: XCTestCase {
// MARK: - Test chunked(into:)
func testChunkedInto_Empty() {
let testArray = [Int]()
let resultArray = testArray.chunked(into: 50)
XCTAssert(resultArray.isEmpty)
}
func testChunkedInto_LessThanOneChunk() {
let testArray = [1, 2, 3, 4, 5, 6];
let resultArray = testArray.chunked(into: 7)
XCTAssert(resultArray.count == 1)
let singleElement = resultArray[0]
XCTAssertEqual(singleElement, testArray)
}
func testChunkedInto_MoreThanOneChunk() {
let testArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
let resultArray = testArray.chunked(into: 4)
XCTAssert(resultArray.count == 4)
var i = 0
for elementArray in resultArray {
let start = (4 * i)
let expectedElementArray = {
if i == 3 {
return [13]
} else {
return [start + 1, start + 2, start + 3, start + 4]
}
}()
XCTAssertEqual(elementArray, expectedElementArray)
i = i + 1
}
}
// MARK: - Test maxY
func testMaxY_Empty() {
let y = [CGRect]().maxY()
XCTAssertEqual(y, 0.0)
}
func testMaxY() {
let expectedMaxYRect = CGRect(x: 33.0, y: 9845.0, width: 32, height: 100.57)
let testArray = [
CGRect(x: 0.0, y: 64.0, width: 32, height: 1024),
CGRect(x: 1000.0, y: 9845.0, width: 32, height: 32),
CGRect(x: -3.0, y: -633.0, width: 32, height: 6578),
expectedMaxYRect,
CGRect(x: 4, y: 9845.0, width: 32, height: -644),
CGRect(x: 1239, y: 9845.0, width: 32, height: 43)
]
let result = testArray.maxY()
XCTAssertEqual(result, expectedMaxYRect.maxY)
}
}