wallabyjs / public

Repository for Wallaby.js questions and issues
http://wallabyjs.com
759 stars 45 forks source link

"Sandbox is not responsive" when running tests with instrumentation #2271

Closed HerbCaudill closed 4 years ago

HerbCaudill commented 4 years ago

Issue description or question

I'm working through Project Euler, and a number of the tests have a significant memory footprint. https://github.com/HerbCaudill/project-euler/tree/69ab1969b942d82d1bd7190aae0efd093e4a94bf

I can reduce the Wallaby time to around 1 minute by turning off instrumentation on all files:

module.exports = function(wallaby) {
  return {
    files: [
      { pattern: sourceFiles, instrument: false },
      jsonFiles,

... but if I do that, there's no real reason to use Wallaby in the first place.

Any ideas?

Wallaby diagnostics report

{
  editorVersion: '1.40.1',
  pluginVersion: '1.0.156',
  editorType: 'VSCode',
  osVersion: 'win32 10.0.18362',
  nodeVersion: 'v12.11.1',
  coreVersion: '1.0.786',
  config: {
    files: [
      { pattern: 'src/**/*.ts', instrument: true, ignore: false, trigger: true, load: true, order: 1 },
      { pattern: 'src/**/*.json', ignore: false, trigger: true, load: true, instrument: true, order: 2 },
      { pattern: 'src/tests/**/*.test.ts', ignore: true, trigger: true, load: true, instrument: true },
      { pattern: 'src/tests/**/*.test.ts.snap', ignore: false, instrument: false, trigger: true, load: true, order: 3 },
      { pattern: 'package.json', ignore: false, instrument: false, trigger: true, load: true, order: 4 }
    ],
    tests: [ { pattern: 'src/tests/**/*.test.ts', ignore: false, trigger: true, load: true, test: true, order: 5 } ],
    filesWithNoCoverageCalculated: [ '**/problems/*', '**/resources/**/*', '**/precomputed/**/*' ],
    slowTestThreshold: 2000,
    debug: true,
    env: { type: 'node', params: {}, runner: 'C:\\Program Files\\nodejs\\node.exe', viewportSize: { width: 800, height: 600 }, options: { width: 800, height: 600 }, bundle: true },
    testFramework: { version: 'jest@0.4.3', configurator: 'jest@0.4.3', reporter: 'jest@0.4.3', starter: 'jest@0.4.3' },
    compilers: { '**/*.?(lit)coffee?(.md)': [Function] },
    workers: { initial: 4, regular: 4, recycle: false },
    diagnostics: {},
    runAllTestsInAffectedTestFile: false,
    preprocessors: { 'package.json': [Function] },
    maxConsoleMessagesPerTest: 100,
    autoConsoleLog: true,
    delays: { run: 0, edit: 100, update: 0 },
    teardown: undefined,
    hints: {
      ignoreCoverage: '__REGEXP /ignore coverage|istanbul ignore/',
      ignoreCoverageForFile: '__REGEXP /ignore file coverage/',
      commentAutoLog: '?',
      testFileSelection: { include: '__REGEXP /file\\.only/', exclude: '__REGEXP /file\\.skip/' }
    },
    automaticTestFileSelection: true,
    runSelectedTestsOnly: false,
    extensions: {},
    reportUnhandledPromises: true,
    lowCoverageThreshold: 80,
    loose: true,
    configCode: "const sourceFiles = 'src/**/*.ts'\r\n" +
      "const jsonFiles = 'src/**/*.json'\r\n" +
      "const testFiles = 'src/tests/**/*.test.ts'\r\n" +
      '\r\n' +
      'const not = s => `!${s}`\r\n' +
      '\r\n' +
      'module.exports = function(wallaby) {\r\n' +
      '  return {\r\n' +
      '    files: [\r\n' +
      '      { pattern: sourceFiles, instrument: true },\r\n' +
      '      jsonFiles,\r\n' +
      '      not(testFiles),\r\n' +
      '    ],\r\n' +
      '    tests: [testFiles],\r\n' +
      '    filesWithNoCoverageCalculated: [\r\n' +
      "      '**/problems/*',\r\n" +
      "      '**/resources/**/*',\r\n" +
      "      '**/precomputed/**/*',\r\n" +
      '    ],\r\n' +
      '    slowTestThreshold: 2000,\r\n' +
      '    debug: true,\r\n' +
      "    env: { type: 'node' },\r\n" +
      "    testFramework: 'jest',\r\n" +
      '    compilers: {\r\n' +
      "      '**/*.ts': wallaby.compilers.typeScript({\r\n" +
      "        module: 'commonjs',\r\n" +
      '      }),\r\n' +
      '    },\r\n' +
      '    workers: {\r\n' +
      '      initial: 4,\r\n' +
      '      regular: 4,\r\n' +
      '    },\r\n' +
      '  }\r\n' +
      '}\r\n'
  },
  packageJSON: {
    dependencies: {
      '@jest/test-sequencer': '24',
      '@types/jest': '24',
      '@types/node': '12',
      '@types/wu': '^2.1.39',
      bitset: '^5.0.5',
      'fast-memoize': '^2.5.1',
      jest: '24',
      prettier: '1',
      'ts-jest': '24',
      tslib: '1',
      typescript: '3',
      'v8-profiler-node8': '^6.1.1'
    },
    devDependencies: undefined
  },
  fs: { numberOfFiles: 220 },
  debug: [
    '2019-11-15T15:53:27.186Z project Wallaby Node version: v12.11.1\n',
    '2019-11-15T15:53:27.187Z project Wallaby config: C:\\git\\herbcaudill\\project-euler\\wallaby.js\n',
    '2019-11-15T15:53:28.054Z project File cache: C:\\Users\\herb\\.vscode\\extensions\\wallabyjs.wallaby-vscode-1.0.156\\projects\\34c66eaebf2a97fa\n',
    '2019-11-15T15:53:28.127Z uiService Listening port 51235\n',
    '2019-11-15T15:53:28.180Z workers Parallelism for initial run: 4, for regular run: 4\n',
    '2019-11-15T15:53:28.180Z workers Starting run worker instance #0\n',
    '2019-11-15T15:53:28.181Z workers Starting run worker instance #1\n',
    '2019-11-15T15:53:28.181Z workers Starting run worker instance #2\n',
    '2019-11-15T15:53:28.181Z workers Starting run worker instance #3\n',
    '2019-11-15T15:53:28.199Z workers Web server is listening at 52910\n',
    '2019-11-15T15:53:28.324Z project File cache requires some updates, waiting required files from IDE\n',
    '2019-11-15T15:53:28.348Z extended-core New document or complex document change\n',
    '2019-11-15T15:53:29.124Z workers Started run worker instance (delayed) #0\n',
    '2019-11-15T15:53:29.139Z workers Started run worker instance (delayed) #3\n',
    '2019-11-15T15:53:29.149Z workers Started run worker instance (delayed) #1\n',
    '2019-11-15T15:53:29.150Z workers Started run worker instance (delayed) #2\n',
    '2019-11-15T15:53:29.319Z project Stopping process pool\n',
    '2019-11-15T15:53:29.321Z project Running postprocessor\n',
    '2019-11-15T15:53:29.339Z postprocessor New TypeScript language service is required\n',
    '2019-11-15T15:53:33.131Z project Re-attaching document block comment\n',
    '2019-11-15T15:53:33.480Z project Postprocessor execution finished\n',
    '2019-11-15T15:53:33.481Z project Test run started; run priority: 3\n',
    '2019-11-15T15:53:33.482Z project Running all tests\n',
    '2019-11-15T15:53:33.493Z workers Starting test run, priority: 3\n',
    '2019-11-15T15:53:33.493Z workers Distributing tests between 4 workers\n',
    '2019-11-15T15:53:33.495Z workers Running tests in parallel\n',
    '2019-11-15T15:53:33.495Z nodeRunner Starting sandbox [worker #0, session #epx7w]\n',
    '2019-11-15T15:53:33.495Z nodeRunner Starting sandbox [worker #1, session #nrqjh]\n',
    '2019-11-15T15:53:33.496Z nodeRunner Starting sandbox [worker #2, session #ramax]\n',
    '2019-11-15T15:53:33.496Z nodeRunner Starting sandbox [worker #3, session #pwa94]\n',
    '2019-11-15T15:53:33.496Z nodeRunner Preparing sandbox [worker #0, session #epx7w]\n',
    '2019-11-15T15:53:33.496Z nodeRunner Preparing sandbox [worker #1, session #nrqjh]\n',
    '2019-11-15T15:53:33.496Z nodeRunner Preparing sandbox [worker #2, session #ramax]\n',
    '2019-11-15T15:53:33.496Z nodeRunner Preparing sandbox [worker #3, session #pwa94]\n',
    '2019-11-15T15:53:33.497Z nodeRunner Prepared sandbox [worker #0, session #epx7w]\n',
    '2019-11-15T15:53:33.497Z nodeRunner Prepared sandbox [worker #1, session #nrqjh]\n',
    '2019-11-15T15:53:33.497Z nodeRunner Prepared sandbox [worker #2, session #ramax]\n',
    '2019-11-15T15:53:33.497Z nodeRunner Prepared sandbox [worker #3, session #pwa94]\n',
    '2019-11-15T15:53:33.497Z workers [worker #0, session #epx7w] Running tests in sandbox\n',
    '2019-11-15T15:53:33.500Z workers [worker #1, session #nrqjh] Running tests in sandbox\n',
    '2019-11-15T15:53:33.501Z workers [worker #2, session #ramax] Running tests in sandbox\n',
    '2019-11-15T15:53:33.503Z workers [worker #3, session #pwa94] Running tests in sandbox\n',
    '2019-11-15T15:53:54.629Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:53:54.848Z workers [nrqjh] Test executed: 1234th day\n',
    '2019-11-15T15:53:54.985Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:53:55.248Z workers [ramax] Test executed: 2\n',
    '2019-11-15T15:53:56.522Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:53:56.722Z workers [epx7w] Test executed: 2 is deficient\n',
    '2019-11-15T15:54:11.636Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:54:11.921Z workers [pwa94] Test executed: empty set\n',
    '2019-11-15T15:54:12.173Z workers [pwa94] Test executed: set with one item\n',
    '2019-11-15T15:54:14.521Z workers [ramax] Test executed: 13\n',
    '2019-11-15T15:54:26.439Z workers [nrqjh] Test executed: 40,000th day\n',
    '2019-11-15T15:54:29.711Z workers [pwa94] Test executed: take 0 of 4 (returns empty set)\n',
    '2019-11-15T15:54:32.398Z workers [ramax] Test executed: 837799\n',
    '2019-11-15T15:54:32.616Z workers [ramax] Test executed: 1 million\n',
    '2019-11-15T15:54:45.179Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:54:56.790Z workers [ramax] Test executed: 75,128,138,247\n',
    '2019-11-15T15:54:56.971Z workers [nrqjh] Test executed: [12, 23, 34]\n',
    '2019-11-15T15:55:14.515Z workers [ramax] Test executed: 13\n',
    '2019-11-15T15:55:17.153Z workers [pwa94] Test executed: take 5 of 4 (returns empty set)\n',
    '2019-11-15T15:55:21.879Z workers [epx7w] Test executed: 6 is perfect\n',
    '2019-11-15T15:55:35.044Z workers [nrqjh] Test executed: [1, 2, 34]\n',
    '2019-11-15T15:55:53.208Z workers [ramax] Test executed: 837799\n',
    '2019-11-15T15:56:10.770Z workers [pwa94] Test executed: take 1 of 4\n',
    '2019-11-15T15:56:12.564Z workers [ramax] Test executed: 1 million\n',
    '2019-11-15T15:56:12.818Z workers [ramax] Test executed: 75,128,138,247\n',
    '2019-11-15T15:56:13.182Z workers Sandbox (active) [ramax] error: Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: undefined\n',
    '2019-11-15T15:56:13.192Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.193Z workers [ramax] Test executed: 1\n',
    '2019-11-15T15:56:13.193Z workers [ramax] Test executed: 2\n',
    '2019-11-15T15:56:13.195Z workers [ramax] Test executed: 3\n',
    '2019-11-15T15:56:13.196Z workers [ramax] Test executed: 4\n',
    '2019-11-15T15:56:13.197Z workers [ramax] Test executed: 5\n',
    '2019-11-15T15:56:13.199Z workers [ramax] Test executed: 6\n',
    '2019-11-15T15:56:13.201Z workers [ramax] Test executed: 7\n',
    '2019-11-15T15:56:13.202Z workers [ramax] Test executed: 7\n',
    '2019-11-15T15:56:13.203Z workers [ramax] Test executed: 8\n',
    '2019-11-15T15:56:13.205Z workers [ramax] Test executed: 9\n',
    '2019-11-15T15:56:13.207Z workers [ramax] Test executed: 10\n',
    '2019-11-15T15:56:13.210Z workers [ramax] Test executed: 11\n',
    '2019-11-15T15:56:13.213Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.214Z workers [ramax] Test executed: 1: 1\n',
    '2019-11-15T15:56:13.215Z workers [ramax] Test executed: 2: 2\n',
    '2019-11-15T15:56:13.219Z workers [ramax] Test executed: 3: 6\n',
    '2019-11-15T15:56:13.224Z workers [ramax] Test executed: 4: 24\n',
    '2019-11-15T15:56:13.228Z workers [ramax] Test executed: 5: 120\n',
    '2019-11-15T15:56:13.228Z workers [ramax] Test executed: 20: 2432902008176640000\n',
    '2019-11-15T15:56:13.230Z workers [ramax] Test executed: 100: 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000\n',
    '2019-11-15T15:56:13.231Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.232Z workers [ramax] Test executed: []: 0\n',
    '2019-11-15T15:56:13.233Z workers [ramax] Test executed: [2]: 2\n',
    '2019-11-15T15:56:13.234Z workers [ramax] Test executed: [2,3]: 6\n',
    '2019-11-15T15:56:13.234Z workers [ramax] Test executed: [4,6]: 12\n',
    '2019-11-15T15:56:13.235Z workers [ramax] Test executed: [8,12]: 24\n',
    '2019-11-15T15:56:13.236Z workers [ramax] Test executed: [4,8,12]: 24\n',
    '2019-11-15T15:56:13.236Z workers [ramax] Test executed: [5,8,12]: 120\n',
    '2019-11-15T15:56:13.237Z workers [ramax] Test executed: [120,81]: 3240\n',
    '2019-11-15T15:56:13.238Z workers [ramax] Test executed: [2,3,4,5,6,7,8,9,10]: 2520\n',
    '2019-11-15T15:56:13.239Z workers [ramax] Test executed: [4,7920,62710561,71234569]: 35379905493899014000\n',
    '2019-11-15T15:56:13.241Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.242Z workers [ramax] Test executed: rows\n',
    '2019-11-15T15:56:13.243Z workers [ramax] Test executed: columns\n',
    '2019-11-15T15:56:13.244Z workers [ramax] Test executed: diagonals\n',
    '2019-11-15T15:56:13.245Z workers [ramax] Test executed: wordsFromSeries\n',
    '2019-11-15T15:56:13.246Z workers [ramax] Test executed: words\n',
    '2019-11-15T15:56:13.249Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.250Z workers [ramax] Test executed: first 11 rows\n',
    '2019-11-15T15:56:13.250Z workers [ramax] Test executed: row 20, column 10\n',
    '2019-11-15T15:56:13.252Z workers [ramax] Test executed: row 50, column 20\n',
    '2019-11-15T15:56:13.254Z workers [ramax] Test executed: row 20, column 10\n',
    '2019-11-15T15:56:13.256Z workers [ramax] Test executed: row 50, column 20\n',
    '2019-11-15T15:56:13.265Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.266Z workers [ramax] Test executed: 3, 7\n',
    '2019-11-15T15:56:13.273Z workers [ramax] Test executed: 7, 109\n',
    '2019-11-15T15:56:13.276Z workers [ramax] Test executed: 3, 109\n',
    '2019-11-15T15:56:13.277Z workers [ramax] Test executed: 109, 673\n',
    '2019-11-15T15:56:13.278Z workers [ramax] Test executed: 113, 673\n',
    '2019-11-15T15:56:13.281Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.282Z workers [ramax] Test executed: 2\n',
    '2019-11-15T15:56:13.283Z workers [ramax] Test executed: 3\n',
    '2019-11-15T15:56:13.283Z workers [ramax] Test executed: 4\n',
    '2019-11-15T15:56:13.285Z workers [ramax] Test executed: 6\n',
    '2019-11-15T15:56:13.286Z workers [ramax] Test executed: 7\n',
    '2019-11-15T15:56:13.287Z workers [ramax] Test executed: 13\n',
    '2019-11-15T15:56:13.288Z workers [ramax] Test executed: 28\n',
    '2019-11-15T15:56:13.289Z workers [ramax] Test executed: 51\n',
    '2019-11-15T15:56:13.290Z workers [ramax] Test executed: 92\n',
    '2019-11-15T15:56:13.291Z workers [ramax] Test executed: 96\n',
    '2019-11-15T15:56:13.292Z workers [ramax] Test executed: 97\n',
    '2019-11-15T15:56:13.293Z workers [ramax] Test executed: 983\n',
    '2019-11-15T15:56:13.294Z workers [ramax] Test executed: n lower than 2 throws error\n',
    '2019-11-15T15:56:13.300Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.301Z workers [ramax] Test executed: Problem 001: 233168 [0ms]\n',
    '2019-11-15T15:56:13.302Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.303Z workers [ramax] Test executed: Problem 005: 232792560 [1ms]\n',
    '2019-11-15T15:56:13.305Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.307Z workers [ramax] Test executed: Problem 009: 31875000 [4ms]\n',
    '2019-11-15T15:56:13.309Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.310Z workers [ramax] Test executed: Problem 013: 5537376230 [0ms]\n',
    '2019-11-15T15:56:13.312Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.312Z workers [ramax] Test executed: Problem 017: 21124 [36ms]\n',
    '2019-11-15T15:56:13.314Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.315Z workers [ramax] Test executed: Problem 021: 31626 [6679ms]\n',
    '2019-11-15T15:56:13.317Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.319Z workers [ramax] Test executed: Problem 025: 4782 [202ms]\n',
    '2019-11-15T15:56:13.320Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.321Z workers [ramax] Test executed: Problem 029: 9183 [63ms]\n',
    '2019-11-15T15:56:13.322Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.323Z workers [ramax] Test executed: Problem 033: 100 [1ms]\n',
    '2019-11-15T15:56:13.324Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.325Z workers [ramax] Test executed: Problem 037: 748317 [777ms]\n',
    '2019-11-15T15:56:13.328Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.329Z workers [ramax] Test executed: Problem 041: 7652413 [3216ms]\n',
    '2019-11-15T15:56:13.330Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.332Z workers [ramax] Test executed: Problem 045: 1533776805 [1299ms]\n',
    '2019-11-15T15:56:13.336Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.337Z workers [ramax] Test executed: Problem 049: 296962999629 [673ms]\n',
    '2019-11-15T15:56:13.339Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.339Z workers [ramax] Test executed: Problem 053: 4075 [31ms]\n',
    '2019-11-15T15:56:13.341Z workers [ramax] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:13.341Z workers [ramax] Test executed: Problem 057: 153 [22ms]\n',
    '2019-11-15T15:56:13.400Z workers [ramax] Run 81 test(s), skipped 0 test(s)\n',
    '2019-11-15T15:56:13.403Z workers [ramax] Sandbox is responsive, closing it\n',
    '2019-11-15T15:56:15.197Z workers [nrqjh] Test executed: [99, 98, 97]\n',
    '2019-11-15T15:56:18.066Z workers [epx7w] Test executed: 8 is deficient\n',
    '2019-11-15T15:56:18.318Z workers [epx7w] Test executed: 9 is deficient\n',
    '2019-11-15T15:56:18.581Z workers [epx7w] Test executed: 12 is abundant\n',
    '2019-11-15T15:56:25.608Z workers [epx7w] Test executed: 18 is abundant\n',
    '2019-11-15T15:56:31.393Z workers [nrqjh] Test executed: [100, 101, 102]\n',
    '2019-11-15T15:56:31.887Z workers [epx7w] Test executed: 20 is abundant\n',
    '2019-11-15T15:56:33.854Z workers [epx7w] Test executed: 24 is abundant\n',
    '2019-11-15T15:56:55.721Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.727Z workers [nrqjh] Test executed: [2]\n',
    '2019-11-15T15:56:55.728Z workers [nrqjh] Test executed: [2, 3]\n',
    '2019-11-15T15:56:55.731Z workers [nrqjh] Test executed: [2, 2, 2, 3, 3, 5]\n',
    '2019-11-15T15:56:55.732Z workers [nrqjh] Test executed: 1\n',
    '2019-11-15T15:56:55.733Z workers [nrqjh] Test executed: 2\n',
    '2019-11-15T15:56:55.734Z workers [nrqjh] Test executed: 6\n',
    '2019-11-15T15:56:55.735Z workers [nrqjh] Test executed: 360\n',
    '2019-11-15T15:56:55.737Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.739Z workers [nrqjh] Test executed: 2\n',
    '2019-11-15T15:56:55.740Z workers [nrqjh] Test executed: 2.5\n',
    '2019-11-15T15:56:55.741Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.742Z workers [nrqjh] Test executed: COLIN \n',
    '2019-11-15T15:56:55.742Z workers [nrqjh] Test executed: HERB \n',
    '2019-11-15T15:56:55.743Z workers [nrqjh] Test executed: A\n',
    '2019-11-15T15:56:55.744Z workers [nrqjh] Test executed: C\n',
    '2019-11-15T15:56:55.747Z workers [nrqjh] Test executed: E\n',
    '2019-11-15T15:56:55.748Z workers [nrqjh] Test executed: H\n',
    '2019-11-15T15:56:55.750Z workers [nrqjh] Test executed: R\n',
    '2019-11-15T15:56:55.751Z workers [nrqjh] Test executed: Z\n',
    '2019-11-15T15:56:55.754Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.757Z workers [nrqjh] Test executed: 12345\n',
    '2019-11-15T15:56:55.758Z workers [nrqjh] Test executed: 333333333\n',
    '2019-11-15T15:56:55.759Z workers [nrqjh] Test executed: 1234567890123\n',
    '2019-11-15T15:56:55.762Z workers [nrqjh] Test executed: 123456789\n',
    '2019-11-15T15:56:55.763Z workers [nrqjh] Test executed: 192384576\n',
    '2019-11-15T15:56:55.763Z workers [nrqjh] Test executed: 918273645\n',
    '2019-11-15T15:56:55.764Z workers [nrqjh] Test executed: 4231, 4\n',
    '2019-11-15T15:56:55.765Z workers [nrqjh] Test executed: 42318756, 8\n',
    '2019-11-15T15:56:55.766Z workers [nrqjh] Test executed: 123456789, 4\n',
    '2019-11-15T15:56:55.769Z workers [nrqjh] Loaded unknown number of test(s)\n',
    "2019-11-15T15:56:55.770Z workers [nrqjh] Test executed: Can't factor -12\n",
    "2019-11-15T15:56:55.770Z workers [nrqjh] Test executed: Can't factor 1\n",
    "2019-11-15T15:56:55.772Z workers [nrqjh] Test executed: Can't factor 0\n",
    '2019-11-15T15:56:55.774Z workers [nrqjh] Test executed: 2: [2]\n',
    '2019-11-15T15:56:55.775Z workers [nrqjh] Test executed: 3: [3]\n',
    '2019-11-15T15:56:55.776Z workers [nrqjh] Test executed: 4: [2,2]\n',
    '2019-11-15T15:56:55.777Z workers [nrqjh] Test executed: 5: [5]\n',
    '2019-11-15T15:56:55.778Z workers [nrqjh] Test executed: 12: [2,2,3]\n',
    '2019-11-15T15:56:55.779Z workers [nrqjh] Test executed: 83: [83]\n',
    '2019-11-15T15:56:55.779Z workers [nrqjh] Test executed: 100: [2,2,5,5]\n',
    '2019-11-15T15:56:55.780Z workers [nrqjh] Test executed: 13195: [5,7,13,29]\n',
    '2019-11-15T15:56:55.781Z workers [nrqjh] Test executed: 429672: [2,2,2,3,17903]\n',
    '2019-11-15T15:56:55.782Z workers [nrqjh] Test executed: 600851475143: [71,839,1471,6857]\n',
    '2019-11-15T15:56:55.783Z workers [nrqjh] Test executed: 9007199254740991: [6361,69431,20394401]\n',
    '2019-11-15T15:56:55.784Z workers [nrqjh] Test executed: 9007199254740992: [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]\n',
    '2019-11-15T15:56:55.786Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.787Z workers [nrqjh] Test executed: empty array \n',
    '2019-11-15T15:56:55.788Z workers [nrqjh] Test executed: single element\n',
    '2019-11-15T15:56:55.789Z workers [nrqjh] Test executed: multiple elements\n',
    '2019-11-15T15:56:55.790Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.791Z workers [nrqjh] Test executed: Problem 002: 4613732 [1ms]\n',
    '2019-11-15T15:56:55.792Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.792Z workers [nrqjh] Test executed: Problem 006: 25164150 [0ms]\n',
    '2019-11-15T15:56:55.794Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.795Z workers [nrqjh] Test executed: Problem 010: 142913828922 [1ms]\n',
    '2019-11-15T15:56:55.796Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.797Z workers [nrqjh] Test executed: Problem 014: 837799 [11497ms]\n',
    '2019-11-15T15:56:55.799Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.799Z workers [nrqjh] Test executed: Problem 018: 1074 [80ms]\n',
    '2019-11-15T15:56:55.801Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.802Z workers [nrqjh] Test executed: Problem 022: 871198282 [69ms]\n',
    '2019-11-15T15:56:55.803Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.804Z workers [nrqjh] Test executed: Problem 026: 983 [37807ms]\n',
    '2019-11-15T15:56:55.805Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.807Z workers [nrqjh] Test executed: Problem 030: 443839 [10601ms]\n',
    '2019-11-15T15:56:55.808Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.808Z workers [nrqjh] Test executed: Problem 034: 40730 [29244ms]\n',
    '2019-11-15T15:56:55.812Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.813Z workers [nrqjh] Test executed: Problem 038: 932718654 [17ms]\n',
    '2019-11-15T15:56:55.816Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.816Z workers [nrqjh] Test executed: Problem 042: 162 [27ms]\n',
    '2019-11-15T15:56:55.818Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.818Z workers [nrqjh] Test executed: Problem 046: 5777 [240ms]\n',
    '2019-11-15T15:56:55.819Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.820Z workers [nrqjh] Test executed: Problem 050: 997651 [177ms]\n',
    '2019-11-15T15:56:55.821Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.821Z workers [nrqjh] Test executed: Problem 054: 376 [357ms]\n',
    '2019-11-15T15:56:55.824Z workers [nrqjh] Loaded unknown number of test(s)\n',
    '2019-11-15T15:56:55.824Z workers [nrqjh] Test executed: Problem 058: 26241 [6740ms]\n',
    '2019-11-15T15:56:55.950Z workers [nrqjh] Run 65 test(s), skipped 0 test(s)\n',
    '2019-11-15T15:56:55.952Z workers [nrqjh] Sandbox is responsive, closing it\n',
    '2019-11-15T15:57:32.191Z workers [pwa94] Test executed: take 2 of 4\n',
    '2019-11-15T15:57:33.037Z workers [pwa94] Test executed: take 3 of 4\n',
    '2019-11-15T15:57:59.052Z workers [epx7w] Test executed: 28 is perfect\n',
    '2019-11-15T15:57:59.062Z workers [epx7w] Test executed: allAbundants\n',
    '2019-11-15T15:57:59.063Z workers [epx7w] Test executed: d\n',
    '2019-11-15T15:57:59.064Z workers [epx7w] Test executed: areAmicable\n',
    '2019-11-15T15:57:59.065Z workers [epx7w] Test executed: friend\n',
    '2019-11-15T15:57:59.066Z workers [epx7w] Test executed: allAmicables\n',
    '2019-11-15T15:57:59.068Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.069Z workers [epx7w] Test executed: 1234\n',
    '2019-11-15T15:57:59.070Z workers [epx7w] Test executed: 123456\n',
    '2019-11-15T15:57:59.071Z workers [epx7w] Test executed: 1234\n',
    '2019-11-15T15:57:59.072Z workers [epx7w] Test executed: 123456\n',
    '2019-11-15T15:57:59.073Z workers [epx7w] Test executed: not same length\n',
    '2019-11-15T15:57:59.074Z workers [epx7w] Test executed: odd length\n',
    '2019-11-15T15:57:59.075Z workers [epx7w] Test executed: not cyclic\n',
    '2019-11-15T15:57:59.077Z workers [epx7w] Test executed: cyclic\n',
    '2019-11-15T15:57:59.077Z workers [epx7w] Test executed: 3,3\n',
    '2019-11-15T15:57:59.078Z workers [epx7w] Test executed: 4,3\n',
    '2019-11-15T15:57:59.079Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.080Z workers [epx7w] Test executed: start with 1,2\n',
    '2019-11-15T15:57:59.080Z workers [epx7w] Test executed: start with default\n',
    '2019-11-15T15:57:59.081Z workers [epx7w] Test executed: max 12\n',
    '2019-11-15T15:57:59.081Z workers [epx7w] Test executed: max 4,000,000\n',
    '2019-11-15T15:57:59.082Z workers [epx7w] Test executed: 100 results\n',
    '2019-11-15T15:57:59.083Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.083Z workers [epx7w] Test executed: no overlap\n',
    '2019-11-15T15:57:59.084Z workers [epx7w] Test executed: one overlapping item\n',
    '2019-11-15T15:57:59.084Z workers [epx7w] Test executed: two overlapping items\n',
    '2019-11-15T15:57:59.085Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.086Z workers [epx7w] Test executed: numberLength\n',
    '2019-11-15T15:57:59.087Z workers [epx7w] Test executed: numberLength\n',
    '2019-11-15T15:57:59.089Z workers [epx7w] Test executed: numberLength\n',
    '2019-11-15T15:57:59.090Z workers [epx7w] Test executed: numberLength\n',
    '2019-11-15T15:57:59.091Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.092Z workers [epx7w] Test executed: 0\n',
    '2019-11-15T15:57:59.093Z workers [epx7w] Test executed: 01\n',
    '2019-11-15T15:57:59.094Z workers [epx7w] Test executed: 10\n',
    '2019-11-15T15:57:59.095Z workers [epx7w] Test executed: 012\n',
    '2019-11-15T15:57:59.096Z workers [epx7w] Test executed: 120\n',
    '2019-11-15T15:57:59.097Z workers [epx7w] Test executed: 0123\n',
    '2019-11-15T15:57:59.098Z workers [epx7w] Test executed: 0\n',
    '2019-11-15T15:57:59.098Z workers [epx7w] Test executed: 01\n',
    '2019-11-15T15:57:59.099Z workers [epx7w] Test executed: 012\n',
    '2019-11-15T15:57:59.100Z workers [epx7w] Test executed: 0123\n',
    '2019-11-15T15:57:59.101Z workers [epx7w] Test executed: 01234\n',
    '2019-11-15T15:57:59.102Z workers [epx7w] Test executed: 012345\n',
    '2019-11-15T15:57:59.102Z workers [epx7w] Test executed: 0123456\n',
    '2019-11-15T15:57:59.104Z workers [epx7w] Test executed: 01234567\n',
    '2019-11-15T15:57:59.105Z workers [epx7w] Test executed: 012345678\n',
    '2019-11-15T15:57:59.105Z workers [epx7w] Test executed: 0123456789\n',
    '2019-11-15T15:57:59.106Z workers [epx7w] Test executed: 012\n',
    '2019-11-15T15:57:59.107Z workers [epx7w] Test executed: 012\n',
    '2019-11-15T15:57:59.108Z workers [epx7w] Test executed: 0123\n',
    '2019-11-15T15:57:59.108Z workers [epx7w] Test executed: 0123\n',
    '2019-11-15T15:57:59.109Z workers [epx7w] Test executed: 0123\n',
    '2019-11-15T15:57:59.110Z workers [epx7w] Test executed: 0123\n',
    '2019-11-15T15:57:59.110Z workers [epx7w] Test executed: 0123\n',
    '2019-11-15T15:57:59.111Z workers [epx7w] Test executed: 012345678\n',
    '2019-11-15T15:57:59.112Z workers [epx7w] Test executed: 0123456789\n',
    '2019-11-15T15:57:59.113Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.116Z workers [epx7w] Test executed: 1\n',
    '2019-11-15T15:57:59.117Z workers [epx7w] Test executed: 2\n',
    '2019-11-15T15:57:59.118Z workers [epx7w] Test executed: 20\n',
    '2019-11-15T15:57:59.119Z workers [epx7w] Test executed: 10**4\n',
    '2019-11-15T15:57:59.120Z workers [epx7w] Test executed: 10**5\n',
    '2019-11-15T15:57:59.121Z workers [epx7w] Test executed: 10**6\n',
    '2019-11-15T15:57:59.122Z workers [epx7w] Test executed: 10**7\n',
    '2019-11-15T15:57:59.123Z workers [epx7w] Test executed: 10**7+100\n',
    '2019-11-15T15:57:59.124Z workers [epx7w] Test executed: 0\n',
    '2019-11-15T15:57:59.126Z workers [epx7w] Test executed: 1\n',
    '2019-11-15T15:57:59.127Z workers [epx7w] Test executed: 2\n',
    '2019-11-15T15:57:59.129Z workers [epx7w] Test executed: 4\n',
    '2019-11-15T15:57:59.130Z workers [epx7w] Test executed: 5\n',
    '2019-11-15T15:57:59.131Z workers [epx7w] Test executed: 10\n',
    '2019-11-15T15:57:59.131Z workers [epx7w] Test executed: 7920\n',
    '2019-11-15T15:57:59.132Z workers [epx7w] Test executed: 62710573\n',
    '2019-11-15T15:57:59.133Z workers [epx7w] Test executed: 10 ** 8\n',
    '2019-11-15T15:57:59.133Z workers [epx7w] Test executed: 10 ** 9\n',
    '2019-11-15T15:57:59.134Z workers [epx7w] Test executed: 10 ** 10\n',
    '2019-11-15T15:57:59.134Z workers [epx7w] Test executed: 10 ** 11\n',
    '2019-11-15T15:57:59.135Z workers [epx7w] Test executed: 10 ** 12\n',
    '2019-11-15T15:57:59.136Z workers [epx7w] Test executed: 10 ** 13\n',
    '2019-11-15T15:57:59.136Z workers [epx7w] Test executed: 10 ** 14\n',
    '2019-11-15T15:57:59.137Z workers [epx7w] Test executed: 10 ** 15\n',
    '2019-11-15T15:57:59.138Z workers [epx7w] Test executed: 1\n',
    '2019-11-15T15:57:59.139Z workers [epx7w] Test executed: 2\n',
    '2019-11-15T15:57:59.140Z workers [epx7w] Test executed: 6\n',
    '2019-11-15T15:57:59.141Z workers [epx7w] Test executed: 10\n',
    '2019-11-15T15:57:59.142Z workers [epx7w] Test executed: 1000\n',
    '2019-11-15T15:57:59.143Z workers [epx7w] Test executed: 10000\n',
    '2019-11-15T15:57:59.144Z workers [epx7w] Test executed: 10001\n',
    '2019-11-15T15:57:59.145Z workers [epx7w] Test executed: 0\n',
    '2019-11-15T15:57:59.146Z workers [epx7w] Test executed: 1\n',
    '2019-11-15T15:57:59.146Z workers [epx7w] Test executed: 2\n',
    '2019-11-15T15:57:59.152Z workers [epx7w] Test executed: 3\n',
    '2019-11-15T15:57:59.153Z workers [epx7w] Test executed: 4\n',
    '2019-11-15T15:57:59.155Z workers [epx7w] Test executed: 83\n',
    '2019-11-15T15:57:59.155Z workers [epx7w] Test executed: 7919\n',
    '2019-11-15T15:57:59.157Z workers [epx7w] Test executed: 7920\n',
    '2019-11-15T15:57:59.158Z workers [epx7w] Test executed: 7921\n',
    '2019-11-15T15:57:59.160Z workers [epx7w] Test executed: 62710559\n',
    '2019-11-15T15:57:59.161Z workers [epx7w] Test executed: 62710561\n',
    '2019-11-15T15:57:59.162Z workers [epx7w] Test executed: 62710573\n',
    '2019-11-15T15:57:59.162Z workers [epx7w] Test executed: 71234567\n',
    '2019-11-15T15:57:59.163Z workers [epx7w] Test executed: 71234569\n',
    '2019-11-15T15:57:59.164Z workers [epx7w] Test executed: 10000000019\n',
    '2019-11-15T15:57:59.165Z workers [epx7w] Test executed: 100000000000\n',
    '2019-11-15T15:57:59.166Z workers [epx7w] Test executed: 100000000019\n',
    '2019-11-15T15:57:59.167Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.168Z workers [epx7w] Test executed: 0: zero\n',
    '2019-11-15T15:57:59.168Z workers [epx7w] Test executed: 1: one\n',
    '2019-11-15T15:57:59.169Z workers [epx7w] Test executed: 7: seven\n',
    '2019-11-15T15:57:59.171Z workers [epx7w] Test executed: 13: thirteen\n',
    '2019-11-15T15:57:59.171Z workers [epx7w] Test executed: 20: twenty\n',
    '2019-11-15T15:57:59.172Z workers [epx7w] Test executed: 30: thirty\n',
    '2019-11-15T15:57:59.173Z workers [epx7w] Test executed: 42: forty-two\n',
    '2019-11-15T15:57:59.174Z workers [epx7w] Test executed: 99: ninety-nine\n',
    '2019-11-15T15:57:59.174Z workers [epx7w] Test executed: 100: one hundred\n',
    '2019-11-15T15:57:59.175Z workers [epx7w] Test executed: 101: one hundred and one\n',
    '2019-11-15T15:57:59.176Z workers [epx7w] Test executed: 200: two hundred\n',
    '2019-11-15T15:57:59.179Z workers [epx7w] Test executed: 232: two hundred and thirty-two\n',
    '2019-11-15T15:57:59.180Z workers [epx7w] Test executed: 999: nine hundred and ninety-nine\n',
    '2019-11-15T15:57:59.182Z workers [epx7w] Test executed: 1000: one thousand\n',
    '2019-11-15T15:57:59.184Z workers [epx7w] Test executed: 1001: one thousand and one\n',
    '2019-11-15T15:57:59.184Z workers [epx7w] Test executed: 2574: two thousand five hundred and seventy-four\n',
    '2019-11-15T15:57:59.185Z workers [epx7w] Test executed: 12345: twelve thousand three hundred and forty-five\n',
    '2019-11-15T15:57:59.186Z workers [epx7w] Test executed: 200042: two hundred thousand and forty-two\n',
    '2019-11-15T15:57:59.187Z workers [epx7w] Test executed: 999999: nine hundred and ninety-nine thousand nine hundred and ninety-nine\n',
    '2019-11-15T15:57:59.188Z workers [epx7w] Test executed: 1000000: one million\n',
    '2019-11-15T15:57:59.188Z workers [epx7w] Test executed: 1000001: one million and one\n',
    '2019-11-15T15:57:59.190Z workers [epx7w] Test executed: 1200000: one million two hundred thousand\n',
    '2019-11-15T15:57:59.191Z workers [epx7w] Test executed: 912345678901234: nine hundred and twelve trillion three hundred and forty-five billion six hundred and seventy-eight million nine hundred and one thousand two hundred and thirty-four\n',
    '2019-11-15T15:57:59.192Z workers [epx7w] Test executed: too large number throws error\n',
    '2019-11-15T15:57:59.193Z workers [epx7w] Test executed: negative number throws error\n',
    '2019-11-15T15:57:59.194Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.195Z workers [epx7w] Test executed: Problem 004: 906609 [2335ms]\n',
    '2019-11-15T15:57:59.197Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.200Z workers [epx7w] Test executed: Problem 008: 23514624000 [14ms]\n',
    '2019-11-15T15:57:59.202Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.203Z workers [epx7w] Test executed: Problem 012: 76576500 [38079ms]\n',
    '2019-11-15T15:57:59.205Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.206Z workers [epx7w] Test executed: Problem 016: 1366 [0ms]\n',
    '2019-11-15T15:57:59.209Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.211Z workers [epx7w] Test executed: Problem 020: 648 [1ms]\n',
    '2019-11-15T15:57:59.213Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.214Z workers [epx7w] Test executed: Problem 024: 2783915460 [1ms]\n',
    '2019-11-15T15:57:59.220Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.220Z workers [epx7w] Test executed: Problem 028: 669171001 [10ms]\n',
    '2019-11-15T15:57:59.222Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.224Z workers [epx7w] Test executed: Problem 032: 45228 [2551ms]\n',
    '2019-11-15T15:57:59.225Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.226Z workers [epx7w] Test executed: Problem 036: 872187 [2318ms]\n',
    '2019-11-15T15:57:59.228Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.228Z workers [epx7w] Test executed: Problem 040: 210 [0ms]\n',
    '2019-11-15T15:57:59.229Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.229Z workers [epx7w] Test executed: Problem 044: 5482660 [4825ms]\n',
    '2019-11-15T15:57:59.230Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.231Z workers [epx7w] Test executed: Problem 048: 9110846700 [295ms]\n',
    '2019-11-15T15:57:59.232Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.232Z workers [epx7w] Test executed: Problem 052: 142857 [1493ms]\n',
    '2019-11-15T15:57:59.232Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.233Z workers [epx7w] Test executed: Problem 056: 972 [537ms]\n',
    '2019-11-15T15:57:59.233Z workers [epx7w] Loaded unknown number of test(s)\n',
    '2019-11-15T15:57:59.234Z workers [epx7w] Test executed: Problem 060: 26033 [69143ms]\n',
    '2019-11-15T15:57:59.285Z workers [epx7w] Run 149 test(s), skipped 0 test(s)\n',
    '2019-11-15T15:57:59.287Z workers [epx7w] Sandbox is responsive, closing it\n',
    '2019-11-15T15:58:37.806Z workers [pwa94] Test executed: take 4 of 4\n',
    '2019-11-15T15:58:38.288Z workers [pwa94] Test executed: all combinations, 4 items\n',
    '2019-11-15T15:58:38.289Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.290Z workers [pwa94] Test executed: 1\n',
    '2019-11-15T15:58:38.291Z workers [pwa94] Test executed: 2\n',
    '2019-11-15T15:58:38.292Z workers [pwa94] Test executed: 3\n',
    '2019-11-15T15:58:38.293Z workers [pwa94] Test executed: 4\n',
    '2019-11-15T15:58:38.294Z workers [pwa94] Test executed: 12\n',
    '2019-11-15T15:58:38.294Z workers [pwa94] Test executed: 25\n',
    '2019-11-15T15:58:38.295Z workers [pwa94] Test executed: 72\n',
    '2019-11-15T15:58:38.296Z workers [pwa94] Test executed: 127\n',
    '2019-11-15T15:58:38.297Z workers [pwa94] Test executed: 1\n',
    '2019-11-15T15:58:38.300Z workers [pwa94] Test executed: 2\n',
    '2019-11-15T15:58:38.301Z workers [pwa94] Test executed: 3\n',
    '2019-11-15T15:58:38.301Z workers [pwa94] Test executed: 4\n',
    '2019-11-15T15:58:38.303Z workers [pwa94] Test executed: 12\n',
    '2019-11-15T15:58:38.304Z workers [pwa94] Test executed: 25\n',
    '2019-11-15T15:58:38.305Z workers [pwa94] Test executed: 72\n',
    '2019-11-15T15:58:38.306Z workers [pwa94] Test executed: 127\n',
    '2019-11-15T15:58:38.307Z workers [pwa94] Test executed: 1\n',
    '2019-11-15T15:58:38.308Z workers [pwa94] Test executed: 2\n',
    '2019-11-15T15:58:38.309Z workers [pwa94] Test executed: 3\n',
    '2019-11-15T15:58:38.310Z workers [pwa94] Test executed: 4\n',
    '2019-11-15T15:58:38.311Z workers [pwa94] Test executed: 12\n',
    '2019-11-15T15:58:38.311Z workers [pwa94] Test executed: 72\n',
    '2019-11-15T15:58:38.313Z workers [pwa94] Test executed: 76576500\n',
    '2019-11-15T15:58:38.314Z workers [pwa94] Test executed: 6227020800\n',
    '2019-11-15T15:58:38.315Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.316Z workers [pwa94] Test executed: works \n',
    '2019-11-15T15:58:38.318Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.318Z workers [pwa94] Test executed: 0\n',
    '2019-11-15T15:58:38.319Z workers [pwa94] Test executed: 1\n',
    '2019-11-15T15:58:38.320Z workers [pwa94] Test executed: 2\n',
    '2019-11-15T15:58:38.321Z workers [pwa94] Test executed: 3\n',
    '2019-11-15T15:58:38.322Z workers [pwa94] Test executed: 4\n',
    '2019-11-15T15:58:38.323Z workers [pwa94] Test executed: 83\n',
    '2019-11-15T15:58:38.324Z workers [pwa94] Test executed: 7919\n',
    '2019-11-15T15:58:38.325Z workers [pwa94] Test executed: 7920\n',
    '2019-11-15T15:58:38.325Z workers [pwa94] Test executed: 7921\n',
    '2019-11-15T15:58:38.326Z workers [pwa94] Test executed: 62710559\n',
    '2019-11-15T15:58:38.327Z workers [pwa94] Test executed: 62710561\n',
    '2019-11-15T15:58:38.328Z workers [pwa94] Test executed: 62710573\n',
    '2019-11-15T15:58:38.328Z workers [pwa94] Test executed: 71234567\n',
    '2019-11-15T15:58:38.329Z workers [pwa94] Test executed: 71234569\n',
    '2019-11-15T15:58:38.330Z workers [pwa94] Test executed: 94945537\n',
    '2019-11-15T15:58:38.330Z workers [pwa94] Test executed: 10000000019\n',
    '2019-11-15T15:58:38.333Z workers [pwa94] Test executed: 100000000000\n',
    '2019-11-15T15:58:38.334Z workers [pwa94] Test executed: 100000000019\n',
    '2019-11-15T15:58:38.335Z workers [pwa94] Test executed: 9007199254740880\n',
    '2019-11-15T15:58:38.336Z workers [pwa94] Test executed: 9007199254740881\n',
    '2019-11-15T15:58:38.337Z workers [pwa94] Test executed: 9007199254740991\n',
    '2019-11-15T15:58:38.337Z workers [pwa94] Test executed: 26257349148876557867\n',
    '2019-11-15T15:58:38.339Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.340Z workers [pwa94] Test executed: 2 is a palindrome\n',
    '2019-11-15T15:58:38.341Z workers [pwa94] Test executed: 22 is a palindrome\n',
    '2019-11-15T15:58:38.342Z workers [pwa94] Test executed: 202 is a palindrome\n',
    '2019-11-15T15:58:38.343Z workers [pwa94] Test executed: 222 is a palindrome\n',
    '2019-11-15T15:58:38.344Z workers [pwa94] Test executed: 42224 is a palindrome\n',
    '2019-11-15T15:58:38.345Z workers [pwa94] Test executed: 123321 is a palindrome\n',
    '2019-11-15T15:58:38.345Z workers [pwa94] Test executed: 1234321 is a palindrome\n',
    '2019-11-15T15:58:38.346Z workers [pwa94] Test executed: 1234567887654321 is a palindrome\n',
    '2019-11-15T15:58:38.347Z workers [pwa94] Test executed: 123 is not a palindrome\n',
    '2019-11-15T15:58:38.348Z workers [pwa94] Test executed: 2224 is not a palindrome\n',
    '2019-11-15T15:58:38.349Z workers [pwa94] Test executed: 123456788765432 is not a palindrome\n',
    '2019-11-15T15:58:38.350Z workers [pwa94] Test executed: 12345678654321 is not a palindrome\n',
    '2019-11-15T15:58:38.352Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.353Z workers [pwa94] Test executed: triangle numbers\n',
    '2019-11-15T15:58:38.354Z workers [pwa94] Test executed: triangle numbers\n',
    '2019-11-15T15:58:38.356Z workers [pwa94] Test executed: triangle numbers\n',
    '2019-11-15T15:58:38.357Z workers [pwa94] Test executed: triangle numbers\n',
    '2019-11-15T15:58:38.358Z workers [pwa94] Test executed: triangle numbers\n',
    '2019-11-15T15:58:38.359Z workers [pwa94] Test executed: triangle numbers\n',
    '2019-11-15T15:58:38.359Z workers [pwa94] Test executed: triangle numbers\n',
    '2019-11-15T15:58:38.360Z workers [pwa94] Test executed: square numbers\n',
    '2019-11-15T15:58:38.361Z workers [pwa94] Test executed: square numbers\n',
    '2019-11-15T15:58:38.361Z workers [pwa94] Test executed: square numbers\n',
    '2019-11-15T15:58:38.362Z workers [pwa94] Test executed: square numbers\n',
    '2019-11-15T15:58:38.363Z workers [pwa94] Test executed: square numbers\n',
    '2019-11-15T15:58:38.363Z workers [pwa94] Test executed: square numbers\n',
    '2019-11-15T15:58:38.364Z workers [pwa94] Test executed: square numbers\n',
    '2019-11-15T15:58:38.366Z workers [pwa94] Test executed: pentagonal numbers\n',
    '2019-11-15T15:58:38.367Z workers [pwa94] Test executed: pentagonal numbers\n',
    '2019-11-15T15:58:38.367Z workers [pwa94] Test executed: pentagonal numbers\n',
    '2019-11-15T15:58:38.369Z workers [pwa94] Test executed: pentagonal numbers\n',
    '2019-11-15T15:58:38.370Z workers [pwa94] Test executed: pentagonal numbers\n',
    '2019-11-15T15:58:38.372Z workers [pwa94] Test executed: pentagonal numbers\n',
    '2019-11-15T15:58:38.372Z workers [pwa94] Test executed: pentagonal numbers\n',
    '2019-11-15T15:58:38.373Z workers [pwa94] Test executed: triangular\n',
    '2019-11-15T15:58:38.373Z workers [pwa94] Test executed: square\n',
    '2019-11-15T15:58:38.374Z workers [pwa94] Test executed: pentagonal\n',
    '2019-11-15T15:58:38.375Z workers [pwa94] Test executed: hexagonal\n',
    '2019-11-15T15:58:38.377Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.377Z workers [pwa94] Test executed: with props object\n',
    '2019-11-15T15:58:38.378Z workers [pwa94] Test executed: with argument (stop)\n',
    '2019-11-15T15:58:38.379Z workers [pwa94] Test executed: with start and stop arguments\n',
    '2019-11-15T15:58:38.381Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.381Z workers [pwa94] Test executed: $.04\n',
    '2019-11-15T15:58:38.382Z workers [pwa94] Test executed: $.05\n',
    '2019-11-15T15:58:38.382Z workers [pwa94] Test executed: $.04\n',
    '2019-11-15T15:58:38.383Z workers [pwa94] Test executed: $.05\n',
    '2019-11-15T15:58:38.383Z workers [pwa94] Test executed: $.06\n',
    '2019-11-15T15:58:38.384Z workers [pwa94] Test executed: $.04\n',
    '2019-11-15T15:58:38.385Z workers [pwa94] Test executed: $.05\n',
    '2019-11-15T15:58:38.386Z workers [pwa94] Test executed: $.06\n',
    '2019-11-15T15:58:38.386Z workers [pwa94] Test executed: $.10\n',
    '2019-11-15T15:58:38.387Z workers [pwa94] Test executed: $.11\n',
    '2019-11-15T15:58:38.387Z workers [pwa94] Test executed: $.10\n',
    '2019-11-15T15:58:38.388Z workers [pwa94] Test executed: $.11\n',
    '2019-11-15T15:58:38.389Z workers [pwa94] Test executed: $1.00\n',
    '2019-11-15T15:58:38.389Z workers [pwa94] Test executed: $1.00\n',
    '2019-11-15T15:58:38.392Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.392Z workers [pwa94] Test executed: Problem 003: 6857 [39ms]\n',
    '2019-11-15T15:58:38.394Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.395Z workers [pwa94] Test executed: Problem 007: 104743 [28679ms]\n',
    '2019-11-15T15:58:38.396Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.396Z workers [pwa94] Test executed: Problem 011: 70600674 [15ms]\n',
    '2019-11-15T15:58:38.397Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.398Z workers [pwa94] Test executed: Problem 015: 137846528820 [0ms]\n',
    '2019-11-15T15:58:38.399Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.399Z workers [pwa94] Test executed: Problem 019: 171 [102ms]\n',
    '2019-11-15T15:58:38.401Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.401Z workers [pwa94] Test executed: Problem 023: 4179871 [1ms]\n',
    '2019-11-15T15:58:38.403Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.403Z workers [pwa94] Test executed: Problem 027: -59231 [11501ms]\n',
    '2019-11-15T15:58:38.405Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.405Z workers [pwa94] Test executed: Problem 031: 73682 [13238ms]\n',
    '2019-11-15T15:58:38.406Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.406Z workers [pwa94] Test executed: Problem 035: 55 [464ms]\n',
    '2019-11-15T15:58:38.408Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.408Z workers [pwa94] Test executed: Problem 039: 840 [533ms]\n',
    '2019-11-15T15:58:38.409Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.409Z workers [pwa94] Test executed: Problem 043: 16695334890 [0ms]\n',
    '2019-11-15T15:58:38.410Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.411Z workers [pwa94] Test executed: Problem 047: 134043 [12499ms]\n',
    '2019-11-15T15:58:38.413Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.413Z workers [pwa94] Test executed: Problem 051: 121313 [21450ms]\n',
    '2019-11-15T15:58:38.414Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.416Z workers [pwa94] Test executed: Problem 055: 249 [268ms]\n',
    '2019-11-15T15:58:38.417Z workers [pwa94] Loaded unknown number of test(s)\n',
    '2019-11-15T15:58:38.418Z workers [pwa94] Test executed: Problem 059: 129448 [5ms]\n',
    '2019-11-15T15:58:38.491Z workers [pwa94] Run 125 test(s), skipped 0 test(s)\n',
    '2019-11-15T15:58:38.493Z workers [pwa94] Sandbox is responsive, closing it\n',
    '2019-11-15T15:58:38.493Z workers Merging parallel test run results\n',
    '2019-11-15T15:58:38.506Z project Test run finished\n',
    '2019-11-15T15:58:38.506Z project Processed console.log entries\n',
    '2019-11-15T15:58:38.507Z project Processed loading sequences\n',
    '2019-11-15T15:58:38.508Z project Test name duplicate: numberLength\n',
    '2019-11-15T15:58:38.508Z project Test name duplicate: numberLength\n',
    '2019-11-15T15:58:38.508Z project Test name duplicate: numberLength\n',
    '2019-11-15T15:58:38.508Z project Test name duplicate: 012\n',
    '2019-11-15T15:58:38.508Z project Test name duplicate: 0123\n',
    '2019-11-15T15:58:38.508Z project Test name duplicate: 0123\n',
    '2019-11-15T15:58:38.508Z project Test name duplicate: 0123\n',
    '2019-11-15T15:58:38.508Z project Test name duplicate: 0123\n',
    '2019-11-15T15:58:38.511Z project Test name duplicate: 7\n',
    '2019-11-15T15:58:38.514Z project Test name duplicate: triangle numbers\n',
    '2019-11-15T15:58:38.514Z project Test name duplicate: triangle numbers\n',
    '2019-11-15T15:58:38.515Z project Test name duplicate: triangle numbers\n',
    '2019-11-15T15:58:38.515Z project Test name duplicate: triangle numbers\n',
    '2019-11-15T15:58:38.515Z project Test name duplicate: triangle numbers\n',
    '2019-11-15T15:58:38.515Z project Test name duplicate: triangle numbers\n',
    '2019-11-15T15:58:38.515Z project Test name duplicate: square numbers\n',
    '2019-11-15T15:58:38.515Z project Test name duplicate: square numbers\n',
    '2019-11-15T15:58:38.515Z project Test name duplicate: square numbers\n',
    '2019-11-15T15:58:38.515Z project Test name duplicate: square numbers\n',
    '2019-11-15T15:58:38.515Z project Test name duplicate: square numbers\n',
    '2019-11-15T15:58:38.515Z project Test name duplicate: square numbers\n',
    '2019-11-15T15:58:38.515Z project Test name duplicate: pentagonal numbers\n',
    '2019-11-15T15:58:38.515Z project Test name duplicate: pentagonal numbers\n',
    '2019-11-15T15:58:38.515Z project Test name duplicate: pentagonal numbers\n',
    '2019-11-15T15:58:38.515Z project Test name duplicate: pentagonal numbers\n',
    '2019-11-15T15:58:38.515Z project Test name duplicate: pentagonal numbers\n',
    '2019-11-15T15:58:38.515Z project Test name duplicate: pentagonal numbers\n',
    '2019-11-15T15:58:38.515Z project Processed executed tests\n',
    '2019-11-15T15:58:38.533Z project Processed code coverage\n',
    '2019-11-15T15:58:38.655Z project Test run result processed and sent to IDE\n'
  ]
}
ArtemGovorov commented 4 years ago

Could you please try deleting your config and running Wallaby with automatic configuration to see if it helps?

If automatic configuration doesn't help, we'll investigate the performance for the project regardless, but when comparing with Jest, a better cold start test would be to compare running:

Even with the test above, the instrumentation that Wallaby is doing is much more work than Jest's code coverage, so I'd expect Wallaby instrumented code to perform worse in long tight loops with thousands/millions of iterations (that seem to be very frequently used in this specific project). If it's the case, I think disabling instrumentation on code block level only for some of those loops may help.

smcenlly commented 4 years ago

Thanks for the sample repo. We spent a few hours reviewing your project today to identify why Wallaby is running slower than jest.

Using your project and your existing Wallaby configuration, Jest ran in ~25 seconds on our machines and Wallaby ran in ~60 seconds.

The main difference in execution times is a result of the code-coverage and other Wallaby features coupled with the large number of iterations that are a part of your mathematical helper libraries and your solutions. When Wallaby runs your tests, the additional operations it performs in addition to the large number of iterations in your code results in the increased execution time and this is expected.

There are a few recommendations that you may like to consider that would improve your Wallaby experience (and also any testing not using wallaby):

1) Wallaby workers setting: we're not sure if you have already tuned these settings for your computer, but on our machines, we were able to reduce the execution time from ~60 seconds to ~40 seconds by increasing the initial worker setting.

2) Test file structure: your test file structure is a little non-standard which doesn't allow for quick/easy isolation of tests. Your tests currently run using the executeTest helper function. This makes test isolation using jest's .only feature with Wallaby's test selection difficult/impossible. Being able to isolate specific tests/code that you're working on will reduce execution times.

3) It seems that you have a number of static "lib" type files that perform a fixed set of already well-tested operations (e.g. Prime number calculator, deepEquals, arraysEqual, factorial, millerRabin, etc.). Given the large number of iterations in these libs, and when used by files outside of these libs, it's unlikely that code coverage and instrumentation will be of use. We would recommend disabling instrumentation on these files (as per @ArtemGovorov's previous suggestion). If you had a mono-repo structure, you may like to have separate projects for each of these functions and then only start the wallaby tests if/when you're updating these libs.