let result, test, passes = 0, failures = 0
+// Check string input validation
+try {
+ result = derive(NANO_ORG_VECTOR.privateKey + '00')
+ result = false
+} catch (err) {
+ if (err != null && typeof err === 'object' && 'message' in err) {
+ result = err.message === `Invalid hexadecimal length 66 for private key ${NANO_ORG_VECTOR.privateKey + '00'}`
+ } else {
+ result = false
+ }
+}
+test = result === true
+check(`private key string too long ${NANO_ORG_VECTOR.privateKey + '00'}`, test)
+passes += +test
+failures += +!test
+
+try {
+ result = derive(NANO_ORG_VECTOR.privateKey.slice(-1) + 'z')
+ result = false
+} catch (err) {
+ if (err != null && typeof err === 'object' && 'message' in err) {
+ result = err.message === `Invalid hexadecimal characters in private key ${NANO_ORG_VECTOR.privateKey.slice(-1) + 'z'}`
+ } else {
+ result = false
+ }
+}
+test = result === true
+check(`private key string invalid character ${NANO_ORG_VECTOR.privateKey.slice(-1) + 'z'}`, test)
+passes += +test
+failures += +!test
+
+try {
+ result = sign(NANO_ORG_VECTOR.blockHash + '0', NANO_ORG_VECTOR.secretKey)
+ result = false
+} catch (err) {
+ if (err != null && typeof err === 'object' && 'message' in err) {
+ result = err.message === `Invalid hexadecimal length 65 for message ${NANO_ORG_VECTOR.blockHash + '0'}`
+ } else {
+ result = false
+ }
+}
+test = result === true
+check(`sign message odd character count ${NANO_ORG_VECTOR.blockHash + '0'}`, test)
+passes += +test
+failures += +!test
+
+try {
+ result = sign('1'.repeat(65538), NANO_ORG_VECTOR.secretKey)
+ result = false
+} catch (err) {
+ if (err != null && typeof err === 'object' && 'message' in err) {
+ result = err.message === `Invalid hexadecimal length 65538 for message ${'1'.repeat(65538)}`
+ } else {
+ result = false
+ }
+}
+test = result === true
+check(`sign message too long (65538 '1's)`, test)
+passes += +test
+failures += +!test
+
// Check combined imports
result = await Nano25519.deriveAsync(NANO_ORG_VECTOR.privateKeyBytes)
console.log(`RESULT`, result)