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 */
|
/** @const */
|
||||||
var FUNCTION = "function";
|
var FUNCTION = "function";
|
||||||
var arrayRemoveAt = (typeof Array.prototype.splice == FUNCTION) ?
|
var arrayRemoveAt = (typeof Array.prototype.splice == FUNCTION) ?
|
||||||
@@ -686,6 +692,7 @@
|
|||||||
},
|
},
|
||||||
/** @lends {Kotlin.LinkedHashSet.prototype} */
|
/** @lends {Kotlin.LinkedHashSet.prototype} */
|
||||||
{
|
{
|
||||||
|
equals_za3rmp$: hashSetEquals,
|
||||||
size: function () {
|
size: function () {
|
||||||
return this.map.size()
|
return this.map.size()
|
||||||
},
|
},
|
||||||
@@ -753,6 +760,7 @@
|
|||||||
},
|
},
|
||||||
/** @lends {Kotlin.AbstractPrimitiveHashSet.prototype} */
|
/** @lends {Kotlin.AbstractPrimitiveHashSet.prototype} */
|
||||||
{
|
{
|
||||||
|
equals_za3rmp$: hashSetEquals,
|
||||||
size: function () {
|
size: function () {
|
||||||
return this.$size;
|
return this.$size;
|
||||||
},
|
},
|
||||||
@@ -898,27 +906,7 @@
|
|||||||
return h;
|
return h;
|
||||||
};
|
};
|
||||||
|
|
||||||
this.equals_za3rmp$ = function (o) {
|
this.equals_za3rmp$ = hashSetEquals;
|
||||||
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.toString = function () {
|
this.toString = function () {
|
||||||
var builder = "[";
|
var builder = "[";
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class ComplexSetJsTest : SetJsTest() {
|
|||||||
assertEquals(data, set)
|
assertEquals(data, set)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Test*/ override fun constructors() {
|
Test override fun constructors() {
|
||||||
doTest<String>()
|
doTest<String>()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ class ComplexSetJsTest : SetJsTest() {
|
|||||||
class PrimitiveSetJsTest : SetJsTest() {
|
class PrimitiveSetJsTest : SetJsTest() {
|
||||||
override fun createEmptyMutableSet(): MutableSet<String> = HashSet()
|
override fun createEmptyMutableSet(): MutableSet<String> = HashSet()
|
||||||
override fun createEmptyMutableSetWithNullableValues(): MutableSet<String?> = HashSet()
|
override fun createEmptyMutableSetWithNullableValues(): MutableSet<String?> = HashSet()
|
||||||
/*Test*/ override fun constructors() {
|
Test override fun constructors() {
|
||||||
HashSet<String>()
|
HashSet<String>()
|
||||||
HashSet<String>(3)
|
HashSet<String>(3)
|
||||||
HashSet<String>(3, 0.5f)
|
HashSet<String>(3, 0.5f)
|
||||||
@@ -70,6 +70,13 @@ abstract class SetJsTest {
|
|||||||
assertTrue(empty.isEmpty())
|
assertTrue(empty.isEmpty())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Test fun equals() {
|
||||||
|
assertNotEquals(createEmptyMutableSet(), data)
|
||||||
|
assertNotEquals(data, empty)
|
||||||
|
assertEquals(createEmptyMutableSet(), empty)
|
||||||
|
assertEquals(createTestMutableSetReversed(), data)
|
||||||
|
}
|
||||||
|
|
||||||
Test fun contains() {
|
Test fun contains() {
|
||||||
assertTrue(data.contains("foo"))
|
assertTrue(data.contains("foo"))
|
||||||
assertTrue(data.contains("bar"))
|
assertTrue(data.contains("bar"))
|
||||||
@@ -209,4 +216,10 @@ abstract class SetJsTest {
|
|||||||
set.add("bar")
|
set.add("bar")
|
||||||
return set
|
return set
|
||||||
}
|
}
|
||||||
|
fun createTestMutableSetReversed(): MutableSet<String> {
|
||||||
|
val set = createEmptyMutableSet()
|
||||||
|
set.add("bar")
|
||||||
|
set.add("foo")
|
||||||
|
return set
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user