Oops fix my algorithm and update the tests

This commit is contained in:
Eryn Wells 2018-11-10 17:05:54 -05:00
parent 359c7ef987
commit 5233a94fec
2 changed files with 62 additions and 63 deletions

View file

@ -65,51 +65,52 @@ class DiamondSquareAlgorithmTests: XCTestCase {
}
class DiamondSquareBoxTests: XCTestCase {
fileprivate let box = Box(origin: Point(x: 3, y: 4), size: Size(w: 5, h: 5))
fileprivate let box = Box(origin: Point(x: 0, y: 0), size: Size(w: 5, h: 5))
func testMidpoint() {
let midpoint = box.midpoint
XCTAssertEqual(midpoint.x, 6)
XCTAssertEqual(midpoint.y, 7)
XCTAssertEqual(midpoint.x, 2)
XCTAssertEqual(midpoint.y, 2)
}
func testSubdivision() {
let subdivs = box.subdivisions
XCTAssertEqual(subdivs.count, 4)
XCTAssertEqual(subdivs[0], Box(origin: Point(x: 3, y: 4), size: Size(w: 3, h: 3)))
XCTAssertEqual(subdivs[1], Box(origin: Point(x: 6, y: 4), size: Size(w: 3, h: 3)))
XCTAssertEqual(subdivs[2], Box(origin: Point(x: 3, y: 7), size: Size(w: 3, h: 3)))
XCTAssertEqual(subdivs[3], Box(origin: Point(x: 6, y: 7), size: Size(w: 3, h: 3)))
XCTAssertEqual(subdivs[0], Box(origin: Point(x: 0, y: 0), size: Size(w: 3, h: 3)))
XCTAssertEqual(subdivs[1], Box(origin: Point(x: 2, y: 0), size: Size(w: 3, h: 3)))
XCTAssertEqual(subdivs[2], Box(origin: Point(x: 0, y: 2), size: Size(w: 3, h: 3)))
XCTAssertEqual(subdivs[3], Box(origin: Point(x: 2, y: 2), size: Size(w: 3, h: 3)))
}
func testBFS() {
var expectedBoxes: [Box] = [
box,
Box(origin: Point(x: 3, y: 4), size: Size(w: 3, h: 3)),
Box(origin: Point(x: 6, y: 4), size: Size(w: 3, h: 3)),
Box(origin: Point(x: 3, y: 7), size: Size(w: 3, h: 3)),
Box(origin: Point(x: 6, y: 7), size: Size(w: 3, h: 3)),
Box(origin: Point(x: 3, y: 4), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 5, y: 4), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 3, y: 6), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 5, y: 6), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 0, y: 0), size: Size(w: 3, h: 3)),
Box(origin: Point(x: 2, y: 0), size: Size(w: 3, h: 3)),
Box(origin: Point(x: 0, y: 2), size: Size(w: 3, h: 3)),
Box(origin: Point(x: 2, y: 2), size: Size(w: 3, h: 3)),
Box(origin: Point(x: 6, y: 4), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 8, y: 4), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 6, y: 6), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 8, y: 6), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 0, y: 0), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 1, y: 0), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 0, y: 1), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 1, y: 1), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 3, y: 7), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 5, y: 7), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 3, y: 9), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 5, y: 9), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 2, y: 0), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 3, y: 0), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 2, y: 1), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 3, y: 1), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 6, y: 7), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 8, y: 7), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 6, y: 9), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 8, y: 9), size: Size(w: 2, h: 2)),
].reversed()
Box(origin: Point(x: 0, y: 2), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 1, y: 2), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 0, y: 3), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 1, y: 3), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 2, y: 2), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 3, y: 2), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 2, y: 3), size: Size(w: 2, h: 2)),
Box(origin: Point(x: 3, y: 3), size: Size(w: 2, h: 2)),
].reversed()
box.breadthFirstSearch { (box: Box) -> (Void) in
let exBox = expectedBoxes.popLast()
@ -122,52 +123,40 @@ class DiamondSquareBoxTests: XCTestCase {
// MARK: Sides
func testNorth() {
let pt = box.north
XCTAssertEqual(pt.x, 6)
XCTAssertEqual(pt.y, 4)
XCTAssertEqual(box.north, Point(x: 2, y: 0))
}
func testWest() {
let pt = box.west
XCTAssertEqual(pt.x, 3)
XCTAssertEqual(pt.y, 7)
XCTAssertEqual(box.west, Point(x: 0, y: 2))
}
func testSouth() {
let pt = box.south
XCTAssertEqual(pt.x, 6)
XCTAssertEqual(pt.y, 9)
XCTAssertEqual(box.south, Point(x: 2, y: 4))
}
func testEast() {
let pt = box.east
XCTAssertEqual(pt.x, 8)
XCTAssertEqual(pt.y, 7)
XCTAssertEqual(box.east, Point(x: 4, y: 2))
}
// MARK: Corners
func testNorthwest() {
let pt = box.northwest
XCTAssertEqual(pt.x, 3)
XCTAssertEqual(pt.y, 4)
XCTAssertEqual(pt, Point())
}
func testNortheast() {
let pt = box.northeast
XCTAssertEqual(pt.x, 8)
XCTAssertEqual(pt.y, 4)
XCTAssertEqual(pt, Point(x: 4, y: 0))
}
func testSouthwest() {
let pt = box.southwest
XCTAssertEqual(pt.x, 3)
XCTAssertEqual(pt.y, 9)
XCTAssertEqual(pt, Point(x: 0, y: 4))
}
func testSoutheast() {
let pt = box.southeast
XCTAssertEqual(pt.x, 8)
XCTAssertEqual(pt.y, 9)
XCTAssertEqual(pt, Point(x: 4, y: 4))
}
}