Skip to content

Commit fafc556

Browse files
feat: add set, get methods. Add test for him
1 parent 8abae61 commit fafc556

File tree

6 files changed

+56
-6
lines changed

6 files changed

+56
-6
lines changed

lib/src/main/kotlin/treelib/avlTree/AVLTree.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class AVLTree<K : Comparable<K>, V> :
99

1010
override val treeStruct = AVLStruct<Container<K, V?>>()
1111

12-
operator fun AVLTree<K, V>.get(key: K): V? = getItem(key)
12+
operator fun set(key: K, value: V) = putItem(key to value)
1313

14-
operator fun AVLTree<K, V>.set(key: K, value: V) = putItem(key to value)
14+
operator fun get(key: K) = getItem(key)
1515
}

lib/src/main/kotlin/treelib/binTree/BINTree.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class BINTree<K : Comparable<K>, V>
88

99
override val treeStruct = BINStruct<Container<K, V?>>()
1010

11-
operator fun BINTree<K, V>.get(key: K): V? = getItem(key)
11+
operator fun set(key: K, value: V) = putItem(key to value)
1212

13-
operator fun BINTree<K, V>.set(key: K, value: V) = putItem(key to value)
13+
operator fun get(key: K) = getItem(key)
1414
}

lib/src/main/kotlin/treelib/rbTree/RBTree.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class RBTree<K : Comparable<K>, V> :
99

1010
override val treeStruct = RBStruct<Container<K, V?>>()
1111

12-
operator fun RBTree<K, V>.get(key: K): V? = getItem(key)
12+
operator fun set(key: K, value: V) = putItem(key to value)
1313

14-
operator fun RBTree<K, V>.set(key: K, value: V) = putItem(key to value)
14+
operator fun get(key: K) = getItem(key)
1515
}

lib/src/test/kotlin/treelib/AVLTreeTest.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package treelib
22

3+
import org.junit.jupiter.api.Test
34
import org.junit.jupiter.params.ParameterizedTest
45
import org.junit.jupiter.params.provider.ValueSource
56
import treelib.avlTree.*
@@ -80,4 +81,15 @@ class AVLTreeTest {
8081

8182
assertEquals(expected = treeSW.getPrivateNode(treeW.getPrivateNode(tree))?.value?.key, actual = null)
8283
}
84+
85+
@Test
86+
fun `test get set methods`() {
87+
for (i in 1..3) {
88+
tree[i] = i
89+
}
90+
91+
assertEquals(expected = tree[1], actual = 1)
92+
assertEquals(expected = tree[2], actual = 2)
93+
assertEquals(expected = tree[3], actual = 3)
94+
}
8395
}

lib/src/test/kotlin/treelib/BINTreeTest.kt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,4 +86,30 @@ class BINTreeTest {
8686
actual = numbers[index + 1]
8787
)
8888
}
89+
90+
@Test
91+
fun `test get set methods`() {
92+
for (i in 1..3) {
93+
tree[i] = i
94+
}
95+
96+
assertEquals(expected = tree[1], actual = 1)
97+
assertEquals(expected = tree[2], actual = 2)
98+
assertEquals(expected = tree[3], actual = 3)
99+
}
100+
101+
102+
@Test
103+
fun `test preorders and inorder`() {
104+
val num = mutableListOf(5, 4, 6, 3, 7)
105+
for (i in num) {
106+
tree.putItem(Pair(i, i))
107+
}
108+
109+
val listPreorder = tree.preOrder()
110+
val listInorder = tree.inOrder()
111+
112+
assertEquals(listPreorder[0], Pair(5, 5))
113+
assertEquals(listInorder[0], Pair(3, 3))
114+
}
89115
}

lib/src/test/kotlin/treelib/RBTreeTest.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package treelib
22

3+
import org.junit.jupiter.api.Test
34
import org.junit.jupiter.params.ParameterizedTest
45
import org.junit.jupiter.params.provider.ValueSource
56
import treelib.rbTree.*
@@ -52,4 +53,15 @@ class RBTreeTest {
5253
assertEquals(expected = treeSW.getPrivateNode(treeW.getPrivateNode(tree))?.left?.color, actual = Markers.RED)
5354
assertEquals(expected = treeSW.getPrivateNode(treeW.getPrivateNode(tree))?.color, actual = Markers.BLACK)
5455
}
56+
57+
@Test
58+
fun `test set method`() {
59+
for (i in (1..3)) {
60+
tree[i] = i
61+
}
62+
63+
assertEquals(expected = tree[3], actual = 3)
64+
assertEquals(expected = tree[2], actual = 2)
65+
assertEquals(expected = tree[1], actual = 1)
66+
}
5567
}

0 commit comments

Comments
 (0)