array.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. "use strict";
  2. var iteratorSymbol = require("es6-symbol").iterator;
  3. module.exports = function (T) {
  4. return {
  5. "Values": function (a) {
  6. var x = ["raz", "dwa", "trzy", "cztery", "pięć", "sześć"], it;
  7. it = new T(x);
  8. a(it[iteratorSymbol](), it, "@@iterator");
  9. a.deep(it.next(), { done: false, value: "raz" }, "#1");
  10. a.deep(it.next(), { done: false, value: "dwa" }, "#2");
  11. x.splice(1, 0, "elo");
  12. a.deep(it.next(), { done: false, value: "dwa" }, "Insert");
  13. a.deep(it.next(), { done: false, value: "trzy" }, "#3");
  14. a.deep(it.next(), { done: false, value: "cztery" }, "#4");
  15. x.pop();
  16. a.deep(it.next(), { done: false, value: "pięć" }, "#5");
  17. a.deep(it.next(), { done: true, value: undefined }, "End");
  18. },
  19. "Keys & Values": function (a) {
  20. var x = ["raz", "dwa", "trzy", "cztery", "pięć", "sześć"], it;
  21. it = new T(x, "key+value");
  22. a(it[iteratorSymbol](), it, "@@iterator");
  23. a.deep(it.next(), { done: false, value: [0, "raz"] }, "#1");
  24. a.deep(it.next(), { done: false, value: [1, "dwa"] }, "#2");
  25. x.splice(1, 0, "elo");
  26. a.deep(it.next(), { done: false, value: [2, "dwa"] }, "Insert");
  27. a.deep(it.next(), { done: false, value: [3, "trzy"] }, "#3");
  28. a.deep(it.next(), { done: false, value: [4, "cztery"] }, "#4");
  29. x.pop();
  30. a.deep(it.next(), { done: false, value: [5, "pięć"] }, "#5");
  31. a.deep(it.next(), { done: true, value: undefined }, "End");
  32. },
  33. "Keys": function (a) {
  34. var x = ["raz", "dwa", "trzy", "cztery", "pięć", "sześć"], it;
  35. it = new T(x, "key");
  36. a(it[iteratorSymbol](), it, "@@iterator");
  37. a.deep(it.next(), { done: false, value: 0 }, "#1");
  38. a.deep(it.next(), { done: false, value: 1 }, "#2");
  39. x.splice(1, 0, "elo");
  40. a.deep(it.next(), { done: false, value: 2 }, "Insert");
  41. a.deep(it.next(), { done: false, value: 3 }, "#3");
  42. a.deep(it.next(), { done: false, value: 4 }, "#4");
  43. x.pop();
  44. a.deep(it.next(), { done: false, value: 5 }, "#5");
  45. a.deep(it.next(), { done: true, value: undefined }, "End");
  46. },
  47. "Sparse": function (a) {
  48. var x = new Array(6), it;
  49. x[2] = "raz";
  50. x[4] = "dwa";
  51. it = new T(x);
  52. a.deep(it.next(), { done: false, value: undefined }, "#1");
  53. a.deep(it.next(), { done: false, value: undefined }, "#2");
  54. a.deep(it.next(), { done: false, value: "raz" }, "#3");
  55. a.deep(it.next(), { done: false, value: undefined }, "#4");
  56. a.deep(it.next(), { done: false, value: "dwa" }, "#5");
  57. a.deep(it.next(), { done: false, value: undefined }, "#6");
  58. a.deep(it.next(), { done: true, value: undefined }, "End");
  59. }
  60. };
  61. };