'use strict';

function add (a, b) {
    console.assert(typeof a === 'number');
    assert(!isNaN(a));
    assert.equal(typeof b, 'number');
    assert.ok(!isNaN(b));
    return a + b;
}

@@ -65,32 +65,33 @@
  === 'number');%0A
+%0A
     assert(!isNa
@@ -111,59 +111,1464 @@
 sert
-.equal(typeof b, 'number');%0A    assert.ok(!isNaN(b)
+(!isNaN(a), 'assertion message');%0A%0A    assert.ok(!isNaN(b));%0A    assert.ok(!isNaN(b), 'assertion message');%0A%0A    assert.equal(typeof b, 'number');%0A    assert.equal(typeof b, 'number', 'assertion message');%0A%0A    assert.strictEqual(typeof b, 'number');%0A    assert.strictEqual(typeof b, 'number', 'assertion message');%0A%0A    assert.deepEqual(typeof b, 'number');%0A    assert.deepEqual(typeof b, 'number', 'assertion message');%0A%0A    assert.deepStrictEqual(typeof b, 'number');%0A    assert.deepStrictEqual(typeof b, 'number', 'assertion message');%0A%0A    assert.notEqual(typeof a, 'object');%0A    assert.notEqual(typeof a, 'object', 'assertion message');%0A%0A    assert.notStrictEqual(typeof a, 'object');%0A    assert.notStrictEqual(typeof a, 'object', 'assertion message');%0A%0A    assert.notDeepEqual(typeof a, 'object');%0A    assert.notDeepEqual(typeof a, 'object', 'assertion message');%0A%0A    assert.notDeepStrictEqual(typeof a, 'object');%0A    assert.notDeepStrictEqual(typeof a, 'object', 'assertion message');%0A%0A    assert.throws(function () %7B%0A        validate(a);%0A    %7D);%0A    assert.throws(function () %7B%0A        validate(a);%0A    %7D, 'assertion message');%0A    assert.throws(function () %7B%0A        validate(a);%0A    %7D, Error, 'assertion message');%0A%0A    assert.doesNotThrow(function () %7B%0A        validate(b);%0A    %7D, 'assertion message');%0A    assert.doesNotThrow(function () %7B%0A        validate(b);%0A    %7D);%0A%0A    assert.ifError(a);%0A    assert.fail(a, b, 'assertion message', '=='
 );%0A 

add comprehensive test patterns