src/utilities/string_functions.js:443: * The <a href="#/p5/splitTokens">splitTokens()</a> function works in a similar fashion, except that it
src/utilities/string_functions.js:472: * The <a href="#/p5/splitTokens">splitTokens()</a> function splits a String at one or many character
src/utilities/string_functions.js:480: * @method splitTokens
src/utilities/string_functions.js:490: *   var myStrArr = splitTokens(myStr, ',');
src/utilities/string_functions.js:497:p5.prototype.splitTokens = function(value, delims) {
src/utilities/string_functions.js:498:  p5._validateParameters('splitTokens', arguments);
src/utilities/string_functions.js:521:  return value.split(d).filter(function(n) {
src/core/environment.js:647:  return location.pathname.split('/').filter(function(v) {
src/core/p5.Renderer2D.js:5:var filters = require('../image/filters');
src/core/p5.Renderer2D.js:142:  var pixels = filters._toPixels(img.canvas);
src/core/rendering.js:65:      this._elements = this._elements.filter(function(e) {
src/core/error_helpers.js:125:      method: 'loadStrings'
src/core/error_helpers.js:165:    var queryResult = arrDoc.classitems.filter(function(x) {
src/core/error_helpers.js:504:      .filter(function(name) {
src/core/shim.js:83:            Object.getOwnPropertySymbols(source).filter(isEnumerableOn(source))
src/core/core.js:54:   * <a href="#/p5/loadStrings">loadStrings</a>, etc.) should be inside the preload function. If asynchronous
src/core/core.js:604:  loadStrings: p5.prototype,
src/core/core.js:610:  loadShader: p5.prototype
src/image/pixels.js:11:var Filters = require('./filters');
src/image/pixels.js:237: * Applies a filter to the canvas.
src/image/pixels.js:281: * @method filter
src/image/pixels.js:282: * @param  {Constant} filterType  either THRESHOLD, GRAY, OPAQUE, INVERT,
src/image/pixels.js:285: *                                each available filter
src/image/pixels.js:286: * @param  {Number} [filterParam] an optional parameter unique
src/image/pixels.js:287: *                                to each filter, see above
src/image/pixels.js:298: *   filter(THRESHOLD);
src/image/pixels.js:311: *   filter(GRAY);
src/image/pixels.js:324: *   filter(OPAQUE);
src/image/pixels.js:337: *   filter(INVERT);
src/image/pixels.js:350: *   filter(POSTERIZE, 3);
src/image/pixels.js:363: *   filter(DILATE);
src/image/pixels.js:376: *   filter(BLUR, 3);
src/image/pixels.js:389: *   filter(ERODE);
src/image/pixels.js:406:p5.prototype.filter = function(operation, value) {
src/image/pixels.js:407:  p5._validateParameters('filter', arguments);
src/image/filters.js:4: * This module defines the filters for use with image buffers.
src/image/filters.js:14: * http://www.html5rocks.com/en/tutorials/canvas/imagefilters/
src/image/filters.js:123: * Applys a filter function to a canvas.
src/image/filters.js:125: * The difference between this and the actual filter functions defined below
src/image/filters.js:126: * is that the filter functions generally modify the pixel buffer but do
src/image/filters.js:132: * use. It has been separated from the actual filters to support an advanced
src/image/filters.js:133: * use case of creating a filter chain that executes without actually updating
src/image/filters.js:139: * @param  {Object} filterParam  [description]
src/image/filters.js:141:Filters.apply = function(canvas, func, filterParam) {
src/image/filters.js:147:  var newImageData = func(imageData, filterParam);
src/image/filters.js:164: * Borrowed from http://www.html5rocks.com/en/tutorials/canvas/imagefilters/
src/image/filters.js:197: * Borrowed from http://www.html5rocks.com/en/tutorials/canvas/imagefilters/
src/image/filters.js:457:// internal kernel stuff for the gaussian blur filter
src/image/p5.Image.js:6: * @requires filters
src/image/p5.Image.js:17:var Filters = require('./filters');
src/image/p5.Image.js:628: * Applies an image filter to a <a href="#/p5.Image">p5.Image</a>
src/image/p5.Image.js:630: * @method filter
src/image/p5.Image.js:631: * @param  {Constant} filterType  either THRESHOLD, GRAY, OPAQUE, INVERT,
src/image/p5.Image.js:634: *                                each available filter
src/image/p5.Image.js:635: * @param  {Number} [filterParam] an optional parameter unique
src/image/p5.Image.js:636: *                                to each filter, see above
src/image/p5.Image.js:648: *   photo2.filter('gray');
src/image/p5.Image.js:658:p5.Image.prototype.filter = function(operation, value) {
src/image/loading_displaying.js:11:var Filters = require('./filters');
src/io/p5.XML.js:292:    return this.children.filter(function(c) {
src/io/files.js:183: * @method loadStrings
src/io/files.js:185: * @param  {function} [callback] function to be executed after <a href="#/p5/loadStrings">loadStrings()</a>
src/io/files.js:194: * <p>Calling loadStrings() inside <a href="#/p5/preload">preload()</a> guarantees to complete the
src/io/files.js:200: *   result = loadStrings('assets/test.txt');
src/io/files.js:215: *   loadStrings('assets/test.txt', pickString);
src/io/files.js:230:p5.prototype.loadStrings = function() {
src/io/files.js:231:  p5._validateParameters('loadStrings', arguments);
src/app.js:39:require('./image/filters');
src/webgl/material.js:23: * @method loadShader
src/webgl/material.js:37: *   mandel = loadShader('assets/shader.vert', 'assets/shader.frag');
src/webgl/material.js:57:p5.prototype.loadShader = function(vertFilename, fragFilename) {
src/webgl/material.js:58:  p5._validateParameters('loadShader', arguments);
src/webgl/material.js:65:  this.loadStrings(fragFilename, function(result) {
src/webgl/material.js:72:  this.loadStrings(vertFilename, function(result) {
src/webgl/material.js:155: * <a href="#/p5/loadShader">loadShader()</a>.
src/webgl/p5.Texture.js:258: * Nearest filtering uses nearest neighbor scaling when interpolating
src/webgl/p5.Texture.js:259: * Linear filtering uses WebGL's linear scaling when interpolating
src/webgl/p5.Texture.js:261: * @param {String} downScale Specifies the texture filtering when
src/webgl/p5.Texture.js:263: * @param {String} upScale Specifies the texture filtering when
src/webgl/p5.Texture.js:265: * @todo implement mipmapping filters
src/webgl/loading.js:115:  this.loadStrings(
test/js/modernizr.js:2: * https://modernizr.com/download/?-adownload-ambientlight-animation-apng-appearance-applicationcache-atobbtoa-audio-audioloop-audiopreload-backdropfilter-backgroundblendmode-backgroundcliptext-backgroundsize-batteryapi-bdi-beacon-bgpositionshorthand-bgpositionxy-bgrepeatspace_bgrepeatround-bgsizecover-blobconstructor-bloburls-blobworkers-borderimage-borderradius-boxshadow-boxsizing-canvas-canvasblending-canvastext-canvaswinding-capture-checked-classlist-contains-contenteditable-contextmenu-cookies-cors-cryptography-cssall-cssanimations-csscalc-csschunit-csscolumns-cssescape-cssexunit-cssfilters-cssgradients-csshyphens_softhyphens_softhyphensfind-cssinvalid-cssmask-csspointerevents-csspositionsticky-csspseudoanimations-csspseudotransitions-cssreflections-cssremunit-cssresize-cssscrollbar-csstransforms-csstransforms3d-csstransitions-cssvalid-cssvhunit-cssvmaxunit-cssvminunit-cssvwunit-cubicbezierrange-customevent-customprotocolhandler-dart-datalistelem-dataset-datauri-dataview-dataworkers-details-devicemotion_deviceorientation-directory-displaytable-documentfragment-ellipsis-emoji-es5-es5array-es5date-es5function-es5object-es5string-es5syntax-es5undefined-es6array-es6math-es6number-es6object-es6string-eventlistener-eventsource-exiforientation-fetch-fileinput-filereader-filesystem-flash-flexbox-flexboxlegacy-flexboxtweener-flexwrap-fontface-formattribute-formvalidation-framed-fullscreen-gamepads-generatedcontent-generators-geolocation-getrandomvalues-getusermedia-hashchange-hidden-hiddenscroll-history-hsla-htmlimports-ie8compat-indexeddb-indexeddbblob-inlinesvg-input-inputformaction-inputformenctype-inputformmethod-inputformtarget-inputtypes-intl-jpeg2000-jpegxr-json-lastchild-localizednumber-localstorage-lowbandwidth-lowbattery-matchmedia-mathml-mediaqueries-microdata-multiplebgs-mutationobserver-notification-nthchild-objectfit-olreversed-oninput-opacity-outputelem-overflowscrolling-pagevisibility-peerconnection-performance-picture-placeholder-pointerevents-pointerlock-postmessage-preserve3d-progressbar_meter-promises-proximity-queryselector-quotamanagement-regions-requestanimationframe-requestautocomplete-rgba-ruby-sandbox-scriptasync-scriptdefer-seamless-search-serviceworker-sessionstorage-shapes-sharedworkers-siblinggeneral-sizes-smil-speechrecognition-speechsynthesis-srcdoc-srcset-strictmode-stylescoped-subpixelfont-supports-svg-svgasimg-svgclippaths-svgfilters-svgforeignobject-target-template-templatestrings-textalignlast-textareamaxlength-textshadow-texttrackapi_track-time-todataurljpeg_todataurlpng_todataurlwebp-touchevents-transferables-typedarrays-unicode-unicoderange-unknownelements-urlparser-userdata-userselect-vibrate-video-videoautoplay-videoloop-videopreload-vml-webaudio-webgl-webglextensions-webintents-webp-webpalpha-webpanimation-websockets-websocketsbinary-websqldatabase-webworkers-willchange-wrapflow-xdomainrequest-xhr2-xhrresponsetype-xhrresponsetypearraybuffer-xhrresponsetypeblob-xhrresponsetypedocument-xhrresponsetypejson-xhrresponsetypetext-addtest-atrule-domprefixes-hasevent-mq-prefixed-prefixedcss-prefixedcssvalue-prefixes-setclasses-shiv-testallprops-testprop-teststyles !*/
test/js/modernizr.js:3:!function(window,document,undefined){function is(A,e){return typeof A===e}function testRunner(){var A,e,t,r,n,o,i;for(var d in tests)if(tests.hasOwnProperty(d)){if(A=[],e=tests[d],e.name&&(A.push(e.name.toLowerCase()),e.options&&e.options.aliases&&e.options.aliases.length))for(t=0;t<e.options.aliases.length;t++)A.push(e.options.aliases[t].toLowerCase());for(r=is(e.fn,"function")?e.fn():e.fn,n=0;n<A.length;n++)o=A[n],i=o.split("."),1===i.length?Modernizr[i[0]]=r:(!Modernizr[i[0]]||Modernizr[i[0]]instanceof Boolean||(Modernizr[i[0]]=new Boolean(Modernizr[i[0]])),Modernizr[i[0]][i[1]]=r),classes.push((r?"":"no-")+i.join("-"))}}function setClasses(A){var e=docElement.className,t=Modernizr._config.classPrefix||"";if(isSVG&&(e=e.baseVal),Modernizr._config.enableJSClass){var r=new RegExp("(^|\\s)"+t+"no-js(\\s|$)");e=e.replace(r,"$1"+t+"js$2")}Modernizr._config.enableClasses&&(e+=" "+t+A.join(" "+t),isSVG?docElement.className.baseVal=e:docElement.className=e)}function addTest(A,e){if("object"==typeof A)for(var t in A)hasOwnProp(A,t)&&addTest(t,A[t]);else{A=A.toLowerCase();var r=A.split("."),n=Modernizr[r[0]];if(2==r.length&&(n=n[r[1]]),"undefined"!=typeof n)return Modernizr;e="function"==typeof e?e():e,1==r.length?Modernizr[r[0]]=e:(!Modernizr[r[0]]||Modernizr[r[0]]instanceof Boolean||(Modernizr[r[0]]=new Boolean(Modernizr[r[0]])),Modernizr[r[0]][r[1]]=e),setClasses([(e&&0!=e?"":"no-")+r.join("-")]),Modernizr._trigger(A,e)}return Modernizr}function createElement(){return"function"!=typeof document.createElement?document.createElement(arguments[0]):isSVG?document.createElementNS.call(document,"http://www.w3.org/2000/svg",arguments[0]):document.createElement.apply(document,arguments)}function cssToDOM(A){return A.replace(/([a-z])-([a-z])/g,function(A,e,t){return e+t.toUpperCase()}).replace(/^-/,"")}function domToCSS(A){return A.replace(/([A-Z])/g,function(A,e){return"-"+e.toLowerCase()}).replace(/^ms-/,"-ms-")}function getBody(){var A=document.body;return A||(A=createElement(isSVG?"svg":"body"),A.fake=!0),A}function injectElementWithStyles(A,e,t,r){var n,o,i,d,a="modernizr",s=createElement("div"),l=getBody();if(parseInt(t,10))for(;t--;)i=createElement("div"),i.id=r?r[t]:a+(t+1),s.appendChild(i);return n=createElement("style"),n.type="text/css",n.id="s"+a,(l.fake?l:s).appendChild(n),l.appendChild(s),n.styleSheet?n.styleSheet.cssText=A:n.appendChild(document.createTextNode(A)),s.id=a,l.fake&&(l.style.background="",l.style.overflow="hidden",d=docElement.style.overflow,docElement.style.overflow="hidden",docElement.appendChild(l)),o=e(s,A),l.fake?(l.parentNode.removeChild(l),docElement.style.overflow=d,docElement.offsetHeight):s.parentNode.removeChild(s),!!o}function contains(A,e){return!!~(""+A).indexOf(e)}function computedStyle(A,e,t){var r;if("getComputedStyle"in window){r=getComputedStyle.call(window,A,e);var n=window.console;if(null!==r)t&&(r=r.getPropertyValue(t));else if(n){var o=n.error?"error":"log";n[o].call(n,"getComputedStyle returning null, its possible modernizr test results are inaccurate")}}else r=!e&&A.currentStyle&&A.currentStyle[t];return r}function roundedEquals(A,e){return A-1===e||A===e||A+1===e}function nativeTestProps(A,e){var t=A.length;if("CSS"in window&&"supports"in window.CSS){for(;t--;)if(window.CSS.supports(domToCSS(A[t]),e))return!0;return!1}if("CSSSupportsRule"in window){for(var r=[];t--;)r.push("("+domToCSS(A[t])+":"+e+")");return r=r.join(" or "),injectElementWithStyles("@supports ("+r+") { #modernizr { position: absolute; } }",function(A){return"absolute"==computedStyle(A,null,"position")})}return undefined}function testProps(A,e,t,r){function n(){i&&(delete mStyle.style,delete mStyle.modElem)}if(r=is(r,"undefined")?!1:r,!is(t,"undefined")){var o=nativeTestProps(A,t);if(!is(o,"undefined"))return o}for(var i,d,a,s,l,c=["modernizr","tspan","samp"];!mStyle.style&&c.length;)i=!0,mStyle.modElem=createElement(c.shift()),mStyle.style=mStyle.modElem.style;for(a=A.length,d=0;a>d;d++)if(s=A[d],l=mStyle.style[s],contains(s,"-")&&(s=cssToDOM(s)),mStyle.style[s]!==undefined){if(r||is(t,"undefined"))return n(),"pfx"==e?s:!0;try{mStyle.style[s]=t}catch(u){}if(mStyle.style[s]!=l)return n(),"pfx"==e?s:!0}return n(),!1}function fnBind(A,e){return function(){return A.apply(e,arguments)}}function testDOMProps(A,e,t){var r;for(var n in A)if(A[n]in e)return t===!1?A[n]:(r=e[A[n]],is(r,"function")?fnBind(r,t||e):r);return!1}function testPropsAll(A,e,t,r,n){var o=A.charAt(0).toUpperCase()+A.slice(1),i=(A+" "+cssomPrefixes.join(o+" ")+o).split(" ");return is(e,"string")||is(e,"undefined")?testProps(i,e,r,n):(i=(A+" "+domPrefixes.join(o+" ")+o).split(" "),testDOMProps(i,e,t))}function detectDeleteDatabase(A,e){var t=A.deleteDatabase(e);t.onsuccess=function(){addTest("indexeddb.deletedatabase",!0)},t.onerror=function(){addTest("indexeddb.deletedatabase",!1)}}function testAllProps(A,e,t){return testPropsAll(A,undefined,undefined,e,t)}var classes=[],tests=[],ModernizrProto={_version:"3.5.0",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(A,e){var t=this;setTimeout(function(){e(t[A])},0)},addTest:function(A,e,t){tests.push({name:A,fn:e,options:t})},addAsyncTest:function(A){tests.push({name:null,fn:A})}},Modernizr=function(){};Modernizr.prototype=ModernizrProto,Modernizr=new Modernizr,Modernizr.addTest("applicationcache","applicationCache"in window),Modernizr.addTest("blobconstructor",function(){try{return!!new Blob}catch(A){return!1}},{aliases:["blob-constructor"]}),Modernizr.addTest(<response clipped><NOTE>Due to the max output limit, only part of the full response has been shown to you.</NOTE> tip ham hock nulla short ribs pariatur aute. Pig pancetta ham bresaola, ut boudin nostrud commodo flank esse cow tongue culpa. Pork belly bresaola enim pig, ea consectetur nisi. Fugiat officia turkey, ea cow jowl pariatur ullamco proident do laborum velit sausage. Magna biltong sint tri-tip commodo sed bacon, esse proident aliquip. Ullamco ham sint fugiat, velit in enim sed mollit nulla cow ut adipisicing nostrud consectetur. Proident dolore beef ribs, laborum nostrud meatball ea laboris rump cupidatat labore culpa. Shankle minim beef, velit sint cupidatat fugiat tenderloin pig et ball tip. Ut cow fatback salami, bacon ball tip et in shank strip steak bresaola. In ut pork belly sed mollit tri-tip magna culpa veniam, short ribs qui in andouille ham consequat. Dolore bacon t-bone, velit short ribs enim strip steak nulla. Voluptate labore ut, biltong swine irure jerky. Cupidatat excepteur aliquip salami dolore. Ball tip strip steak in pork dolor. Ad in esse biltong. Dolore tenderloin exercitation ad pork loin t-bone, dolore in chicken ball tip qui pig. Ut culpa tongue, sint ribeye dolore ex shank voluptate hamburger. Jowl et tempor, boudin pork chop labore ham hock drumstick consectetur tri-tip elit swine meatball chicken ground round. Proident shankle mollit dolore. Shoulder ut duis t-bone quis reprehenderit. Meatloaf dolore minim strip steak, laboris ea aute bacon beef ribs elit shank in veniam drumstick qui. Ex laboris meatball cow tongue pork belly. Ea ball tip reprehenderit pig, sed fatback boudin dolore flank aliquip laboris eu quis. Beef ribs duis beef, cow corned beef adipisicing commodo nisi deserunt exercitation. Cillum dolor t-bone spare ribs, ham hock est sirloin. Brisket irure meatloaf in, boudin pork belly sirloin ball tip. Sirloin sint irure nisi nostrud aliqua. Nostrud nulla aute, enim officia culpa ham hock. Aliqua reprehenderit dolore sunt nostrud sausage, ea boudin pork loin ut t-bone ham tempor. Tri-tip et pancetta drumstick laborum. Ham hock magna do nostrud in proident. Ex ground round fatback, venison non ribeye in.",document.body.insertBefore(A,i),t.cssText="position:absolute;top:0;left:0;width:5em;text-align:justify;text-justification:newspaper;",r=e.offsetHeight,n=e.offsetWidth,t.cssText="position:absolute;top:0;left:0;width:5em;text-align:justify;text-justification:newspaper;"+prefixes.join("hyphens:auto; "),o=e.offsetHeight!=r||e.offsetWidth!=n,document.body.removeChild(A),A.removeChild(e),o}catch(d){return!1}}function r(A,e){try{var t=createElement("div"),r=createElement("span"),n=t.style,o=0,i=!1,d=!1,a=!1,s=document.body.firstElementChild||document.body.firstChild;return n.cssText="position:absolute;top:0;left:0;overflow:visible;width:1.25em;",t.appendChild(r),document.body.insertBefore(t,s),r.innerHTML="mm",o=r.offsetHeight,r.innerHTML="m"+A+"m",d=r.offsetHeight>o,e?(r.innerHTML="m<br />m",o=r.offsetWidth,r.innerHTML="m"+A+"m",a=r.offsetWidth>o):a=!0,d===!0&&a===!0&&(i=!0),document.body.removeChild(t),t.removeChild(r),i}catch(l){return!1}}function n(A){try{var e,t=createElement("input"),r=createElement("div"),n="lebowski",o=!1,i=document.body.firstElementChild||document.body.firstChild;r.innerHTML=n+A+n,document.body.insertBefore(r,i),document.body.insertBefore(t,r),t.setSelectionRange?(t.focus(),t.setSelectionRange(0,0)):t.createTextRange&&(e=t.createTextRange(),e.collapse(!0),e.moveEnd("character",0),e.moveStart("character",0),e.select());try{window.find?o=window.find(n+n):(e=window.self.document.body.createTextRange(),o=e.findText(n+n))}catch(d){o=!1}return document.body.removeChild(r),document.body.removeChild(t),o}catch(d){return!1}}return document.body||document.getElementsByTagName("body")[0]?(addTest("csshyphens",function(){if(!testAllProps("hyphens","auto",!0))return!1;try{return t()}catch(A){return!1}}),addTest("softhyphens",function(){try{return r("&#173;",!0)&&r("&#8203;",!1)}catch(A){return!1}}),void addTest("softhyphensfind",function(){try{return n("&#173;")&&n("&#8203;")}catch(A){return!1}})):void setTimeout(A,e)}var e=300;setTimeout(A,e)}),Modernizr.addTest("cssmask",testAllProps("maskRepeat","repeat-x",!0)),Modernizr.addTest("overflowscrolling",testAllProps("overflowScrolling","touch",!0)),Modernizr.addTest("cssreflections",testAllProps("boxReflect","above",!0)),Modernizr.addTest("cssresize",testAllProps("resize","both",!0)),Modernizr.addTest("shapes",testAllProps("shapeOutside","content-box",!0)),Modernizr.addTest("textalignlast",testAllProps("textAlignLast")),Modernizr.addTest("csstransforms",function(){return-1===navigator.userAgent.indexOf("Android 2.")&&testAllProps("transform","scale(1)",!0)}),Modernizr.addTest("csstransforms3d",function(){var A=!!testAllProps("perspective","1px",!0),e=Modernizr._config.usePrefixes;if(A&&(!e||"webkitPerspective"in docElement.style)){var t,r="#modernizr{width:0;height:0}";Modernizr.supports?t="@supports (perspective: 1px)":(t="@media (transform-3d)",e&&(t+=",(-webkit-transform-3d)")),t+="{#modernizr{width:7px;height:18px;margin:0;padding:0;border:0}}",testStyles(r+t,function(e){A=7===e.offsetWidth&&18===e.offsetHeight})}return A}),Modernizr.addTest("csstransitions",testAllProps("transition","all",!0)),Modernizr.addTest("csspseudotransitions",function(){var A=!1;if(!Modernizr.csstransitions||!window.getComputedStyle)return A;var e='#modernizr:before { content:" "; font-size:5px;'+Modernizr._prefixes.join("transition:0s 100s;")+"}#modernizr.trigger:before { font-size:10px; }";return Modernizr.testStyles(e,function(e){window.getComputedStyle(e,":before").getPropertyValue("font-size"),e.className+="trigger",A="5px"===window.getComputedStyle(e,":before").getPropertyValue("font-size")}),A}),Modernizr.addTest("userselect",testAllProps("userSelect","none",!0)),testRunner(),setClasses(classes),delete ModernizrProto.addTest,delete ModernizrProto.addAsyncTest;for(var i=0;i<Modernizr._q.length;i++)Modernizr._q[i]();window.Modernizr=Modernizr}(window,document);
test/js/sinon.js:4546:    // filtering to enable a white-list version of Sinon FakeXhr,
test/js/sinon.js:4577:    FakeXMLHttpRequest.filters = [];
test/js/sinon.js:4579:        this.filters.push(fn)
test/js/sinon.js:4751:                    var defake = some(FakeXMLHttpRequest.filters, function (filter) {
test/js/sinon.js:4752:                        return filter.apply(this, xhrArgs)
test/unit/utilities/string_functions.js:151:  suite('p5.prototype.splitTokens', function() {
test/unit/utilities/string_functions.js:152:    var splitTokens = p5.prototype.splitTokens;
test/unit/utilities/string_functions.js:154:      assert.ok(splitTokens);
test/unit/utilities/string_functions.js:160:      result = myp5.splitTokens(str, regexp);
test/unit/io/files_input.js:126:  // loadStrings()
test/unit/io/files_input.js:127:  suite('loadStrings() in Preload', function() {
test/unit/io/files_input.js:129:      assert.ok(myp5.loadStrings);
test/unit/io/files_input.js:130:      assert.typeOf(myp5.loadStrings, 'function');
test/unit/io/files_input.js:134:      result = myp5.loadStrings('unit/assets/sentences.txt');
test/unit/io/files_input.js:221:  // loadStrings()
test/unit/io/files_input.js:222:  suite('p5.prototype.loadStrings', function() {
test/unit/io/files_input.js:224:      assert.ok(myp5.loadStrings);
test/unit/io/files_input.js:225:      assert.typeOf(myp5.loadStrings, 'function');
test/unit/io/files_input.js:230:        myp5.loadStrings('unit/assets/sentences.txt', resolve, reject);
test/unit/io/files_input.js:236:        myp5.loadStrings('unit/assets/sentences.txt', resolve, reject);
test/unit/io/files_input.js:245:        myp5.loadStrings(
test/unit/io/files_input.js:257:        myp5.loadStrings(
test/unit/webgl/p5.Texture.js:48:    test('Set filter mode to linear', function() {
test/unit/webgl/p5.Texture.js:54:    test('Set filter mode to nearest', function() {
test/test-reference.html:217:        })).filter(function(info) {
test/test-reference.html:226:        .filter(function excludeIfNoBrowserSupportFor(filename) {
test/test-reference.html:227:          return !TEST_FILENAME_FILTERS.some(function(filter) {
test/test-reference.html:228:            return filter.regex.test(filename) && !filter.condition;
test/manual-test-examples/async/loadStrings_callback/sketch.js:15:  // pickLine is a function called by loadStrings when it's loaded.
test/manual-test-examples/async/loadStrings_callback/sketch.js:16:  result = loadStrings('tenderbuttons_excerpt.txt', pickLine);
test/manual-test-examples/async/loadStrings_preload/sketch.js:10:  result = loadStrings('tenderbuttons_excerpt.txt');
test/manual-test-examples/p5.Image/filter.html:3:       <script language="javascript" type="text/javascript" src="filter-images.js"></script>
test/manual-test-examples/p5.Image/filter-images.js:10:  //apply filters
test/manual-test-examples/p5.Image/filter-images.js:17:    clone.filter('threshold', 0.5);
test/manual-test-examples/p5.Image/filter-images.js:21:    clone.filter('gray');
test/manual-test-examples/p5.Image/filter-images.js:25:    clone.filter('invert');
test/manual-test-examples/p5.Image/filter-images.js:29:    clone.filter('posterize', 4);
test/manual-test-examples/p5.Image/filter-images.js:33:    clone.filter('dilate');
test/manual-test-examples/p5.Image/filter-images.js:37:    clone.filter('erode');
test/manual-test-examples/p5.Image/filter-images.js:41:    clone.filter('blur', 10);
test/manual-test-examples/p5.Image/filter-images.js:53:    clone.filter('opaque', 0.5);
test/manual-test-examples/loadingscreen/preload_success_callbacks.js:22:  console.log('success loadStrings');
test/manual-test-examples/loadingscreen/preload_success_callbacks.js:44:  strings = loadStrings('test.txt', successStrings);
test/manual-test-examples/loadingscreen/preload_success_callbacks.js:52:  strings2 = loadStrings('test.txt');
test/manual-test-examples/addons/p5.dom/capture_video/sketch.js:13:  filter(INVERT);
test/manual-test-examples/addons/p5.sound/Filter_BandPass/sketch.js:2: *  Example: Apply a p5.BandPass filter to white noise.
test/manual-test-examples/addons/p5.sound/Filter_BandPass/sketch.js:5: *  and mouseY to resonance/width of the a BandPass filter
test/manual-test-examples/addons/p5.sound/Filter_BandPass/sketch.js:12:var filter, filterFreq, filterWidth;
test/manual-test-examples/addons/p5.sound/Filter_BandPass/sketch.js:18:  filter = new p5.BandPass();
test/manual-test-examples/addons/p5.sound/Filter_BandPass/sketch.js:23:  filter.process(noise); // ...and connect to filter so we'll only hear BandPass.
test/manual-test-examples/addons/p5.sound/Filter_BandPass/sketch.js:39:  filterFreq = map(mouseX, 0, width, 10, 22050);
test/manual-test-examples/addons/p5.sound/Filter_BandPass/sketch.js:41:  filterWidth = map(mouseY, 0, height, 0, 90);
test/manual-test-examples/addons/p5.sound/Filter_BandPass/sketch.js:42:  // set filter parameters
test/manual-test-examples/addons/p5.sound/Filter_BandPass/sketch.js:43:  filter.set(filterFreq, filterWidth);
test/manual-test-examples/addons/p5.sound/Filter_BandPass/sketch.js:63:    filterFreq +
test/manual-test-examples/addons/p5.sound/Filter_BandPass/sketch.js:65:    filterWidth;
test/manual-test-examples/addons/p5.sound/Filter_LowPass/sketch.js:2: *  Example: Apply a p5.LowPass filter to a p5.SoundFile.
test/manual-test-examples/addons/p5.sound/Filter_LowPass/sketch.js:4: *  Map mouseX to the the filter's cutoff frequency
test/manual-test-examples/addons/p5.sound/Filter_LowPass/sketch.js:5: *  and mouseY to resonance/width of the a BandPass filter
test/manual-test-examples/addons/p5.sound/Filter_LowPass/sketch.js:14:var filter, filterFreq, filterRes;
test/manual-test-examples/addons/p5.sound/Filter_LowPass/sketch.js:28:  filter = new p5.LowPass();
test/manual-test-examples/addons/p5.sound/Filter_LowPass/sketch.js:31:  // Then, connect it to the filter, so that we only hear the filtered sound
test/manual-test-examples/addons/p5.sound/Filter_LowPass/sketch.js:33:  soundFile.connect(filter);
test/manual-test-examples/addons/p5.sound/Filter_LowPass/sketch.js:47:  // Map mouseX to a the cutoff frequency for our lowpass filter
test/manual-test-examples/addons/p5.sound/Filter_LowPass/sketch.js:48:  filterFreq = map(mouseX, 0, width, 10, 22050);
test/manual-test-examples/addons/p5.sound/Filter_LowPass/sketch.js:50:  filterRes = map(mouseY, 0, height, 15, 5);
test/manual-test-examples/addons/p5.sound/Filter_LowPass/sketch.js:51:  // set filter parameters
test/manual-test-examples/addons/p5.sound/Filter_LowPass/sketch.js:52:  filter.set(filterFreq, filterRes);
test/manual-test-examples/addons/p5.sound/Filter_LowPass/sketch.js:71:    'Filter Frequency = ' + filterFreq + ' Filter Res = ' + filterRes;
test/manual-test-examples/addons/p5.sound/DelayNoiseEnvelope/sketch.js:44:  var filterFreq = map(mouseX, 0, width, 60, 15000);
test/manual-test-examples/addons/p5.sound/DelayNoiseEnvelope/sketch.js:45:  filterFreq = constrain(filterFreq, 60, 15000);
test/manual-test-examples/addons/p5.sound/DelayNoiseEnvelope/sketch.js:46:  var filterRes = map(mouseY, 0, height, 3, 0.01);
test/manual-test-examples/addons/p5.sound/DelayNoiseEnvelope/sketch.js:47:  filterRes = constrain(filterRes, 0.01, 3);
test/manual-test-examples/addons/p5.sound/DelayNoiseEnvelope/sketch.js:48:  delay.filter(filterFreq, filterRes);
test/manual-test-examples/addons/p5.sound/DelaySoundFile/sketch.js:38:  var filterFreq = map(mouseX, 0, width, 60, 15000);
test/manual-test-examples/addons/p5.sound/DelaySoundFile/sketch.js:39:  filterFreq = constrain(filterFreq, 60, 15000);
test/manual-test-examples/addons/p5.sound/DelaySoundFile/sketch.js:40:  var filterRes = map(mouseY, 0, height, 3, 0.01);
test/manual-test-examples/addons/p5.sound/DelaySoundFile/sketch.js:41:  filterRes = constrain(filterRes, 0.01, 3);
test/manual-test-examples/addons/p5.sound/DelaySoundFile/sketch.js:42:  delay.filter(filterFreq, filterRes);
test/manual-test-examples/webgl/texture/textureFilter/sketch.js:3:var filterShader;
test/manual-test-examples/webgl/texture/textureFilter/sketch.js:4:var filterNearest = true;
test/manual-test-examples/webgl/texture/textureFilter/sketch.js:44:  filterShader = createShader(vertexShader, fragmentShader);
test/manual-test-examples/webgl/texture/textureFilter/sketch.js:54:  shader(filterShader);
test/manual-test-examples/webgl/texture/textureFilter/sketch.js:56:  filterShader.setUniform('uTex0', img);
test/manual-test-examples/webgl/texture/textureFilter/sketch.js:62:  filterNearest = !filterNearest;
test/manual-test-examples/webgl/texture/textureFilter/sketch.js:64:  if(filterNearest){
test/manual-test-examples/webgl/texture/textureFilter/index.html:17:    <p>press any key to toggle between nearest and linear filtering</p>
test/manual-test-examples/webgl/customShader/toonShader/sketch.js:4:  toonShader = loadShader('vert.glsl', 'frag.glsl');
test/manual-test-examples/webgl/customShader/videoMultiTextureShader/sketch.js:5:  sh = loadShader('vert.glsl', 'frag.glsl');
[The command completed with exit code 0.]
[Current working directory: /workspace/p5.js]
[Python interpreter: /usr/bin/python]
[Command finished with exit code 0]