Browserslist: caniuse-lite is outdated. Please run next command `npm update`
Running "eslint:test" (eslint) task

Running "connect:server" (connect) task
Started connect web server on http://localhost:9001

Running "mochaChrome:yui" (mochaChrome) task



  src/color/creating_reading.js
    alpha documentation
      ✓ example #1 works
    blue documentation
      ✓ example #1 works
    brightness documentation
      ✓ example #1 works
      ✓ example #2 works
    color documentation
      ✓ example #1 works
      ✓ example #2 works
      ✓ example #3 works
      ✓ example #4 works
      ✓ example #5 works
      ✓ example #6 works
      ✓ example #7 works
      ✓ example #8 works
    green documentation
75
      ✓ example #1 works
    hue documentation
      ✓ example #1 works
    lerpColor documentation
      ✓ example #1 works
    lightness documentation
      ✓ example #1 works
    red documentation
255
      ✓ example #1 works
0.4980392156862745
      ✓ example #2 works
    saturation documentation
      ✓ example #1 works
  src/color/p5.Color.js
    toString documentation
      ✓ example #1 works
    setRed documentation
      ✓ example #1 works
    setGreen documentation
      ✓ example #1 works
    setBlue documentation
      ✓ example #1 works
    setAlpha documentation
      ✓ example #1 works
  src/color/setting.js
    background documentation
      ✓ example #1 works
      ✓ example #2 works
      ✓ example #3 works
      ✓ example #4 works
      ✓ example #5 works
      ✓ example #6 works
      ✓ example #7 works
      ✓ example #8 works
      ✓ example #9 works
      ✓ example #10 works
      ✓ example #11 works
    clear documentation
      ✓ example #1 works
    colorMode documentation
      ✓ example #1 works (81ms)
      ✓ example #2 works (65ms)
      ✓ example #3 works
      ✓ example #4 works
    fill documentation
      ✓ example #1 works
      ✓ example #2 works
      ✓ example #3 works
      ✓ example #4 works
      ✓ example #5 works
      ✓ example #6 works
      ✓ example #7 works
      ✓ example #8 works
      ✓ example #9 works
      ✓ example #10 works
      ✓ example #11 works
    noFill documentation
      ✓ example #1 works
      ✓ example #2 works
    noStroke documentation
      ✓ example #1 works
      ✓ example #2 works
    stroke documentation
      ✓ example #1 works
      ✓ example #2 works
      ✓ example #3 works
      ✓ example #4 works
      ✓ example #5 works
      ✓ example #6 works
      ✓ example #7 works
      ✓ example #8 works
      ✓ example #9 works
      ✓ example #10 works
      ✓ example #11 works
    erase documentation
      ✓ example #1 works
      ✓ example #2 works
      ✓ example #3 works (66ms)
    noErase documentation
      ✓ example #1 works
  src/core/shape/2d_primitives.js
    arc documentation
      ✓ example #1 works
      ✓ example #2 works
      ✓ example #3 works
      ✓ example #4 works
      ✓ example #5 works
    ellipse documentation
      ✓ example #1 works
    circle documentation
      ✓ example #1 works
    line documentation
      ✓ example #1 works
      ✓ example #2 works
    point documentation
      ✓ example #1 works
      ✓ example #2 works
      ✓ example #3 works
    quad documentation
      ✓ example #1 works
    rect documentation
      ✓ example #1 works
      ✓ example #2 works
      ✓ example #3 works
    square documentation
      ✓ example #1 works
      ✓ example #2 works
      ✓ example #3 works
    triangle documentation
      ✓ example #1 works
  src/core/shape/attributes.js
    ellipseMode documentation
      ✓ example #1 works
      ✓ example #2 works
    noSmooth documentation
      ✓ example #1 works
    rectMode documentation
      ✓ example #1 works
      ✓ example #2 works
    smooth documentation
      ✓ example #1 works
    strokeCap documentation
      ✓ example #1 works
    strokeJoin documentation
      ✓ example #1 works
      ✓ example #2 works
      ✓ example #3 works
    strokeWeight documentation
      ✓ example #1 works
  src/core/shape/curves.js
    bezier documentation
      ✓ example #1 works
      ✓ example #2 works
    bezierDetail documentation
      ✓ example #1 works (43ms)
    bezierPoint documentation
      ✓ example #1 works
    bezierTangent documentation
      ✓ example #1 works
      ✓ example #2 works
    curve documentation
      ✓ example #1 works
      ✓ example #2 works
      ✓ example #3 works
    curveDetail documentation
      ✓ example #1 works (113ms)
    curveTightness documentation
      ✓ example #1 works
    curvePoint documentation
      ✓ example #1 works
    curveTangent documentation
      ✓ example #1 works
  src/core/shape/vertex.js
    beginContour documentation
      ✓ example #1 works
    beginShape documentation
      ✓ example #1 works
      ✓ example #2 works
      ✓ example #3 works
      ✓ example #4 works
      ✓ example #5 works
      ✓ example #6 works
      ✓ example #7 works
      ✓ example #8 works
      ✓ example #9 works
      ✓ example #10 works
      ✓ example #11 works
    bezierVertex documentation
      ✓ example #1 works
      ✓ example #2 works
      ✓ example #3 works (116ms)
    curveVertex documentation
      ✓ example #1 works
    endContour documentation
      ✓ example #1 works
    endShape documentation
      ✓ example #1 works
    quadraticVertex documentation
      ✓ example #1 works
      ✓ example #2 works
    vertex documentation
      ✓ example #1 works
      ✓ example #2 works (99ms)
      ✓ example #3 works (99ms)
      ✓ example #4 works
      ✓ example #5 works (110ms)
  src/core/constants.js
    HALF_PI documentation
      ✓ example #1 works
    PI documentation
      ✓ example #1 works
    QUARTER_PI documentation
      ✓ example #1 works
    TAU documentation
      ✓ example #1 works
    TWO_PI documentation
      ✓ example #1 works
    DEGREES documentation
      ✓ example #1 works
    RADIANS documentation
      ✓ example #1 works
  src/core/environment.js
    print documentation
