-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
Copy pathBreadthFirstTreeTraversalTests.cs
90 lines (73 loc) · 2.34 KB
/
BreadthFirstTreeTraversalTests.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
using Algorithms.Graph;
using DataStructures.BinarySearchTree;
using NUnit.Framework;
namespace Algorithms.Tests.Graph;
public static class BreadthFirstTreeTraversalTests
{
[Test]
public static void CorrectLevelOrderTraversal()
{
// Arrange
int[] correctPath = { 7, 4, 13, 2, 5, 11, 15, 14, 16 };
int[] insertionOrder = { 7, 13, 11, 15, 14, 4, 5, 16, 2 };
BinarySearchTree<int> testTree = new BinarySearchTree<int>();
foreach (int data in insertionOrder)
{
testTree.Add(data);
}
// Act
int[] levelOrder = BreadthFirstTreeTraversal<int>.LevelOrderTraversal(testTree);
// Assert
Assert.That(correctPath, Is.EqualTo(levelOrder));
}
[Test]
public static void EmptyArrayForNullRoot()
{
// Arrange
BinarySearchTree<int> testTree = new BinarySearchTree<int>();
// Act
int[] levelOrder = BreadthFirstTreeTraversal<int>.LevelOrderTraversal(testTree);
// Assert
Assert.That(levelOrder, Is.Empty);
}
[TestCase(new[] { 7, 9, 5 })]
[TestCase(new[] { 7, 13, 11, 15, 14, 4, 5, 16, 2 })]
public static void IncorrectLevelOrderTraversal(int[] insertion)
{
// Arrange
BinarySearchTree<int> testTree = new BinarySearchTree<int>();
foreach (int data in insertion)
{
testTree.Add(data);
}
// Act
int[] levelOrder = BreadthFirstTreeTraversal<int>.LevelOrderTraversal(testTree);
// Assert
Assert.That(insertion, Is.Not.EqualTo(levelOrder));
}
[Test]
public static void DeepestNodeInTree()
{
// Arrange
BinarySearchTree<int> testTree = new BinarySearchTree<int>();
int[] insertion = { 7, 13, 11, 15, 4, 5, 12, 2, 9 };
foreach (int data in insertion)
{
testTree.Add(data);
}
// Act
int deepest = BreadthFirstTreeTraversal<int>.DeepestNode(testTree);
// Assert
Assert.That(deepest, Is.EqualTo(12));
}
[Test]
public static void DeepestNodeOfEmptyTree()
{
// Arrange
BinarySearchTree<int?> testTree = new BinarySearchTree<int?>();
// Act
int? deepest = BreadthFirstTreeTraversal<int?>.DeepestNode(testTree);
// Assert
Assert.That(deepest, Is.Null);
}
}