Split tests for MutableList.shuffle and Iterable.shuffled

This commit is contained in:
Ilya Gorbunov
2023-04-06 09:09:43 +02:00
committed by Space Team
parent f13e127b0f
commit 2dbff89098
2 changed files with 45 additions and 15 deletions
@@ -1123,6 +1123,32 @@ class CollectionTest {
}
}
@Test fun shuffled() {
val data = List(100) { it }
val list = data.toMutableList()
val shuffled = list.shuffled()
assertEquals(data, list)
assertNotEquals(list, shuffled)
assertEquals(list.toSet(), shuffled.toSet())
assertEquals(list.size, shuffled.distinct().size)
}
@Test fun shuffledPredictably() {
val data = List(10) { it }
val list = data.toMutableList()
val shuffled1 = list.shuffled(Random(1))
val shuffled11 = list.shuffled(Random(1))
assertEquals(data, list)
assertEquals(shuffled1, shuffled11)
assertEquals("[1, 4, 0, 6, 2, 8, 9, 7, 3, 5]", shuffled1.toString())
val shuffled2 = list.shuffled(Random(42))
assertEquals("[5, 0, 4, 9, 2, 8, 1, 7, 6, 3]", shuffled2.toString())
}
@Test fun decomposeFirst() {
val (first) = listOf(1, 2)
assertEquals(first, 1)
@@ -161,25 +161,29 @@ class MutableCollectionTest {
}
}
@Test fun shuffled() {
val list = MutableList(100) { it }
val shuffled = list.shuffled()
assertNotEquals(list, shuffled)
assertEquals(list.toSet(), shuffled.toSet())
assertEquals(list.size, shuffled.distinct().size)
@Test fun shuffle() {
val list = List(100) { it }
forAllStandardMutableLists(list) { shuffled ->
shuffled.shuffle()
assertNotEquals(list, shuffled)
assertEquals(list.toSet(), shuffled.toSet())
assertEquals(list.size, shuffled.distinct().size)
}
}
@Test fun shuffledPredictably() {
@Test fun shufflePredictably() {
val list = List(10) { it }
val shuffled1 = list.shuffled(Random(1))
val shuffled11 = list.shuffled(Random(1))
repeat(2) {
forAllStandardMutableLists(list) { shuffled1 ->
shuffled1.shuffle(Random(1))
assertEquals("[1, 4, 0, 6, 2, 8, 9, 7, 3, 5]", shuffled1.toString())
}
}
assertEquals(shuffled1, shuffled11)
assertEquals("[1, 4, 0, 6, 2, 8, 9, 7, 3, 5]", shuffled1.toString())
val shuffled2 = list.shuffled(Random(42))
assertEquals("[5, 0, 4, 9, 2, 8, 1, 7, 6, 3]", shuffled2.toString())
forAllStandardMutableLists(list) { shuffled2 ->
shuffled2.shuffle(Random(42))
assertEquals("[5, 0, 4, 9, 2, 8, 1, 7, 6, 3]", shuffled2.toString())
}
}
}