The value of x is 10
      ✓ example #1 works
    frameCount documentation
      ✓ example #1 works
    deltaTime documentation
      ✓ example #1 works
    focused documentation
      ✓ example #1 works
    cursor documentation
      ✓ example #1 works
    frameRate documentation
      ✓ example #1 works
    noCursor documentation
      ✓ example #1 works
    displayWidth documentation
      ✓ example #1 works
    displayHeight documentation
      ✓ example #1 works
    windowWidth documentation
      ✓ example #1 works
    windowHeight documentation
      ✓ example #1 works
    windowResized documentation
      ✓ example #1 works
    fullscreen documentation
      ✓ example #1 works
    pixelDensity documentation
      ✓ example #1 works (64ms)
      ✓ example #2 works
    displayDensity documentation
      ✓ example #1 works
    getURL documentation
      ✓ example #1 works
    getURLPath documentation
      ✓ example #1 works
  src/core/main.js
    preload documentation
      ✓ example #1 works
    setup documentation
      ✓ example #1 works
    draw documentation
      ✓ example #1 works
    remove documentation
      ✓ example #1 works
  src/core/p5.Element.js
    elt documentation
      ✓ example #1 works
    parent documentation
      ✓ example #1 works
      ✓ example #2 works
    id documentation
      ✓ example #1 works
    class documentation
      ✓ example #1 works
    mousePressed documentation
      ✓ example #1 works
    doubleClicked documentation
      ✓ example #1 works
    mouseWheel documentation
      ✓ example #1 works
    mouseReleased documentation
      ✓ example #1 works
    mouseClicked documentation
      ✓ example #1 works
    mouseMoved documentation
      ✓ example #1 works
    mouseOver documentation
      ✓ example #1 works
    mouseOut documentation
      ✓ example #1 works
    touchStarted documentation
      ✓ example #1 works
    touchMoved documentation
      ✓ example #1 works
    touchEnded documentation
      ✓ example #1 works
    dragOver documentation
      ✓ example #1 works
    dragLeave documentation
      ✓ example #1 works
  src/core/p5.Graphics.js
    reset documentation
      ✓ example #1 works (199ms)
    remove documentation
      ✓ example #1 works
      ✓ example #2 works
  src/core/reference.js
    let documentation
2
1
      ✓ example #1 works
    const documentation
my favorite number is: 7
      ✓ example #1 works
[ 'lion', 'tiger', 'panther', 'leopard' ]
      ✓ example #2 works
{ hello: 2, bye: 1 }
      ✓ example #3 works
    === documentation
true
false
      ✓ example #1 works
    > documentation
true
false
      ✓ example #1 works
    >= documentation
true
true
      ✓ example #1 works
    < documentation
