Last active
August 29, 2015 14:07
-
-
Save pragmaticlogic/8534ed5827ea8fccf45d to your computer and use it in GitHub Desktop.
Test Swift Tower Recursive implementation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import UIKit | |
| import XCTest | |
| import SwiftTower | |
| class SwiftTowerTests: XCTestCase { | |
| override func setUp() { | |
| super.setUp() | |
| // No extra setup code here. | |
| } | |
| override func tearDown() { | |
| // No extra teardown code here. | |
| super.tearDown() | |
| } | |
| func testRecursiveTowerOfHanoi() { | |
| let numberOfDisks = 4 | |
| let destStack:Stack<Int> = Stack<Int>() | |
| func checkTower(dest:Stack<Int>, numberOfDisks:Int) -> Bool { | |
| var match = true | |
| var index = 1 | |
| while match && dest.size() > 0 && index <= numberOfDisks { | |
| match = dest.pop() == index | |
| index++ | |
| } | |
| return match | |
| } | |
| tower(numberOfDisks, source:.Tower1, dest:.Tower3 , temp:.Tower2, finalDest:.Tower3, destStack) | |
| XCTAssert(checkTower(destStack, numberOfDisks), "Pass") | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment