index.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. 'use strict';
  2. var aFrom = require('es5-ext/array/from')
  3. , getIterator = require('es6-iterator/get')
  4. , toArray = require('es5-ext/array/to-array');
  5. module.exports = function (T, a) {
  6. var arr = ['raz', 'dwa', 'trzy'], set = new T(arr), x = 'other', y = 'other2'
  7. , i = 0, result = [];
  8. a(set instanceof T, true, "Set");
  9. a(set.size, 3, "Size");
  10. a(set.has('raz'), true, "Has: true");
  11. a(set.has(x), false, "Has: false");
  12. a(set.add(x), set, "Add: return");
  13. a(set.has(x), true, "Add");
  14. a(set.size, 4, "Add: Size");
  15. a(set.delete('else'), false, "Delete: false");
  16. a(set.get('raz'), 'raz', "Get");
  17. arr.push(x);
  18. set.forEach(function () {
  19. result.push(aFrom(arguments));
  20. a(this, y, "ForEach: Context: #" + i);
  21. }, y);
  22. a.deep(result.sort(function (a, b) {
  23. return a[0].localeCompare(b[0]);
  24. }), arr.sort().map(function (val) { return [val, val, set]; }));
  25. a.deep(toArray(set.entries()).sort(), [['dwa', 'dwa'], ['trzy', 'trzy'],
  26. [x, x], ['raz', 'raz']].sort(), "Entries");
  27. a.deep(toArray(set.keys()).sort(), ['dwa', 'trzy', x, 'raz'].sort(),
  28. "Keys");
  29. a.deep(toArray(set.values()).sort(), ['dwa', 'trzy', x, 'raz'].sort(),
  30. "Values");
  31. a.deep(toArray(getIterator(set)).sort(), ['dwa', 'trzy', x, 'raz'].sort(),
  32. "Iterator");
  33. set.clear();
  34. a(set.size, 0, "Clear: size");
  35. a(set.has('trzy'), false, "Clear: has");
  36. a.deep(toArray(set.values()), [], "Clear: Values");
  37. a.h1("Empty initialization");
  38. set = new T();
  39. set.add('foo');
  40. a(set.size, 1);
  41. a(set.has('foo'), true);
  42. };