Skip to content

Instantly share code, notes, and snippets.

@trilliwon
Created December 16, 2016 01:43
Show Gist options
  • Save trilliwon/3e4c6d895c59f68e7f1b1af5c856df13 to your computer and use it in GitHub Desktop.
Save trilliwon/3e4c6d895c59f68e7f1b1af5c856df13 to your computer and use it in GitHub Desktop.
QuicksortTests in swift
import XCTest
@testable import Quicksort
class QuicksortTests: XCTestCase {
// RED
// / \
// REFACTOR GREEN
func test_quicksort_param() {
let array = [0]
XCTAssertEqual(array, quicksort(array: array), "Should be equal.")
}
func test_quicksort_param_1() {
let array = [1]
XCTAssertEqual(array, quicksort(array: array), "Should be equal.")
}
func test_quicksort_length_2() {
let array = [0, 1]
XCTAssertEqual(array, quicksort(array: array), "Should return [0, 1]")
}
func test_quicksort_length_2_1() {
let array = [1, 0]
XCTAssertEqual([0, 1], quicksort(array: array), "Should return [0, 1]")
}
func test_quicksort_long_array() {
let array = [1, 0, 6, 3, 5, 4, 2]
XCTAssertEqual([0, 1, 2, 3, 4, 5, 6], quicksort(array: array), "Should return sorted array.")
}
func test_quicksort_double_array() {
let array = [1.0, 0, 6.5, 3.1, 5.4, 4, 2]
XCTAssertEqual([0, 1.0, 2, 3.1, 4, 5.4, 6.5], quicksort(array: array), "Should return sorted array.")
}
func test_measure_time() {
var randomArray: [Int] = []
for _ in 0...10000 {
randomArray.append(Int(arc4random() % 100000 ))
}
measure {
_ = quicksort(array: randomArray)
}
}
func test_sorted() {
var randomArray: [Int] = []
for _ in 0...10000 {
randomArray.append(Int(arc4random() % 100000 ))
}
measure {
randomArray.sort()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment