Split tests for MutableList.shuffle and Iterable.shuffled
This commit is contained in:
committed by
Space Team
parent
f13e127b0f
commit
2dbff89098
@@ -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() {
|
@Test fun decomposeFirst() {
|
||||||
val (first) = listOf(1, 2)
|
val (first) = listOf(1, 2)
|
||||||
assertEquals(first, 1)
|
assertEquals(first, 1)
|
||||||
|
|||||||
@@ -161,25 +161,29 @@ class MutableCollectionTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun shuffled() {
|
@Test fun shuffle() {
|
||||||
val list = MutableList(100) { it }
|
val list = List(100) { it }
|
||||||
val shuffled = list.shuffled()
|
forAllStandardMutableLists(list) { shuffled ->
|
||||||
|
shuffled.shuffle()
|
||||||
assertNotEquals(list, shuffled)
|
assertNotEquals(list, shuffled)
|
||||||
assertEquals(list.toSet(), shuffled.toSet())
|
assertEquals(list.toSet(), shuffled.toSet())
|
||||||
assertEquals(list.size, shuffled.distinct().size)
|
assertEquals(list.size, shuffled.distinct().size)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun shuffledPredictably() {
|
@Test fun shufflePredictably() {
|
||||||
val list = List(10) { it }
|
val list = List(10) { it }
|
||||||
val shuffled1 = list.shuffled(Random(1))
|
repeat(2) {
|
||||||
val shuffled11 = list.shuffled(Random(1))
|
forAllStandardMutableLists(list) { shuffled1 ->
|
||||||
|
shuffled1.shuffle(Random(1))
|
||||||
|
assertEquals("[1, 4, 0, 6, 2, 8, 9, 7, 3, 5]", shuffled1.toString())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
assertEquals(shuffled1, shuffled11)
|
forAllStandardMutableLists(list) { shuffled2 ->
|
||||||
assertEquals("[1, 4, 0, 6, 2, 8, 9, 7, 3, 5]", shuffled1.toString())
|
shuffled2.shuffle(Random(42))
|
||||||
|
assertEquals("[5, 0, 4, 9, 2, 8, 1, 7, 6, 3]", shuffled2.toString())
|
||||||
val shuffled2 = list.shuffled(Random(42))
|
}
|
||||||
assertEquals("[5, 0, 4, 9, 2, 8, 1, 7, 6, 3]", shuffled2.toString())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user