Align the Boolean.hashCode() value across platforms
Boolean.hashCode() should return 1231/1237 for true/false correspondingly. As a part of efforts to stabilize Native stdlib.
This commit is contained in:
committed by
Space Team
parent
668157eb41
commit
193aa0f935
@@ -11,44 +11,48 @@ fun <T> areSame(arg1: T, arg2: T): Boolean {
|
||||
return arg1 === arg2
|
||||
}
|
||||
|
||||
fun Boolean.oneIfTrueElseZero(): Int {
|
||||
return if (this) 1 else 0
|
||||
}
|
||||
|
||||
@Test fun runTest() {
|
||||
var acc = 0
|
||||
val range = 1000
|
||||
|
||||
for (i in arrayOf(false, true)) {
|
||||
for (j in arrayOf(false, true)) {
|
||||
acc += areSame(i, j).hashCode()
|
||||
acc += areSame(i, j).oneIfTrueElseZero()
|
||||
}
|
||||
}
|
||||
println(acc)
|
||||
|
||||
acc = 0
|
||||
for (i in Byte.MIN_VALUE..Byte.MAX_VALUE) {
|
||||
acc += areSame(i, i).hashCode()
|
||||
acc += areSame(i, i).oneIfTrueElseZero()
|
||||
}
|
||||
println(acc)
|
||||
|
||||
acc = 0
|
||||
for (i in Short.MIN_VALUE..Short.MAX_VALUE) {
|
||||
acc += areSame(i, i).hashCode()
|
||||
acc += areSame(i, i).oneIfTrueElseZero()
|
||||
}
|
||||
println(acc)
|
||||
|
||||
acc = 0
|
||||
for (i in 0.toChar()..range.toChar()) {
|
||||
acc += areSame(i, i).hashCode()
|
||||
acc += areSame(i, i).oneIfTrueElseZero()
|
||||
}
|
||||
println(acc)
|
||||
|
||||
acc = 0
|
||||
for (i in -range..range) {
|
||||
acc += areSame(i, i).hashCode()
|
||||
acc += areSame(i, i).oneIfTrueElseZero()
|
||||
}
|
||||
println(acc)
|
||||
|
||||
acc = 0
|
||||
for (i in -range.toLong()..range.toLong()) {
|
||||
acc += areSame(i, i).hashCode()
|
||||
acc += areSame(i, i).oneIfTrueElseZero()
|
||||
}
|
||||
println(acc)
|
||||
}
|
||||
Reference in New Issue
Block a user