terrain/Terrain2Tests/QueueTests.swift
Eryn Wells 47df42c8e5 Add a basic Queue data structure
Implemented as a linked list.
2018-11-10 17:42:23 -05:00

51 lines
1.3 KiB
Swift

//
// QueueTests.swift
// Terrain2Tests
//
// Created by Eryn Wells on 11/10/18.
// Copyright © 2018 Eryn Wells. All rights reserved.
//
import XCTest
@testable import Terrain2
class QueueTests: XCTestCase {
func testEnqueue() {
var queue = Queue<Int>()
queue.enqueue(item: 1)
queue.enqueue(item: 2)
queue.enqueue(item: 3)
XCTAssertEqual(queue.count, 3)
XCTAssertEqual(queue.head?.item, 1)
XCTAssertEqual(queue.head?.next?.item, 2)
XCTAssertEqual(queue.head?.next?.next?.item, 3)
}
func testDequeue() {
var queue = Queue<Int>()
queue.enqueue(item: 1)
queue.enqueue(item: 2)
queue.enqueue(item: 3)
XCTAssertEqual(queue.count, 3)
XCTAssertEqual(queue.head?.item, 1)
XCTAssertEqual(queue.tail?.item, 3)
XCTAssertEqual(queue.dequeue(), 1)
XCTAssertEqual(queue.count, 2)
XCTAssertEqual(queue.head?.item, 2)
XCTAssertEqual(queue.tail?.item, 3)
XCTAssertEqual(queue.dequeue(), 2)
XCTAssertEqual(queue.count, 1)
XCTAssertEqual(queue.head?.item, 3)
XCTAssertEqual(queue.tail?.item, 3)
XCTAssertEqual(queue.dequeue(), 3)
XCTAssertEqual(queue.count, 0)
XCTAssertNil(queue.head)
XCTAssertNil(queue.tail)
}
}