From: Chris Duncan Date: Wed, 26 Feb 2025 20:42:38 +0000 (-0800) Subject: Add more tests for checking validation. X-Git-Tag: v3.0.0~10 X-Git-Url: https://zoso.dev/?a=commitdiff_plain;h=9c1d78d6c5eb23f88972f32db8906406274d9a51;p=nano-pow.git Add more tests for checking validation. --- diff --git a/test.html b/test.html index 4a1bfa9..f4158eb 100644 --- a/test.html +++ b/test.html @@ -73,23 +73,41 @@ SPDX-License-Identifier: GPL-3.0-or-later document.getElementById('status').innerHTML = `TESTING IN PROGRESS 0/${size}` console.log(`%cNanoPow`, 'color:green', 'Checking validate()') - const expectFalse = await NanoPow.validate('0000000000000000', '0000000000000000000000000000000000000000000000000000000000000000') - console.log(`validate() output for bad nonce is ${expectFalse === false ? 'correct' : 'incorrect'}`) - const expectTrue = await NanoPow.validate('47c83266398728cf', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D') - console.log(`validate() output for good nonce is ${expectTrue === true ? 'correct' : 'incorrect'}`) - const expectFalseForVariation = await NanoPow.validate('47c83266398728ce', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D') - console.log(`validate() output for slightly wrong nonce is ${expectFalseForVariation === false ? 'correct' : 'incorrect'}`) - const expectTrueForCollision = await NanoPow.validate('c5d5d6f7c5d6ccd1', '281e89ac73b1082b464b9c3c1168384f846d39f6df25105f8b4a22915e999117') - console.log(`validate() output for colliding nonce is ${expectTrueForCollision === true ? 'correct' : 'incorrect'}`) + const expect = [] + let result + + result = await NanoPow.validate('47c83266398728cf', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', { debug: true }) + console.log(`validate() output for good nonce 1 is ${result === true ? 'correct' : 'incorrect'}`) + expect.push(result === true) + + result = await NanoPow.validate('4a8fb104eebbd336', '8797585D56B8AEA3A62899C31FC088F9BE849BA8298A88E94F6E3112D4E55D01', { debug: true }) + console.log(`validate() output for good nonce 2 is ${result === true ? 'correct' : 'incorrect'}`) + expect.push(result === true) + + result = await NanoPow.validate('c5d5d6f7c5d6ccd1', '281E89AC73B1082B464B9C3C1168384F846D39F6DF25105F8B4A22915E999117', { debug: true }) + console.log(`validate() output for colliding nonce is ${result === true ? 'correct' : 'incorrect'}`) + expect.push(result === true) + + result = await NanoPow.validate('0000000000000000', '0000000000000000000000000000000000000000000000000000000000000000', { debug: true }) + console.log(`validate() output for bad nonce 1 is ${result === false ? 'correct' : 'incorrect'}`) + expect.push(result === false) + + result = await NanoPow.validate('c5d5d6f7c5d6ccd1', 'BA1E946BA3D778C2F30A83D44D2132CC6EEF010D8D06FF10A8ABD0100D8FB47E', { debug: true }) + console.log(`validate() output for bad nonce 2 is ${result === false ? 'correct' : 'incorrect'}`) + expect.push(result === false) + + result = await NanoPow.validate('47c83266398728ce', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', { debug: true }) + console.log(`validate() output for slightly wrong nonce is ${result === false ? 'correct' : 'incorrect'}`) + expect.push(result === false) + try { - if (expectFalse || !expectTrue) throw new Error(`Validation is not working`) + if (!expect.every(result => result)) throw new Error(`Validation is not working`) } catch (err) { document.getElementById('output').innerHTML += `Error: ${err.message}
` console.error(err) return } - console.log(`%cNanoPow (${type})`, 'color:green', `Calculate proof-of-work for ${size} unique send block hashes`) const times = [] for (let i = 0; i < size; i++) {