true
false
      ✓ example #1 works
    <= documentation
true
true
      ✓ example #1 works
    if-else documentation
positive
      ✓ example #1 works
    function documentation
Hello Hridi!
      ✓ example #1 works
25
      ✓ example #2 works
    return documentation
16
      ✓ example #1 works
    boolean documentation
boolean
      ✓ example #1 works
    string documentation
string
      ✓ example #1 works
    number documentation
number
      ✓ example #1 works
    object documentation
Ursula K Le Guin
      ✓ example #1 works
    class documentation
1
      ✓ example #1 works
    for documentation
0
1
2
3
4
5
6
7
8
      ✓ example #1 works
    while documentation
4
3
2
1
0
      ✓ example #1 works
    stringify documentation
{"x":5,"y":6}
string
      ✓ example #1 works
    log documentation
5
17
      ✓ example #1 works
  src/core/rendering.js
    createCanvas documentation
      ✓ example #1 works
    resizeCanvas documentation
      ✓ example #1 works
    noCanvas documentation
      ✓ example #1 works
    createGraphics documentation
      ✓ example #1 works
    blendMode documentation
      ✓ example #1 works
      ✓ example #2 works
    drawingContext
The p5.js API provides a lot of functionality for creating graphics, but there is
some native HTML5 Canvas functionality that is not exposed by p5. You can still call
it directly using the variable `drawingContext`, as in the example shown. This is
the equivalent of calling `canvas.getContext('2d');` or `canvas.getContext('webgl');`.
See this
<a href="https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D">
reference for the native canvas API</a> for possible drawing functions you can call. documentation
      ✓ example #1 works
  src/core/structure.js
    noLoop documentation
      ✓ example #1 works
      ✓ example #2 works
    loop documentation
      ✓ example #1 works
    push documentation
      ✓ example #1 works
      ✓ example #2 works
    pop documentation
      ✓ example #1 works
      ✓ example #2 works
    redraw documentation
      ✓ example #1 works
      ✓ example #2 works
    p5 documentation
      ✓ example #1 works
  src/core/transform.js
    applyMatrix documentation
      ✓ example #1 works (99ms)
      ✓ example #2 works (99ms)
      ✓ example #3 works (99ms)
      ✓ example #4 works (99ms)
      ✓ example #5 works
    resetMatrix documentation
      ✓ example #1 works
    rotate documentation
      ✓ example #1 works
    rotateX documentation
      ✓ example #1 works (111ms)
    rotateY documentation
      ✓ example #1 works (118ms)
    rotateZ documentation
      ✓ example #1 works (117ms)
    scale documentation
      ✓ example #1 works
      ✓ example #2 works
    shearX documentation
      ✓ example #1 works
    shearY documentation
      ✓ example #1 works
    translate documentation
      ✓ example #1 works
      ✓ example #2 works
      ✓ example #3 works
  src/data/local_storage.js
    storeItem documentation
      ✓ example #1 works
    getItem documentation
      ✓ example #1 works
    clearStorage documentation
10
false
null
null
      ✓ example #1 works
    removeItem documentation
10
null
      ✓ example #1 works
  src/data/p5.TypedDict.js
    createStringDict documentation
true
true
      ✓ example #1 works
    createNumberDict documentation
true
true
      ✓ example #1 works
    size documentation
3
      ✓ example #1 works
    hasKey documentation
true
      ✓ example #1 works
    get documentation
true
      ✓ example #1 works
    set documentation
key:p5 value:JS
      ✓ example #1 works
    create documentation
key:p5 value:js
key:happy value:coding
      ✓ example #1 works
    clear documentation
true
false
      ✓ example #1 works
    remove documentation
key:p5 value:js
key:happy value:coding
key:happy value:coding
      ✓ example #1 works
    print documentation
key:p5 value:js
key:happy value:coding
      ✓ example #1 works
    saveTable documentation
      ✓ example #1 works
    saveJSON documentation
      ✓ example #1 works
    add documentation
7
      ✓ example #1 works
    sub documentation
3
      ✓ example #1 works
    mult documentation
8
      ✓ example #1 works
    div documentation
4
      ✓ example #1 works
    minValue documentation
-10
      ✓ example #1 works
    maxValue documentation
3
      ✓ example #1 works
    minKey documentation
1.2
      ✓ example #1 works
    maxKey documentation
