JS stdlib: fixed Set::equals.
This commit is contained in:
@@ -46,6 +46,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
function hashSetEquals(o) {
|
||||
if (o === null || o === undefined || this.size() !== o.size()) return false;
|
||||
|
||||
return this.containsAll_4fm7v2$(o);
|
||||
}
|
||||
|
||||
/** @const */
|
||||
var FUNCTION = "function";
|
||||
var arrayRemoveAt = (typeof Array.prototype.splice == FUNCTION) ?
|
||||
@@ -686,6 +692,7 @@
|
||||
},
|
||||
/** @lends {Kotlin.LinkedHashSet.prototype} */
|
||||
{
|
||||
equals_za3rmp$: hashSetEquals,
|
||||
size: function () {
|
||||
return this.map.size()
|
||||
},
|
||||
@@ -753,6 +760,7 @@
|
||||
},
|
||||
/** @lends {Kotlin.AbstractPrimitiveHashSet.prototype} */
|
||||
{
|
||||
equals_za3rmp$: hashSetEquals,
|
||||
size: function () {
|
||||
return this.$size;
|
||||
},
|
||||
@@ -898,27 +906,7 @@
|
||||
return h;
|
||||
};
|
||||
|
||||
this.equals_za3rmp$ = function (o) {
|
||||
if (o === null || o === undefined) return false;
|
||||
if (this.size() === o.size()) {
|
||||
var iter1 = this.iterator();
|
||||
var iter2 = o.iterator();
|
||||
while (true) {
|
||||
var hn1 = iter1.hasNext();
|
||||
var hn2 = iter2.hasNext();
|
||||
if (hn1 != hn2) return false;
|
||||
if (!hn2) {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
var o1 = iter1.next();
|
||||
var o2 = iter2.next();
|
||||
if (!Kotlin.equals(o1, o2)) return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
this.equals_za3rmp$ = hashSetEquals;
|
||||
|
||||
this.toString = function () {
|
||||
var builder = "[";
|
||||
|
||||
@@ -17,7 +17,7 @@ class ComplexSetJsTest : SetJsTest() {
|
||||
assertEquals(data, set)
|
||||
}
|
||||
|
||||
/*Test*/ override fun constructors() {
|
||||
Test override fun constructors() {
|
||||
doTest<String>()
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ class ComplexSetJsTest : SetJsTest() {
|
||||
class PrimitiveSetJsTest : SetJsTest() {
|
||||
override fun createEmptyMutableSet(): MutableSet<String> = HashSet()
|
||||
override fun createEmptyMutableSetWithNullableValues(): MutableSet<String?> = HashSet()
|
||||
/*Test*/ override fun constructors() {
|
||||
Test override fun constructors() {
|
||||
HashSet<String>()
|
||||
HashSet<String>(3)
|
||||
HashSet<String>(3, 0.5f)
|
||||
@@ -70,6 +70,13 @@ abstract class SetJsTest {
|
||||
assertTrue(empty.isEmpty())
|
||||
}
|
||||
|
||||
Test fun equals() {
|
||||
assertNotEquals(createEmptyMutableSet(), data)
|
||||
assertNotEquals(data, empty)
|
||||
assertEquals(createEmptyMutableSet(), empty)
|
||||
assertEquals(createTestMutableSetReversed(), data)
|
||||
}
|
||||
|
||||
Test fun contains() {
|
||||
assertTrue(data.contains("foo"))
|
||||
assertTrue(data.contains("bar"))
|
||||
@@ -209,4 +216,10 @@ abstract class SetJsTest {
|
||||
set.add("bar")
|
||||
return set
|
||||
}
|
||||
fun createTestMutableSetReversed(): MutableSet<String> {
|
||||
val set = createEmptyMutableSet()
|
||||
set.add("bar")
|
||||
set.add("foo")
|
||||
return set
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user