Align behavoir of collection constructors across platforms #KT-59192
The initialCapacity should be non-negative and loadFactor should be positive. As a part of efforts to stabilize Native stdlib.
This commit is contained in:
committed by
Space Team
parent
0bef1533e2
commit
830c78773c
@@ -766,4 +766,41 @@ class MapTest {
|
||||
assertFailsWith<NoSuchElementException> { empty.minOfWith(naturalOrder()) { it.toString() } }
|
||||
assertFailsWith<NoSuchElementException> { empty.maxOfWith(naturalOrder()) { it.toString() } }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun constructorWithCapacity() {
|
||||
assertFailsWith<IllegalArgumentException> {
|
||||
HashMap<String, String>(/*initialCapacity = */-1)
|
||||
}
|
||||
assertFailsWith<IllegalArgumentException> {
|
||||
HashMap<String, String>(/*initialCapacity = */-1, /*loadFactor = */0.5f)
|
||||
}
|
||||
assertFailsWith<IllegalArgumentException> {
|
||||
HashMap<String, String>(/*initialCapacity = */10, /*loadFactor = */0.0f)
|
||||
}
|
||||
assertFailsWith<IllegalArgumentException> {
|
||||
HashMap<String, String>(/*initialCapacity = */10, /*loadFactor = */Float.NaN)
|
||||
}
|
||||
assertEquals(0, HashMap<String, String>(/*initialCapacity = */0).size)
|
||||
assertEquals(0, HashMap<String, String>(/*initialCapacity = */10).size)
|
||||
assertEquals(0, HashMap<String, String>(/*initialCapacity = */0, /*loadFactor = */0.5f).size)
|
||||
assertEquals(0, HashMap<String, String>(/*initialCapacity = */10, /*loadFactor = */1.5f).size)
|
||||
|
||||
assertFailsWith<IllegalArgumentException> {
|
||||
LinkedHashMap<String, String>(/*initialCapacity = */-1)
|
||||
}
|
||||
assertFailsWith<IllegalArgumentException> {
|
||||
LinkedHashMap<String, String>(/*initialCapacity = */-1, /*loadFactor = */0.5f)
|
||||
}
|
||||
assertFailsWith<IllegalArgumentException> {
|
||||
LinkedHashMap<String, String>(/*initialCapacity = */10, /*loadFactor = */0.0f)
|
||||
}
|
||||
assertFailsWith<IllegalArgumentException> {
|
||||
LinkedHashMap<String, String>(/*initialCapacity = */10, /*loadFactor = */Float.NaN)
|
||||
}
|
||||
assertEquals(0, LinkedHashMap<String, String>(/*initialCapacity = */0).size)
|
||||
assertEquals(0, LinkedHashMap<String, String>(/*initialCapacity = */10).size)
|
||||
assertEquals(0, LinkedHashMap<String, String>(/*initialCapacity = */0, /*loadFactor = */0.5f).size)
|
||||
assertEquals(0, LinkedHashMap<String, String>(/*initialCapacity = */10, /*loadFactor = */1.5f).size)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user