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}<br/>`
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++) {