2014-05-23 04:43:32 +00:00
|
|
|
var util = require('util');
|
|
|
|
var r = require("./route.js");
|
|
|
|
|
|
|
|
function dump(x) {
|
|
|
|
console.log(util.inspect(x, { depth: null }));
|
|
|
|
return x;
|
|
|
|
}
|
|
|
|
|
|
|
|
function dumpM(m) {
|
|
|
|
console.log(r.prettyMatcher(m));
|
|
|
|
console.log();
|
|
|
|
return m;
|
|
|
|
}
|
|
|
|
|
|
|
|
mAny = r.compilePattern(r.newSet('mAny'), r.__);
|
|
|
|
mAAny = r.compilePattern(r.newSet('mAAny'), ['A', r.__]);
|
|
|
|
dumpM(mAny);
|
|
|
|
dumpM(mAAny);
|
|
|
|
|
|
|
|
dump("mAny:");
|
|
|
|
dump(r.matchValue(mAny, 'hi'));
|
|
|
|
dump(r.matchValue(mAny, ['A', 'hi']));
|
|
|
|
dump(r.matchValue(mAny, ['B', 'hi']));
|
|
|
|
dump(r.matchValue(mAny, ['A', [['hi']]]));
|
|
|
|
|
|
|
|
dump("mAAny:");
|
|
|
|
dump(r.matchValue(mAAny, 'hi'));
|
|
|
|
dump(r.matchValue(mAAny, ['A', 'hi']));
|
|
|
|
dump(r.matchValue(mAAny, ['B', 'hi']));
|
|
|
|
dump(r.matchValue(mAAny, ['A', [['hi']]]));
|
|
|
|
|
|
|
|
console.log("unions");
|
|
|
|
|
|
|
|
dumpM(r.union(r.compilePattern(r.newSet('A'), [r.__, 'A']),
|
|
|
|
r.compilePattern(r.newSet('B'), [r.__, 'B'])));
|
|
|
|
|
|
|
|
dumpM(r.union(r.compilePattern(r.newSet('A'), [r.__, 'A']),
|
|
|
|
r.compilePattern(r.newSet('W'), r.__)));
|
|
|
|
|
|
|
|
console.log("projections");
|
|
|
|
|
|
|
|
dumpM(r.project(r.union(r.compilePattern(r.newSet('A'), r.__),
|
|
|
|
r.compilePattern(r.newSet('B'), ['b'])),
|
|
|
|
r.compileProjection(r._$([[r.__]]))));
|
|
|
|
|
|
|
|
dumpM(r.project(r.union(r.compilePattern(r.newSet('A'), [1, 2]),
|
|
|
|
r.compilePattern(r.newSet('C'), [1, 3]),
|
|
|
|
r.compilePattern(r.newSet('B'), [3, 4])),
|
|
|
|
r.compileProjection([r._$(), r._$()])));
|
|
|
|
|
|
|
|
dump(r.matcherKeys(r.project(r.union(r.compilePattern(r.newSet('A'), [1, 2]),
|
|
|
|
r.compilePattern(r.newSet('C'), [1, 3]),
|
|
|
|
r.compilePattern(r.newSet('B'), [3, 4])),
|
|
|
|
r.compileProjection([r._$(), r._$()]))));
|
2014-05-23 18:23:42 +00:00
|
|
|
|
|
|
|
var R1 = r.compilePattern(r.newSet('A'), [r.__, "B"]);
|
|
|
|
var R2 = r.compilePattern(r.newSet('B'), ["A", r.__]);
|
|
|
|
var R12 = r.union(R1, R2);
|
|
|
|
dumpM(R1);
|
|
|
|
dumpM(R2);
|
|
|
|
dumpM(R12);
|
|
|
|
dumpM(r.erasePath(R12, R1));
|
|
|
|
dumpM(r.erasePath(R12, R2));
|