Skip to content

Commit c67c29d

Browse files
committed
Binary Tree (validate): Add new tests
1 parent 697c6ae commit c67c29d

File tree

1 file changed

+50
-1
lines changed
  • src/test/kotlin/com/igorwojda/binarytree/validate

1 file changed

+50
-1
lines changed

Diff for: src/test/kotlin/com/igorwojda/binarytree/validate/challenge.kt

+50-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.igorwojda.binarytree.validate
22

33
import org.amshove.kluent.shouldBeEqualTo
4+
import org.amshove.kluent.shouldEqual
45
import org.junit.jupiter.api.Test
56

67
private fun isValidSearchBinaryTree(node: Node<Int>): Boolean {
@@ -29,7 +30,7 @@ private class Test {
2930
}
3031

3132
@Test
32-
fun `Validate invalid BST`() {
33+
fun `Validate invalid BST 1`() {
3334
// -- -------Tree------------
3435
//
3536
// 10
@@ -50,6 +51,54 @@ private class Test {
5051

5152
isValidSearchBinaryTree(node) shouldBeEqualTo false
5253
}
54+
55+
@Test
56+
fun `Validate invalid BST 2`() {
57+
// -- -------Tree------------
58+
//
59+
// 10
60+
// / \
61+
// 5 15
62+
// / \
63+
// 0 20
64+
// / \
65+
// -1 999
66+
// --------------------------
67+
68+
val node = Node(10)
69+
node.insert(5)
70+
node.insert(15)
71+
node.insert(0)
72+
node.insert(-1)
73+
node.insert(20)
74+
node.left?.left?.right = Node(999)
75+
76+
isValidSearchBinaryTree(node) shouldEqual false
77+
}
78+
79+
@Test
80+
fun `Validate invalid BST 3`() {
81+
// -- -------Tree------------
82+
//
83+
// 10
84+
// / \
85+
// 5 15
86+
// / \
87+
// 0 20
88+
// / \
89+
// 999 21
90+
// --------------------------
91+
92+
val node = Node(10)
93+
node.insert(5)
94+
node.insert(15)
95+
node.insert(0)
96+
node.insert(20)
97+
node.insert(21)
98+
node.right?.right?.left = Node(999)
99+
100+
isValidSearchBinaryTree(node) shouldEqual false
101+
}
53102
}
54103

55104
private data class Node<E : Comparable<E>>(

0 commit comments

Comments
 (0)