4
      ✓ example #1 works
  src/dom/dom.js
    select documentation
      ✓ example #1 works
      ✓ example #2 works
    selectAll documentation
      ✓ example #1 works
      ✓ example #2 works
    removeElements documentation
      ✓ example #1 works
    changed documentation
      ✓ example #1 works
      ✓ example #2 works
    input documentation
      ✓ example #1 works
    createDiv documentation
      ✓ example #1 works
    createP documentation
      ✓ example #1 works
    createSpan documentation
      ✓ example #1 works
    createImg documentation
      ✓ example #1 works
    createA documentation
      ✓ example #1 works
    createSlider documentation
      ✓ example #1 works
      ✓ example #2 works
    createButton documentation
      ✓ example #1 works
    createCheckbox documentation
      ✓ example #1 works
    createSelect documentation
      ✓ example #1 works
      ✓ example #2 works
    createRadio documentation
      ✓ example #1 works

      ✓ example #2 works
    createColorPicker documentation
      ✓ example #1 works
      ✓ example #2 works
    createInput documentation
      ✓ example #1 works
    createFileInput documentation
      ✓ example #1 works
    createVideo documentation
      ✓ example #1 works
    createAudio documentation
      ✓ example #1 works
    createElement documentation
      ✓ example #1 works
    addClass documentation
      ✓ example #1 works
    removeClass documentation
      ✓ example #1 works
    hasClass documentation
      ✓ example #1 works
    toggleClass documentation
      ✓ example #1 works
    child documentation
      ✓ example #1 works
      ✓ example #2 works
    center documentation
      ✓ example #1 works
    html documentation
      ✓ example #1 works
      ✓ example #2 works
    position documentation
      ✓ example #1 works<response clipped><NOTE>Due to the max output limit, only part of the full response has been shown to you.</NOTE> ✓ should return NaN for invalid string
      ✓ should return Infinity for Infinity
      ✓ should return -Infinity for -Infinity
      ✓ should convert float to its integer representation
      ✓ should return array of integers and NaN
    p5.prototype.str
      ✓ should be a function
      ✓ should convert false to string
      ✓ should convert true to string
      ✓ should convert a number to string
      ✓ should return array of strings
    p5.prototype.boolean
      ✓ should be a function
      ✓ should convert 1 to true
      ✓ should convert a number to true
      ✓ should return true for Infinity
      ✓ should convert 0 to false
      ✓ should convert a string to false
      ✓ should convert a string to false
      ✓ should convert "true" to true
      ✓ should return false for empty string
      ✓ should return array of boolean
    p5.prototype.byte
      ✓ should be a function
      ✓ should return 127 for 127
      ✓ should return -128 for 128
      ✓ should return 23 for 23.4
      ✓ should return 1 for true
      ✓ should return 23 for "23.4"
      ✓ should return NaN for invalid string
      ✓ should return array
    p5.prototype.char
      ✓ should be a function
      ✓ should return the char representation of the number
      ✓ should return the char representation of the string
      ✓ should return array
    p5.prototype.unchar
      ✓ should be a function
      ✓ should return the integer representation of char
      ✓ should return array of numbers
    p5.prototype.hex
      ✓ should be a function
      ✓ should return the hex representation of the number
      ✓ should return FFFFFFFF for Infinity
      ✓ should return 00000000 for -Infinity
      ✓ should return array
    p5.prototype.unhex
      ✓ should be a function
      ✓ should return the integer representation of hex
      ✓ should return the NaN for empty string
      - should return the NaN for invalid hex string
      ✓ should return array of numbers
  String functions
    p5.prototype.join
      ✓ should be a function
      ✓ should return joined string
    p5.prototype.match
      ✓ should be a function
      ✓ should return correct index of match strings
    p5.prototype.matchAll
      ✓ should be a function
      ✓ should return correct array of strings
    p5.prototype.nf
      ✓ should be a function
      ✓ should return correct string
      ✓ should return correct string
    p5.prototype.nfc
      ✓ should be a function
      ✓ should return correct string
      ✓ should return correct string
    p5.prototype.nfp
      ✓ should be a function
      ✓ should return correct string
      ✓ should return correct string
    p5.prototype.nfs
      ✓ should be a function
      ✓ should return correct string
      ✓ should return correct string
    p5.prototype.split
      ✓ should be a function
      ✓ should return correct index of match strings
    p5.prototype.splitTokens
      ✓ should be a function
      ✓ should return correct index of match strings
    p5.prototype.trim
      ✓ should be a function
      ✓ should return correct strings
  time and date
    p5.prototype.year
      ✓ should be a function
      ✓ should return this year
    p5.prototype.day
      ✓ should be a function
      ✓ should return todays day
    p5.prototype.month
      ✓ should be a function
      ✓ should return today's month
    p5.prototype.hour
      ✓ should be a function
      ✓ should return this hour
    p5.prototype.second
      ✓ should be a function
      ✓ should return this second
    p5.prototype.minute
      ✓ should be a function
      ✓ should return a number that is this minute
    p5.prototype.millis
      ✓ should be a function
      ✓ result should be a number
      ✓ result should be greater than running time (50ms)
      ✓ result should be > newResult (50ms)
  3D Primitives
    p5.prototype.plane
      ✓ should be a function
      ✓ no friendly-err-msg. missing height param #1. (83ms)
      ✓ wrong param type at #0 (83ms)
      ✓ no friendly-err-msg. no parameters (82ms)
    p5.prototype.box
      ✓ should be a function
      ✓ wrong param type at #0 and #2 (82ms)
      ✓ no friendly-err-msg. missing height, depth; param #1, #2. (79ms)
      ✓ no friendly-err-msg. missing depth param #2. (80ms)
      ✓ no friendly-err-msg. no parameters (78ms)
    p5.prototype.sphere
      ✓ should be a function
      ✓ wrong param type at #0 (89ms)
      ✓ no friendly-err-msg. no parameters (91ms)
    p5.prototype.cylinder
      ✓ should be a function
      ✓ wrong param type at #0 (80ms)
      ✓ no friendly-err-msg. missing height; param #1 (79ms)
      - wrong param type at #4
      ✓ no friendly-err-msg. no parameters (81ms)
    p5.prototype.cone
      ✓ should be a function
      ✓ wrong param type at #0 and #1 (78ms)
      ✓ no friendly-err-msg. missing height; param #1 (78ms)
      - wrong param type at #4
      ✓ no friendly-err-msg. no parameters (85ms)
    p5.prototype.ellipsoid
      ✓ should be a function
      ✓ wrong param type at #0 and #1 (94ms)
      ✓ no friendly-err-msg. missing param #1 #2 (94ms)
      ✓ no friendly-err-msg. no parameters (89ms)
    p5.prototype.torus
      ✓ should be a function
      ✓ wrong param type at #0
      ✓ no friendly-err-msg. missing param #1 (87ms)
      ✓ no friendly-err-msg. no parameters (86ms)
  Interaction
    p5.prototype.orbitControl
      ✓ should be a function
      ✓ missing params. no friendly-err-msg
      ✓ wrong param type #0
    p5.prototype.debugMode

      ✓ should be a function

      ✓ missing params. no friendly-err-msg

      ✓ wrong param type #0

      ✓ wrong param type #2

      ✓ wrong param type #2
    p5.prototype.noDebugMode

      ✓ should be a function
  p5.Matrix
    construction
      ✓ new p5.Matrix()
      ✓ new p5.Matrix(array)
      ✓ new p5.Matrix(mat3)
      ✓ identity()
    set
      ✓ p5.Matrix
      ✓ array
      ✓ arguments
    get / copy
      ✓ get
      ✓ copy
    mult
      ✓ self
      ✓ p5.Matrix
      ✓ array
      ✓ arguments
    apply
      ✓ self
      ✓ p5.Matrix
      ✓ array
      ✓ arguments
    scale
      ✓ p5.Vector
      ✓ array
      ✓ arguments
    rotate
      ✓ p5.Vector
      ✓ array
      ✓ arguments
  p5.Camera
    createCamera()

      ✓ creates a p5.Camera object

      ✓ createCamera attaches p5.Camera to renderer
    Rotation

      ✓ Pan() with positive parameter sets correct matrix w/o changing     eyeXYZ or upXYZ

      ✓ Pan() with negative parameter sets correct matrix w/o changing     eyeXYZ or upXYZ

      ✓ Pan(0) sets correct matrix w/o changing eyeXYZ or upXYZ

      ✓ Tilt() with positive parameter sets correct Matrix w/o     changing eyeXYZ

      ✓ Tilt() with negative parameter sets correct matrix w/o     changing eyeXYZ

      ✓ Tilt(0) sets correct matrix w/o changing eyeXYZ

      ✓ LookAt() should set centerXYZ without changing eyeXYZ or     upXYZ
    Rotation with angleMode(DEGREES)

      ✓ Pan() with positive parameter sets correct matrix w/o changing     eyeXYZ or upXYZ

      ✓ Tilt() with positive parameter sets correct Matrix w/o     changing eyeXYZ
    Position / Orientation

      ✓ Move() with positive parameters sets correct matrix

      ✓ Move() with negative parameters sets correct matrix

      ✓ Move(0,0,0) sets correct matrix

      ✓ SetPosition() with positive parameters sets correct matrix

      ✓ SetPosition() with negative parameters sets correct matrix

      ✓ SetPosition(0,0,0) sets correct matrix

      ✓ _orbit(1,0,0) sets correct matrix

      ✓ _orbit(0,1,0) sets correct matrix

      ✓ _orbit(0,0,1) sets correct matrix

      ✓ _orbit(-1,0,0) sets correct matrix

      ✓ _orbit(0,-1,0) sets correct matrix

      ✓ _orbit(0,0,-1) sets correct matrix

      ✓ _orbit() ensures altitude phi <= PI

      ✓ _orbit() ensures altitude phi > 0

      ✓ _orbit() ensures radius > 0
      Camera()

        ✓ Camera() with positive parameters sets eye, center, and       up XYZ properties

        ✓ Camera() with negative parameters sets eye, center, and       up XYZ properties
    Projection
      ortho()

        ✓ ortho() sets renderer uPMatrix

        ✓ ortho() sets projection matrix correctly

        ✓ ortho() with no parameters specified (sets default)

        ✓ ortho() with sets cameraType to custom
      perspective()

        ✓ perspective() sets renderer uPMatrix

        ✓ perspective() sets projection matrix correctly

        ✓ perspective() with no parameters specified (sets default)

        ✓ perspective() with no parameters sets cameraType to default
      frustum()

        ✓ frustum() sets renderer uPMatrix

        ✓ frustum() sets projection matrix correctly

        ✓ frustum() with no parameters specified (sets default)

        ✓ frustum() sets cameraType to custom
    Helper Functions

      ✓ copy() returns a new p5.Camera object

      ✓ _getLocalAxes() returns three normalized, orthogonal vectors
    RendererGL Current Camera

      ✓ _isActive() returns true for a camera created with createCamera(),     and false for another p5.Camera

      ✓ setCamera() correctly sets RendererGL current camera

      ✓ Camera's Renderer is correctly set after setAttributes
  p5.RendererGL
    createCanvas(w, h, WEBGL)

      ✓ creates a p5.RendererGL renderer
    default stroke shader
      ✓ check activate and deactivating fill and stroke
    push() and pop() work in WEBGL Mode

      ✓ push/pop and translation works as expected in WEBGL Mode

      ✓ push/pop and directionalLight() works

      ✓ push/pop and ambientLight() works

      ✓ push/pop and pointLight() works

      ✓ push/pop and specularColor() works

      ✓ push/pop and spotLight() works

      ✓ push/pop and noLights() works

      ✓ push/pop and texture() works

      ✓ push/pop and shader() works with fill

      ✓ push/pop builds/unbuilds stack properly
    loadpixels()

      ✓ loadPixels color check

      ✓ get() singlePixel color and size, with loadPixels
    get()

      ✓ get() size check

      ✓ get() can create p5.Image

      ✓ get() singlePixel color and size
    GL Renderer clear()


      ✓ webgl graphics background draws into webgl canvas (174ms)
      ✓ transparent GL graphics with GL canvas (166ms)
      ✓ semi-transparent GL graphics with GL canvas (167ms)
      ✓ webgl graphics background draws into 2D canvas (81ms)
      ✓ transparent GL graphics with 2D canvas
      ✓ semi-transparent GL graphics with 2D canvas
    blendMode()
      ✓ blendMode sets _curBlendMode correctly
