Provide extensions to copy maps.

#KT-9108
This commit is contained in:
Ilya Gorbunov
2016-05-13 17:42:28 +03:00
parent 0ce4bce4a5
commit efc8f2c88a
3 changed files with 55 additions and 10 deletions
+28 -10
View File
@@ -162,18 +162,36 @@ class MapTest {
assertEquals("Mells", m2["location2"])
}
@test fun createUsingPairs() {
val map = mapOf(Pair("a", 1), Pair("b", 2))
assertEquals(2, map.size)
assertEquals(1, map["a"])
assertEquals(2, map["b"])
@test fun createFrom() {
val pairs = arrayOf("a" to 1, "b" to 2)
val expected = mapOf(*pairs)
assertEquals(expected, pairs.toMap())
assertEquals(expected, pairs.asIterable().toMap())
assertEquals(expected, pairs.asSequence().toMap())
assertEquals(expected, expected.toMap())
val mutableMap = expected.toMutableMap()
assertEquals(expected, mutableMap)
mutableMap += "c" to 3
assertNotEquals(expected, mutableMap)
}
@test fun createFromIterable() {
val map = listOf(Pair("a", 1), Pair("b", 2)).toMap()
assertEquals(2, map.size)
assertEquals(1, map.get("a"))
assertEquals(2, map.get("b"))
@test fun populateTo() {
val pairs = arrayOf("a" to 1, "b" to 2)
val expected = mapOf(*pairs)
val linkedMap: LinkedHashMap<String, Int> = pairs.toMap(linkedMapOf())
assertEquals(expected, linkedMap)
val hashMap: HashMap<String, Int> = pairs.asIterable().toMap(hashMapOf())
assertEquals(expected, hashMap)
val mutableMap: MutableMap<String, Int> = pairs.asSequence().toMap(mutableMapOf())
assertEquals(expected, mutableMap)
val mutableMap2 = mutableMap.toMap(mutableMapOf())
assertEquals(expected, mutableMap2)
}
@test fun createWithSelector() {