Add support for + and - operators in immutable maps #KT-6594 Fixed

This commit is contained in:
Laszlo Hornyak
2015-01-10 12:43:27 +01:00
committed by Ilya Ryzhenkov
parent 1a67e35739
commit 3954215b50
2 changed files with 173 additions and 2 deletions
+112 -1
View File
@@ -1,6 +1,8 @@
package test.collections
import kotlin.test.*
import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertTrue
import org.junit.Test as test
class MapTest {
@@ -236,4 +238,113 @@ class MapTest {
assertEquals(2, extended["c"])
assertEquals(3, extended["b"])
}
test fun plusAssignList() {
val extended = hashMapOf(Pair("b", 3))
extended += listOf("C" to 3, "D" to 4)
assertEquals(3, extended.size())
assertEquals(3, extended["C"])
assertEquals(4, extended["D"])
}
test fun plusAssignMap() {
val extended = hashMapOf(Pair("b", 3))
extended += mapOf("C" to 3, "D" to 4)
assertEquals(3, extended.size())
assertEquals(3, extended["C"])
assertEquals(4, extended["D"])
}
test fun plus() {
val original = mapOf("A" to 1, "B" to 2)
val extended = original + ("C" to 3)
assertEquals(extended["A"], 1)
assertEquals(extended["B"], 2)
assertEquals(extended["C"], 3)
}
test fun plusList() {
val original = mapOf("A" to 1, "B" to 2)
val extended = original + listOf("C" to 3, "D" to 4)
assertEquals(extended["A"], 1)
assertEquals(extended["B"], 2)
assertEquals(extended["C"], 3)
assertEquals(extended["D"], 4)
}
test fun plusMap() {
val original = mapOf("A" to 1, "B" to 2)
val extended = original + mapOf("C" to 3, "D" to 4)
assertEquals(extended["A"], 1)
assertEquals(extended["B"], 2)
assertEquals(extended["C"], 3)
assertEquals(extended["D"], 4)
}
test fun plusListOverload() {
val original = mapOf("A" to 1, "B" to 2)
val extended = original + listOf("B" to 3, "C" to 4)
assertEquals(extended["A"], 1)
assertEquals(extended["B"], 3)
assertEquals(extended["C"], 4)
}
test fun plusEmptyList() {
val original = mapOf("A" to 1, "B" to 2)
val extended = original + listOf()
assertEquals(extended["A"], 1)
assertEquals(extended["B"], 2)
}
test fun plusEmptySet() {
val original = mapOf("A" to 1, "B" to 2)
val extended = original + setOf()
assertEquals(extended["A"], 1)
assertEquals(extended["B"], 2)
}
test fun minus() {
val original = mapOf("A" to 1, "B" to 2)
val shortened = original - "B"
assertEquals(shortened["A"], 1)
assertFalse(shortened.contains("B"))
}
test fun minusNotElem() {
val original = mapOf("A" to 1, "B" to 2)
val shortened = original - "C"
assertEquals(shortened["A"], 1)
assertEquals(shortened["B"], 2)
}
test fun minusList() {
val original = mapOf("A" to 1, "B" to 2)
val shortened = original - listOf("B", "C")
assertEquals(shortened["A"], 1)
assertFalse(shortened.contains("B"))
assertFalse(shortened.contains("C"))
}
test fun minusListNotElem() {
val original = mapOf("A" to 1, "B" to 2)
val shortened = original - listOf("C", "D")
assertEquals(shortened["A"], 1)
assertEquals(shortened["B"], 2)
}
test fun minusSet() {
val original = mapOf("A" to 1, "B" to 2)
val shortened = original - setOf("B", "C")
assertEquals(shortened["A"], 1)
assertFalse(shortened.contains("B"))
assertFalse(shortened.contains("C"))
}
test fun minusEmptySet() {
val original = mapOf("A" to 1, "B" to 2)
val shortened = original - setOf()
assertEquals(shortened["A"], 1)
assertEquals(shortened["B"], 2)
}
}