BURN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, and DODGE only work for blendMode in 2D mode.
BURN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, and DODGE only work for blendMode in 2D mode.
BURN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, and DODGE only work for blendMode in 2D mode.
BURN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, and DODGE only work for blendMode in 2D mode.
BURN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, and DODGE only work for blendMode in 2D mode.
      ✓ blendMode doesnt change when mode unavailable in 3D
      ✓ blendModes change pixel colors as expected (203ms)
    BufferDef
      ✓ render buffer properties are correctly set (88ms)
    tint() in WEBGL mode
      ✓ default tint value is set and not null
      ✓ tint value is modified correctly when tint() is called

      ✓ tint should be reset after draw loop (42ms)
  p5.Shader
    Shader

      ✓ Light Shader

      ✓ Color Shader definition

      ✓ Immediate Mode Shader definition

      ✓ Normal Shader definition

      ✓ Color Shader is set after fill()

      ✓ Normal Shader is set after normalMaterial()

      ✓ Light shader set after ambientMaterial()

      ✓ Light shader set after specularMaterial()

      ✓ Light shader set after emissiveMaterial()

      ✓ Able to setUniform empty arrays

      ✓ Able to set shininess

      ✓ Shader is reset after resetShader is called
  p5.Texture
    p5.Texture


      ✓ Create and cache a single texture with p5.Image


      ✓ Create and cache multiple p5.Image textures


      ✓ Set filter mode to linear


      ✓ Set filter mode to nearest


      ✓ Set wrap mode to clamp


      ✓ Set wrap mode to repeat


      ✓ Set wrap mode to mirror


      ✓ Set textureMode to NORMAL


      ✓ Set textureMode to IMAGE


      ✓ Set global wrap mode to clamp


      ✓ Set global wrap mode to repeat


      ✓ Set global wrap mode to mirror
  light
    Light

      ✓ lightFalloff is initialised and set properly

      ✓ specularColor is initialised and set properly

      ✓ noLights works
    spotlight inputs

      ✓ default

      ✓ color,positions,directions

      ✓ color,positions,directions,angle

      ✓ color,positions,directions,angle,conc

      ✓ c1,c2,c3,positions,directions

      ✓ color,p1,p2,p3,directions

      ✓ color,positions,r1,r2,r3

      ✓ c1,c2,c3,positions,directions,angle

      ✓ color,p1,p2,p3,directions,angle

      ✓ color,positions,r1,r2,r3,angle

      ✓ c1,c2,c3,positions,directions,angle,conc

      ✓ color,p1,p2,p3,directions,angle,conc

      ✓ color,positions,r1,r2,r3,angle,conc

      ✓ c1,c2,c3,p1,p2,p3,directions

      ✓ c1,c2,c3,positions,r1,r2,r3

      ✓ color,p1,p2,p3,r1,r2,r3

      ✓ c1,c2,c3,p1,p2,p3,directions,angle

      ✓ c1,c2,c3,positions,r1,r2,r3,angle

      ✓ color,p1,p2,p3,r1,r2,r3,angle

      ✓ c1,c2,c3,p1,p2,p3,directions,angle,conc

      ✓ c1,c2,c3,positions,r1,r2,r3,angle,conc

      ✓ color,p1,p2,p3,r1,r2,r3,angle,conc

      ✓ c1,c2,c3,p1,p2,p3,r1,r2,r3

      ✓ c1,c2,c3,p1,p2,p3,r1,r2,r3,angle

      ✓ c1,c2,c3,p1,p2,p3,r1,r2,r3,angle,conc
  Test in preload() with success callback
    ✓ Load asynchronously and use success callback
  setup() after preload() with success callback
    ✓ should be loaded if preload() finished
  setup() after preload() without success callback
    ✓ should be loaded now preload() finished
  Test in preload() with success callback
    ✓ Load asynchronously and use success callback
  setup() after preload() with success callback
    ✓ should be loaded if preload() finished
    ✓ gifProperties should be correct after preload
    ✓ should be able to modify gifProperties state
  1525 passing (13s)
  10 pending

Running "mochaTest:test" (mochaTest) task


  helpers/modeAdjust
    ✓ should set mode to corner
    ✓ should set mode to corners
    ✓ should set mode to radius
    ✓ should set mode to center

  docs preprocessor
    mergeOverloadedMethods()
      ✓ should merge methods with the same name
      ✓ should not merge methods from different classes
      ✓ should not merge properties
    renderDescriptionsAsMarkdown
      ✓ should work


  8 passing (26ms)


Running "nyc:report" (nyc) task

=============================== Coverage summary ===============================
Statements   : 67.25% ( 7391/10991 )
Branches     : 54.96% ( 2648/4818 )
Functions    : 72.73% ( 816/1122 )
Lines        : 67.66% ( 7225/10679 )
================================================================================

Done.
[The command completed with exit code 0.]
[Current working directory: /workspace/p5.js]
[Python interpreter: /usr/bin/python]
[Command finished with exit code 0]