Пример #1
0
 it('Marisa::Agent::key', function () {
   var agent = new Marisa.Agent();
   should(agent.key).be.a.Function();
   var key = agent.key();
   should(key).be.an.instanceof(Marisa.Key);
   should(key.weight()).equal(0);
   should(key.id()).equal(0);
   should(key.length()).equal(0);
   should(key.ptr()).equal('');
   should(function () { agent.key.call({}); }).throw();
 });
Пример #2
0
 it('Marisa::Agent::set_query', function () {
   var agent = new Marisa.Agent();
   should(agent.set_query).be.a.Function();
   should(agent.set_query(0)).be.undefined();
   should(agent.set_query(unicode)).be.undefined();
   should(agent.set_query(unicode, 3)).be.undefined();
   should(function () { agent.set_query(); }).throw();
   should(function () { agent.set_query({}); }).throw();
   should(function () { agent.set_query(unicode, {}); }).throw();
   should(function () { agent.set_query.call({}); }).throw();
 });
Пример #3
0
  it('Marisa::Agent::query', function () {
    var agent = new Marisa.Agent();
    should(agent.query).be.a.Function();
    var query = agent.query();
    should(query).be.an.instanceof(Marisa.Query);
    should(query.ptr()).equal('');
    should(query.length()).equal(0);
    should(query.id()).equal(0);
    var len = 7;
    agent.set_query(unicode, len);
    var query = agent.query();
    should(query.id()).equal(0);
    should(query.length()).equal(Buffer(unicode).slice(0, len).length);
    should(query.ptr()).equal(Buffer(unicode).slice(0, len).toString());
    for (var i = 0, l = query.length(), b = Buffer(unicode); i < l; i++) {
      should(query[i]).be.a.Number();
      should(query[i]).equal(b[i]);
    }

    var agent = new Marisa.Agent();
    agent.set_query(2);
    var query = agent.query();
    should(query.id()).equal(2);
    should(query.length()).equal(0);
    should(query.ptr()).equal('');
    should(function () { agent.query.call({}); }).throw();
  });
Пример #4
0
var testLookup = function (trie, keyset, skip) {
  var agent = new Marisa.Agent();
  for (var i = 0, l = keyset.size(); i < l; i++) {
    var key = keyset[i];
    agent.set_query(key.ptr());
    should(trie.lookup(agent)).be.true();
    should(agent.key().weight()).equal(uint2float(key.id()));
    should(agent.key().id()).equal(key.id());
    should(agent.key().length()).equal(key.length());
    should(agent.key().length()).equal(Buffer.byteLength(agent.key().ptr()));
    should(agent.key().ptr()).equal(key.ptr());
  }
};
Пример #5
0
var testCommonPrefixSearch = function (trie, keyset, skip) {
  var agent = new Marisa.Agent();
  for (var i = 0, l = keyset.size(); i < l; i++) {
    var key = keyset[i];
    agent.set_query(key.ptr());
    var found = false;
    while (found = trie.common_prefix_search(agent)) {
      should(found).be.true();
      should(key.ptr().indexOf(agent.key().ptr())).equal(0);
      should(agent.key().weight()).equal(uint2float(agent.key().id()));
      should(agent.key().id() <= key.id()).be.true();
      should(agent.key().length() <= key.length()).be.true();
      should(agent.key().length()).equal(Buffer.byteLength(agent.key().ptr()));
    }
    should(found).be.false();
    should(agent.key().id()).equal(key.id());
  }
};
Пример #6
0
var testReverseLookup = function (trie, keyset, skip) {
  var agent = new Marisa.Agent();
  for (var i = 0, l = keyset.size(); i < l; i++) {
    var key = keyset[i];
    agent.set_query(key.id());
    if (!skip) {
      should(function () {
        should(trie.reverse_lookup(agent)).be.undefined();
      }).not.throw();
    } else {
      should(trie.reverse_lookup(agent)).be.undefined();
    }
    should(agent.key().weight()).equal(uint2float(key.id()));
    should(agent.key().id()).equal(key.id());
    should(agent.key().length()).equal(key.length());
    should(agent.key().length()).equal(Buffer.byteLength(agent.key().ptr()));
    should(agent.key().ptr()).equal(key.ptr());
  }
};
Пример #7
0
  it('Marisa::Agent::clear', function () {
    var agent = new Marisa.Agent();
    should(agent.clear).be.a.Function();
    agent.set_query(unicode);
    should(agent.clear()).be.undefined();
    var query = agent.query();
    should(query.id()).equal(0);
    should(query.length()).equal(0);
    should(query.ptr()).equal('');

    var agent = new Marisa.Agent();
    agent.set_query(2);
    should(agent.clear()).be.undefined();
    var key = agent.key();
    should(key.weight()).equal(0);
    should(key.id()).equal(0);
    should(key.length()).equal(0);
    should(key.ptr()).equal('');
    should(function () { agent.clear.call({}); }).throw();
  });
Пример #8
0
 should(function () { agent.swap({}); }).throw();
Пример #9
0
 should(function () { agent.set_query(unicode, {}); }).throw();
Пример #10
0
 should(function () { agent.set_query({}); }).throw();
Пример #11
0
agent.ready(() => {
  agent.removeListener('error', startErrorHandler);
  process.send({ action: 'agent-start', to: 'master' });
});