@string-searching/specification
Version:
String searching specification for JavaScript
3 lines (2 loc) • 4.07 kB
JavaScript
!function(t,a){"object"==typeof exports&&"undefined"!=typeof module?a(exports):"function"==typeof define&&define.amd?define(["exports"],a):a((t||self).specification={})}(this,function(t){var a=function(t,a,e){this.si=t,this.p=a,this.pi=e};function e(t,a){(null==a||a>t.length)&&(a=t.length);for(var e=0,n=new Array(a);e<a;e++)n[e]=t[e];return n}function n(t,a){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(n)return(n=n.call(t)).next.bind(n);if(Array.isArray(t)||(n=function(t,a){if(t){if("string"==typeof t)return e(t,a);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?e(t,a):void 0}}(t))||a&&t&&"number"==typeof t.length){n&&(t=n);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r=regeneratorRuntime.mark(i);function i(t,e){var i,s,o,p,c,h,b;return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:i=t.s.slice(t.i,t.j),s=n(e);case 2:if((o=s()).done){r.next=19;break}c=(p=o.value).s.slice(p.i,p.j),h=0;case 6:if(-1!==(b=i.indexOf(c,h))){r.next=10;break}return r.abrupt("break",17);case 10:return r.next=12,new a(t.i+b,p,p.i);case 12:if(!(h>=i.length)){r.next=14;break}return r.abrupt("break",17);case 14:h=b+1,r.next=6;break;case 17:r.next=2;break;case 19:case"end":return r.stop()}},r)}var s=function(t,a,e,r,i){for(var s,o=a.name,p=0,c=n(a(e,0,e.length,r,0,r.length));!(s=c()).done;){var h=s.value;p<i.length?(t.is(h,i[p],o+" > begin of '"+r+"' in '"+e+"'"),++p):(++p,t.fail('"'+o+" > ("+h+") callback called "+p+" times for '"+r+"' in '"+e+"'"))}t.is(p,i.length,o+" > check number of hits for '"+r+"' in '"+e+"'")};s.title=function(t,a,e,n,r){return null!=t?t:a.name+"('"+e+"', '"+n+"') hits "+JSON.stringify(r)},t.Hit=a,t.StringSlice=function(t,a,e){this.s=t,this.i=a,this.j=e},t.data=[{string:"",patterns:[{pattern:"",hits:[0]},{pattern:"abcd",hits:[]}]},{string:"abcd",patterns:[{pattern:"",hits:[0,1,2,3,4]},{pattern:"a",hits:[0]},{pattern:"b",hits:[1]},{pattern:"c",hits:[2]},{pattern:"d",hits:[3]},{pattern:"abcde",hits:[]},{pattern:"abcd",hits:[0]},{pattern:"ab",hits:[0]},{pattern:"bc",hits:[1]},{pattern:"cd",hits:[2]},{pattern:"abc",hits:[0]},{pattern:"bcd",hits:[1]},{pattern:"dcba",hits:[]},{pattern:"xyz",hits:[]}]},{string:"abcdbdbc",patterns:[{pattern:"bc",hits:[1,6]}]},{string:"abcdbdbcazertyuiopqsdfghjklmwxcvbn",patterns:[{pattern:"bc",hits:[1,6]}]},{string:"Some books are to be tasted, others to be swallowed, and some few to be chewed and digested.",patterns:[{pattern:"to",hits:[15,36,66]}]},{string:"aaaaaaaaab",patterns:[{pattern:"aaaab",hits:[5]}]},{string:"aaaaaaaaaab",patterns:[{pattern:"aaa",hits:[0,1,2,3,4,5,6,7]}]},{string:"tototo",patterns:[{pattern:"to",hits:[0,2,4]}]},{string:"aaaa",patterns:[{pattern:"a",hits:[0,1,2,3]},{pattern:"aa",hits:[0,1,2]},{pattern:"aaa",hits:[0,1]},{pattern:"aaaa",hits:[0]}]},{string:"aaaaa",patterns:[{pattern:"aa",hits:[0,1,2,3]}]},{string:"xyyzxxyxzzzxyxyxxyzxyzxzxyxyzz",patterns:[{pattern:"xyz",hits:[16,19,26]},{pattern:"zz",hits:[8,9,28]},{pattern:"xyx",hits:[5,11,13,24]}]},{string:"ABC ABCDAB ABCDABCDABDE",patterns:[{pattern:"ABCDABD",hits:[15]}]},{string:"ABCABCDABABCDABCDABDE",patterns:[{pattern:"ABCDABD",hits:[13]},{pattern:"ABCDAB",hits:[3,9,13]},{pattern:"ABCABC",hits:[0]},{pattern:"ABC",hits:[0,3,9,13]},{pattern:"ABD",hits:[17]}]},{string:"babcbabcabcaabcabcabcacabc",patterns:[{pattern:"abcabcacab",hits:[15]}]}],t.mock=i,t.single=function(t){for(var a,e=t.test,r=t.data,i=t.skipEmptyString,o=t.skipEmptyPattern,p=n(t.algorithms);!(a=p()).done;)for(var c,h=a.value,b=n(r);!(c=b()).done;){var f=c.value,l=f.string;if(""!==l||!i)for(var d,u=n(f.patterns);!(d=u()).done;){var g=d.value,y=g.pattern;""===y&&o||e(s,h,l,y,g.hits)}}}});
//# sourceMappingURL=index.umd.js.map