()
| 9 | }(function (Basil) { |
| 10 | |
| 11 | var BasilSet = function () { |
| 12 | var _indexOf = function (array, item) { |
| 13 | |
| 14 | for (var i = 0, length = array.length; i < length; i++) { |
| 15 | if (array[i] === item) |
| 16 | return i; |
| 17 | } |
| 18 | |
| 19 | return -1; |
| 20 | }, |
| 21 | _contains = function (array, item) { |
| 22 | return _indexOf(array, item) >= 0; |
| 23 | }, |
| 24 | //http://stackoverflow.com/questions/6274339/how-can-i-shuffle-an-array-in-javascript |
| 25 | _shuffle = function (o){ |
| 26 | for (var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x); |
| 27 | return o; |
| 28 | }, |
| 29 | _union = function () { |
| 30 | var args = arguments[0], |
| 31 | allElements = [], |
| 32 | uniqElements = []; |
| 33 | |
| 34 | for (var i = 0, length = args.length; i < length; i++) |
| 35 | allElements = allElements.concat(args[i]); |
| 36 | |
| 37 | for (i = 0, length = allElements.length; i < length; i++) |
| 38 | if (!_contains(uniqElements, allElements[i])) |
| 39 | uniqElements.push(allElements[i]); |
| 40 | |
| 41 | return uniqElements; |
| 42 | }, |
| 43 | _difference = function () { |
| 44 | arguments = arguments[0]; |
| 45 | var firstArray = arguments[0], otherArrays = [], diffArray = []; |
| 46 | for (var i = 1, length = arguments.length; i < length; i++) { |
| 47 | otherArrays = otherArrays.concat(arguments[i]); |
| 48 | } |
| 49 | |
| 50 | for (i = 0, length = firstArray.length; i < length; i++) { |
| 51 | if (!_contains(otherArrays, firstArray[i])) { |
| 52 | diffArray.push(firstArray[i]); |
| 53 | } |
| 54 | } |
| 55 | |
| 56 | return diffArray; |
| 57 | }, |
| 58 | _intersection = function () { |
| 59 | arguments = arguments[0]; |
| 60 | var result = [], firstArray = arguments[0], |
| 61 | argsLength = arguments.length; |
| 62 | |
| 63 | for (var i = 0, length = firstArray.length; i < length; i++) { |
| 64 | var item = firstArray[i]; |
| 65 | |
| 66 | if (_contains(result, item)) |
| 67 | continue; |
| 68 |
nothing calls this directly
no test coverage detected