diff --git a/bower.json b/bower.json index fab363c2..ff011aae 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "typescript-dotnet", - "version": "3.2.7", + "version": "4.0.1", "ignore": [ ".bowercc", ".gitignore", diff --git a/dist/amd/System/Integer.d.ts b/dist/amd/System/Integer.d.ts index 53263582..69aac82e 100644 --- a/dist/amd/System/Integer.d.ts +++ b/dist/amd/System/Integer.d.ts @@ -9,6 +9,7 @@ export declare module Integer { function random(maxExclusive: number): number; module random { function next(boundary: number, inclusive?: boolean): number; + function set(count: number, boundary: number, inclusive?: boolean): number[]; function nextInRange(min: number, max: number, inclusive?: boolean): number; function select(source: IArray): T | undefined; module select { diff --git a/dist/amd/System/Integer.js b/dist/amd/System/Integer.js index 818aaa32..78ebf443 100644 --- a/dist/amd/System/Integer.js +++ b/dist/amd/System/Integer.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -define(["require","exports","./Exceptions/ArgumentException","./Exceptions/ArgumentOutOfRangeException"],function(n,e,t,r){"use strict";function u(n){return Math.floor(n)}e.Integer=u;var u;!function(n){function e(n){return Math.random()*n|0}function u(n){return c(n,"maxExclusive"),e(n)}function o(n){var e=0|n;return n===-1||e!==-1?e:null}function i(n){return typeof n===g&&isFinite(n)&&n===Math.floor(n)}function a(n){return n===(0|n)}function c(n,e){var r=i(n);if(!r)throw new t.ArgumentException(e||"n","Must be a integer.");return r}function f(n,e){var t=c(n,e)&&n>=0;if(!t)throw new r.ArgumentOutOfRangeException(e||"n",n,"Must be a valid integer greater than or equal to zero.");return t}function s(n,e){var t=c(n,e)&&n>0;if(!t)throw new r.ArgumentOutOfRangeException(e||"n",n,"Must be greater than zero.");return t}n.MAX_32_BIT=2147483647,n.random=u;var u;!function(n){function t(n,t){return c(n,"max"),0===n?0:(t&&(n+=n/Math.abs(n)),e(n))}function r(n,e,r){c(n,"min"),c(e,"max");var u=e-n;return 0===u?n:(r&&(u+=u/Math.abs(u)),n+t(u))}function u(n){return n&&n.length?n[e(n.length)]:void 0}n.next=t,n.nextInRange=r,n.select=u;var u;!function(e){function t(e){return n.select(e)}e.one=t}(u=n.select||(n.select={}))}(u=n.random||(n.random={})),n.as32Bit=o;var g="number";n.is=i,n.is32Bit=a,n.assert=c,n.assertZeroOrGreater=f,n.assertPositive=s}(u=e.Integer||(e.Integer={})),Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=u}); +define(["require","exports","./Exceptions/ArgumentException","./Exceptions/ArgumentOutOfRangeException"],function(n,e,t,r){"use strict";function u(n){return Math.floor(n)}e.Integer=u;var u;!function(n){function e(n){return Math.random()*n|0}function u(n){return c(n,"maxExclusive"),e(n)}function o(n){var e=0|n;return n===-1||e!==-1?e:null}function i(n){return typeof n===g&&isFinite(n)&&n===Math.floor(n)}function a(n){return n===(0|n)}function c(n,e){var r=i(n);if(!r)throw new t.ArgumentException(e||"n","Must be a integer.");return r}function f(n,e){var t=c(n,e)&&n>=0;if(!t)throw new r.ArgumentOutOfRangeException(e||"n",n,"Must be a valid integer greater than or equal to zero.");return t}function s(n,e){var t=c(n,e)&&n>0;if(!t)throw new r.ArgumentOutOfRangeException(e||"n",n,"Must be greater than zero.");return t}n.MAX_32_BIT=2147483647,n.random=u;var u;!function(n){function t(n,t){return c(n,"max"),0===n?0:(t&&(n+=n/Math.abs(n)),e(n))}function r(n,e,r){var u=[];u.length=n;for(var o=0;o= 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\n return i;\n }\n Integer.assertZeroOrGreater = assertZeroOrGreater;\n function assertPositive(n, argumentName) {\n var i = assert(n, argumentName) && n > 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\n return i;\n }\n Integer.assertPositive = assertPositive;\n })(Integer = exports.Integer || (exports.Integer = {}));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Integer;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentException} from \"./Exceptions/ArgumentException\";\r\nimport {ArgumentOutOfRangeException} from \"./Exceptions/ArgumentOutOfRangeException\";\r\nimport {IArray} from \"./Collections/Array/IArray\";\r\n\r\nexport function Integer(n:number):number\r\n{\r\n\treturn Math.floor(n);\r\n}\r\n\r\nexport module Integer\r\n{\r\n\texport const MAX_32_BIT:number = 2147483647;\r\n\r\n\tfunction r(maxExclusive:number):number\r\n\t{\r\n\t\treturn (Math.random()*maxExclusive) | 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a random integer from minInclusive to the maxExclusive.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * @param maxExclusive\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(maxExclusive:number):number\r\n\t{\r\n\t\tassert(maxExclusive, 'maxExclusive');\r\n\t\treturn r(maxExclusive);\r\n\t}\r\n\r\n\texport module random\r\n\t{\r\n\t\texport function next(\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(boundary, 'max');\r\n\t\t\tif(boundary===0) return 0;\r\n\t\t\tif(inclusive) boundary += boundary/Math.abs(boundary);\r\n\t\t\treturn r(boundary);\r\n\t\t}\r\n\r\n\t\texport function nextInRange(\r\n\t\t\tmin:number,\r\n\t\t\tmax:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(min, 'min');\r\n\t\t\tassert(max, 'max');\r\n\t\t\tvar range = max - min;\r\n\t\t\tif(range===0) return min;\r\n\t\t\tif(inclusive) range += range/Math.abs(range);\r\n\t\t\treturn min + next(range);\r\n\t\t}\r\n\r\n\t\texport function select(source:IArray):T|undefined\r\n\t\t{\r\n\t\t\treturn source && source.length\r\n\t\t\t\t? source[r(source.length)]\r\n\t\t\t\t: void(0);\r\n\t\t}\r\n\r\n\t\texport module select\r\n\t\t{\r\n\t\t\texport function one(source:IArray):T|undefined\r\n\t\t\t{\r\n\t\t\t\treturn random.select(source);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\texport function as32Bit(n:number):number|null\r\n\t{\r\n\t\tvar result = n | 0;\r\n\t\treturn (n=== -1 || result!== -1) ? result : null;\r\n\t}\r\n\r\n\tconst NUMBER:string = \"number\";\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn typeof n===NUMBER && isFinite(n) && n===Math.floor(n);\r\n\t}\r\n\r\n\texport function is32Bit(n:number):boolean\r\n\t{\r\n\t\treturn n===(n | 0);\r\n\t}\r\n\r\n\r\n\texport function assert(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = is(n);\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be a integer.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertZeroOrGreater(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>=0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertPositive(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n}\r\n\r\nexport default Integer;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Integer.js","System/Integer.ts"],"names":["define","require","exports","ArgumentException_1","ArgumentOutOfRangeException_1","Integer","n","Math","floor","r","maxExclusive","random","assert","as32Bit","result","is","NUMBER","isFinite","is32Bit","argumentName","i","ArgumentException","assertZeroOrGreater","ArgumentOutOfRangeException","assertPositive","MAX_32_BIT","next","boundary","inclusive","abs","set","count","s","length","nextInRange","min","max","range","select","source","one","Object","defineProperty","value"],"mappings":";;;;AAIAA,QAAQ,UAAW,UAAW,iCAAkC,4CAA6C,SAAUC,EAASC,EAASC,EAAqBC,GAC1J,YCIJ,SAAAC,GAAwBC,GAEvB,MAAOC,MAAKC,MAAMF,GAFHJ,EAAAG,QAAOA,CAKvB,IAAcA,IAAd,SAAcA,GAIb,QAAAI,GAAWC,GAEV,MAAQH,MAAKI,SAASD,EAAgB,EAWvC,QAAAC,GAAuBD,GAGtB,MADAE,GAAOF,EAAc,gBACdD,EAAEC,GA0DV,QAAAG,GAAwBP,GAEvB,GAAIQ,GAAa,EAAJR,CACb,OAAQA,SAAWQ,OAAgBA,EAAS,KAK7C,QAAAC,GAAmBT,GAElB,aAAcA,KAAIU,GAAUC,SAASX,IAAMA,IAAIC,KAAKC,MAAMF,GAG3D,QAAAY,GAAwBZ,GAEvB,MAAOA,MAAS,EAAJA,GAIb,QAAAM,GAAuBN,EAAUa,GAEhC,GAAIC,GAAIL,EAAGT,EACX,KAAIc,EACH,KAAM,IAAIjB,GAAAkB,kBAAkBF,GAAgB,IAAK,qBAClD,OAAOC,GAGR,QAAAE,GAAoChB,EAAUa,GAE7C,GAAIC,GAAIR,EAAON,EAAGa,IAAiBb,GAAG,CACtC,KAAIc,EACH,KAAM,IAAIhB,GAAAmB,4BAA4BJ,GAAgB,IAAKb,EAAG,yDAC/D,OAAOc,GAGR,QAAAI,GAA+BlB,EAAUa,GAExC,GAAIC,GAAIR,EAAON,EAAGa,IAAiBb,EAAE,CACrC,KAAIc,EACH,KAAM,IAAIhB,GAAAmB,4BAA4BJ,GAAgB,IAAKb,EAAG,6BAC/D,OAAOc,GApHKf,EAAAoB,WAAoB,WAejBpB,EAAAM,OAAMA,CAMtB,IAAcA,IAAd,SAAcA,GAEb,QAAAe,GACCC,EACAC,GAGA,MADAhB,GAAOe,EAAU,OACH,IAAXA,EAAqB,GACrBC,IAAWD,GAAYA,EAASpB,KAAKsB,IAAIF,IACrClB,EAAEkB,IAGV,QAAAG,GACCC,EACAJ,EACAC,GAEA,GAAII,KACJA,GAAEC,OAASF,CACX,KAAI,GAAIX,GAAE,EAAEA,EAAEW,EAAMX,IACnBY,EAAEZ,GAAKM,EAAKC,EAASC,EAEtB,OAAOI,GAGR,QAAAE,GACCC,EACAC,EACAR,GAEAhB,EAAOuB,EAAK,OACZvB,EAAOwB,EAAK,MACZ,IAAIC,GAAQD,EAAMD,CAClB,OAAW,KAARE,EAAkBF,GAClBP,IAAWS,GAASA,EAAM9B,KAAKsB,IAAIQ,IAC/BF,EAAMT,EAAKW,IAGnB,QAAAC,GAA0BC,GAEzB,MAAOA,IAAUA,EAAON,OACrBM,EAAO9B,EAAE8B,EAAON,SAChB,OAxCYtB,EAAAe,KAAIA,EAUJf,EAAAmB,IAAGA,EAaHnB,EAAAuB,YAAWA,EAaXvB,EAAA2B,OAAMA,CAOtB,IAAcA,IAAd,SAAcA,GAEb,QAAAE,GAAuBD,GAEtB,MAAO5B,GAAO2B,OAAOC,GAFND,EAAAE,IAAGA,GAFNF,EAAA3B,EAAA2B,SAAA3B,EAAA2B,aA7CD3B,EAAAN,EAAAM,SAAAN,EAAAM,YAuDEN,EAAAQ,QAAOA,CAMvB,IAAMG,GAAgB,QAENX,GAAAU,GAAEA,EAKFV,EAAAa,QAAOA,EAMPb,EAAAO,OAAMA,EAQNP,EAAAiB,oBAAmBA,EAQnBjB,EAAAmB,eAAcA,GAjHjBnB,EAAAH,EAAAG,UAAAH,EAAAG,aA2HdoC,OAAAC,eAAAxC,EAAA,cAAAyC,OAAA,IDlCIzC,EAAAA,WCkCWG","file":"System/Integer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\ndefine([\"require\", \"exports\", \"./Exceptions/ArgumentException\", \"./Exceptions/ArgumentOutOfRangeException\"], function (require, exports, ArgumentException_1, ArgumentOutOfRangeException_1) {\n \"use strict\";\n function Integer(n) {\n return Math.floor(n);\n }\n exports.Integer = Integer;\n var Integer;\n (function (Integer) {\n Integer.MAX_32_BIT = 2147483647;\n function r(maxExclusive) {\n return (Math.random() * maxExclusive) | 0;\n }\n function random(maxExclusive) {\n assert(maxExclusive, 'maxExclusive');\n return r(maxExclusive);\n }\n Integer.random = random;\n var random;\n (function (random) {\n function next(boundary, inclusive) {\n assert(boundary, 'max');\n if (boundary === 0)\n return 0;\n if (inclusive)\n boundary += boundary / Math.abs(boundary);\n return r(boundary);\n }\n random.next = next;\n function set(count, boundary, inclusive) {\n var s = [];\n s.length = count;\n for (var i = 0; i < count; i++) {\n s[i] = next(boundary, inclusive);\n }\n return s;\n }\n random.set = set;\n function nextInRange(min, max, inclusive) {\n assert(min, 'min');\n assert(max, 'max');\n var range = max - min;\n if (range === 0)\n return min;\n if (inclusive)\n range += range / Math.abs(range);\n return min + next(range);\n }\n random.nextInRange = nextInRange;\n function select(source) {\n return source && source.length\n ? source[r(source.length)]\n : void (0);\n }\n random.select = select;\n var select;\n (function (select) {\n function one(source) {\n return random.select(source);\n }\n select.one = one;\n })(select = random.select || (random.select = {}));\n })(random = Integer.random || (Integer.random = {}));\n function as32Bit(n) {\n var result = n | 0;\n return (n === -1 || result !== -1) ? result : null;\n }\n Integer.as32Bit = as32Bit;\n var NUMBER = \"number\";\n function is(n) {\n return typeof n === NUMBER && isFinite(n) && n === Math.floor(n);\n }\n Integer.is = is;\n function is32Bit(n) {\n return n === (n | 0);\n }\n Integer.is32Bit = is32Bit;\n function assert(n, argumentName) {\n var i = is(n);\n if (!i)\n throw new ArgumentException_1.ArgumentException(argumentName || 'n', \"Must be a integer.\");\n return i;\n }\n Integer.assert = assert;\n function assertZeroOrGreater(n, argumentName) {\n var i = assert(n, argumentName) && n >= 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\n return i;\n }\n Integer.assertZeroOrGreater = assertZeroOrGreater;\n function assertPositive(n, argumentName) {\n var i = assert(n, argumentName) && n > 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\n return i;\n }\n Integer.assertPositive = assertPositive;\n })(Integer = exports.Integer || (exports.Integer = {}));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Integer;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentException} from \"./Exceptions/ArgumentException\";\r\nimport {ArgumentOutOfRangeException} from \"./Exceptions/ArgumentOutOfRangeException\";\r\nimport {IArray} from \"./Collections/Array/IArray\";\r\n\r\nexport function Integer(n:number):number\r\n{\r\n\treturn Math.floor(n);\r\n}\r\n\r\nexport module Integer\r\n{\r\n\texport const MAX_32_BIT:number = 2147483647;\r\n\r\n\tfunction r(maxExclusive:number):number\r\n\t{\r\n\t\treturn (Math.random()*maxExclusive) | 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a random integer from minInclusive to the maxExclusive.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * @param maxExclusive\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(maxExclusive:number):number\r\n\t{\r\n\t\tassert(maxExclusive, 'maxExclusive');\r\n\t\treturn r(maxExclusive);\r\n\t}\r\n\r\n\texport module random\r\n\t{\r\n\t\texport function next(\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(boundary, 'max');\r\n\t\t\tif(boundary===0) return 0;\r\n\t\t\tif(inclusive) boundary += boundary/Math.abs(boundary);\r\n\t\t\treturn r(boundary);\r\n\t\t}\r\n\r\n\t\texport function set(\r\n\t\t\tcount:number,\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number[]\r\n\t\t{\r\n\t\t\tvar s:number[] = [];\r\n\t\t\ts.length = count;\r\n\t\t\tfor(let i=0;i(source:IArray):T|undefined\r\n\t\t{\r\n\t\t\treturn source && source.length\r\n\t\t\t\t? source[r(source.length)]\r\n\t\t\t\t: void(0);\r\n\t\t}\r\n\r\n\t\texport module select\r\n\t\t{\r\n\t\t\texport function one(source:IArray):T|undefined\r\n\t\t\t{\r\n\t\t\t\treturn random.select(source);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\texport function as32Bit(n:number):number|null\r\n\t{\r\n\t\tvar result = n | 0;\r\n\t\treturn (n=== -1 || result!== -1) ? result : null;\r\n\t}\r\n\r\n\tconst NUMBER:string = \"number\";\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn typeof n===NUMBER && isFinite(n) && n===Math.floor(n);\r\n\t}\r\n\r\n\texport function is32Bit(n:number):boolean\r\n\t{\r\n\t\treturn n===(n | 0);\r\n\t}\r\n\r\n\r\n\texport function assert(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = is(n);\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be a integer.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertZeroOrGreater(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>=0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertPositive(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n}\r\n\r\nexport default Integer;\r\n"]} \ No newline at end of file diff --git a/dist/amd/System/Threading/Tasks/eval.d.ts b/dist/amd/System/Threading/Tasks/eval.d.ts deleted file mode 100644 index 5a929f84..00000000 --- a/dist/amd/System/Threading/Tasks/eval.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/*! - * From: https://github.com/adambom/parallel.js/blob/master/lib/eval.js - */ diff --git a/dist/amd/System/Threading/Tasks/eval.js b/dist/amd/System/Threading/Tasks/eval.js deleted file mode 100644 index 45ebcc73..00000000 --- a/dist/amd/System/Threading/Tasks/eval.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * From: https://github.com/adambom/parallel.js/blob/master/lib/eval.js - */ -"undefined"!=typeof module&&module.exports?process.once("message",function(code){eval(JSON.parse(code).data)}):self.onmessage=function(code){eval(code.data)}; -//# sourceMappingURL=eval.js.map \ No newline at end of file diff --git a/dist/amd/System/Threading/Tasks/eval.js.map b/dist/amd/System/Threading/Tasks/eval.js.map deleted file mode 100644 index 12ab9c55..00000000 --- a/dist/amd/System/Threading/Tasks/eval.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["System/Threading/Tasks/eval.ts"],"names":["module","exports","process","once","code","eval","JSON","parse","data","self","onmessage"],"mappings":";;;AAMmB,mBAATA,SAAwBA,OAAOC,QAExCC,QAAQC,KAAK,UAAW,SAACC,MAExBC,KAAKC,KAAKC,MAAMH,MAAMI,QAKvBC,KAAKC,UAAY,SAACN,MAEjBC,KAAKD,KAAKI","file":"System/Threading/Tasks/eval.js","sourcesContent":["/*!\r\n * From: https://github.com/adambom/parallel.js/blob/master/lib/eval.js\r\n */\r\n\r\n///\r\n\r\nif(typeof module!=='undefined' && module.exports)\r\n{\r\n\tprocess.once('message', (code:string)=>\r\n\t{\r\n\t\teval(JSON.parse(code).data);\r\n\t});\r\n}\r\nelse\r\n{\r\n\tself.onmessage = (code:any)=>\r\n\t{\r\n\t\teval(code.data);\r\n\t};\r\n}"]} \ No newline at end of file diff --git a/dist/commonjs/System/Threading/Tasks/eval.d.ts b/dist/commonjs/System/Threading/Tasks/eval.d.ts deleted file mode 100644 index 5a929f84..00000000 --- a/dist/commonjs/System/Threading/Tasks/eval.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/*! - * From: https://github.com/adambom/parallel.js/blob/master/lib/eval.js - */ diff --git a/dist/commonjs/System/Threading/Tasks/eval.js b/dist/commonjs/System/Threading/Tasks/eval.js deleted file mode 100644 index 38089cc6..00000000 --- a/dist/commonjs/System/Threading/Tasks/eval.js +++ /dev/null @@ -1,14 +0,0 @@ -/*! - * From: https://github.com/adambom/parallel.js/blob/master/lib/eval.js - */ -if (typeof module !== 'undefined' && module.exports) { - process.once('message', function (code) { - eval(JSON.parse(code).data); - }); -} -else { - self.onmessage = function (code) { - eval(code.data); - }; -} -//# sourceMappingURL=eval.js.map \ No newline at end of file diff --git a/dist/commonjs/System/Threading/Tasks/eval.js.map b/dist/commonjs/System/Threading/Tasks/eval.js.map deleted file mode 100644 index bbd30d23..00000000 --- a/dist/commonjs/System/Threading/Tasks/eval.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["System/Threading/Tasks/eval.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,EAAE,CAAA,CAAC,OAAO,MAAM,KAAG,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC,CACjD,CAAC;IACA,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,UAAC,IAAW;QAEnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACJ,CAAC;AACD,IAAI,CACJ,CAAC;IACA,IAAI,CAAC,SAAS,GAAG,UAAC,IAAQ;QAEzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC;AACH,CAAC","file":"System/Threading/Tasks/eval.js","sourcesContent":["/*!\r\n * From: https://github.com/adambom/parallel.js/blob/master/lib/eval.js\r\n */\r\n\r\n///\r\n\r\nif(typeof module!=='undefined' && module.exports)\r\n{\r\n\tprocess.once('message', (code:string)=>\r\n\t{\r\n\t\teval(JSON.parse(code).data);\r\n\t});\r\n}\r\nelse\r\n{\r\n\tself.onmessage = (code:any)=>\r\n\t{\r\n\t\teval(code.data);\r\n\t};\r\n}"]} \ No newline at end of file diff --git a/dist/es6/System.Linq/Enumerable.d.ts b/dist/es6/System.Linq/Enumerable.d.ts index e6b491d4..c294cbdf 100644 --- a/dist/es6/System.Linq/Enumerable.d.ts +++ b/dist/es6/System.Linq/Enumerable.d.ts @@ -1,5 +1,9 @@ import { - Action, Predicate, Selector, EqualityComparison, Comparison, + Action, + Predicate, + Selector, + EqualityComparison, + Comparison, Closure } from "../System/FunctionTypes"; import {IEnumerableOrArray} from "../System/Collections/IEnumerableOrArray"; diff --git a/dist/es6/System/Collections/Array/Sort.d.ts b/dist/es6/System/Collections/Array/Sort.d.ts index 49b24d1c..6a6f53cb 100644 --- a/dist/es6/System/Collections/Array/Sort.d.ts +++ b/dist/es6/System/Collections/Array/Sort.d.ts @@ -1,3 +1,3 @@ -import { createComparer } from "./Sort/createComparer"; -export * from "./Sort/quickSort"; +import { createComparer } from "./Sorting/createComparer"; +export * from "./Sorting/quickSort"; export { createComparer, createComparer as default, createComparer as by }; diff --git a/dist/es6/System/Collections/Array/Sort.js b/dist/es6/System/Collections/Array/Sort.js index 6b7c1b79..b0d83181 100644 --- a/dist/es6/System/Collections/Array/Sort.js +++ b/dist/es6/System/Collections/Array/Sort.js @@ -1,4 +1,4 @@ -import { createComparer } from "./Sort/createComparer"; -export * from "./Sort/quickSort"; +import { createComparer } from "./Sorting/createComparer"; +export * from "./Sorting/quickSort"; export { createComparer, createComparer as default, createComparer as by }; //# sourceMappingURL=Sort.js.map \ No newline at end of file diff --git a/dist/es6/System/Collections/Array/Sort.js.map b/dist/es6/System/Collections/Array/Sort.js.map index dbbcefa7..d378bf98 100644 --- a/dist/es6/System/Collections/Array/Sort.js.map +++ b/dist/es6/System/Collections/Array/Sort.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/Sort.ts"],"names":[],"mappings":"OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB;AACpD,cAAc,kBAAkB,CAAC;AAEjC,SACC,cAAc,EACd,cAAc,IAAI,OAAO,EACzB,cAAc,IAAI,EAAE,GACpB","file":"System/Collections/Array/Sort.js","sourcesContent":["import {createComparer} from \"./Sort/createComparer\";\r\nexport * from \"./Sort/quickSort\";\r\n\r\nexport {\r\n\tcreateComparer,\r\n\tcreateComparer as default, // Allow for default import.\r\n\tcreateComparer as by // Alias for Sort.by(...) instead of Sort.createComparer\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Array/Sort.ts"],"names":[],"mappings":"OAAO,EAAC,cAAc,EAAC,MAAM,0BAA0B;AACvD,cAAc,qBAAqB,CAAC;AAEpC,SACC,cAAc,EACd,cAAc,IAAI,OAAO,EACzB,cAAc,IAAI,EAAE,GACpB","file":"System/Collections/Array/Sort.js","sourcesContent":["import {createComparer} from \"./Sorting/createComparer\";\r\nexport * from \"./Sorting/quickSort\";\r\n\r\nexport {\r\n\tcreateComparer,\r\n\tcreateComparer as default, // Allow for default import.\r\n\tcreateComparer as by // Alias for Sort.by(...) instead of Sort.createComparer\r\n}"]} \ No newline at end of file diff --git a/dist/es6/System/Collections/Array/Sort/quickSort.js.map b/dist/es6/System/Collections/Array/Sort/quickSort.js.map deleted file mode 100644 index 78a4108c..00000000 --- a/dist/es6/System/Collections/Array/Sort/quickSort.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["System/Collections/Array/Sort/quickSort.ts"],"names":[],"mappings":"AAAA;;;;GAIG;OAII,EAAC,qBAAqB,EAAC,MAAM,2CAA2C;AAU/E,0BACC,MAAU,EACV,GAAG,GAAU,CAAC,EACd,IAAI,GAAU,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAE3C,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC;QAAC,MAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACtD,EAAE,CAAA,CAAC,GAAG,GAAC,IAAI,CAAC,CACZ,CAAC;QAEA,IAAI,IAAM,EAAE,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC;QAEpD,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1B,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,GAAG,GAAG,CAAC;QACZ,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAC,IAAI,EAAE,CAAC,EAAE,EAC5B,CAAC;YACA,EAAE,CAAA,CAAC,MAAM,CAAC,CAAC,CAAC,GAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAC1B,CAAC;gBACA,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACjB,CAAC,EAAE,CAAC;YACL,CAAC;QACF,CAAC;QAED,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAEpB,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,MAAM,CAAC;AACf,CAAC","file":"System/Collections/Array/Sort/quickSort.js","sourcesContent":["/*!\r\n * @author Sebastian Belmar / https://github.com/sebabelmar/\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Primitive} from \"../../../Primitive\";\r\nimport {ArgumentNullException} from \"../../../Exceptions/ArgumentNullException\";\r\n\r\n/**\r\n * Quick sort O (n log n)\r\n * Warning: Uses recursion.\r\n * @param target\r\n * @param low\r\n * @param high\r\n * @returns {Array}\r\n */\r\nexport function quickSort(\r\n\ttarget:T[],\r\n\tlow:number = 0,\r\n\thigh:number = target && (target.length - 1)):T[]\r\n{\r\n\tif(!target) throw new ArgumentNullException(\"target\");\r\n\tif(low(value:T|T[]):T[]\r\n{\r\n\treturn Array.isArray(value)\r\n\t\t? value\r\n\t\t: [value];\r\n}\r\n\r\n/**\r\n * A factory function that creates a comparer to be used in multi-dimensional sorting.\r\n *\r\n *

Example

\r\n * ```typescript\r\n * var myArray = [{a:1:b:2},{a:3,b:4},{a:1,b:3}];\r\n *\r\n * // First sort by a, then by b.\r\n * myArray.sort(\r\n * createComparer(\r\n * (e)=> [e.a, e.b],\r\n * [Order.Ascending, Order.Descending]\r\n * )\r\n * );\r\n *\r\n * // result: [{a:1,b:3},{a:1:b:2},{a:3,b:4}]\r\n * ```\r\n *\r\n * @param selector\r\n * @param order\r\n * @param equivalentToNaN\r\n * @returns {function((TSource|TSource[]), (TSource|TSource[])): CompareResult}\r\n */\r\nexport function createComparer(\r\n\tselector:Selector,\r\n\torder:Order | Order[] = Order.Ascending,\r\n\tequivalentToNaN:any = NaN):Comparison\r\n{\r\n\tvar nanHasEquivalent = !Type.isTrueNaN(equivalentToNaN);\r\n\r\n\treturn (a:TSource|TSource[], b:TSource|TSource[]):CompareResult=>\r\n\t{\r\n\t\t// Use an array always to ensure a single code path.\r\n\t\tvar aValue = ensureArray(selector(a));\r\n\t\tvar bValue = ensureArray(selector(b));\r\n\t\tvar len = Math.min(aValue.length, bValue.length);\r\n\r\n\t\tvar oArray = Array.isArray(order) ? order : null;\r\n\t\tfor(let i = 0; iorder;\r\n\r\n\t\t\tif(nanHasEquivalent)\r\n\t\t\t{\r\n\t\t\t\tif(Type.isTrueNaN(vA))\r\n\t\t\t\t\tvA = equivalentToNaN;\r\n\t\t\t\tif(Type.isTrueNaN(vB))\r\n\t\t\t\t\tvB = equivalentToNaN;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tvar r = compare(vA, vB);\r\n\t\t\tif(r!==CompareResult.Equal)\r\n\t\t\t\treturn o*r;\r\n\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t};\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/dist/es6/System/Collections/Array/Sorting/insertionSort.d.ts b/dist/es6/System/Collections/Array/Sorting/insertionSort.d.ts new file mode 100644 index 00000000..3a243c00 --- /dev/null +++ b/dist/es6/System/Collections/Array/Sorting/insertionSort.d.ts @@ -0,0 +1,6 @@ +/*! + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +import { Primitive } from "../../../Primitive"; +export declare function insertionSort(target: T[]): T[]; diff --git a/dist/es6/System/Collections/Array/Sorting/insertionSort.js b/dist/es6/System/Collections/Array/Sorting/insertionSort.js new file mode 100644 index 00000000..59a704ff --- /dev/null +++ b/dist/es6/System/Collections/Array/Sorting/insertionSort.js @@ -0,0 +1,21 @@ +/*! + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +import { ArgumentNullException } from "../../../Exceptions/ArgumentNullException"; +export function insertionSort(target) { + if (!target) + throw new ArgumentNullException("target"); + var len = target.length; + for (let i = 1; i < len; i++) { + let j = i, j1; + while (j > 0 && target[(j1 = j - 1)] > target[j]) { + let swap = target[j]; + target[j] = target[j1]; + target[j1] = swap; + j--; + } + } + return target; +} +//# sourceMappingURL=insertionSort.js.map \ No newline at end of file diff --git a/dist/es6/System/Collections/Array/Sorting/insertionSort.js.map b/dist/es6/System/Collections/Array/Sorting/insertionSort.js.map new file mode 100644 index 00000000..53ae1247 --- /dev/null +++ b/dist/es6/System/Collections/Array/Sorting/insertionSort.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["System/Collections/Array/Sorting/insertionSort.ts"],"names":[],"mappings":"AAAA;;;GAGG;OAII,EAAC,qBAAqB,EAAC,MAAM,2CAA2C;AAO/E,8BAAmD,MAAU;IAE5D,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC;QAAC,MAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;IAExB,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EACzB,CAAC;QACA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAS,CAAC;QAErB,OAAM,CAAC,GAAC,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAC,MAAM,CAAC,CAAC,CAAC,EAC3C,CAAC;YACA,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YACvB,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;YAClB,CAAC,EAAE,CAAC;QACL,CAAC;IACF,CAAC;IAED,MAAM,CAAC,MAAM,CAAC;AAEf,CAAC","file":"System/Collections/Array/Sorting/insertionSort.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Primitive} from \"../../../Primitive\";\r\nimport {ArgumentNullException} from \"../../../Exceptions/ArgumentNullException\";\r\n\r\n/**\r\n * https://en.wikipedia.org/wiki/Insertion_sort\r\n * @param target\r\n * @returns {T[]}\r\n */\r\nexport function insertionSort(target:T[]):T[]\r\n{\r\n\tif(!target) throw new ArgumentNullException(\"target\");\r\n\tvar len = target.length;\r\n\r\n\tfor(let i = 1; i0 && target[(j1 = j - 1)]>target[j])\r\n\t\t{\r\n\t\t\tlet swap = target[j];\r\n\t\t\ttarget[j] = target[j1];\r\n\t\t\ttarget[j1] = swap;\r\n\t\t\tj--;\r\n\t\t}\r\n\t}\r\n\r\n\treturn target;\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/es6/System/Collections/Array/Sorting/mergeSort.d.ts b/dist/es6/System/Collections/Array/Sorting/mergeSort.d.ts new file mode 100644 index 00000000..f08b7d5e --- /dev/null +++ b/dist/es6/System/Collections/Array/Sorting/mergeSort.d.ts @@ -0,0 +1,8 @@ +/*! + * @author Sebastian Belmar / https://github.com/sebabelmar/ + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + * https://en.wikipedia.org/wiki/Merge_sort + */ +import { Primitive } from "../../../Primitive"; +export declare function mergeSort(target: T[]): T[]; diff --git a/dist/es6/System/Collections/Array/Sorting/mergeSort.js b/dist/es6/System/Collections/Array/Sorting/mergeSort.js new file mode 100644 index 00000000..d0516ff4 --- /dev/null +++ b/dist/es6/System/Collections/Array/Sorting/mergeSort.js @@ -0,0 +1,36 @@ +/*! + * @author Sebastian Belmar / https://github.com/sebabelmar/ + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + * https://en.wikipedia.org/wiki/Merge_sort + */ +import { ArgumentNullException } from "../../../Exceptions/ArgumentNullException"; +import { initialize } from "../Utility"; +export function mergeSort(target) { + if (!target) + throw new ArgumentNullException("target"); + var len = target.length; + return len < 2 ? target : sort(target, 0, len, initialize(len)); +} +function sort(target, start, end, temp) { + if (end - start > 1) { + var middle = Math.floor((start + end) / 2); + sort(target, start, middle, temp); + sort(target, middle, end, temp); + for (let i = 0, len = target.length; i < len; i++) { + temp[i] = target[i]; + } + var k = start, i = start, j = middle; + while (i < middle && j < end) { + target[k++] + = temp[i] > temp[j] + ? temp[j++] + : temp[i++]; + } + while (i < middle) { + target[k++] = temp[i++]; + } + } + return target; +} +//# sourceMappingURL=mergeSort.js.map \ No newline at end of file diff --git a/dist/es6/System/Collections/Array/Sorting/mergeSort.js.map b/dist/es6/System/Collections/Array/Sorting/mergeSort.js.map new file mode 100644 index 00000000..eb0027f0 --- /dev/null +++ b/dist/es6/System/Collections/Array/Sorting/mergeSort.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["System/Collections/Array/Sorting/mergeSort.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;OAII,EAAC,qBAAqB,EAAC,MAAM,2CAA2C;OACxE,EAAC,UAAU,EAAC,MAAM,YAAY;AAQrC,0BAA+C,MAAU;IAExD,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC;QAAC,MAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;IACxB,MAAM,CAAC,GAAG,GAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,CAAI,GAAG,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,cACC,MAAU,EACV,KAAY,EACZ,GAAU,EACV,IAAQ;IAER,EAAE,CAAA,CAAC,GAAG,GAAG,KAAK,GAAC,CAAC,CAAC,CACjB,CAAC;QAEA,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAGhC,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EAC9C,CAAC;YACA,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QAGD,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;QAGrC,OAAM,CAAC,GAAC,MAAM,IAAI,CAAC,GAAC,GAAG,EACvB,CAAC;YACA,MAAM,CAAC,CAAC,EAAE,CAAC;kBACR,IAAI,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC,CAAC;sBACf,IAAI,CAAC,CAAC,EAAE,CAAC;sBACT,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;QAGD,OAAM,CAAC,GAAC,MAAM,EACd,CAAC;YACA,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;IAEF,CAAC;IAED,MAAM,CAAC,MAAM,CAAA;AACd,CAAC","file":"System/Collections/Array/Sorting/mergeSort.js","sourcesContent":["/*!\r\n * @author Sebastian Belmar / https://github.com/sebabelmar/\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * https://en.wikipedia.org/wiki/Merge_sort\r\n */\r\n\r\n\r\nimport {Primitive} from \"../../../Primitive\";\r\nimport {ArgumentNullException} from \"../../../Exceptions/ArgumentNullException\";\r\nimport {initialize} from \"../Utility\";\r\n\r\n/**\r\n * Merge sort O(n log (n))\r\n * Warning: Uses recursion.\r\n * @param target\r\n * @returns {number[]}\r\n */\r\nexport function mergeSort(target:T[]):T[]\r\n{\r\n\tif(!target) throw new ArgumentNullException(\"target\");\r\n\tvar len = target.length;\r\n\treturn len<2 ? target : sort(target, 0, len, initialize(len));\r\n}\r\n\r\nfunction sort(\r\n\ttarget:T[],\r\n\tstart:number,\r\n\tend:number,\r\n\ttemp:T[]):T[]\r\n{\r\n\tif(end - start>1)\r\n\t{\r\n\t\t// Step 1: Sort the left and right parts.\r\n\t\tvar middle = Math.floor((start + end)/2);\r\n\t\tsort(target, start, middle, temp);\r\n\t\tsort(target, middle, end, temp);\r\n\r\n\t\t// Step 2: Copy the original array\r\n\t\tfor(let i = 0, len = target.length; itemp[j]\r\n\t\t\t\t? temp[j++]\r\n\t\t\t\t: temp[i++];\r\n\t\t}\r\n\r\n\t\t// Step 5: Finalize merging in case right side of the array is bigger.\r\n\t\twhile(i(target: T[], low?: number, high?: number): T[]; +export declare function quickSort(target: T[]): T[]; diff --git a/dist/es6/System/Collections/Array/Sort/quickSort.js b/dist/es6/System/Collections/Array/Sorting/quickSort.js similarity index 77% rename from dist/es6/System/Collections/Array/Sort/quickSort.js rename to dist/es6/System/Collections/Array/Sorting/quickSort.js index 744828e0..127e85a4 100644 --- a/dist/es6/System/Collections/Array/Sort/quickSort.js +++ b/dist/es6/System/Collections/Array/Sorting/quickSort.js @@ -4,9 +4,13 @@ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ import { ArgumentNullException } from "../../../Exceptions/ArgumentNullException"; -export function quickSort(target, low = 0, high = target && (target.length - 1)) { +export function quickSort(target) { if (!target) throw new ArgumentNullException("target"); + var len = target.length; + return target.length < 2 ? target : sort(target, 0, len - 1); +} +function sort(target, low, high) { if (low < high) { var swap, pivotIndex = Math.floor((low + high) / 2); swap = target[pivotIndex]; @@ -24,8 +28,8 @@ export function quickSort(target, low = 0, high = target && (target.length - 1)) swap = target[i]; target[i] = target[high]; target[high] = swap; - quickSort(target, low, i - 1); - quickSort(target, i + 1, high); + sort(target, low, i - 1); + sort(target, i + 1, high); } return target; } diff --git a/dist/es6/System/Collections/Array/Sorting/quickSort.js.map b/dist/es6/System/Collections/Array/Sorting/quickSort.js.map new file mode 100644 index 00000000..e45cf71c --- /dev/null +++ b/dist/es6/System/Collections/Array/Sorting/quickSort.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["System/Collections/Array/Sorting/quickSort.ts"],"names":[],"mappings":"AAAA;;;;GAIG;OAII,EAAC,qBAAqB,EAAC,MAAM,2CAA2C;AAQ/E,0BAA+C,MAAU;IAExD,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC;QAAC,MAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;IACxB,MAAM,CAAC,MAAM,CAAC,MAAM,GAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,cACC,MAAU,EACV,GAAU,EACV,IAAW;IAEX,EAAE,CAAA,CAAC,GAAG,GAAC,IAAI,CAAC,CACZ,CAAC;QAEA,IAAI,IAAM,EAAE,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC;QAEpD,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1B,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,GAAG,GAAG,CAAC;QACZ,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAC,IAAI,EAAE,CAAC,EAAE,EAC5B,CAAC;YACA,EAAE,CAAA,CAAC,MAAM,CAAC,CAAC,CAAC,GAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAC1B,CAAC;gBACA,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACjB,CAAC,EAAE,CAAC;YACL,CAAC;QACF,CAAC;QAED,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,MAAM,CAAC;AACf,CAAC","file":"System/Collections/Array/Sorting/quickSort.js","sourcesContent":["/*!\r\n * @author Sebastian Belmar / https://github.com/sebabelmar/\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Primitive} from \"../../../Primitive\";\r\nimport {ArgumentNullException} from \"../../../Exceptions/ArgumentNullException\";\r\n\r\n/**\r\n * Quick sort O(n log (n))\r\n * Warning: Uses recursion.\r\n * @param target\r\n * @returns {T[]}\r\n */\r\nexport function quickSort(target:T[]):T[]\r\n{\r\n\tif(!target) throw new ArgumentNullException(\"target\");\r\n\tvar len = target.length;\r\n\treturn target.length<2 ? target : sort(target, 0, len - 1);\r\n}\r\n\r\nfunction sort(\r\n\ttarget:T[],\r\n\tlow:number,\r\n\thigh:number):T[]\r\n{\r\n\tif(low(source: IArray): T | undefined; module select { diff --git a/dist/es6/System/Integer.js b/dist/es6/System/Integer.js index a46bf2b8..0c3fcdd2 100644 --- a/dist/es6/System/Integer.js +++ b/dist/es6/System/Integer.js @@ -29,6 +29,15 @@ export var Integer; return r(boundary); } random.next = next; + function set(count, boundary, inclusive) { + var s = []; + s.length = count; + for (let i = 0; i < count; i++) { + s[i] = next(boundary, inclusive); + } + return s; + } + random.set = set; function nextInRange(min, max, inclusive) { assert(min, 'min'); assert(max, 'max'); diff --git a/dist/es6/System/Integer.js.map b/dist/es6/System/Integer.js.map index db581408..9a9f2719 100644 --- a/dist/es6/System/Integer.js.map +++ b/dist/es6/System/Integer.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Integer.ts"],"names":[],"mappings":"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","file":"System/Integer.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentException} from \"./Exceptions/ArgumentException\";\r\nimport {ArgumentOutOfRangeException} from \"./Exceptions/ArgumentOutOfRangeException\";\r\nimport {IArray} from \"./Collections/Array/IArray\";\r\n\r\nexport function Integer(n:number):number\r\n{\r\n\treturn Math.floor(n);\r\n}\r\n\r\nexport module Integer\r\n{\r\n\texport const MAX_32_BIT:number = 2147483647;\r\n\r\n\tfunction r(maxExclusive:number):number\r\n\t{\r\n\t\treturn (Math.random()*maxExclusive) | 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a random integer from minInclusive to the maxExclusive.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * @param maxExclusive\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(maxExclusive:number):number\r\n\t{\r\n\t\tassert(maxExclusive, 'maxExclusive');\r\n\t\treturn r(maxExclusive);\r\n\t}\r\n\r\n\texport module random\r\n\t{\r\n\t\texport function next(\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(boundary, 'max');\r\n\t\t\tif(boundary===0) return 0;\r\n\t\t\tif(inclusive) boundary += boundary/Math.abs(boundary);\r\n\t\t\treturn r(boundary);\r\n\t\t}\r\n\r\n\t\texport function nextInRange(\r\n\t\t\tmin:number,\r\n\t\t\tmax:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(min, 'min');\r\n\t\t\tassert(max, 'max');\r\n\t\t\tvar range = max - min;\r\n\t\t\tif(range===0) return min;\r\n\t\t\tif(inclusive) range += range/Math.abs(range);\r\n\t\t\treturn min + next(range);\r\n\t\t}\r\n\r\n\t\texport function select(source:IArray):T|undefined\r\n\t\t{\r\n\t\t\treturn source && source.length\r\n\t\t\t\t? source[r(source.length)]\r\n\t\t\t\t: void(0);\r\n\t\t}\r\n\r\n\t\texport module select\r\n\t\t{\r\n\t\t\texport function one(source:IArray):T|undefined\r\n\t\t\t{\r\n\t\t\t\treturn random.select(source);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\texport function as32Bit(n:number):number|null\r\n\t{\r\n\t\tvar result = n | 0;\r\n\t\treturn (n=== -1 || result!== -1) ? result : null;\r\n\t}\r\n\r\n\tconst NUMBER:string = \"number\";\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn typeof n===NUMBER && isFinite(n) && n===Math.floor(n);\r\n\t}\r\n\r\n\texport function is32Bit(n:number):boolean\r\n\t{\r\n\t\treturn n===(n | 0);\r\n\t}\r\n\r\n\r\n\texport function assert(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = is(n);\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be a integer.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertZeroOrGreater(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>=0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertPositive(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n}\r\n\r\nexport default Integer;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Integer.ts"],"names":[],"mappings":"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","file":"System/Integer.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentException} from \"./Exceptions/ArgumentException\";\r\nimport {ArgumentOutOfRangeException} from \"./Exceptions/ArgumentOutOfRangeException\";\r\nimport {IArray} from \"./Collections/Array/IArray\";\r\n\r\nexport function Integer(n:number):number\r\n{\r\n\treturn Math.floor(n);\r\n}\r\n\r\nexport module Integer\r\n{\r\n\texport const MAX_32_BIT:number = 2147483647;\r\n\r\n\tfunction r(maxExclusive:number):number\r\n\t{\r\n\t\treturn (Math.random()*maxExclusive) | 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a random integer from minInclusive to the maxExclusive.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * @param maxExclusive\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(maxExclusive:number):number\r\n\t{\r\n\t\tassert(maxExclusive, 'maxExclusive');\r\n\t\treturn r(maxExclusive);\r\n\t}\r\n\r\n\texport module random\r\n\t{\r\n\t\texport function next(\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(boundary, 'max');\r\n\t\t\tif(boundary===0) return 0;\r\n\t\t\tif(inclusive) boundary += boundary/Math.abs(boundary);\r\n\t\t\treturn r(boundary);\r\n\t\t}\r\n\r\n\t\texport function set(\r\n\t\t\tcount:number,\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number[]\r\n\t\t{\r\n\t\t\tvar s:number[] = [];\r\n\t\t\ts.length = count;\r\n\t\t\tfor(let i=0;i(source:IArray):T|undefined\r\n\t\t{\r\n\t\t\treturn source && source.length\r\n\t\t\t\t? source[r(source.length)]\r\n\t\t\t\t: void(0);\r\n\t\t}\r\n\r\n\t\texport module select\r\n\t\t{\r\n\t\t\texport function one(source:IArray):T|undefined\r\n\t\t\t{\r\n\t\t\t\treturn random.select(source);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\texport function as32Bit(n:number):number|null\r\n\t{\r\n\t\tvar result = n | 0;\r\n\t\treturn (n=== -1 || result!== -1) ? result : null;\r\n\t}\r\n\r\n\tconst NUMBER:string = \"number\";\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn typeof n===NUMBER && isFinite(n) && n===Math.floor(n);\r\n\t}\r\n\r\n\texport function is32Bit(n:number):boolean\r\n\t{\r\n\t\treturn n===(n | 0);\r\n\t}\r\n\r\n\r\n\texport function assert(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = is(n);\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be a integer.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertZeroOrGreater(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>=0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertPositive(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n}\r\n\r\nexport default Integer;\r\n"]} \ No newline at end of file diff --git a/dist/es6/System/Threading/Tasks/eval.d.ts b/dist/es6/System/Threading/Tasks/eval.d.ts deleted file mode 100644 index 5a929f84..00000000 --- a/dist/es6/System/Threading/Tasks/eval.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/*! - * From: https://github.com/adambom/parallel.js/blob/master/lib/eval.js - */ diff --git a/dist/es6/System/Threading/Tasks/eval.js b/dist/es6/System/Threading/Tasks/eval.js deleted file mode 100644 index 36927008..00000000 --- a/dist/es6/System/Threading/Tasks/eval.js +++ /dev/null @@ -1,14 +0,0 @@ -/*! - * From: https://github.com/adambom/parallel.js/blob/master/lib/eval.js - */ -if (typeof module !== 'undefined' && module.exports) { - process.once('message', (code) => { - eval(JSON.parse(code).data); - }); -} -else { - self.onmessage = (code) => { - eval(code.data); - }; -} -//# sourceMappingURL=eval.js.map \ No newline at end of file diff --git a/dist/es6/System/Threading/Tasks/eval.js.map b/dist/es6/System/Threading/Tasks/eval.js.map deleted file mode 100644 index 712d9842..00000000 --- a/dist/es6/System/Threading/Tasks/eval.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["System/Threading/Tasks/eval.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,EAAE,CAAA,CAAC,OAAO,MAAM,KAAG,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC,CACjD,CAAC;IACA,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAW;QAEnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACJ,CAAC;AACD,IAAI,CACJ,CAAC;IACA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAQ;QAEzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC;AACH,CAAC","file":"System/Threading/Tasks/eval.js","sourcesContent":["/*!\r\n * From: https://github.com/adambom/parallel.js/blob/master/lib/eval.js\r\n */\r\n\r\n///\r\n\r\nif(typeof module!=='undefined' && module.exports)\r\n{\r\n\tprocess.once('message', (code:string)=>\r\n\t{\r\n\t\teval(JSON.parse(code).data);\r\n\t});\r\n}\r\nelse\r\n{\r\n\tself.onmessage = (code:any)=>\r\n\t{\r\n\t\teval(code.data);\r\n\t};\r\n}"]} \ No newline at end of file diff --git a/dist/system/System.Linq/Enumerable.d.ts b/dist/system/System.Linq/Enumerable.d.ts index e6b491d4..c294cbdf 100644 --- a/dist/system/System.Linq/Enumerable.d.ts +++ b/dist/system/System.Linq/Enumerable.d.ts @@ -1,5 +1,9 @@ import { - Action, Predicate, Selector, EqualityComparison, Comparison, + Action, + Predicate, + Selector, + EqualityComparison, + Comparison, Closure } from "../System/FunctionTypes"; import {IEnumerableOrArray} from "../System/Collections/IEnumerableOrArray"; diff --git a/dist/system/System/Collections/Array/Sort.d.ts b/dist/system/System/Collections/Array/Sort.d.ts index 49b24d1c..6a6f53cb 100644 --- a/dist/system/System/Collections/Array/Sort.d.ts +++ b/dist/system/System/Collections/Array/Sort.d.ts @@ -1,3 +1,3 @@ -import { createComparer } from "./Sort/createComparer"; -export * from "./Sort/quickSort"; +import { createComparer } from "./Sorting/createComparer"; +export * from "./Sorting/quickSort"; export { createComparer, createComparer as default, createComparer as by }; diff --git a/dist/system/System/Collections/Array/Sort.js b/dist/system/System/Collections/Array/Sort.js index 09a4ef42..3fdc245b 100644 --- a/dist/system/System/Collections/Array/Sort.js +++ b/dist/system/System/Collections/Array/Sort.js @@ -1,4 +1,4 @@ -System.register(["./Sort/createComparer", "./Sort/quickSort"], function(exports_1, context_1) { +System.register(["./Sorting/createComparer", "./Sorting/quickSort"], function(exports_1, context_1) { "use strict"; var __moduleName = context_1 && context_1.id; var createComparer_1; diff --git a/dist/system/System/Collections/Array/Sort.js.map b/dist/system/System/Collections/Array/Sort.js.map index bd1198ef..a57ddd8a 100644 --- a/dist/system/System/Collections/Array/Sort.js.map +++ b/dist/system/System/Collections/Array/Sort.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/Sort.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;YAIC,4DAAc;YACI,qDAAO;YACP,gDAAE","file":"System/Collections/Array/Sort.js","sourcesContent":["import {createComparer} from \"./Sort/createComparer\";\r\nexport * from \"./Sort/quickSort\";\r\n\r\nexport {\r\n\tcreateComparer,\r\n\tcreateComparer as default, // Allow for default import.\r\n\tcreateComparer as by // Alias for Sort.by(...) instead of Sort.createComparer\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Array/Sort.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;YAIC,4DAAc;YACI,qDAAO;YACP,gDAAE","file":"System/Collections/Array/Sort.js","sourcesContent":["import {createComparer} from \"./Sorting/createComparer\";\r\nexport * from \"./Sorting/quickSort\";\r\n\r\nexport {\r\n\tcreateComparer,\r\n\tcreateComparer as default, // Allow for default import.\r\n\tcreateComparer as by // Alias for Sort.by(...) instead of Sort.createComparer\r\n}"]} \ No newline at end of file diff --git a/dist/system/System/Collections/Array/Sort/createComparer.js.map b/dist/system/System/Collections/Array/Sort/createComparer.js.map deleted file mode 100644 index 4834866f..00000000 --- a/dist/system/System/Collections/Array/Sort/createComparer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["System/Collections/Array/Sort/createComparer.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;IAUH,qBAAwB,KAAW;QAElC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;cACnB,KAAK;cACV,CAAI,KAAK,CAAC,CAAC;IACf,CAAC;IAyBD,wBACC,QAA4C,EAC5C,KAAuC,EACvC,eAAyB;QADzB,qBAAuC,GAAvC,SAAuC;QACvC,+BAAyB,GAAzB,qBAAyB;QAEzB,IAAI,gBAAgB,GAAG,CAAC,YAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAExD,MAAM,CAAC,UAAC,CAAmB,EAAE,CAAmB;YAG/C,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAEjD,IAAI,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;YACjD,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EACzB,CAAC;gBACA,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EACd,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EACd,CAAC,GAAI,MAAM;sBACR,CAAC,CAAC,GAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAe,CAAC;sBACxC,KAAK,CAAC;gBAEpB,EAAE,CAAA,CAAC,gBAAgB,CAAC,CACpB,CAAC;oBACA,EAAE,CAAA,CAAC,YAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBACrB,EAAE,GAAG,eAAe,CAAC;oBACtB,EAAE,CAAA,CAAC,YAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBACrB,EAAE,GAAG,eAAe,CAAC;gBAEvB,CAAC;gBAED,IAAI,CAAC,GAAG,iBAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxB,EAAE,CAAA,CAAC,CAAC,KAAG,CAAmB,CAAC;oBAC1B,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC;YAEb,CAAC;YAED,MAAM,CAAC,CAAC,CAAC;QACV,CAAC,CAAC;IACH,CAAC;IAxCD,2CAwCC,CAAA","file":"System/Collections/Array/Sort/createComparer.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Type} from \"../../../Types\";\r\nimport {compare} from \"../../../Compare\";\r\nimport {Primitive} from \"../../../Primitive\";\r\nimport {Selector, Comparison} from \"../../../FunctionTypes\";\r\nimport {CompareResult} from \"../../../CompareResult\";\r\nimport {Order} from \"../../Sorting/Order\";\r\n\r\nfunction ensureArray(value:T|T[]):T[]\r\n{\r\n\treturn Array.isArray(value)\r\n\t\t? value\r\n\t\t: [value];\r\n}\r\n\r\n/**\r\n * A factory function that creates a comparer to be used in multi-dimensional sorting.\r\n *\r\n *

Example

\r\n * ```typescript\r\n * var myArray = [{a:1:b:2},{a:3,b:4},{a:1,b:3}];\r\n *\r\n * // First sort by a, then by b.\r\n * myArray.sort(\r\n * createComparer(\r\n * (e)=> [e.a, e.b],\r\n * [Order.Ascending, Order.Descending]\r\n * )\r\n * );\r\n *\r\n * // result: [{a:1,b:3},{a:1:b:2},{a:3,b:4}]\r\n * ```\r\n *\r\n * @param selector\r\n * @param order\r\n * @param equivalentToNaN\r\n * @returns {function((TSource|TSource[]), (TSource|TSource[])): CompareResult}\r\n */\r\nexport function createComparer(\r\n\tselector:Selector,\r\n\torder:Order | Order[] = Order.Ascending,\r\n\tequivalentToNaN:any = NaN):Comparison\r\n{\r\n\tvar nanHasEquivalent = !Type.isTrueNaN(equivalentToNaN);\r\n\r\n\treturn (a:TSource|TSource[], b:TSource|TSource[]):CompareResult=>\r\n\t{\r\n\t\t// Use an array always to ensure a single code path.\r\n\t\tvar aValue = ensureArray(selector(a));\r\n\t\tvar bValue = ensureArray(selector(b));\r\n\t\tvar len = Math.min(aValue.length, bValue.length);\r\n\r\n\t\tvar oArray = Array.isArray(order) ? order : null;\r\n\t\tfor(let i = 0; iorder;\r\n\r\n\t\t\tif(nanHasEquivalent)\r\n\t\t\t{\r\n\t\t\t\tif(Type.isTrueNaN(vA))\r\n\t\t\t\t\tvA = equivalentToNaN;\r\n\t\t\t\tif(Type.isTrueNaN(vB))\r\n\t\t\t\t\tvB = equivalentToNaN;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tvar r = compare(vA, vB);\r\n\t\t\tif(r!==CompareResult.Equal)\r\n\t\t\t\treturn o*r;\r\n\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t};\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/dist/system/System/Collections/Array/Sort/quickSort.js.map b/dist/system/System/Collections/Array/Sort/quickSort.js.map deleted file mode 100644 index 058625f0..00000000 --- a/dist/system/System/Collections/Array/Sort/quickSort.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["System/Collections/Array/Sort/quickSort.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;IAcH,mBACC,MAAU,EACV,GAAc,EACd,IAA2C;QAD3C,mBAAc,GAAd,OAAc;QACd,oBAA2C,GAA3C,OAAc,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3C,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC;YAAC,MAAM,IAAI,6CAAqB,CAAC,QAAQ,CAAC,CAAC;QACtD,EAAE,CAAA,CAAC,GAAG,GAAC,IAAI,CAAC,CACZ,CAAC;YAEA,IAAI,IAAM,EAAE,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC;YAEpD,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1B,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAEpB,IAAI,CAAC,GAAG,GAAG,CAAC;YACZ,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAC,IAAI,EAAE,CAAC,EAAE,EAC5B,CAAC;gBACA,EAAE,CAAA,CAAC,MAAM,CAAC,CAAC,CAAC,GAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAC1B,CAAC;oBACA,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACjB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACtB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;oBACjB,CAAC,EAAE,CAAC;gBACL,CAAC;YACF,CAAC;YAED,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAEpB,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9B,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,CAAC,MAAM,CAAC;IACf,CAAC;IApCD,iCAoCC,CAAA","file":"System/Collections/Array/Sort/quickSort.js","sourcesContent":["/*!\r\n * @author Sebastian Belmar / https://github.com/sebabelmar/\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Primitive} from \"../../../Primitive\";\r\nimport {ArgumentNullException} from \"../../../Exceptions/ArgumentNullException\";\r\n\r\n/**\r\n * Quick sort O (n log n)\r\n * Warning: Uses recursion.\r\n * @param target\r\n * @param low\r\n * @param high\r\n * @returns {Array}\r\n */\r\nexport function quickSort(\r\n\ttarget:T[],\r\n\tlow:number = 0,\r\n\thigh:number = target && (target.length - 1)):T[]\r\n{\r\n\tif(!target) throw new ArgumentNullException(\"target\");\r\n\tif(low(value:T|T[]):T[]\r\n{\r\n\treturn Array.isArray(value)\r\n\t\t? value\r\n\t\t: [value];\r\n}\r\n\r\n/**\r\n * A factory function that creates a comparer to be used in multi-dimensional sorting.\r\n *\r\n *

Example

\r\n * ```typescript\r\n * var myArray = [{a:1:b:2},{a:3,b:4},{a:1,b:3}];\r\n *\r\n * // First sort by a, then by b.\r\n * myArray.sort(\r\n * createComparer(\r\n * (e)=> [e.a, e.b],\r\n * [Order.Ascending, Order.Descending]\r\n * )\r\n * );\r\n *\r\n * // result: [{a:1,b:3},{a:1:b:2},{a:3,b:4}]\r\n * ```\r\n *\r\n * @param selector\r\n * @param order\r\n * @param equivalentToNaN\r\n * @returns {function((TSource|TSource[]), (TSource|TSource[])): CompareResult}\r\n */\r\nexport function createComparer(\r\n\tselector:Selector,\r\n\torder:Order | Order[] = Order.Ascending,\r\n\tequivalentToNaN:any = NaN):Comparison\r\n{\r\n\tvar nanHasEquivalent = !Type.isTrueNaN(equivalentToNaN);\r\n\r\n\treturn (a:TSource|TSource[], b:TSource|TSource[]):CompareResult=>\r\n\t{\r\n\t\t// Use an array always to ensure a single code path.\r\n\t\tvar aValue = ensureArray(selector(a));\r\n\t\tvar bValue = ensureArray(selector(b));\r\n\t\tvar len = Math.min(aValue.length, bValue.length);\r\n\r\n\t\tvar oArray = Array.isArray(order) ? order : null;\r\n\t\tfor(let i = 0; iorder;\r\n\r\n\t\t\tif(nanHasEquivalent)\r\n\t\t\t{\r\n\t\t\t\tif(Type.isTrueNaN(vA))\r\n\t\t\t\t\tvA = equivalentToNaN;\r\n\t\t\t\tif(Type.isTrueNaN(vB))\r\n\t\t\t\t\tvB = equivalentToNaN;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tvar r = compare(vA, vB);\r\n\t\t\tif(r!==CompareResult.Equal)\r\n\t\t\t\treturn o*r;\r\n\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t};\r\n}\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Array/Sorting/createComparer.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;IAUH,qBAAwB,KAAW;QAElC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;cACnB,KAAK;cACV,CAAI,KAAK,CAAC,CAAC;IACf,CAAC;IAyBD,wBACC,QAA4C,EAC5C,KAAuC,EACvC,eAAyB;QADzB,qBAAuC,GAAvC,SAAuC;QACvC,+BAAyB,GAAzB,qBAAyB;QAEzB,IAAI,gBAAgB,GAAG,CAAC,YAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAExD,MAAM,CAAC,UAAC,CAAmB,EAAE,CAAmB;YAG/C,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAEjD,IAAI,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;YACjD,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EACzB,CAAC;gBACA,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EACd,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EACd,CAAC,GAAI,MAAM;sBACR,CAAC,CAAC,GAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAe,CAAC;sBACxC,KAAK,CAAC;gBAEpB,EAAE,CAAA,CAAC,gBAAgB,CAAC,CACpB,CAAC;oBACA,EAAE,CAAA,CAAC,YAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBACrB,EAAE,GAAG,eAAe,CAAC;oBACtB,EAAE,CAAA,CAAC,YAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBACrB,EAAE,GAAG,eAAe,CAAC;gBAEvB,CAAC;gBAED,IAAI,CAAC,GAAG,iBAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxB,EAAE,CAAA,CAAC,CAAC,KAAG,CAAmB,CAAC;oBAC1B,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC;YAEb,CAAC;YAED,MAAM,CAAC,CAAC,CAAC;QACV,CAAC,CAAC;IACH,CAAC;IAxCD,2CAwCC,CAAA","file":"System/Collections/Array/Sorting/createComparer.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Type} from \"../../../Types\";\r\nimport {compare} from \"../../../Compare\";\r\nimport {Primitive} from \"../../../Primitive\";\r\nimport {Selector, Comparison} from \"../../../FunctionTypes\";\r\nimport {CompareResult} from \"../../../CompareResult\";\r\nimport {Order} from \"../../Sorting/Order\";\r\n\r\nfunction ensureArray(value:T|T[]):T[]\r\n{\r\n\treturn Array.isArray(value)\r\n\t\t? value\r\n\t\t: [value];\r\n}\r\n\r\n/**\r\n * A factory function that creates a comparer to be used in multi-dimensional sorting.\r\n *\r\n *

Example

\r\n * ```typescript\r\n * var myArray = [{a:1:b:2},{a:3,b:4},{a:1,b:3}];\r\n *\r\n * // First sort by a, then by b.\r\n * myArray.sort(\r\n * createComparer(\r\n * (e)=> [e.a, e.b],\r\n * [Order.Ascending, Order.Descending]\r\n * )\r\n * );\r\n *\r\n * // result: [{a:1,b:3},{a:1:b:2},{a:3,b:4}]\r\n * ```\r\n *\r\n * @param selector\r\n * @param order\r\n * @param equivalentToNaN\r\n * @returns {function((TSource|TSource[]), (TSource|TSource[])): CompareResult}\r\n */\r\nexport function createComparer(\r\n\tselector:Selector,\r\n\torder:Order | Order[] = Order.Ascending,\r\n\tequivalentToNaN:any = NaN):Comparison\r\n{\r\n\tvar nanHasEquivalent = !Type.isTrueNaN(equivalentToNaN);\r\n\r\n\treturn (a:TSource|TSource[], b:TSource|TSource[]):CompareResult=>\r\n\t{\r\n\t\t// Use an array always to ensure a single code path.\r\n\t\tvar aValue = ensureArray(selector(a));\r\n\t\tvar bValue = ensureArray(selector(b));\r\n\t\tvar len = Math.min(aValue.length, bValue.length);\r\n\r\n\t\tvar oArray = Array.isArray(order) ? order : null;\r\n\t\tfor(let i = 0; iorder;\r\n\r\n\t\t\tif(nanHasEquivalent)\r\n\t\t\t{\r\n\t\t\t\tif(Type.isTrueNaN(vA))\r\n\t\t\t\t\tvA = equivalentToNaN;\r\n\t\t\t\tif(Type.isTrueNaN(vB))\r\n\t\t\t\t\tvB = equivalentToNaN;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tvar r = compare(vA, vB);\r\n\t\t\tif(r!==CompareResult.Equal)\r\n\t\t\t\treturn o*r;\r\n\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t};\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/dist/system/System/Collections/Array/Sorting/insertionSort.d.ts b/dist/system/System/Collections/Array/Sorting/insertionSort.d.ts new file mode 100644 index 00000000..3a243c00 --- /dev/null +++ b/dist/system/System/Collections/Array/Sorting/insertionSort.d.ts @@ -0,0 +1,6 @@ +/*! + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +import { Primitive } from "../../../Primitive"; +export declare function insertionSort(target: T[]): T[]; diff --git a/dist/system/System/Collections/Array/Sorting/insertionSort.js b/dist/system/System/Collections/Array/Sorting/insertionSort.js new file mode 100644 index 00000000..a294249c --- /dev/null +++ b/dist/system/System/Collections/Array/Sorting/insertionSort.js @@ -0,0 +1,34 @@ +/*! + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +System.register(["../../../Exceptions/ArgumentNullException"], function(exports_1, context_1) { + "use strict"; + var __moduleName = context_1 && context_1.id; + var ArgumentNullException_1; + function insertionSort(target) { + if (!target) + throw new ArgumentNullException_1.ArgumentNullException("target"); + var len = target.length; + for (var i = 1; i < len; i++) { + var j = i, j1 = void 0; + while (j > 0 && target[(j1 = j - 1)] > target[j]) { + var swap = target[j]; + target[j] = target[j1]; + target[j1] = swap; + j--; + } + } + return target; + } + exports_1("insertionSort", insertionSort); + return { + setters:[ + function (ArgumentNullException_1_1) { + ArgumentNullException_1 = ArgumentNullException_1_1; + }], + execute: function() { + } + } +}); +//# sourceMappingURL=insertionSort.js.map \ No newline at end of file diff --git a/dist/system/System/Collections/Array/Sorting/insertionSort.js.map b/dist/system/System/Collections/Array/Sorting/insertionSort.js.map new file mode 100644 index 00000000..2d15b0db --- /dev/null +++ b/dist/system/System/Collections/Array/Sorting/insertionSort.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["System/Collections/Array/Sorting/insertionSort.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;IAWH,uBAAmD,MAAU;QAE5D,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC;YAAC,MAAM,IAAI,6CAAqB,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QAExB,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EACzB,CAAC;YACA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAO,CAAC;YAErB,OAAM,CAAC,GAAC,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAC,MAAM,CAAC,CAAC,CAAC,EAC3C,CAAC;gBACA,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACrB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;gBACvB,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;gBAClB,CAAC,EAAE,CAAC;YACL,CAAC;QACF,CAAC;QAED,MAAM,CAAC,MAAM,CAAC;IAEf,CAAC;IApBD,yCAoBC,CAAA","file":"System/Collections/Array/Sorting/insertionSort.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Primitive} from \"../../../Primitive\";\r\nimport {ArgumentNullException} from \"../../../Exceptions/ArgumentNullException\";\r\n\r\n/**\r\n * https://en.wikipedia.org/wiki/Insertion_sort\r\n * @param target\r\n * @returns {T[]}\r\n */\r\nexport function insertionSort(target:T[]):T[]\r\n{\r\n\tif(!target) throw new ArgumentNullException(\"target\");\r\n\tvar len = target.length;\r\n\r\n\tfor(let i = 1; i0 && target[(j1 = j - 1)]>target[j])\r\n\t\t{\r\n\t\t\tlet swap = target[j];\r\n\t\t\ttarget[j] = target[j1];\r\n\t\t\ttarget[j1] = swap;\r\n\t\t\tj--;\r\n\t\t}\r\n\t}\r\n\r\n\treturn target;\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/system/System/Collections/Array/Sorting/mergeSort.d.ts b/dist/system/System/Collections/Array/Sorting/mergeSort.d.ts new file mode 100644 index 00000000..f08b7d5e --- /dev/null +++ b/dist/system/System/Collections/Array/Sorting/mergeSort.d.ts @@ -0,0 +1,8 @@ +/*! + * @author Sebastian Belmar / https://github.com/sebabelmar/ + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + * https://en.wikipedia.org/wiki/Merge_sort + */ +import { Primitive } from "../../../Primitive"; +export declare function mergeSort(target: T[]): T[]; diff --git a/dist/system/System/Collections/Array/Sorting/mergeSort.js b/dist/system/System/Collections/Array/Sorting/mergeSort.js new file mode 100644 index 00000000..0f143b2a --- /dev/null +++ b/dist/system/System/Collections/Array/Sorting/mergeSort.js @@ -0,0 +1,51 @@ +/*! + * @author Sebastian Belmar / https://github.com/sebabelmar/ + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + * https://en.wikipedia.org/wiki/Merge_sort + */ +System.register(["../../../Exceptions/ArgumentNullException", "../Utility"], function(exports_1, context_1) { + "use strict"; + var __moduleName = context_1 && context_1.id; + var ArgumentNullException_1, Utility_1; + function mergeSort(target) { + if (!target) + throw new ArgumentNullException_1.ArgumentNullException("target"); + var len = target.length; + return len < 2 ? target : sort(target, 0, len, Utility_1.initialize(len)); + } + exports_1("mergeSort", mergeSort); + function sort(target, start, end, temp) { + if (end - start > 1) { + var middle = Math.floor((start + end) / 2); + sort(target, start, middle, temp); + sort(target, middle, end, temp); + for (var i_1 = 0, len = target.length; i_1 < len; i_1++) { + temp[i_1] = target[i_1]; + } + var k = start, i = start, j = middle; + while (i < middle && j < end) { + target[k++] + = temp[i] > temp[j] + ? temp[j++] + : temp[i++]; + } + while (i < middle) { + target[k++] = temp[i++]; + } + } + return target; + } + return { + setters:[ + function (ArgumentNullException_1_1) { + ArgumentNullException_1 = ArgumentNullException_1_1; + }, + function (Utility_1_1) { + Utility_1 = Utility_1_1; + }], + execute: function() { + } + } +}); +//# sourceMappingURL=mergeSort.js.map \ No newline at end of file diff --git a/dist/system/System/Collections/Array/Sorting/mergeSort.js.map b/dist/system/System/Collections/Array/Sorting/mergeSort.js.map new file mode 100644 index 00000000..18e7f34a --- /dev/null +++ b/dist/system/System/Collections/Array/Sorting/mergeSort.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["System/Collections/Array/Sorting/mergeSort.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;IAaH,mBAA+C,MAAU;QAExD,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC;YAAC,MAAM,IAAI,6CAAqB,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QACxB,MAAM,CAAC,GAAG,GAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,oBAAU,CAAI,GAAG,CAAC,CAAC,CAAC;IAClE,CAAC;IALD,iCAKC,CAAA;IAED,cACC,MAAU,EACV,KAAY,EACZ,GAAU,EACV,IAAQ;QAER,EAAE,CAAA,CAAC,GAAG,GAAG,KAAK,GAAC,CAAC,CAAC,CACjB,CAAC;YAEA,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAC,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAGhC,GAAG,CAAA,CAAC,IAAI,GAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAC,GAAC,GAAG,EAAE,GAAC,EAAE,EAC9C,CAAC;gBACA,IAAI,CAAC,GAAC,CAAC,GAAG,MAAM,CAAC,GAAC,CAAC,CAAC;YACrB,CAAC;YAGD,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;YAGrC,OAAM,CAAC,GAAC,MAAM,IAAI,CAAC,GAAC,GAAG,EACvB,CAAC;gBACA,MAAM,CAAC,CAAC,EAAE,CAAC;sBACR,IAAI,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC,CAAC;0BACf,IAAI,CAAC,CAAC,EAAE,CAAC;0BACT,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YACd,CAAC;YAGD,OAAM,CAAC,GAAC,MAAM,EACd,CAAC;gBACA,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;QAEF,CAAC;QAED,MAAM,CAAC,MAAM,CAAA;IACd,CAAC","file":"System/Collections/Array/Sorting/mergeSort.js","sourcesContent":["/*!\r\n * @author Sebastian Belmar / https://github.com/sebabelmar/\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * https://en.wikipedia.org/wiki/Merge_sort\r\n */\r\n\r\n\r\nimport {Primitive} from \"../../../Primitive\";\r\nimport {ArgumentNullException} from \"../../../Exceptions/ArgumentNullException\";\r\nimport {initialize} from \"../Utility\";\r\n\r\n/**\r\n * Merge sort O(n log (n))\r\n * Warning: Uses recursion.\r\n * @param target\r\n * @returns {number[]}\r\n */\r\nexport function mergeSort(target:T[]):T[]\r\n{\r\n\tif(!target) throw new ArgumentNullException(\"target\");\r\n\tvar len = target.length;\r\n\treturn len<2 ? target : sort(target, 0, len, initialize(len));\r\n}\r\n\r\nfunction sort(\r\n\ttarget:T[],\r\n\tstart:number,\r\n\tend:number,\r\n\ttemp:T[]):T[]\r\n{\r\n\tif(end - start>1)\r\n\t{\r\n\t\t// Step 1: Sort the left and right parts.\r\n\t\tvar middle = Math.floor((start + end)/2);\r\n\t\tsort(target, start, middle, temp);\r\n\t\tsort(target, middle, end, temp);\r\n\r\n\t\t// Step 2: Copy the original array\r\n\t\tfor(let i = 0, len = target.length; itemp[j]\r\n\t\t\t\t? temp[j++]\r\n\t\t\t\t: temp[i++];\r\n\t\t}\r\n\r\n\t\t// Step 5: Finalize merging in case right side of the array is bigger.\r\n\t\twhile(i(target: T[], low?: number, high?: number): T[]; +export declare function quickSort(target: T[]): T[]; diff --git a/dist/system/System/Collections/Array/Sort/quickSort.js b/dist/system/System/Collections/Array/Sorting/quickSort.js similarity index 82% rename from dist/system/System/Collections/Array/Sort/quickSort.js rename to dist/system/System/Collections/Array/Sorting/quickSort.js index 520d7da4..993c3339 100644 --- a/dist/system/System/Collections/Array/Sort/quickSort.js +++ b/dist/system/System/Collections/Array/Sorting/quickSort.js @@ -7,11 +7,14 @@ System.register(["../../../Exceptions/ArgumentNullException"], function(exports_ "use strict"; var __moduleName = context_1 && context_1.id; var ArgumentNullException_1; - function quickSort(target, low, high) { - if (low === void 0) { low = 0; } - if (high === void 0) { high = target && (target.length - 1); } + function quickSort(target) { if (!target) throw new ArgumentNullException_1.ArgumentNullException("target"); + var len = target.length; + return target.length < 2 ? target : sort(target, 0, len - 1); + } + exports_1("quickSort", quickSort); + function sort(target, low, high) { if (low < high) { var swap, pivotIndex = Math.floor((low + high) / 2); swap = target[pivotIndex]; @@ -29,12 +32,11 @@ System.register(["../../../Exceptions/ArgumentNullException"], function(exports_ swap = target[i]; target[i] = target[high]; target[high] = swap; - quickSort(target, low, i - 1); - quickSort(target, i + 1, high); + sort(target, low, i - 1); + sort(target, i + 1, high); } return target; } - exports_1("quickSort", quickSort); return { setters:[ function (ArgumentNullException_1_1) { diff --git a/dist/system/System/Collections/Array/Sorting/quickSort.js.map b/dist/system/System/Collections/Array/Sorting/quickSort.js.map new file mode 100644 index 00000000..f8378372 --- /dev/null +++ b/dist/system/System/Collections/Array/Sorting/quickSort.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["System/Collections/Array/Sorting/quickSort.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;;;;IAYH,mBAA+C,MAAU;QAExD,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC;YAAC,MAAM,IAAI,6CAAqB,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,MAAM,GAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IALD,iCAKC,CAAA;IAED,cACC,MAAU,EACV,GAAU,EACV,IAAW;QAEX,EAAE,CAAA,CAAC,GAAG,GAAC,IAAI,CAAC,CACZ,CAAC;YAEA,IAAI,IAAM,EAAE,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC;YAEpD,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1B,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAEpB,IAAI,CAAC,GAAG,GAAG,CAAC;YACZ,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAC,IAAI,EAAE,CAAC,EAAE,EAC5B,CAAC;gBACA,EAAE,CAAA,CAAC,MAAM,CAAC,CAAC,CAAC,GAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAC1B,CAAC;oBACA,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACjB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACtB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;oBACjB,CAAC,EAAE,CAAC;gBACL,CAAC;YACF,CAAC;YAED,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAEpB,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,CAAC,MAAM,CAAC;IACf,CAAC","file":"System/Collections/Array/Sorting/quickSort.js","sourcesContent":["/*!\r\n * @author Sebastian Belmar / https://github.com/sebabelmar/\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Primitive} from \"../../../Primitive\";\r\nimport {ArgumentNullException} from \"../../../Exceptions/ArgumentNullException\";\r\n\r\n/**\r\n * Quick sort O(n log (n))\r\n * Warning: Uses recursion.\r\n * @param target\r\n * @returns {T[]}\r\n */\r\nexport function quickSort(target:T[]):T[]\r\n{\r\n\tif(!target) throw new ArgumentNullException(\"target\");\r\n\tvar len = target.length;\r\n\treturn target.length<2 ? target : sort(target, 0, len - 1);\r\n}\r\n\r\nfunction sort(\r\n\ttarget:T[],\r\n\tlow:number,\r\n\thigh:number):T[]\r\n{\r\n\tif(low(source: IArray): T | undefined; module select { diff --git a/dist/system/System/Integer.js b/dist/system/System/Integer.js index 888fa664..2ccc903a 100644 --- a/dist/system/System/Integer.js +++ b/dist/system/System/Integer.js @@ -41,6 +41,15 @@ System.register(["./Exceptions/ArgumentException", "./Exceptions/ArgumentOutOfRa return r(boundary); } random.next = next; + function set(count, boundary, inclusive) { + var s = []; + s.length = count; + for (var i = 0; i < count; i++) { + s[i] = next(boundary, inclusive); + } + return s; + } + random.set = set; function nextInRange(min, max, inclusive) { assert(min, 'min'); assert(max, 'max'); diff --git a/dist/system/System/Integer.js.map b/dist/system/System/Integer.js.map index fb15d900..7982c799 100644 --- a/dist/system/System/Integer.js.map +++ b/dist/system/System/Integer.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Integer.ts"],"names":[],"mappings":"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","file":"System/Integer.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentException} from \"./Exceptions/ArgumentException\";\r\nimport {ArgumentOutOfRangeException} from \"./Exceptions/ArgumentOutOfRangeException\";\r\nimport {IArray} from \"./Collections/Array/IArray\";\r\n\r\nexport function Integer(n:number):number\r\n{\r\n\treturn Math.floor(n);\r\n}\r\n\r\nexport module Integer\r\n{\r\n\texport const MAX_32_BIT:number = 2147483647;\r\n\r\n\tfunction r(maxExclusive:number):number\r\n\t{\r\n\t\treturn (Math.random()*maxExclusive) | 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a random integer from minInclusive to the maxExclusive.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * @param maxExclusive\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(maxExclusive:number):number\r\n\t{\r\n\t\tassert(maxExclusive, 'maxExclusive');\r\n\t\treturn r(maxExclusive);\r\n\t}\r\n\r\n\texport module random\r\n\t{\r\n\t\texport function next(\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(boundary, 'max');\r\n\t\t\tif(boundary===0) return 0;\r\n\t\t\tif(inclusive) boundary += boundary/Math.abs(boundary);\r\n\t\t\treturn r(boundary);\r\n\t\t}\r\n\r\n\t\texport function nextInRange(\r\n\t\t\tmin:number,\r\n\t\t\tmax:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(min, 'min');\r\n\t\t\tassert(max, 'max');\r\n\t\t\tvar range = max - min;\r\n\t\t\tif(range===0) return min;\r\n\t\t\tif(inclusive) range += range/Math.abs(range);\r\n\t\t\treturn min + next(range);\r\n\t\t}\r\n\r\n\t\texport function select(source:IArray):T|undefined\r\n\t\t{\r\n\t\t\treturn source && source.length\r\n\t\t\t\t? source[r(source.length)]\r\n\t\t\t\t: void(0);\r\n\t\t}\r\n\r\n\t\texport module select\r\n\t\t{\r\n\t\t\texport function one(source:IArray):T|undefined\r\n\t\t\t{\r\n\t\t\t\treturn random.select(source);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\texport function as32Bit(n:number):number|null\r\n\t{\r\n\t\tvar result = n | 0;\r\n\t\treturn (n=== -1 || result!== -1) ? result : null;\r\n\t}\r\n\r\n\tconst NUMBER:string = \"number\";\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn typeof n===NUMBER && isFinite(n) && n===Math.floor(n);\r\n\t}\r\n\r\n\texport function is32Bit(n:number):boolean\r\n\t{\r\n\t\treturn n===(n | 0);\r\n\t}\r\n\r\n\r\n\texport function assert(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = is(n);\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be a integer.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertZeroOrGreater(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>=0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertPositive(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n}\r\n\r\nexport default Integer;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Integer.ts"],"names":[],"mappings":"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","file":"System/Integer.js","sourcesContent":["/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentException} from \"./Exceptions/ArgumentException\";\r\nimport {ArgumentOutOfRangeException} from \"./Exceptions/ArgumentOutOfRangeException\";\r\nimport {IArray} from \"./Collections/Array/IArray\";\r\n\r\nexport function Integer(n:number):number\r\n{\r\n\treturn Math.floor(n);\r\n}\r\n\r\nexport module Integer\r\n{\r\n\texport const MAX_32_BIT:number = 2147483647;\r\n\r\n\tfunction r(maxExclusive:number):number\r\n\t{\r\n\t\treturn (Math.random()*maxExclusive) | 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a random integer from minInclusive to the maxExclusive.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * @param maxExclusive\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(maxExclusive:number):number\r\n\t{\r\n\t\tassert(maxExclusive, 'maxExclusive');\r\n\t\treturn r(maxExclusive);\r\n\t}\r\n\r\n\texport module random\r\n\t{\r\n\t\texport function next(\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(boundary, 'max');\r\n\t\t\tif(boundary===0) return 0;\r\n\t\t\tif(inclusive) boundary += boundary/Math.abs(boundary);\r\n\t\t\treturn r(boundary);\r\n\t\t}\r\n\r\n\t\texport function set(\r\n\t\t\tcount:number,\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number[]\r\n\t\t{\r\n\t\t\tvar s:number[] = [];\r\n\t\t\ts.length = count;\r\n\t\t\tfor(let i=0;i(source:IArray):T|undefined\r\n\t\t{\r\n\t\t\treturn source && source.length\r\n\t\t\t\t? source[r(source.length)]\r\n\t\t\t\t: void(0);\r\n\t\t}\r\n\r\n\t\texport module select\r\n\t\t{\r\n\t\t\texport function one(source:IArray):T|undefined\r\n\t\t\t{\r\n\t\t\t\treturn random.select(source);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\texport function as32Bit(n:number):number|null\r\n\t{\r\n\t\tvar result = n | 0;\r\n\t\treturn (n=== -1 || result!== -1) ? result : null;\r\n\t}\r\n\r\n\tconst NUMBER:string = \"number\";\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn typeof n===NUMBER && isFinite(n) && n===Math.floor(n);\r\n\t}\r\n\r\n\texport function is32Bit(n:number):boolean\r\n\t{\r\n\t\treturn n===(n | 0);\r\n\t}\r\n\r\n\r\n\texport function assert(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = is(n);\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be a integer.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertZeroOrGreater(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>=0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertPositive(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n}\r\n\r\nexport default Integer;\r\n"]} \ No newline at end of file diff --git a/dist/system/System/Threading/Tasks/eval.d.ts b/dist/system/System/Threading/Tasks/eval.d.ts deleted file mode 100644 index 5a929f84..00000000 --- a/dist/system/System/Threading/Tasks/eval.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/*! - * From: https://github.com/adambom/parallel.js/blob/master/lib/eval.js - */ diff --git a/dist/system/System/Threading/Tasks/eval.js b/dist/system/System/Threading/Tasks/eval.js deleted file mode 100644 index 38089cc6..00000000 --- a/dist/system/System/Threading/Tasks/eval.js +++ /dev/null @@ -1,14 +0,0 @@ -/*! - * From: https://github.com/adambom/parallel.js/blob/master/lib/eval.js - */ -if (typeof module !== 'undefined' && module.exports) { - process.once('message', function (code) { - eval(JSON.parse(code).data); - }); -} -else { - self.onmessage = function (code) { - eval(code.data); - }; -} -//# sourceMappingURL=eval.js.map \ No newline at end of file diff --git a/dist/system/System/Threading/Tasks/eval.js.map b/dist/system/System/Threading/Tasks/eval.js.map deleted file mode 100644 index bbd30d23..00000000 --- a/dist/system/System/Threading/Tasks/eval.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["System/Threading/Tasks/eval.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,EAAE,CAAA,CAAC,OAAO,MAAM,KAAG,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC,CACjD,CAAC;IACA,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,UAAC,IAAW;QAEnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACJ,CAAC;AACD,IAAI,CACJ,CAAC;IACA,IAAI,CAAC,SAAS,GAAG,UAAC,IAAQ;QAEzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC;AACH,CAAC","file":"System/Threading/Tasks/eval.js","sourcesContent":["/*!\r\n * From: https://github.com/adambom/parallel.js/blob/master/lib/eval.js\r\n */\r\n\r\n///\r\n\r\nif(typeof module!=='undefined' && module.exports)\r\n{\r\n\tprocess.once('message', (code:string)=>\r\n\t{\r\n\t\teval(JSON.parse(code).data);\r\n\t});\r\n}\r\nelse\r\n{\r\n\tself.onmessage = (code:any)=>\r\n\t{\r\n\t\teval(code.data);\r\n\t};\r\n}"]} \ No newline at end of file diff --git a/dist/umd.min/System.Linq/Enumerable.d.ts b/dist/umd.min/System.Linq/Enumerable.d.ts index e6b491d4..c294cbdf 100644 --- a/dist/umd.min/System.Linq/Enumerable.d.ts +++ b/dist/umd.min/System.Linq/Enumerable.d.ts @@ -1,5 +1,9 @@ import { - Action, Predicate, Selector, EqualityComparison, Comparison, + Action, + Predicate, + Selector, + EqualityComparison, + Comparison, Closure } from "../System/FunctionTypes"; import {IEnumerableOrArray} from "../System/Collections/IEnumerableOrArray"; diff --git a/dist/umd.min/System/Collections/Array/Sort.d.ts b/dist/umd.min/System/Collections/Array/Sort.d.ts index 49b24d1c..6a6f53cb 100644 --- a/dist/umd.min/System/Collections/Array/Sort.d.ts +++ b/dist/umd.min/System/Collections/Array/Sort.d.ts @@ -1,3 +1,3 @@ -import { createComparer } from "./Sort/createComparer"; -export * from "./Sort/quickSort"; +import { createComparer } from "./Sorting/createComparer"; +export * from "./Sorting/quickSort"; export { createComparer, createComparer as default, createComparer as by }; diff --git a/dist/umd.min/System/Collections/Array/Sort.js b/dist/umd.min/System/Collections/Array/Sort.js index 444dd825..dee020ba 100644 --- a/dist/umd.min/System/Collections/Array/Sort.js +++ b/dist/umd.min/System/Collections/Array/Sort.js @@ -1,2 +1,2 @@ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var r=e(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(["require","exports","./Sort/createComparer","./Sort/quickSort"],e)}(function(e,r){"use strict";function o(e){for(var o in e)r.hasOwnProperty(o)||(r[o]=e[o])}var t=e("./Sort/createComparer");r.createComparer=t.createComparer,r["default"]=t.createComparer,r.by=t.createComparer,o(e("./Sort/quickSort"))}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var r=e(require,exports);void 0!==r&&(module.exports=r)}else"function"==typeof define&&define.amd&&define(["require","exports","./Sorting/createComparer","./Sorting/quickSort"],e)}(function(e,r){"use strict";function o(e){for(var o in e)r.hasOwnProperty(o)||(r[o]=e[o])}var t=e("./Sorting/createComparer");r.createComparer=t.createComparer,r["default"]=t.createComparer,r.by=t.createComparer,o(e("./Sorting/quickSort"))}); //# sourceMappingURL=Sort.js.map \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Array/Sort.js.map b/dist/umd.min/System/Collections/Array/Sort.js.map index 26d98d42..0a60c8ee 100644 --- a/dist/umd.min/System/Collections/Array/Sort.js.map +++ b/dist/umd.min/System/Collections/Array/Sort.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Array/Sort.js","System/Collections/Array/Sort.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","__export","m","p","hasOwnProperty","createComparer_1","createComparer","by"],"mappings":"CAAA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,wBAAyB,oBAAqBN,IAEjF,SAAUI,EAASF,GAClB,YACA,SAASM,GAASC,GACd,IAAK,GAAIC,KAAKD,GAAQP,EAAQS,eAAeD,KAAIR,EAAQQ,GAAKD,EAAEC,ICVxE,GAAAE,GAAAR,EAA6B,wBAI5BF,GAAAW,eAAcD,EAAAC,eACIX,EAAAA,WAAOU,EAAAC,eACPX,EAAAY,GAAEF,EAAAC,eALrBL,EAAAJ,EAAc","file":"System/Collections/Array/Sort.js","sourcesContent":["(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./Sort/createComparer\", \"./Sort/quickSort\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n function __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n var createComparer_1 = require(\"./Sort/createComparer\");\n exports.createComparer = createComparer_1.createComparer;\n exports.default = createComparer_1.createComparer;\n exports.by = createComparer_1.createComparer;\n __export(require(\"./Sort/quickSort\"));\n});\n","import {createComparer} from \"./Sort/createComparer\";\r\nexport * from \"./Sort/quickSort\";\r\n\r\nexport {\r\n\tcreateComparer,\r\n\tcreateComparer as default, // Allow for default import.\r\n\tcreateComparer as by // Alias for Sort.by(...) instead of Sort.createComparer\r\n}"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Array/Sort.js","System/Collections/Array/Sort.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","__export","m","p","hasOwnProperty","createComparer_1","createComparer","by"],"mappings":"CAAA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,2BAA4B,uBAAwBN,IAEvF,SAAUI,EAASF,GAClB,YACA,SAASM,GAASC,GACd,IAAK,GAAIC,KAAKD,GAAQP,EAAQS,eAAeD,KAAIR,EAAQQ,GAAKD,EAAEC,ICVxE,GAAAE,GAAAR,EAA6B,2BAI5BF,GAAAW,eAAcD,EAAAC,eACIX,EAAAA,WAAOU,EAAAC,eACPX,EAAAY,GAAEF,EAAAC,eALrBL,EAAAJ,EAAc","file":"System/Collections/Array/Sort.js","sourcesContent":["(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./Sorting/createComparer\", \"./Sorting/quickSort\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n function __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n var createComparer_1 = require(\"./Sorting/createComparer\");\n exports.createComparer = createComparer_1.createComparer;\n exports.default = createComparer_1.createComparer;\n exports.by = createComparer_1.createComparer;\n __export(require(\"./Sorting/quickSort\"));\n});\n","import {createComparer} from \"./Sorting/createComparer\";\r\nexport * from \"./Sorting/quickSort\";\r\n\r\nexport {\r\n\tcreateComparer,\r\n\tcreateComparer as default, // Allow for default import.\r\n\tcreateComparer as by // Alias for Sort.by(...) instead of Sort.createComparer\r\n}"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Array/Sort/createComparer.js.map b/dist/umd.min/System/Collections/Array/Sort/createComparer.js.map deleted file mode 100644 index 27bfa651..00000000 --- a/dist/umd.min/System/Collections/Array/Sort/createComparer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["System/Collections/Array/Sort/createComparer.js","System/Collections/Array/Sort/createComparer.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","ensureArray","value","Array","isArray","createComparer","selector","order","equivalentToNaN","NaN","nanHasEquivalent","Types_1","Type","isTrueNaN","a","b","aValue","bValue","len","Math","min","length","oArray","i","vA","vB","o","r","Compare_1","compare"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,iBAAkB,oBAAqBN,IAE1E,SAAUI,EAASF,GAClB,YCCJ,SAAAM,GAAwBC,GAEvB,MAAOC,OAAMC,QAAQF,GACbA,GACDA,GA0BR,QAAAG,GACCC,EACAC,EACAC,GADA,SAAAD,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAAC,IAEA,IAAIC,IAAoBC,EAAAC,KAAKC,UAAUL,EAEvC,OAAO,UAACM,EAAqBC,GAQ5B,IAAI,GALAC,GAASf,EAAYK,EAASQ,IAC9BG,EAAShB,EAAYK,EAASS,IAC9BG,EAAMC,KAAKC,IAAIJ,EAAOK,OAAQJ,EAAOI,QAErCC,EAASnB,MAAMC,QAAQG,GAASA,EAAQ,KACpCgB,EAAI,EAAGA,EAAEL,EAAKK,IACtB,CACC,GAAIC,GAAKR,EAAOO,GACZE,EAAKR,EAAOM,GACZG,EAAKJ,EACDC,EAAED,EAAOD,OAASC,EAAOC,GAAK,EACxBhB,CAEXG,KAECC,EAAAC,KAAKC,UAAUW,KACjBA,EAAKhB,GACHG,EAAAC,KAAKC,UAAUY,KACjBA,EAAKjB,GAIP,IAAImB,GAAIC,EAAAC,QAAQL,EAAIC,EACpB,IAAO,IAAJE,EACF,MAAOD,GAAEC,EAIX,MAAO,IA3ET,GAAAhB,GAAAd,EAAmB,kBACnB+B,EAAA/B,EAAsB,mBAoCNF,GAAAU,eAAcA","file":"System/Collections/Array/Sort/createComparer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../../Types\", \"../../../Compare\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var Types_1 = require(\"../../../Types\");\n var Compare_1 = require(\"../../../Compare\");\n function ensureArray(value) {\n return Array.isArray(value)\n ? value\n : [value];\n }\n function createComparer(selector, order, equivalentToNaN) {\n if (order === void 0) { order = 1; }\n if (equivalentToNaN === void 0) { equivalentToNaN = NaN; }\n var nanHasEquivalent = !Types_1.Type.isTrueNaN(equivalentToNaN);\n return function (a, b) {\n var aValue = ensureArray(selector(a));\n var bValue = ensureArray(selector(b));\n var len = Math.min(aValue.length, bValue.length);\n var oArray = Array.isArray(order) ? order : null;\n for (var i = 0; i < len; i++) {\n var vA = aValue[i], vB = bValue[i], o = oArray\n ? (i < oArray.length ? oArray[i] : 1)\n : order;\n if (nanHasEquivalent) {\n if (Types_1.Type.isTrueNaN(vA))\n vA = equivalentToNaN;\n if (Types_1.Type.isTrueNaN(vB))\n vB = equivalentToNaN;\n }\n var r = Compare_1.compare(vA, vB);\n if (r !== 0)\n return o * r;\n }\n return 0;\n };\n }\n exports.createComparer = createComparer;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Type} from \"../../../Types\";\r\nimport {compare} from \"../../../Compare\";\r\nimport {Primitive} from \"../../../Primitive\";\r\nimport {Selector, Comparison} from \"../../../FunctionTypes\";\r\nimport {CompareResult} from \"../../../CompareResult\";\r\nimport {Order} from \"../../Sorting/Order\";\r\n\r\nfunction ensureArray(value:T|T[]):T[]\r\n{\r\n\treturn Array.isArray(value)\r\n\t\t? value\r\n\t\t: [value];\r\n}\r\n\r\n/**\r\n * A factory function that creates a comparer to be used in multi-dimensional sorting.\r\n *\r\n *

Example

\r\n * ```typescript\r\n * var myArray = [{a:1:b:2},{a:3,b:4},{a:1,b:3}];\r\n *\r\n * // First sort by a, then by b.\r\n * myArray.sort(\r\n * createComparer(\r\n * (e)=> [e.a, e.b],\r\n * [Order.Ascending, Order.Descending]\r\n * )\r\n * );\r\n *\r\n * // result: [{a:1,b:3},{a:1:b:2},{a:3,b:4}]\r\n * ```\r\n *\r\n * @param selector\r\n * @param order\r\n * @param equivalentToNaN\r\n * @returns {function((TSource|TSource[]), (TSource|TSource[])): CompareResult}\r\n */\r\nexport function createComparer(\r\n\tselector:Selector,\r\n\torder:Order | Order[] = Order.Ascending,\r\n\tequivalentToNaN:any = NaN):Comparison\r\n{\r\n\tvar nanHasEquivalent = !Type.isTrueNaN(equivalentToNaN);\r\n\r\n\treturn (a:TSource|TSource[], b:TSource|TSource[]):CompareResult=>\r\n\t{\r\n\t\t// Use an array always to ensure a single code path.\r\n\t\tvar aValue = ensureArray(selector(a));\r\n\t\tvar bValue = ensureArray(selector(b));\r\n\t\tvar len = Math.min(aValue.length, bValue.length);\r\n\r\n\t\tvar oArray = Array.isArray(order) ? order : null;\r\n\t\tfor(let i = 0; iorder;\r\n\r\n\t\t\tif(nanHasEquivalent)\r\n\t\t\t{\r\n\t\t\t\tif(Type.isTrueNaN(vA))\r\n\t\t\t\t\tvA = equivalentToNaN;\r\n\t\t\t\tif(Type.isTrueNaN(vB))\r\n\t\t\t\t\tvB = equivalentToNaN;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tvar r = compare(vA, vB);\r\n\t\t\tif(r!==CompareResult.Equal)\r\n\t\t\t\treturn o*r;\r\n\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t};\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Array/Sort/quickSort.js.map b/dist/umd.min/System/Collections/Array/Sort/quickSort.js.map deleted file mode 100644 index 81f35407..00000000 --- a/dist/umd.min/System/Collections/Array/Sort/quickSort.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["System/Collections/Array/Sort/quickSort.js","System/Collections/Array/Sort/quickSort.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","quickSort","target","low","high","length","ArgumentNullException_1","ArgumentNullException","swap","pivotIndex","Math","floor","i","j"],"mappings":";;;;;CAKA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,6CAA8CN,IAEjF,SAAUI,EAASF,GAClB,YCKJ,SAAAM,GACCC,EACAC,EACAC,GAEA,GAHA,SAAAD,IAAAA,EAAA,GACA,SAAAC,IAAAA,EAAcF,GAAWA,EAAOG,OAAS,IAErCH,EAAQ,KAAM,IAAII,GAAAC,sBAAsB,SAC5C,IAAGJ,EAAIC,EACP,CAEC,GAAII,GAAQC,EAAaC,KAAKC,OAAOR,EAAMC,GAAM,EAEjDI,GAAON,EAAOO,GACdP,EAAOO,GAAcP,EAAOE,GAC5BF,EAAOE,GAAQI,CAGf,KAAI,GADAI,GAAIT,EACAU,EAAIV,EAAKU,EAAET,EAAMS,IAErBX,EAAOW,GAAGX,EAAOE,KAEnBI,EAAON,EAAOU,GACdV,EAAOU,GAAKV,EAAOW,GACnBX,EAAOW,GAAKL,EACZI,IAIFJ,GAAON,EAAOU,GACdV,EAAOU,GAAKV,EAAOE,GACnBF,EAAOE,GAAQI,EAEfP,EAAUC,EAAQC,EAAKS,EAAI,GAC3BX,EAAUC,EAAQU,EAAI,EAAGR,GAG1B,MAAOF,GA7CR,GAAAI,GAAAT,EAAoC,4CAUpBF,GAAAM,UAASA","file":"System/Collections/Array/Sort/quickSort.js","sourcesContent":["/*!\n * @author Sebastian Belmar / https://github.com/sebabelmar/\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../../Exceptions/ArgumentNullException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ArgumentNullException_1 = require(\"../../../Exceptions/ArgumentNullException\");\n function quickSort(target, low, high) {\n if (low === void 0) { low = 0; }\n if (high === void 0) { high = target && (target.length - 1); }\n if (!target)\n throw new ArgumentNullException_1.ArgumentNullException(\"target\");\n if (low < high) {\n var swap, pivotIndex = Math.floor((low + high) / 2);\n swap = target[pivotIndex];\n target[pivotIndex] = target[high];\n target[high] = swap;\n var i = low;\n for (var j = low; j < high; j++) {\n if (target[j] < target[high]) {\n swap = target[i];\n target[i] = target[j];\n target[j] = swap;\n i++;\n }\n }\n swap = target[i];\n target[i] = target[high];\n target[high] = swap;\n quickSort(target, low, i - 1);\n quickSort(target, i + 1, high);\n }\n return target;\n }\n exports.quickSort = quickSort;\n});\n","/*!\r\n * @author Sebastian Belmar / https://github.com/sebabelmar/\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Primitive} from \"../../../Primitive\";\r\nimport {ArgumentNullException} from \"../../../Exceptions/ArgumentNullException\";\r\n\r\n/**\r\n * Quick sort O (n log n)\r\n * Warning: Uses recursion.\r\n * @param target\r\n * @param low\r\n * @param high\r\n * @returns {Array}\r\n */\r\nexport function quickSort(\r\n\ttarget:T[],\r\n\tlow:number = 0,\r\n\thigh:number = target && (target.length - 1)):T[]\r\n{\r\n\tif(!target) throw new ArgumentNullException(\"target\");\r\n\tif(low(value:T|T[]):T[]\r\n{\r\n\treturn Array.isArray(value)\r\n\t\t? value\r\n\t\t: [value];\r\n}\r\n\r\n/**\r\n * A factory function that creates a comparer to be used in multi-dimensional sorting.\r\n *\r\n *

Example

\r\n * ```typescript\r\n * var myArray = [{a:1:b:2},{a:3,b:4},{a:1,b:3}];\r\n *\r\n * // First sort by a, then by b.\r\n * myArray.sort(\r\n * createComparer(\r\n * (e)=> [e.a, e.b],\r\n * [Order.Ascending, Order.Descending]\r\n * )\r\n * );\r\n *\r\n * // result: [{a:1,b:3},{a:1:b:2},{a:3,b:4}]\r\n * ```\r\n *\r\n * @param selector\r\n * @param order\r\n * @param equivalentToNaN\r\n * @returns {function((TSource|TSource[]), (TSource|TSource[])): CompareResult}\r\n */\r\nexport function createComparer(\r\n\tselector:Selector,\r\n\torder:Order | Order[] = Order.Ascending,\r\n\tequivalentToNaN:any = NaN):Comparison\r\n{\r\n\tvar nanHasEquivalent = !Type.isTrueNaN(equivalentToNaN);\r\n\r\n\treturn (a:TSource|TSource[], b:TSource|TSource[]):CompareResult=>\r\n\t{\r\n\t\t// Use an array always to ensure a single code path.\r\n\t\tvar aValue = ensureArray(selector(a));\r\n\t\tvar bValue = ensureArray(selector(b));\r\n\t\tvar len = Math.min(aValue.length, bValue.length);\r\n\r\n\t\tvar oArray = Array.isArray(order) ? order : null;\r\n\t\tfor(let i = 0; iorder;\r\n\r\n\t\t\tif(nanHasEquivalent)\r\n\t\t\t{\r\n\t\t\t\tif(Type.isTrueNaN(vA))\r\n\t\t\t\t\tvA = equivalentToNaN;\r\n\t\t\t\tif(Type.isTrueNaN(vB))\r\n\t\t\t\t\tvB = equivalentToNaN;\r\n\r\n\t\t\t}\r\n\r\n\t\t\tvar r = compare(vA, vB);\r\n\t\t\tif(r!==CompareResult.Equal)\r\n\t\t\t\treturn o*r;\r\n\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t};\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Array/Sorting/insertionSort.d.ts b/dist/umd.min/System/Collections/Array/Sorting/insertionSort.d.ts new file mode 100644 index 00000000..3a243c00 --- /dev/null +++ b/dist/umd.min/System/Collections/Array/Sorting/insertionSort.d.ts @@ -0,0 +1,6 @@ +/*! + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +import { Primitive } from "../../../Primitive"; +export declare function insertionSort(target: T[]): T[]; diff --git a/dist/umd.min/System/Collections/Array/Sorting/insertionSort.js b/dist/umd.min/System/Collections/Array/Sorting/insertionSort.js new file mode 100644 index 00000000..114ac2d5 --- /dev/null +++ b/dist/umd.min/System/Collections/Array/Sorting/insertionSort.js @@ -0,0 +1,6 @@ +/*! + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + */ +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../../../Exceptions/ArgumentNullException"],e)}(function(e,t){"use strict";function o(e){if(!e)throw new r.ArgumentNullException("target");for(var t=e.length,o=1;o0&&e[i=n-1]>e[n];){var u=e[n];e[n]=e[i],e[i]=u,n--}return e}var r=e("../../../Exceptions/ArgumentNullException");t.insertionSort=o}); +//# sourceMappingURL=insertionSort.js.map \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Array/Sorting/insertionSort.js.map b/dist/umd.min/System/Collections/Array/Sorting/insertionSort.js.map new file mode 100644 index 00000000..fd20fd76 --- /dev/null +++ b/dist/umd.min/System/Collections/Array/Sorting/insertionSort.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["System/Collections/Array/Sorting/insertionSort.js","System/Collections/Array/Sorting/insertionSort.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","insertionSort","target","ArgumentNullException_1","ArgumentNullException","len","length","i","j","j1","swap"],"mappings":";;;;CAIA,SAAWA,GACP,GAAsB,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAAsB,CAClE,GAAIC,GAAIH,EAAQI,QAASF,QAAoBG,UAANF,IAAiBF,OAAOC,QAAUC,OAElD,kBAAXG,SAAyBA,OAAOC,KAC5CD,QAAQ,UAAW,UAAW,6CAA8CN,IAEjF,SAAUI,EAASF,GAClB,YCEJ,SAAAM,GAAmDC,GAElD,IAAIA,EAAQ,KAAM,IAAIC,GAAAC,sBAAsB,SAG5C,KAAI,GAFAC,GAAMH,EAAOI,OAETC,EAAI,EAAGA,EAAEF,EAAKE,IAIrB,IAFA,GAAIC,GAAID,EAAGE,EAAE,OAEPD,EAAE,GAAKN,EAAQO,EAAKD,EAAI,GAAIN,EAAOM,IACzC,CACC,GAAIE,GAAOR,EAAOM,EAClBN,GAAOM,GAAKN,EAAOO,GACnBP,EAAOO,GAAMC,EACbF,IAIF,MAAON,GAzBR,GAAAC,GAAAN,EAAoC,4CAOpBF,GAAAM,cAAaA","file":"System/Collections/Array/Sorting/insertionSort.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"../../../Exceptions/ArgumentNullException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ArgumentNullException_1 = require(\"../../../Exceptions/ArgumentNullException\");\n function insertionSort(target) {\n if (!target)\n throw new ArgumentNullException_1.ArgumentNullException(\"target\");\n var len = target.length;\n for (var i = 1; i < len; i++) {\n var j = i, j1 = void 0;\n while (j > 0 && target[(j1 = j - 1)] > target[j]) {\n var swap = target[j];\n target[j] = target[j1];\n target[j1] = swap;\n j--;\n }\n }\n return target;\n }\n exports.insertionSort = insertionSort;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\n\r\nimport {Primitive} from \"../../../Primitive\";\r\nimport {ArgumentNullException} from \"../../../Exceptions/ArgumentNullException\";\r\n\r\n/**\r\n * https://en.wikipedia.org/wiki/Insertion_sort\r\n * @param target\r\n * @returns {T[]}\r\n */\r\nexport function insertionSort(target:T[]):T[]\r\n{\r\n\tif(!target) throw new ArgumentNullException(\"target\");\r\n\tvar len = target.length;\r\n\r\n\tfor(let i = 1; i0 && target[(j1 = j - 1)]>target[j])\r\n\t\t{\r\n\t\t\tlet swap = target[j];\r\n\t\t\ttarget[j] = target[j1];\r\n\t\t\ttarget[j1] = swap;\r\n\t\t\tj--;\r\n\t\t}\r\n\t}\r\n\r\n\treturn target;\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Collections/Array/Sorting/mergeSort.d.ts b/dist/umd.min/System/Collections/Array/Sorting/mergeSort.d.ts new file mode 100644 index 00000000..f08b7d5e --- /dev/null +++ b/dist/umd.min/System/Collections/Array/Sorting/mergeSort.d.ts @@ -0,0 +1,8 @@ +/*! + * @author Sebastian Belmar / https://github.com/sebabelmar/ + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + * https://en.wikipedia.org/wiki/Merge_sort + */ +import { Primitive } from "../../../Primitive"; +export declare function mergeSort(target: T[]): T[]; diff --git a/dist/umd.min/System/Collections/Array/Sorting/mergeSort.js b/dist/umd.min/System/Collections/Array/Sorting/mergeSort.js new file mode 100644 index 00000000..97e7da91 --- /dev/null +++ b/dist/umd.min/System/Collections/Array/Sorting/mergeSort.js @@ -0,0 +1,8 @@ +/*! + * @author Sebastian Belmar / https://github.com/sebabelmar/ + * @author electricessence / https://github.com/electricessence/ + * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md + * https://en.wikipedia.org/wiki/Merge_sort + */ +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../../../Exceptions/ArgumentNullException","../Utility"],e)}(function(e,t){"use strict";function o(e){if(!e)throw new i.ArgumentNullException("target");var t=e.length;return t<2?e:r(e,0,t,n.initialize(t))}function r(e,t,o,i){if(o-t>1){var n=Math.floor((t+o)/2);r(e,t,n,i),r(e,n,o,i);for(var u=0,f=e.length;ui[p]?i[p++]:i[c++];for(;c 1) {\n var middle = Math.floor((start + end) / 2);\n sort(target, start, middle, temp);\n sort(target, middle, end, temp);\n for (var i_1 = 0, len = target.length; i_1 < len; i_1++) {\n temp[i_1] = target[i_1];\n }\n var k = start, i = start, j = middle;\n while (i < middle && j < end) {\n target[k++]\n = temp[i] > temp[j]\n ? temp[j++]\n : temp[i++];\n }\n while (i < middle) {\n target[k++] = temp[i++];\n }\n }\n return target;\n }\n});\n","/*!\r\n * @author Sebastian Belmar / https://github.com/sebabelmar/\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n * https://en.wikipedia.org/wiki/Merge_sort\r\n */\r\n\r\n\r\nimport {Primitive} from \"../../../Primitive\";\r\nimport {ArgumentNullException} from \"../../../Exceptions/ArgumentNullException\";\r\nimport {initialize} from \"../Utility\";\r\n\r\n/**\r\n * Merge sort O(n log (n))\r\n * Warning: Uses recursion.\r\n * @param target\r\n * @returns {number[]}\r\n */\r\nexport function mergeSort(target:T[]):T[]\r\n{\r\n\tif(!target) throw new ArgumentNullException(\"target\");\r\n\tvar len = target.length;\r\n\treturn len<2 ? target : sort(target, 0, len, initialize(len));\r\n}\r\n\r\nfunction sort(\r\n\ttarget:T[],\r\n\tstart:number,\r\n\tend:number,\r\n\ttemp:T[]):T[]\r\n{\r\n\tif(end - start>1)\r\n\t{\r\n\t\t// Step 1: Sort the left and right parts.\r\n\t\tvar middle = Math.floor((start + end)/2);\r\n\t\tsort(target, start, middle, temp);\r\n\t\tsort(target, middle, end, temp);\r\n\r\n\t\t// Step 2: Copy the original array\r\n\t\tfor(let i = 0, len = target.length; itemp[j]\r\n\t\t\t\t? temp[j++]\r\n\t\t\t\t: temp[i++];\r\n\t\t}\r\n\r\n\t\t// Step 5: Finalize merging in case right side of the array is bigger.\r\n\t\twhile(i(target: T[], low?: number, high?: number): T[]; +export declare function quickSort(target: T[]): T[]; diff --git a/dist/umd.min/System/Collections/Array/Sort/quickSort.js b/dist/umd.min/System/Collections/Array/Sorting/quickSort.js similarity index 52% rename from dist/umd.min/System/Collections/Array/Sort/quickSort.js rename to dist/umd.min/System/Collections/Array/Sorting/quickSort.js index 837c59e5..d3cfde4c 100644 --- a/dist/umd.min/System/Collections/Array/Sort/quickSort.js +++ b/dist/umd.min/System/Collections/Array/Sorting/quickSort.js @@ -3,5 +3,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","../../../Exceptions/ArgumentNullException"],e)}(function(e,t){"use strict";function o(e,t,i){if(void 0===t&&(t=0),void 0===i&&(i=e&&e.length-1),!e)throw new r.ArgumentNullException("target");if(t(target:T[]):T[]\r\n{\r\n\tif(!target) throw new ArgumentNullException(\"target\");\r\n\tvar len = target.length;\r\n\treturn target.length<2 ? target : sort(target, 0, len - 1);\r\n}\r\n\r\nfunction sort(\r\n\ttarget:T[],\r\n\tlow:number,\r\n\thigh:number):T[]\r\n{\r\n\tif(low(source: IArray): T | undefined; module select { diff --git a/dist/umd.min/System/Integer.js b/dist/umd.min/System/Integer.js index 70b8516b..473169cd 100644 --- a/dist/umd.min/System/Integer.js +++ b/dist/umd.min/System/Integer.js @@ -2,5 +2,5 @@ * @author electricessence / https://github.com/electricessence/ * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md */ -!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./Exceptions/ArgumentException","./Exceptions/ArgumentOutOfRangeException"],e)}(function(e,t){"use strict";function n(e){return Math.floor(e)}var r=e("./Exceptions/ArgumentException"),o=e("./Exceptions/ArgumentOutOfRangeException");t.Integer=n;var n;!function(e){function t(e){return Math.random()*e|0}function n(e){return c(e,"maxExclusive"),t(e)}function u(e){var t=0|e;return e===-1||t!==-1?t:null}function i(e){return typeof e===g&&isFinite(e)&&e===Math.floor(e)}function a(e){return e===(0|e)}function c(e,t){var n=i(e);if(!n)throw new r.ArgumentException(t||"n","Must be a integer.");return n}function f(e,t){var n=c(e,t)&&e>=0;if(!n)throw new o.ArgumentOutOfRangeException(t||"n",e,"Must be a valid integer greater than or equal to zero.");return n}function s(e,t){var n=c(e,t)&&e>0;if(!n)throw new o.ArgumentOutOfRangeException(t||"n",e,"Must be greater than zero.");return n}e.MAX_32_BIT=2147483647,e.random=n;var n;!function(e){function n(e,n){return c(e,"max"),0===e?0:(n&&(e+=e/Math.abs(e)),t(e))}function r(e,t,r){c(e,"min"),c(t,"max");var o=t-e;return 0===o?e:(r&&(o+=o/Math.abs(o)),e+n(o))}function o(e){return e&&e.length?e[t(e.length)]:void 0}e.next=n,e.nextInRange=r,e.select=o;var o;!function(t){function n(t){return e.select(t)}t.one=n}(o=e.select||(e.select={}))}(n=e.random||(e.random={})),e.as32Bit=u;var g="number";e.is=i,e.is32Bit=a,e.assert=c,e.assertZeroOrGreater=f,e.assertPositive=s}(n=t.Integer||(t.Integer={})),Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n}); +!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd&&define(["require","exports","./Exceptions/ArgumentException","./Exceptions/ArgumentOutOfRangeException"],e)}(function(e,t){"use strict";function n(e){return Math.floor(e)}var r=e("./Exceptions/ArgumentException"),o=e("./Exceptions/ArgumentOutOfRangeException");t.Integer=n;var n;!function(e){function t(e){return Math.random()*e|0}function n(e){return c(e,"maxExclusive"),t(e)}function u(e){var t=0|e;return e===-1||t!==-1?t:null}function i(e){return typeof e===g&&isFinite(e)&&e===Math.floor(e)}function a(e){return e===(0|e)}function c(e,t){var n=i(e);if(!n)throw new r.ArgumentException(t||"n","Must be a integer.");return n}function f(e,t){var n=c(e,t)&&e>=0;if(!n)throw new o.ArgumentOutOfRangeException(t||"n",e,"Must be a valid integer greater than or equal to zero.");return n}function s(e,t){var n=c(e,t)&&e>0;if(!n)throw new o.ArgumentOutOfRangeException(t||"n",e,"Must be greater than zero.");return n}e.MAX_32_BIT=2147483647,e.random=n;var n;!function(e){function n(e,n){return c(e,"max"),0===e?0:(n&&(e+=e/Math.abs(e)),t(e))}function r(e,t,r){var o=[];o.length=e;for(var u=0;u= 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\n return i;\n }\n Integer.assertZeroOrGreater = assertZeroOrGreater;\n function assertPositive(n, argumentName) {\n var i = assert(n, argumentName) && n > 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\n return i;\n }\n Integer.assertPositive = assertPositive;\n })(Integer = exports.Integer || (exports.Integer = {}));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Integer;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentException} from \"./Exceptions/ArgumentException\";\r\nimport {ArgumentOutOfRangeException} from \"./Exceptions/ArgumentOutOfRangeException\";\r\nimport {IArray} from \"./Collections/Array/IArray\";\r\n\r\nexport function Integer(n:number):number\r\n{\r\n\treturn Math.floor(n);\r\n}\r\n\r\nexport module Integer\r\n{\r\n\texport const MAX_32_BIT:number = 2147483647;\r\n\r\n\tfunction r(maxExclusive:number):number\r\n\t{\r\n\t\treturn (Math.random()*maxExclusive) | 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a random integer from minInclusive to the maxExclusive.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * @param maxExclusive\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(maxExclusive:number):number\r\n\t{\r\n\t\tassert(maxExclusive, 'maxExclusive');\r\n\t\treturn r(maxExclusive);\r\n\t}\r\n\r\n\texport module random\r\n\t{\r\n\t\texport function next(\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(boundary, 'max');\r\n\t\t\tif(boundary===0) return 0;\r\n\t\t\tif(inclusive) boundary += boundary/Math.abs(boundary);\r\n\t\t\treturn r(boundary);\r\n\t\t}\r\n\r\n\t\texport function nextInRange(\r\n\t\t\tmin:number,\r\n\t\t\tmax:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(min, 'min');\r\n\t\t\tassert(max, 'max');\r\n\t\t\tvar range = max - min;\r\n\t\t\tif(range===0) return min;\r\n\t\t\tif(inclusive) range += range/Math.abs(range);\r\n\t\t\treturn min + next(range);\r\n\t\t}\r\n\r\n\t\texport function select(source:IArray):T|undefined\r\n\t\t{\r\n\t\t\treturn source && source.length\r\n\t\t\t\t? source[r(source.length)]\r\n\t\t\t\t: void(0);\r\n\t\t}\r\n\r\n\t\texport module select\r\n\t\t{\r\n\t\t\texport function one(source:IArray):T|undefined\r\n\t\t\t{\r\n\t\t\t\treturn random.select(source);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\texport function as32Bit(n:number):number|null\r\n\t{\r\n\t\tvar result = n | 0;\r\n\t\treturn (n=== -1 || result!== -1) ? result : null;\r\n\t}\r\n\r\n\tconst NUMBER:string = \"number\";\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn typeof n===NUMBER && isFinite(n) && n===Math.floor(n);\r\n\t}\r\n\r\n\texport function is32Bit(n:number):boolean\r\n\t{\r\n\t\treturn n===(n | 0);\r\n\t}\r\n\r\n\r\n\texport function assert(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = is(n);\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be a integer.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertZeroOrGreater(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>=0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertPositive(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n}\r\n\r\nexport default Integer;\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Integer.js","System/Integer.ts"],"names":["factory","module","exports","v","require","undefined","define","amd","Integer","n","Math","floor","ArgumentException_1","ArgumentOutOfRangeException_1","r","maxExclusive","random","assert","as32Bit","result","is","NUMBER","isFinite","is32Bit","argumentName","i","ArgumentException","assertZeroOrGreater","ArgumentOutOfRangeException","assertPositive","MAX_32_BIT","next","boundary","inclusive","abs","set","count","s","length","nextInRange","min","max","range","select","source","one","Object","defineProperty","value"],"mappings":"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","file":"System/Integer.js","sourcesContent":["/*!\n * @author electricessence / https://github.com/electricessence/\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define([\"require\", \"exports\", \"./Exceptions/ArgumentException\", \"./Exceptions/ArgumentOutOfRangeException\"], factory);\n }\n})(function (require, exports) {\n \"use strict\";\n var ArgumentException_1 = require(\"./Exceptions/ArgumentException\");\n var ArgumentOutOfRangeException_1 = require(\"./Exceptions/ArgumentOutOfRangeException\");\n function Integer(n) {\n return Math.floor(n);\n }\n exports.Integer = Integer;\n var Integer;\n (function (Integer) {\n Integer.MAX_32_BIT = 2147483647;\n function r(maxExclusive) {\n return (Math.random() * maxExclusive) | 0;\n }\n function random(maxExclusive) {\n assert(maxExclusive, 'maxExclusive');\n return r(maxExclusive);\n }\n Integer.random = random;\n var random;\n (function (random) {\n function next(boundary, inclusive) {\n assert(boundary, 'max');\n if (boundary === 0)\n return 0;\n if (inclusive)\n boundary += boundary / Math.abs(boundary);\n return r(boundary);\n }\n random.next = next;\n function set(count, boundary, inclusive) {\n var s = [];\n s.length = count;\n for (var i = 0; i < count; i++) {\n s[i] = next(boundary, inclusive);\n }\n return s;\n }\n random.set = set;\n function nextInRange(min, max, inclusive) {\n assert(min, 'min');\n assert(max, 'max');\n var range = max - min;\n if (range === 0)\n return min;\n if (inclusive)\n range += range / Math.abs(range);\n return min + next(range);\n }\n random.nextInRange = nextInRange;\n function select(source) {\n return source && source.length\n ? source[r(source.length)]\n : void (0);\n }\n random.select = select;\n var select;\n (function (select) {\n function one(source) {\n return random.select(source);\n }\n select.one = one;\n })(select = random.select || (random.select = {}));\n })(random = Integer.random || (Integer.random = {}));\n function as32Bit(n) {\n var result = n | 0;\n return (n === -1 || result !== -1) ? result : null;\n }\n Integer.as32Bit = as32Bit;\n var NUMBER = \"number\";\n function is(n) {\n return typeof n === NUMBER && isFinite(n) && n === Math.floor(n);\n }\n Integer.is = is;\n function is32Bit(n) {\n return n === (n | 0);\n }\n Integer.is32Bit = is32Bit;\n function assert(n, argumentName) {\n var i = is(n);\n if (!i)\n throw new ArgumentException_1.ArgumentException(argumentName || 'n', \"Must be a integer.\");\n return i;\n }\n Integer.assert = assert;\n function assertZeroOrGreater(n, argumentName) {\n var i = assert(n, argumentName) && n >= 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\n return i;\n }\n Integer.assertZeroOrGreater = assertZeroOrGreater;\n function assertPositive(n, argumentName) {\n var i = assert(n, argumentName) && n > 0;\n if (!i)\n throw new ArgumentOutOfRangeException_1.ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\n return i;\n }\n Integer.assertPositive = assertPositive;\n })(Integer = exports.Integer || (exports.Integer = {}));\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = Integer;\n});\n","/*!\r\n * @author electricessence / https://github.com/electricessence/\r\n * Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md\r\n */\r\n\r\nimport {ArgumentException} from \"./Exceptions/ArgumentException\";\r\nimport {ArgumentOutOfRangeException} from \"./Exceptions/ArgumentOutOfRangeException\";\r\nimport {IArray} from \"./Collections/Array/IArray\";\r\n\r\nexport function Integer(n:number):number\r\n{\r\n\treturn Math.floor(n);\r\n}\r\n\r\nexport module Integer\r\n{\r\n\texport const MAX_32_BIT:number = 2147483647;\r\n\r\n\tfunction r(maxExclusive:number):number\r\n\t{\r\n\t\treturn (Math.random()*maxExclusive) | 0;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Returns a random integer from minInclusive to the maxExclusive.\r\n\t * Negative numbers are allowed.\r\n\t *\r\n\t * @param maxExclusive\r\n\t * @returns {number}\r\n\t */\r\n\texport function random(maxExclusive:number):number\r\n\t{\r\n\t\tassert(maxExclusive, 'maxExclusive');\r\n\t\treturn r(maxExclusive);\r\n\t}\r\n\r\n\texport module random\r\n\t{\r\n\t\texport function next(\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number\r\n\t\t{\r\n\t\t\tassert(boundary, 'max');\r\n\t\t\tif(boundary===0) return 0;\r\n\t\t\tif(inclusive) boundary += boundary/Math.abs(boundary);\r\n\t\t\treturn r(boundary);\r\n\t\t}\r\n\r\n\t\texport function set(\r\n\t\t\tcount:number,\r\n\t\t\tboundary:number,\r\n\t\t\tinclusive?:boolean):number[]\r\n\t\t{\r\n\t\t\tvar s:number[] = [];\r\n\t\t\ts.length = count;\r\n\t\t\tfor(let i=0;i(source:IArray):T|undefined\r\n\t\t{\r\n\t\t\treturn source && source.length\r\n\t\t\t\t? source[r(source.length)]\r\n\t\t\t\t: void(0);\r\n\t\t}\r\n\r\n\t\texport module select\r\n\t\t{\r\n\t\t\texport function one(source:IArray):T|undefined\r\n\t\t\t{\r\n\t\t\t\treturn random.select(source);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\texport function as32Bit(n:number):number|null\r\n\t{\r\n\t\tvar result = n | 0;\r\n\t\treturn (n=== -1 || result!== -1) ? result : null;\r\n\t}\r\n\r\n\tconst NUMBER:string = \"number\";\r\n\r\n\texport function is(n:number):boolean\r\n\t{\r\n\t\treturn typeof n===NUMBER && isFinite(n) && n===Math.floor(n);\r\n\t}\r\n\r\n\texport function is32Bit(n:number):boolean\r\n\t{\r\n\t\treturn n===(n | 0);\r\n\t}\r\n\r\n\r\n\texport function assert(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = is(n);\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentException(argumentName || 'n', \"Must be a integer.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertZeroOrGreater(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>=0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be a valid integer greater than or equal to zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n\texport function assertPositive(n:number, argumentName?:string):boolean\r\n\t{\r\n\t\tvar i = assert(n, argumentName) && n>0;\r\n\t\tif(!i)\r\n\t\t\tthrow new ArgumentOutOfRangeException(argumentName || 'n', n, \"Must be greater than zero.\");\r\n\t\treturn i;\r\n\t}\r\n\r\n}\r\n\r\nexport default Integer;\r\n"]} \ No newline at end of file diff --git a/dist/umd.min/System/Threading/Tasks/eval.d.ts b/dist/umd.min/System/Threading/Tasks/eval.d.ts deleted file mode 100644 index 5a929f84..00000000 --- a/dist/umd.min/System/Threading/Tasks/eval.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/*! - * From: https://github.com/adambom/parallel.js/blob/master/lib/eval.js - */ diff --git a/dist/umd.min/System/Threading/Tasks/eval.js b/dist/umd.min/System/Threading/Tasks/eval.js deleted file mode 100644 index 45ebcc73..00000000 --- a/dist/umd.min/System/Threading/Tasks/eval.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * From: https://github.com/adambom/parallel.js/blob/master/lib/eval.js - */ -"undefined"!=typeof module&&module.exports?process.once("message",function(code){eval(JSON.parse(code).data)}):self.onmessage=function(code){eval(code.data)}; -//# sourceMappingURL=eval.js.map \ No newline at end of file diff --git a/dist/umd.min/System/Threading/Tasks/eval.js.map b/dist/umd.min/System/Threading/Tasks/eval.js.map deleted file mode 100644 index 12ab9c55..00000000 --- a/dist/umd.min/System/Threading/Tasks/eval.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["System/Threading/Tasks/eval.ts"],"names":["module","exports","process","once","code","eval","JSON","parse","data","self","onmessage"],"mappings":";;;AAMmB,mBAATA,SAAwBA,OAAOC,QAExCC,QAAQC,KAAK,UAAW,SAACC,MAExBC,KAAKC,KAAKC,MAAMH,MAAMI,QAKvBC,KAAKC,UAAY,SAACN,MAEjBC,KAAKD,KAAKI","file":"System/Threading/Tasks/eval.js","sourcesContent":["/*!\r\n * From: https://github.com/adambom/parallel.js/blob/master/lib/eval.js\r\n */\r\n\r\n///\r\n\r\nif(typeof module!=='undefined' && module.exports)\r\n{\r\n\tprocess.once('message', (code:string)=>\r\n\t{\r\n\t\teval(JSON.parse(code).data);\r\n\t});\r\n}\r\nelse\r\n{\r\n\tself.onmessage = (code:any)=>\r\n\t{\r\n\t\teval(code.data);\r\n\t};\r\n}"]} \ No newline at end of file diff --git a/package.json b/package.json index bfe0e759..7ef71ab3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typescript-dotnet", - "version": "4.0.0", + "version": "4.0.1", "license": "MIT", "author": "electricessence ", "description": "A JavaScript-Friendly .NET Based TypeScript Library.", diff --git a/tests/mocha/System/Collections/Arrays/Sorting.js b/tests/mocha/System/Collections/Arrays/Sorting.js index 359b8973..6f25a605 100644 --- a/tests/mocha/System/Collections/Arrays/Sorting.js +++ b/tests/mocha/System/Collections/Arrays/Sorting.js @@ -1,11 +1,11 @@ "use strict"; var assert = require("assert"); -var quickSort_1 = require("../../../../../dist/commonjs/System/Collections/Array/Sorting/quickSort"); -var mergeSort_1 = require("../../../../../dist/commonjs/System/Collections/Array/Sorting/mergeSort"); var Compare_1 = require("../../../../../dist/commonjs/System/Collections/Array/Compare"); var Compare_2 = require("../../../../../dist/commonjs/System/Compare"); -var insertionSort_1 = require("../../../../../dist/commonjs/System/Collections/Array/Sorting/insertionSort"); var Integer_1 = require("../../../../../source/System/Integer"); +var quickSort_1 = require("../../../../../dist/commonjs/System/Collections/Array/Sorting/quickSort"); +var mergeSort_1 = require("../../../../../dist/commonjs/System/Collections/Array/Sorting/mergeSort"); +var insertionSort_1 = require("../../../../../dist/commonjs/System/Collections/Array/Sorting/insertionSort"); var performanceCheck = false; function arraySort(a) { a.sort(Compare_2.compare); diff --git a/tests/mocha/System/Collections/Arrays/Sorting.js.map b/tests/mocha/System/Collections/Arrays/Sorting.js.map index 291aa8f0..18165dfb 100644 --- a/tests/mocha/System/Collections/Arrays/Sorting.js.map +++ b/tests/mocha/System/Collections/Arrays/Sorting.js.map @@ -1 +1 @@ -{"version":3,"sources":["System/Collections/Arrays/Sorting.ts"],"names":[],"mappings":"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","file":"System/Collections/Arrays/Sorting.js","sourcesContent":["///\r\n\r\nimport * as assert from \"assert\";\r\nimport {Selector} from \"../../../../../dist/commonjs/System/FunctionTypes\";\r\nimport {quickSort} from \"../../../../../dist/commonjs/System/Collections/Array/Sorting/quickSort\";\r\nimport {mergeSort} from \"../../../../../dist/commonjs/System/Collections/Array/Sorting/mergeSort\";\r\nimport {areEqual} from \"../../../../../dist/commonjs/System/Collections/Array/Compare\";\r\nimport {compare} from \"../../../../../dist/commonjs/System/Compare\";\r\nimport {insertionSort} from \"../../../../../dist/commonjs/System/Collections/Array/Sorting/insertionSort\";\r\nimport {Integer} from \"../../../../../source/System/Integer\";\r\n\r\nconst performanceCheck = false; // Change to true to performance test/log\r\n\r\nfunction arraySort(a:number[]):number[]\r\n{\r\n\ta.sort(compare);\r\n\treturn a;\r\n}\r\n\r\nfunction nullSort(a:number[]):number[]\r\n{\r\n\treturn a;\r\n}\r\n\r\nconst sourceCount = 4, sourceMax = 200;\r\nconst source:number[][] = [];\r\nfor(let i = 0;i):void\r\n{\r\n\tfor(let i = 0; i1)\r\n\t\tconsole.log(name, measure(fn), \"milliseconds\");\r\n}\r\n\r\nif(count>1) {\r\n\tconsole.log(count + \" iterations running...\");\r\n}\r\n\r\nreport(\"Dummy Sort (copy only):\", dummy);\r\nreport(\"Array Sort:\", array);\r\narray();\r\n\r\n\r\ndescribe(\"Insertion Sort\", ()=>\r\n{\r\n\treport(\"Insertion Sort:\", insertion);\r\n\tit(\"should match array sort\", ()=>\r\n\t{\r\n\t\tinsertion();\r\n\t\tassertResults(insertionResults);\r\n\t});\r\n});\r\n\r\ndescribe(\"Quick Sort\", ()=>\r\n{\r\n\treport(\"Quick Sort:\", quick);\r\n\tit(\"should match array sort\", ()=>\r\n\t{\r\n\t\tquick();\r\n\t\tassertResults(quickResults);\r\n\t});\r\n});\r\n\r\ndescribe(\"Merge Sort\", ()=>\r\n{\r\n\treport(\"Merge Sort:\", merge);\r\n\tit(\"should match array sort\", ()=>\r\n\t{\r\n\t\tmerge();\r\n\t\tassertResults(mergeResults);\r\n\t});\r\n});\r\n\r\n\r\n\r\n"]} \ No newline at end of file +{"version":3,"sources":["System/Collections/Arrays/Sorting.ts"],"names":[],"mappings":"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","file":"System/Collections/Arrays/Sorting.js","sourcesContent":["///\r\n\r\nimport * as assert from \"assert\";\r\nimport {Selector} from \"../../../../../dist/commonjs/System/FunctionTypes\";\r\nimport {areEqual} from \"../../../../../dist/commonjs/System/Collections/Array/Compare\";\r\nimport {compare} from \"../../../../../dist/commonjs/System/Compare\";\r\nimport {Integer} from \"../../../../../source/System/Integer\";\r\nimport {quickSort} from \"../../../../../dist/commonjs/System/Collections/Array/Sorting/quickSort\";\r\nimport {mergeSort} from \"../../../../../dist/commonjs/System/Collections/Array/Sorting/mergeSort\";\r\nimport {insertionSort} from \"../../../../../dist/commonjs/System/Collections/Array/Sorting/insertionSort\";\r\n\r\nconst performanceCheck = false; // Change to true to performance test/log\r\n\r\nfunction arraySort(a:number[]):number[]\r\n{\r\n\ta.sort(compare);\r\n\treturn a;\r\n}\r\n\r\nfunction nullSort(a:number[]):number[]\r\n{\r\n\treturn a;\r\n}\r\n\r\nconst sourceCount = 4, sourceMax = 200;\r\nconst source:number[][] = [];\r\nfor(let i = 0;i):void\r\n{\r\n\tfor(let i = 0; i1)\r\n\t\tconsole.log(name, measure(fn), \"milliseconds\");\r\n}\r\n\r\nif(count>1) {\r\n\tconsole.log(count + \" iterations running...\");\r\n}\r\n\r\nreport(\"Dummy Sort (copy only):\", dummy);\r\nreport(\"Array Sort:\", array);\r\narray();\r\n\r\n\r\ndescribe(\"Insertion Sort\", ()=>\r\n{\r\n\treport(\"Insertion Sort:\", insertion);\r\n\tit(\"should match array sort\", ()=>\r\n\t{\r\n\t\tinsertion();\r\n\t\tassertResults(insertionResults);\r\n\t});\r\n});\r\n\r\ndescribe(\"Quick Sort\", ()=>\r\n{\r\n\treport(\"Quick Sort:\", quick);\r\n\tit(\"should match array sort\", ()=>\r\n\t{\r\n\t\tquick();\r\n\t\tassertResults(quickResults);\r\n\t});\r\n});\r\n\r\ndescribe(\"Merge Sort\", ()=>\r\n{\r\n\treport(\"Merge Sort:\", merge);\r\n\tit(\"should match array sort\", ()=>\r\n\t{\r\n\t\tmerge();\r\n\t\tassertResults(mergeResults);\r\n\t});\r\n});\r\n\r\n\r\n\r\n"]} \ No newline at end of file