fs

Benchmark created by dustinhayes on


Setup

var cases = [
      ['aaaaaaa', 'ffa aaa aa ultra'],
      ['aaaaaaaa', 'ffa aaa aa ultra'],
      ['aaaaaalt', 'ffa aaa aa ultra'],
      ['aaaaaaaaaaaaa', 'ffa aaa aa ultra'],
      ['car', 'cartwheel'],
      ['cwheel', 'cartwheel']
    ];

Test runner

Ready to run.

Testing in
TestOps/sec
mraleph
// implementation
function fuzzysearch (query, text) {
  var tlen = text.length;
  var qlen = query.length;
  if (qlen > tlen) {
    return false;
  }
  if (qlen === tlen && query === text) {
    return true;
  }
  outer: for (var i = 0, j = 0; i < qlen; i++) {
    var qch = query.charCodeAt(i);
    while (j < tlen) {
      if (text.charCodeAt(j++) === qch) {
        continue outer;
      }
    }
    return false;
  }
  return true;
}

// tests
cases.forEach(function (c) {
  fuzzysearch(c[0], c[1]);
});
ready
simple
function fuzzysearch (query, text) {
  var tlen = text.length;
  var qlen = query.length;
  if (qlen > tlen) {
    return false;
  }
  if (qlen === tlen && query === text) {
    return true;
  }
  outer: for (var i = 0, j = 0; i < qlen; i++) {
    var qch = query[i];
    while (j < tlen) {
      if (text[j++] === qch) {
        continue outer;
      }
    }
    return false;
  }
  return true;
}

// tests
cases.forEach(function (c) {
  fuzzysearch(c[0], c[1]);
});
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.

  • Revision 1: published by dustinhayes on