|
@@ -56,6 +56,15 @@ map.exists("bar") == false;
|
|
|
map.exists("baz") == true;
|
|
|
map.get("bar") == null;
|
|
|
|
|
|
+var map3 = [1=>"2",2=>"4",3=>"6"];
|
|
|
+var keys = [for (k=>v in map3) k];
|
|
|
+keys.sort(Reflect.compare);
|
|
|
+keys == [1,2,3];
|
|
|
+var values = [for (k=>v in map3) v];
|
|
|
+values.sort(Reflect.compare);
|
|
|
+values == ["2","4","6"];
|
|
|
+
|
|
|
+
|
|
|
// Int
|
|
|
var map = new Map();
|
|
|
map.exists(1) == false;
|
|
@@ -104,6 +113,14 @@ map.exists(2) == false;
|
|
|
map.exists(3) == true;
|
|
|
map.get(2) == null;
|
|
|
|
|
|
+var map3 = [1=>2,2=>4,3=>6];
|
|
|
+var keys = [for (k=>v in map3) k];
|
|
|
+keys.sort(Reflect.compare);
|
|
|
+keys == [1,2,3];
|
|
|
+var values = [for (k=>v in map3) v];
|
|
|
+values.sort(Reflect.compare);
|
|
|
+values == [2,4,6];
|
|
|
+
|
|
|
// Hashable
|
|
|
var map = new Map();
|
|
|
var a = new unit.MyAbstract.ClassWithHashCode(1);
|
|
@@ -121,6 +138,15 @@ map.get(a) == 1;
|
|
|
map.get(b) == 2;
|
|
|
map.get(c) == 3;
|
|
|
|
|
|
+var keys = [for (k=>v in map) k];
|
|
|
+keys[0] in [a,b,c];
|
|
|
+keys[1] in [a,b,c];
|
|
|
+keys[2] in [a,b,c];
|
|
|
+var values = [for (k=>v in map) v];
|
|
|
+values[0] in [1,2,3];
|
|
|
+values[1] in [1,2,3];
|
|
|
+values[2] in [1,2,3];
|
|
|
+
|
|
|
var copied = map.copy();
|
|
|
copied != map;
|
|
|
copied.exists(a) == map.exists(a);
|
|
@@ -171,6 +197,15 @@ map.get(a) == 1;
|
|
|
map.get(b) == 2;
|
|
|
map.get(c) == 3;
|
|
|
|
|
|
+var keys = [for (k=>v in map) k];
|
|
|
+keys[0] in [a,b,c];
|
|
|
+keys[1] in [a,b,c];
|
|
|
+keys[2] in [a,b,c];
|
|
|
+var values = [for (k=>v in map) v];
|
|
|
+values[0] in [1,2,3];
|
|
|
+values[1] in [1,2,3];
|
|
|
+values[2] in [1,2,3];
|
|
|
+
|
|
|
var copied = map.copy();
|
|
|
copied != map;
|
|
|
copied.exists(a) == map.exists(a);
|
|
@@ -232,4 +267,67 @@ map["foo"] == 9;
|
|
|
|
|
|
var map:Map<String, Int>;
|
|
|
HelperMacros.typedAs((null : Map<String, Int>), map = []);
|
|
|
-HelperMacros.typeError(map[1] = 1) == true;
|
|
|
+HelperMacros.typeError(map[1] = 1) == true;
|
|
|
+
|
|
|
+#if !(java || cs)
|
|
|
+['' => ''].keyValueIterator().next().key == '';
|
|
|
+['' => ''].keyValueIterator().next().value == '';
|
|
|
+[2 => 3].keyValueIterator().next().key == 2;
|
|
|
+[2 => 3].keyValueIterator().next().value == 3;
|
|
|
+#end
|
|
|
+
|
|
|
+// Test unification
|
|
|
+
|
|
|
+var map = [1=>"2",2=>"4"];
|
|
|
+var iterable:KeyValueIterable<Int, String> = map;
|
|
|
+var values = [for(kv in iterable.keyValueIterator()) kv.value];
|
|
|
+values[0] in ["2","4"];
|
|
|
+values[1] in ["2","4"];
|
|
|
+
|
|
|
+var iterator:KeyValueIterator<Int,String> = iterable.keyValueIterator();
|
|
|
+var keys = [for(kv in iterator) kv.key];
|
|
|
+keys[0] in [1,2];
|
|
|
+keys[1] in [1,2];
|
|
|
+
|
|
|
+
|
|
|
+// Test through Dynamic
|
|
|
+
|
|
|
+var map = [1=>"2",2=>"4"];
|
|
|
+var dyn:Dynamic = map;
|
|
|
+var it = dyn.iterator();
|
|
|
+var it:Iterator<String> = cast it;
|
|
|
+var values = [for(v in it) v];
|
|
|
+values[0] in ["2","4"];
|
|
|
+values[1] in ["2","4"];
|
|
|
+
|
|
|
+var it = dyn.keyValueIterator();
|
|
|
+var it:KeyValueIterator<Int,String> = cast it;
|
|
|
+var values = [for(kv in it) kv.value];
|
|
|
+values[0] in ["2","4"];
|
|
|
+values[1] in ["2","4"];
|
|
|
+var it = dyn.keyValueIterator();
|
|
|
+var it:KeyValueIterator<Int,String> = cast it;
|
|
|
+var keys = [for(kv in it) kv.key];
|
|
|
+keys[0] in [1,2];
|
|
|
+keys[1] in [1,2];
|
|
|
+
|
|
|
+
|
|
|
+var map = ["1a"=>"2","1b"=> "4"];
|
|
|
+var dyn:Dynamic = map;
|
|
|
+var it = dyn.iterator();
|
|
|
+var it:Iterator<String> = cast it;
|
|
|
+var values = [for(v in it) v];
|
|
|
+values[0] in ["2","4"];
|
|
|
+values[1] in ["2","4"];
|
|
|
+
|
|
|
+var it = dyn.keyValueIterator();
|
|
|
+var it:KeyValueIterator<String,String> = cast it;
|
|
|
+var values = [for(kv in it) kv.value];
|
|
|
+values[0] in ["2","4"];
|
|
|
+values[1] in ["2","4"];
|
|
|
+
|
|
|
+var it = dyn.keyValueIterator();
|
|
|
+var it:KeyValueIterator<String,String> = cast it;
|
|
|
+var keys = [for(kv in it) kv.key];
|
|
|
+keys[0] in ["1a","1b"];
|
|
|
+keys[1] in ["1a","1b"];
|