-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMiddleOfTheLinkedListTest.kt
More file actions
35 lines (30 loc) · 1.2 KB
/
MiddleOfTheLinkedListTest.kt
File metadata and controls
35 lines (30 loc) · 1.2 KB
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
package ru.romanow.easy
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.extension.ExtensionContext
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.Arguments
import org.junit.jupiter.params.provider.ArgumentsProvider
import org.junit.jupiter.params.provider.ArgumentsSource
import ru.romanow.models.ListNode
import java.util.stream.Stream
class MiddleOfTheLinkedListTest {
@ArgumentsSource(ValueProvider::class)
@ParameterizedTest(name = "#{index} – Middle element for {0} is {1}")
fun middleNode(values: IntArray, result: Int) {
var current: ListNode? = null
for (i in values.size - 1 downTo 0) {
current = ListNode(values[i], current)
}
val obj = MiddleOfTheLinkedList()
assertThat(obj.middleNode(current))
.extracting("value")
.isEqualTo(result)
}
internal class ValueProvider : ArgumentsProvider {
override fun provideArguments(context: ExtensionContext): Stream<Arguments> =
Stream.of(
Arguments.of(intArrayOf(1, 2, 3, 4, 5), 3),
Arguments.of(intArrayOf(1, 2, 3, 4, 5, 6), 4)
)
}
}