1'use strict';
2const common = require('../common.js');
3const { posix } = require('path');
4
5const bench = common.createBenchmark(main, {
6  paths: [
7    ['/data/orandea/test/aaa', '/data/orandea/impl/bbb'].join('|'),
8    ['/', '/var'].join('|'),
9    ['/', '/'].join('|'),
10    ['/var', '/bin'].join('|'),
11    ['/foo/bar/baz/quux', '/'].join('|'),
12    ['/foo/bar/baz/quux', '/foo/bar/baz/quux'].join('|'),
13    ['/foo/bar/baz/quux', '/var/log'].join('|'),
14  ],
15  n: [1e5],
16});
17
18function main({ n, paths }) {
19  let to = '';
20  const delimIdx = paths.indexOf('|');
21  if (delimIdx > -1) {
22    to = paths.slice(delimIdx + 1);
23    paths = paths.slice(0, delimIdx);
24  }
25
26  bench.start();
27  for (let i = 0; i < n; i++) {
28    if (i % 3 === 0)
29      posix.relative(`${paths}${i}`, `${to}${i}`);
30    else
31      posix.relative(paths, to);
32  }
33  bench.end(n);
34}
35