RxSwift/RxTests/RxSwiftTests/Tests/QueueTests.swift

62 lines
1.4 KiB
Swift

//
// QueueTests.swift
// Rx
//
// Created by Krunoslav Zaher on 3/21/15.
// Copyright (c) 2015 Krunoslav Zaher. All rights reserved.
//
import Foundation
import RxSwift
import XCTest
class QueueTest : RxTest {
override func setUp() {
super.setUp()
}
override func tearDown() {
super.tearDown()
}
}
extension QueueTest {
func test() {
var queue: Queue<Int> = Queue(capacity: 2)
XCTAssertEqual(queue.count, 0)
for var i = 100; i < 200; ++i {
queue.enqueue(i)
let allElements = Array(queue)
let correct = Array(100 ... i)
XCTAssertEqual(allElements, correct)
XCTAssertEqual(queue.peek(), 100)
XCTAssertEqual(queue.count, i - 100 + 1)
}
for var i = 100; i < 200; ++i {
let allElements2 = Array(queue)
let correct2 = Array(i ... 199)
XCTAssertEqual(allElements2, correct2)
XCTAssertEqual(queue.dequeue(), i)
XCTAssertEqual(queue.count, 200 - i - 1)
}
}
func testComplexity() {
var queue: Queue<Int> = Queue(capacity: 2)
XCTAssertEqual(queue.count, 0)
for var i = 0; i < 200000; ++i {
queue.enqueue(i)
}
XCTAssertEqual(Array(0 ..< 200000), Array(queue))
}
}