Tanoda
DequeTests.cs
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright (C) Ultraleap, Inc. 2011-2020. *
3 * *
4 * Use subject to the terms of the Apache License 2.0 available at *
5 * http://www.apache.org/licenses/LICENSE-2.0, or another agreement *
6 * between Ultraleap and you, your company or other organization. *
7 ******************************************************************************/
8
9using System;
10using NUnit.Framework;
11
12namespace Leap.Unity.Tests {
13
14 public class DequeTests {
15
16 private Deque<int> _buffer;
17
18 [SetUp]
19 public void Setup() {
20 _buffer = new Deque<int>();
21 }
22
23 [TearDown]
24 public void Teardown() {
25 _buffer.Clear();
26 _buffer = null;
27 }
28
29 [Test]
30 public void InvalidCapacity([Values(int.MinValue, -1, 0)] int minCapacity) {
31 Assert.That(() => {
32 new Deque<int>(minCapacity);
33 }, Throws.ArgumentException);
34 }
35
36 [Test]
37 public void Clear() {
38 _buffer.PushBack(1);
39 _buffer.PushFront(1);
40 Assert.That(_buffer.Count, Is.EqualTo(2));
41 _buffer.Clear();
42 Assert.That(_buffer.Count, Is.EqualTo(0));
43 }
44
45 [Test]
46 public void AccessEmptyBack() {
47 Assert.That(() => {
48 int value = _buffer.Front;
49 Assert.NotNull(value); //Just to remove unused value warning
50 }, Throws.InstanceOf<InvalidOperationException>());
51
52 }
53
54 [Test]
55 public void AccessEmptyFront() {
56 Assert.That(() => {
57 int value = _buffer.Front;
58 Assert.NotNull(value); //Just to remove unused value warning
59 }, Throws.InstanceOf<InvalidOperationException>());
60 }
61
62 [Test]
63 public void InvalidIndex([Values(int.MinValue, -1, 5, int.MaxValue)] int index) {
64 Assert.That(() => {
65 for (int i = 0; i < 5; i++) {
66 _buffer.PushBack(0);
67 }
68
69 int value = _buffer[index];
70 Assert.NotNull(value); //Just to remove unused value warning
71 }, Throws.InstanceOf<IndexOutOfRangeException>());
72 }
73
74 [Test]
75 public void PushFront() {
76 for (int i = 0; i < 100; i++) {
77 _buffer.PushBack(i);
78 Assert.That(_buffer.Back, Is.EqualTo(i));
79 Assert.That(_buffer.Count, Is.EqualTo(i + 1));
80 for (int j = 0; j <= i; j++) {
81 Assert.That(j, Is.EqualTo(_buffer[j]));
82 }
83 }
84
85 for (int i = 0; i < 100; i++) {
86 int value;
87 Assert.That(_buffer.Front, Is.EqualTo(i));
88 _buffer.PopFront(out value);
89 Assert.That(i, Is.EqualTo(value));
90 }
91 }
92
93 [Test]
94 public void PushBack() {
95 for (int i = 0; i < 100; i++) {
96 _buffer.PushFront(i);
97 Assert.That(_buffer.Front, Is.EqualTo(i));
98 Assert.That(_buffer.Count, Is.EqualTo(i + 1));
99 for (int j = 0; j <= i; j++) {
100 Assert.That(i - j, Is.EqualTo(_buffer[j]));
101 }
102 }
103
104 for (int i = 0; i < 100; i++) {
105 int value;
106 Assert.That(_buffer.Back, Is.EqualTo(i));
107 _buffer.PopBack(out value);
108 Assert.That(i, Is.EqualTo(value));
109 }
110 }
111 }
112
113}
void PopFront()
Definition: Deque.cs:70
void PushBack(T t)
Definition: Deque.cs:50
void PopBack()
Definition: Deque.cs:63
void Clear()
Definition: Deque.cs:42
void PushFront(T t)
Definition: Deque.cs:56
void InvalidIndex([Values(int.MinValue, -1, 5, int.MaxValue)] int index)
Definition: DequeTests.cs:63
void InvalidCapacity([Values(int.MinValue, -1, 0)] int minCapacity)
Definition: DequeTests.cs:30