diff --git a/Terrain2Tests/AlgorithmsTests.swift b/Terrain2Tests/AlgorithmsTests.swift index 17858b1..9a1475f 100644 --- a/Terrain2Tests/AlgorithmsTests.swift +++ b/Terrain2Tests/AlgorithmsTests.swift @@ -13,7 +13,25 @@ public typealias Box = DiamondSquareAlgorithm.Box public typealias Point = DiamondSquareAlgorithm.Box.Point public typealias Size = DiamondSquareAlgorithm.Box.Size -class DiamondSquareBFSTests: XCTestCase { +class DiamondSquareBoxTests: XCTestCase { + + func testMidpoint() { + let box = Box(origin: (x: 3, y: 4), size: (w: 5, h: 5)) + let midpoint = box.midpoint + XCTAssertEqual(midpoint.x, 6) + XCTAssertEqual(midpoint.y, 7) + } + + func testSubdivision() { + let box = Box(origin: (x: 3, y: 4), size: (w: 5, h: 5)) + let subdivs = box.subdivisions + XCTAssertEqual(subdivs.count, 4) + XCTAssertEqual(subdivs[0], Box(origin: (x: 3, y: 4), size: (w: 3, h: 3))) + XCTAssertEqual(subdivs[1], Box(origin: (x: 6, y: 4), size: (w: 3, h: 3))) + XCTAssertEqual(subdivs[2], Box(origin: (x: 3, y: 7), size: (w: 3, h: 3))) + XCTAssertEqual(subdivs[3], Box(origin: (x: 6, y: 7), size: (w: 3, h: 3))) + } + func testBFS() { let box = Box(origin: (x: 3, y: 4), size: (w: 5, h: 5)) var expectedBoxes: [Box] = [ @@ -42,7 +60,7 @@ class DiamondSquareBFSTests: XCTestCase { Box(origin: (x: 8, y: 7), size: (w: 2, h: 2)), Box(origin: (x: 6, y: 9), size: (w: 2, h: 2)), Box(origin: (x: 8, y: 9), size: (w: 2, h: 2)), - ].reversed() + ].reversed() box.breadthFirstSearch { (box: Box) -> (Void) in let exBox = expectedBoxes.popLast() @@ -51,9 +69,39 @@ class DiamondSquareBFSTests: XCTestCase { } XCTAssertEqual(expectedBoxes.count, 0) } -} -class DiamondSquareBoxTests: XCTestCase { + // MARK: Sides + + func testNorth() { + let box = Box(origin: (x: 3, y: 4), size: (w: 5, h: 5)) + let pt = box.north + XCTAssertEqual(pt.x, 6) + XCTAssertEqual(pt.y, 4) + } + + func testWest() { + let box = Box(origin: (x: 3, y: 4), size: (w: 5, h: 5)) + let pt = box.west + XCTAssertEqual(pt.x, 3) + XCTAssertEqual(pt.y, 7) + } + + func testSouth() { + let box = Box(origin: (x: 3, y: 4), size: (w: 5, h: 5)) + let pt = box.south + XCTAssertEqual(pt.x, 6) + XCTAssertEqual(pt.y, 9) + } + + func testEast() { + let box = Box(origin: (x: 3, y: 4), size: (w: 5, h: 5)) + let pt = box.east + XCTAssertEqual(pt.x, 8) + XCTAssertEqual(pt.y, 7) + } + + // MARK: Corners + func testNorthwest() { let box = Box(origin: (x: 3, y: 4), size: (w: 5, h: 5)) let pt = box.northwest @@ -81,21 +129,4 @@ class DiamondSquareBoxTests: XCTestCase { XCTAssertEqual(pt.x, 8) XCTAssertEqual(pt.y, 9) } - - func testMidpoint() { - let box = Box(origin: (x: 3, y: 4), size: (w: 5, h: 5)) - let midpoint = box.midpoint - XCTAssertEqual(midpoint.x, 6) - XCTAssertEqual(midpoint.y, 7) - } - - func testSubdivision() { - let box = Box(origin: (x: 3, y: 4), size: (w: 5, h: 5)) - let subdivs = box.subdivisions - XCTAssertEqual(subdivs.count, 4) - XCTAssertEqual(subdivs[0], Box(origin: (x: 3, y: 4), size: (w: 3, h: 3))) - XCTAssertEqual(subdivs[1], Box(origin: (x: 6, y: 4), size: (w: 3, h: 3))) - XCTAssertEqual(subdivs[2], Box(origin: (x: 3, y: 7), size: (w: 3, h: 3))) - XCTAssertEqual(subdivs[3], Box(origin: (x: 6, y: 7), size: (w: 3, h: 3))) - } }