Map.unit.hx 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. // String
  2. var map = new Map();
  3. map.exists("foo") == false;
  4. map.get("foo") == null;
  5. map.set("foo", 1);
  6. map.set("bar", 2);
  7. map.set("baz", 3);
  8. var dynmap:Dynamic = map;
  9. var map2:Map.IMap<Dynamic,Dynamic> = dynmap;
  10. var map3:Map.IMap<String, Dynamic> = dynmap;
  11. var map4:Map.IMap<String, Int> = dynmap;
  12. Std.is(map, haxe.ds.StringMap) == true;
  13. map.exists("foo") == true;
  14. map.exists("bar") == true;
  15. map.exists("baz") == true;
  16. map.get("foo") == 1;
  17. map.get("bar") == 2;
  18. map.get("baz") == 3;
  19. map2.exists("foo") == true;
  20. map2.get("foo") == 1;
  21. map3.exists("foo") == true;
  22. map3.get("foo") == 1;
  23. map4.exists("foo") == true;
  24. map4.get("foo") == 1;
  25. var values = [];
  26. for (val in map) {
  27. values.push(val);
  28. }
  29. values.length == 3;
  30. values[0] in [1, 2, 3];
  31. values[1] in [1, 2, 3];
  32. values[2] in [1, 2, 3];
  33. var keys = ["foo", "bar", "baz"];
  34. for (key in map.keys()) {
  35. t(keys.remove(key));
  36. }
  37. keys == [];
  38. map.remove("bar") == true;
  39. map.remove("bar") == false;
  40. map.exists("foo") == true;
  41. map.exists("bar") == false;
  42. map.exists("baz") == true;
  43. map.get("bar") == null;
  44. // Int
  45. var map = new Map();
  46. map.exists(1) == false;
  47. map.get(1) == null;
  48. map.set(1, 1);
  49. map.set(2, 2);
  50. map.set(3, 3);
  51. Std.is(map, haxe.ds.IntMap) == true;
  52. map.exists(1) == true;
  53. map.exists(2) == true;
  54. map.exists(3) == true;
  55. map.get(1) == 1;
  56. map.get(2) == 2;
  57. map.get(3) == 3;
  58. var values = [];
  59. for (val in map) {
  60. values.push(val);
  61. }
  62. values.length == 3;
  63. values[0] in [1, 2, 3];
  64. values[1] in [1, 2, 3];
  65. values[2] in [1, 2, 3];
  66. var keys = [1, 2, 3];
  67. for (key in map.keys()) {
  68. t(keys.remove(key));
  69. }
  70. keys == [];
  71. map.remove(2) == true;
  72. map.remove(2) == false;
  73. map.exists(1) == true;
  74. map.exists(2) == false;
  75. map.exists(3) == true;
  76. map.get(2) == null;
  77. // Hashable
  78. var map = new Map();
  79. var a = new unit.MyAbstract.ClassWithHashCode(1);
  80. var b = new unit.MyAbstract.ClassWithHashCode(2);
  81. var c = new unit.MyAbstract.ClassWithHashCode(3);
  82. map.exists(a) == false;
  83. map.get(a) == null;
  84. map.set(a, 1);
  85. map.set(b, 2);
  86. map.set(c, 3);
  87. map.exists(a) == true;
  88. map.exists(b) == true;
  89. map.exists(c) == true;
  90. map.get(a) == 1;
  91. map.get(b) == 2;
  92. map.get(c) == 3;
  93. var values = [];
  94. for (val in map) {
  95. values.push(val);
  96. }
  97. values.length == 3;
  98. values[0] in [1, 2, 3];
  99. values[1] in [1, 2, 3];
  100. values[2] in [1, 2, 3];
  101. var keys = [a, b, c];
  102. for (key in map.keys()) {
  103. t(keys.remove(key));
  104. }
  105. keys == [];
  106. map.remove(b) == true;
  107. map.remove(b) == false;
  108. map.exists(a) == true;
  109. map.exists(b) == false;
  110. map.exists(c) == true;
  111. map.get(b) == null;
  112. // Object
  113. var map = new Map();
  114. var a = new unit.MyAbstract.ClassWithoutHashCode(1);
  115. var b = new unit.MyAbstract.ClassWithoutHashCode(2);
  116. var c = new unit.MyAbstract.ClassWithoutHashCode(3);
  117. map.exists(a) == false;
  118. map.get(a) == null;
  119. map.set(a, 1);
  120. map.set(b, 2);
  121. map.set(c, 3);
  122. map.exists(a) == true;
  123. map.exists(b) == true;
  124. map.exists(c) == true;
  125. map.get(a) == 1;
  126. map.get(b) == 2;
  127. map.get(c) == 3;
  128. var values = [];
  129. for (val in map) {
  130. values.push(val);
  131. }
  132. values.length == 3;
  133. values[0] in [1, 2, 3];
  134. values[1] in [1, 2, 3];
  135. values[2] in [1, 2, 3];
  136. var keys = [a, b, c];
  137. for (key in map.keys()) {
  138. t(keys.remove(key));
  139. }
  140. keys == [];
  141. map.remove(b) == true;
  142. map.remove(b) == false;
  143. map.exists(a) == true;
  144. map.exists(b) == false;
  145. map.exists(c) == true;
  146. map.get(b) == null;
  147. // [] access
  148. /*
  149. var map = new Map();
  150. map["foo"] == null;
  151. map["foo"] = 12;
  152. map.get("foo") == 12;
  153. map["foo"] == 12;
  154. map["foo"] += 2;
  155. map.get("foo") == 14;
  156. map["foo"] == 14;
  157. map["foo"] *= map["foo"] + 2;
  158. map["foo"] == 224;
  159. map["f" + "o" + "o"] -= 223;
  160. map[(function(s) return s + "o")("fo")] == 1;
  161. map["bar"] = map["foo"] = 9;
  162. map["bar"] == 9;
  163. map["foo"] == 9;
  164. */