Implemented equality comparison for primitive types

This commit is contained in:
Anton Bannykh
2018-03-01 18:02:26 +03:00
committed by Anton Bannykh
parent 7cde03938a
commit 3a7518cad2
6 changed files with 2747 additions and 113 deletions
+7 -4
View File
@@ -78,6 +78,9 @@ fun box(): String {
val dnq: Double? = dn
val adnq: Any? = dn
// see https://bugs.openjdk.java.net/browse/JDK-8141407
val nanBug = js("dn == dn")
assertFalse(dn == dn, "Double: NaN == NaN")
assertTrue(dn == adn, "Double: NaN != (Any)NaN")
assertTrue(adn == dn, "Double: (Any)NaN != NaN")
@@ -93,7 +96,7 @@ fun box(): String {
assertTrue(adnq == dn, "Double: (Any?)NaN != NaN")
assertTrue(adnq == adn, "Double: (Any?)NaN != (Any)NaN")
assertFalse(dnq == dnq, "Double: NaN? == NaN?")
if (!nanBug) assertFalse(dnq == dnq, "Double: NaN? == NaN?")
assertTrue(dnq == adnq, "Double: NaN? != (Any?)NaN")
assertTrue(adnq == dnq, "Double: (Any?)NaN != NaN?")
assertTrue(adnq == adnq, "Double: (Any?)NaN != (Any?)NaN")
@@ -113,7 +116,7 @@ fun box(): String {
assertFalse(adnq != dn, "Double: (Any?)NaN != NaN")
assertFalse(adnq != adn, "Double: (Any?)NaN != (Any)NaN")
assertTrue(dnq != dnq, "Double: NaN? == NaN?")
if (!nanBug) assertTrue(dnq != dnq, "Double: NaN? == NaN?")
assertFalse(dnq != adnq, "Double: NaN? != (Any?)NaN")
assertFalse(adnq != dnq, "Double: (Any?)NaN != NaN?")
assertFalse(adnq != adnq, "Double: (Any?)NaN != (Any?)NaN")
@@ -168,7 +171,7 @@ fun box(): String {
assertTrue(afnq == fn, "Float: (Any?)NaN != NaN")
assertTrue(afnq == afn, "Float: (Any?)NaN != (Any)NaN")
assertFalse(fnq == fnq, "Float: NaN? == NaN?")
if (!nanBug) assertFalse(fnq == fnq, "Float: NaN? == NaN?")
assertTrue(fnq == afnq, "Float: NaN? != (Any?)NaN")
assertTrue(afnq == fnq, "Float: (Any?)NaN != NaN?")
assertTrue(afnq == afnq, "Float: (Any?)NaN != (Any?)NaN")
@@ -188,7 +191,7 @@ fun box(): String {
assertFalse(afnq != fn, "Float: (Any?)NaN != NaN")
assertFalse(afnq != afn, "Float: (Any?)NaN != (Any)NaN")
assertTrue(fnq != fnq, "Float: NaN? == NaN?")
if (!nanBug) assertTrue(fnq != fnq, "Float: NaN? == NaN?")
assertFalse(fnq != afnq, "Float: NaN? != (Any?)NaN")
assertFalse(afnq != fnq, "Float: (Any?)NaN != NaN?")
assertFalse(afnq != afnq, "Float: (Any?)NaN != (Any?)NaN")
File diff suppressed because it is too large Load Diff