Script Preparation code:
x
 
// Test description: Comparing regex validation vs try-catch with BigInt for numeric string validation
// Setup
const validTokenId = "12345678901234567890"; // Valid numeric string
const invalidTokenId = "123abc456"; // Invalid numeric string containing letters
// Test function for regex validation
function validateWithRegex(tokenId) {
    return /^\d+$/.test(tokenId);
}
// Test function for try-catch validation
function validateWithTryCatch(tokenId) {
    try {
        BigInt(tokenId);
        return true;
    } catch {
        return false;
    }
}
      
      // Benchmark suite
suite('String Numeric Validation', function() {
    // Regex with valid input
    benchmark('Regex validation - Valid input', function() {
        return validateWithRegex(validTokenId);
    });
    // Regex with invalid input
    benchmark('Regex validation - Invalid input', function() {
        return validateWithRegex(invalidTokenId);
    });
    // Try-catch with valid input
    benchmark('Try-catch validation - Valid input', function() {
        return validateWithTryCatch(validTokenId);
    });
    // Try-catch with invalid input
    benchmark('Try-catch validation - Invalid input', function() {
        return validateWithTryCatch(invalidTokenId);
    });
});
Tests:
  • TestRegex validation - Valid input

     
    validateWithRegex(validTokenId)
  • Regex validation - Invalid input

     
    validateWithRegex(invalidTokenId)
  • Try-catch validation - Valid input

     
     validateWithTryCatch(validTokenId)
  • Try-catch validation - Invalid input

     
    validateWithTryCatch(invalidTokenId)
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    TestRegex validation - Valid input
    Regex validation - Invalid input
    Try-catch validation - Valid input
    Try-catch validation - Invalid input

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 6 days ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
Chrome 108 on Windows
View result in a separate tab
Test name Executions per second
TestRegex validation - Valid input 26010314.0 Ops/sec
Regex validation - Invalid input 43248424.0 Ops/sec
Try-catch validation - Valid input 11689074.0 Ops/sec
Try-catch validation - Invalid input 102001.5 Ops/sec