Implement collection builders

This commit is contained in:
Abduqodiri Qurbonzoda
2020-03-12 05:22:48 +03:00
parent 1bf41ba7d2
commit ec166db506
10 changed files with 1164 additions and 36 deletions
@@ -612,15 +612,13 @@ class ArrayDequeTest {
@Suppress("INVISIBLE_MEMBER")
@Test
fun newCapacity() {
val deque = ArrayDeque<String>()
// oldCapacity < minCapacity < newCapacity
repeat(100) {
val oldCapacity = Random.nextInt(1 shl 30)
val newCapacity = oldCapacity + (oldCapacity shr 1)
val minCapacity = Random.nextInt(oldCapacity + 1 until newCapacity)
assertEquals(newCapacity, deque.newCapacity(oldCapacity, minCapacity))
assertEquals(newCapacity, ArrayDeque.newCapacity(oldCapacity, minCapacity))
}
// oldCapacity < newCapacity < minCapacity
@@ -629,7 +627,7 @@ class ArrayDequeTest {
val newCapacity = oldCapacity + (oldCapacity shr 1)
val minCapacity = Random.nextInt(newCapacity..Int.MAX_VALUE)
assertEquals(minCapacity, deque.newCapacity(oldCapacity, minCapacity))
assertEquals(minCapacity, ArrayDeque.newCapacity(oldCapacity, minCapacity))
}
// newCapacity overflow, oldCapacity < minCapacity <= maxArraySize
@@ -638,7 +636,7 @@ class ArrayDequeTest {
val oldCapacity = Random.nextInt((1 shl 30) + (1 shl 29) until maxArraySize)
val minCapacity = Random.nextInt(oldCapacity..maxArraySize)
assertEquals(maxArraySize, deque.newCapacity(oldCapacity, minCapacity))
assertEquals(maxArraySize, ArrayDeque.newCapacity(oldCapacity, minCapacity))
}
// newCapacity overflow, minCapacity > maxArraySize
@@ -646,7 +644,7 @@ class ArrayDequeTest {
val oldCapacity = Random.nextInt((1 shl 30) + (1 shl 29)..maxArraySize)
val minCapacity = Random.nextInt(maxArraySize + 1..Int.MAX_VALUE)
assertEquals(Int.MAX_VALUE, deque.newCapacity(oldCapacity, minCapacity))
assertEquals(Int.MAX_VALUE, ArrayDeque.newCapacity(oldCapacity, minCapacity))
}
}
}