Specialize contentDeepEquals/HashCode/ToString for arrays of unsigned types
#KT-26388
This commit is contained in:
@@ -209,10 +209,19 @@ class ArraysTest {
|
||||
@Test fun contentDeepEquals() {
|
||||
val arr1 = arrayOf("a", 1, intArrayOf(2))
|
||||
val arr2 = arrayOf("a", 1, intArrayOf(2))
|
||||
val arr3 = arrayOf("a", 1, uintArrayOf(2u))
|
||||
val arr4 = arrayOf("a", 1, uintArrayOf(2u))
|
||||
assertFalse(arr1 contentEquals arr2)
|
||||
assertTrue(arr1 contentDeepEquals arr2)
|
||||
|
||||
assertFalse(arr1 contentDeepEquals arr3)
|
||||
assertTrue(arr3 contentDeepEquals arr4)
|
||||
|
||||
arr2[2] = arr1
|
||||
assertFalse(arr1 contentDeepEquals arr2)
|
||||
|
||||
arr4[2] = arr3
|
||||
assertFalse(arr3 contentDeepEquals arr4)
|
||||
}
|
||||
|
||||
@Test fun contentToString() {
|
||||
@@ -230,8 +239,13 @@ class ArraysTest {
|
||||
return
|
||||
}
|
||||
|
||||
val arr = arrayOf("aa", 1, null, charArrayOf('d'))
|
||||
assertEquals("[aa, 1, null, [d]]", arr.contentDeepToString())
|
||||
val arr = arrayOf(
|
||||
"aa", 1, null, arrayOf(arrayOf("foo")), charArrayOf('d'), booleanArrayOf(false),
|
||||
intArrayOf(-1), longArrayOf(-1), shortArrayOf(-1), byteArrayOf(-1),
|
||||
uintArrayOf(UInt.MAX_VALUE), ulongArrayOf(ULong.MAX_VALUE), ushortArrayOf(UShort.MAX_VALUE), ubyteArrayOf(UByte.MAX_VALUE),
|
||||
doubleArrayOf(3.14), floatArrayOf(1.25f)
|
||||
)
|
||||
assertEquals("[aa, 1, null, [[foo]], [d], [false], [-1], [-1], [-1], [-1], [4294967295], [18446744073709551615], [65535], [255], [3.14], [1.25]]", arr.contentDeepToString())
|
||||
}
|
||||
|
||||
@Test fun contentDeepToStringNoRecursion() {
|
||||
@@ -262,6 +276,16 @@ class ArraysTest {
|
||||
@Test fun contentDeepHashCode() {
|
||||
val arr = arrayOf(null, Value(2), arrayOf(Value(3)))
|
||||
assertEquals(((1*31 + 0)*31 + 2) * 31 + (1 * 31 + 3), arr.contentDeepHashCode())
|
||||
|
||||
val intArray2 = arrayOf(intArrayOf(1, 2), intArrayOf(3, 4))
|
||||
val intList2 = listOf(listOf(1, 2), listOf(3, 4))
|
||||
|
||||
assertEquals(intList2.hashCode(), intArray2.contentDeepHashCode())
|
||||
|
||||
val uintArray2 = arrayOf(uintArrayOf(1u, 2u), uintArrayOf(3u, 4u))
|
||||
val uintList2 = listOf(listOf(1u, 2u), listOf(3u, 4u))
|
||||
|
||||
assertEquals(uintList2.hashCode(), uintArray2.contentDeepHashCode())
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user