Skip to content

Commit d3bb4c0

Browse files
committed
Simplify PersistentListGenerator test list creation
1 parent f0dd638 commit d3bb4c0

File tree

1 file changed

+12
-37
lines changed
  • kotlinx-collections-immutable/tests/src/test/kotlin/kotlinx.collections.immutable/contractTests/immutableList

1 file changed

+12
-37
lines changed

kotlinx-collections-immutable/tests/src/test/kotlin/kotlinx.collections.immutable/contractTests/immutableList/PersistentListGenerator.kt

Lines changed: 12 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -54,37 +54,25 @@ class PersistentListGenerator {
5454

5555
object HeadSubList : TestStringListGenerator() {
5656
override fun create(elements: Array<out String>): List<String> {
57-
val suffix = arrayOf("f", "g")
58-
val all = Array(elements.size + suffix.size) {
59-
if (it < elements.size) elements[it] else suffix[it - elements.size]
60-
}
61-
return persistentListOf<String>().addAll(all.toList())
57+
return persistentListOf<String>()
58+
.addAll(listOf(*elements, "f", "g"))
6259
.subList(0, elements.size)
6360
}
6461
}
6562

6663
object TailSubList : TestStringListGenerator() {
6764
override fun create(elements: Array<String>): List<String> {
68-
val prefix = arrayOf("f", "g")
69-
val all = Array(elements.size + prefix.size) {
70-
if (it < prefix.size) prefix[it] else elements[it - prefix.size]
71-
}
72-
return persistentListOf<String>().addAll(all.toList())
65+
return persistentListOf<String>()
66+
.addAll(listOf("f", "g", *elements))
7367
.subList(2, elements.size + 2)
7468
}
7569
}
7670

7771
object MiddleSubList : TestStringListGenerator() {
7872
override fun create(elements: Array<String>): List<String> {
79-
val prefix = arrayOf("f", "g")
80-
val suffix = arrayOf("h", "i")
8173

82-
val all = arrayOfNulls<String>(2 + elements.size + 2)
83-
System.arraycopy(prefix, 0, all, 0, 2)
84-
System.arraycopy(elements, 0, all, 2, elements.size)
85-
System.arraycopy(suffix, 0, all, 2 + elements.size, 2)
86-
87-
return persistentListOf<String>().addAll(all.toList() as List<String>)
74+
return persistentListOf<String>()
75+
.addAll(listOf("f", "g", *elements, "h", "i"))
8876
.subList(2, elements.size + 2)
8977
}
9078
}
@@ -125,37 +113,24 @@ class PersistentListGenerator {
125113

126114
object HeadSubList : TestStringListGenerator() {
127115
override fun create(elements: Array<out String>): MutableList<String> {
128-
val suffix = arrayOf("f", "g")
129-
val all = Array(elements.size + suffix.size) {
130-
if (it < elements.size) elements[it] else suffix[it - elements.size]
131-
}
132-
return persistentListOf<String>().builder().apply { addAll(all.toList()) }
116+
return persistentListOf<String>().builder()
117+
.apply { addAll(listOf(*elements, "f", "g")) }
133118
.subList(0, elements.size)
134119
}
135120
}
136121

137122
object TailSubList : TestStringListGenerator() {
138123
override fun create(elements: Array<String>): MutableList<String> {
139-
val prefix = arrayOf("f", "g")
140-
val all = Array(elements.size + prefix.size) {
141-
if (it < prefix.size) prefix[it] else elements[it - prefix.size]
142-
}
143-
return persistentListOf<String>().builder().apply { addAll(all.toList()) }
124+
return persistentListOf<String>().builder()
125+
.apply { addAll(listOf("f", "g", *elements)) }
144126
.subList(2, elements.size + 2)
145127
}
146128
}
147129

148130
object MiddleSubList : TestStringListGenerator() {
149131
override fun create(elements: Array<String>): MutableList<String> {
150-
val prefix = arrayOf("f", "g")
151-
val suffix = arrayOf("h", "i")
152-
153-
val all = arrayOfNulls<String>(2 + elements.size + 2)
154-
System.arraycopy(prefix, 0, all, 0, 2)
155-
System.arraycopy(elements, 0, all, 2, elements.size)
156-
System.arraycopy(suffix, 0, all, 2 + elements.size, 2)
157-
158-
return persistentListOf<String>().builder().apply { addAll(all.toList() as List<String>) }
132+
return persistentListOf<String>().builder()
133+
.apply { addAll(listOf("f", "g", *elements, "h", "i")) }
159134
.subList(2, elements.size + 2)
160135
}
161136
}

0 commit comments

Comments
 (0)