intertext
Version:
Services for Recurrent Text-related Tasks
264 lines (235 loc) • 8.81 kB
JavaScript
// Generated by CoffeeScript 2.5.1
(function() {
'use strict';
var CND, DATOM, INTERTEXT, alert, badge, debug, echo, help, info, isa, jr, lets, log, new_datom, rpr, select, test, type_of, types, urge, validate, warn, whisper;
//###########################################################################################################
CND = require('cnd');
rpr = CND.rpr;
badge = 'INTERTEXT/TESTS/SLABS';
log = CND.get_logger('plain', badge);
info = CND.get_logger('info', badge);
whisper = CND.get_logger('whisper', badge);
alert = CND.get_logger('alert', badge);
debug = CND.get_logger('debug', badge);
warn = CND.get_logger('warn', badge);
help = CND.get_logger('help', badge);
urge = CND.get_logger('urge', badge);
echo = CND.echo.bind(CND);
({jr} = CND);
//...........................................................................................................
DATOM = new (require('datom')).Datom({
dirty: false
});
({new_datom, lets, select} = DATOM.export());
types = require('../types');
// cast
// declare
// declare_cast
// check
// sad
// is_sad
// is_happy
({isa, validate, type_of} = types);
//...........................................................................................................
test = require('guy-test');
INTERTEXT = require('../..');
//===========================================================================================================
// TESTS
//-----------------------------------------------------------------------------------------------------------
this["INTERTEXT.SLABS.slabs_from_text"] = async function(T, done) {
var error, i, len, matcher, probe, probes_and_matchers;
probes_and_matchers = [
[
"",
{
"slabs": [],
"ends": ""
},
null
],
[
"a very fine day",
{
"slabs": ["a",
"very",
"fine",
"day"],
"ends": "___x"
},
null
],
[
"a cromulent solution",
{
"slabs": ["a",
"cro",
"mu",
"lent",
"so",
"lu",
"tion"],
"ends": "_||_||x"
},
null
],
[
"䷾Letterpress printing",
{
"slabs": ["䷾Letterpress",
"printing"],
"ends": "_x"
},
null
],
[
"ベルリンBerlin",
{
"slabs": ["ベ",
"ル",
"リ",
"ン",
"Berlin"],
"ends": "xxxxx"
},
null
],
[
"其法用膠泥刻字、薄如錢唇",
{
"slabs": ["其",
"法",
"用",
"膠",
"泥",
"刻",
"字、",
"薄",
"如",
"錢",
"唇"],
"ends": "xxxxxxxxxxx"
},
null
],
[
"over-guesstimate",
{
"slabs": ["over-",
"guess",
"ti",
"mate"],
"ends": "x||x"
},
null
]
];
for (i = 0, len = probes_and_matchers.length; i < len; i++) {
[probe, matcher, error] = probes_and_matchers[i];
await T.perform(probe, matcher, error, function() {
return new Promise(function(resolve, reject) {
// debug '^44453^', INTERTEXT.HYPH.new_hyphenator()
// debug '^44453^', INTERTEXT.HYPH.reveal_hyphens INTERTEXT.HYPH.new_hyphenator() 'fantastic'
// debug '^777801^', INTERTEXT.SLABS.slabs_from_text probe
return resolve(INTERTEXT.SLABS.slabs_from_text(probe));
});
});
}
//.........................................................................................................
done();
return null;
};
//-----------------------------------------------------------------------------------------------------------
this["INTERTEXT.SLABS.assemble (1)"] = async function(T, done) {
var error, i, len, matcher, probe, probes_and_matchers;
probes_and_matchers = [["", "", null], ["a very fine day", "a very fine day", null], ["a cro\xadmu\xadlent so\xadlu\xadtion", "a cromulent solution", null], ["䷾Letterpress printing", "䷾Letterpress printing", null], ["ベルリンBerlin", "ベルリンBerlin", null], ["其法用膠泥刻字、薄如錢唇", "其法用膠泥刻字、薄如錢唇", null]];
for (i = 0, len = probes_and_matchers.length; i < len; i++) {
[probe, matcher, error] = probes_and_matchers[i];
await T.perform(probe, matcher, error, function() {
return new Promise(function(resolve, reject) {
return resolve(INTERTEXT.SLABS.assemble(INTERTEXT.SLABS.slabs_from_text(probe)));
});
});
}
//.........................................................................................................
done();
return null;
};
//-----------------------------------------------------------------------------------------------------------
this["INTERTEXT.SLABS.assemble (2)"] = async function(T, done) {
var error, i, len, matcher, probe, probes_and_matchers;
probes_and_matchers = [["", "", null], ["a very fine day", "fine day", null], ["a cromulent solution", "mulent solu-", null], ["䷾Letterpress printing", "", null], ["ベルリンBerlin", "リンBerlin", null], ["其法用膠泥刻字、薄如錢唇", "用膠泥刻", null], ["over-guess\xadti\xadmate", "timate", null]];
for (i = 0, len = probes_and_matchers.length; i < len; i++) {
[probe, matcher, error] = probes_and_matchers[i];
await T.perform(probe, matcher, error, function() {
return new Promise(function(resolve, reject) {
var slb;
slb = INTERTEXT.SLABS.slabs_from_text(probe);
return resolve(INTERTEXT.SLABS.assemble(slb, 2, 5));
});
});
}
//.........................................................................................................
done();
return null;
};
//-----------------------------------------------------------------------------------------------------------
this["INTERTEXT.SLABS.assemble (3)"] = function(T, done) {
var i, idx, idx_1, idx_1_txt, idx_2, idx_2_txt, j, len, line, matcher, probe, ref, ref1, result, slb;
probe = "a very fine day for a cro\xadmu\xadlent so\xadlu\xadtion";
matcher = ["a", "a very", "a very fine", "a very fine day", "a very fine day for", "a very fine day for a", "a very fine day for a cro-", "a very fine day for a cromu-", "a very fine day for a cromulent", "a very fine day for a cromulent so-", "a very fine day for a cromulent solu-", "a very fine day for a cromulent solution"];
slb = INTERTEXT.SLABS.slabs_from_text(probe);
info(slb);
result = (function() {
var i, ref, results;
results = [];
for (idx = i = 0, ref = slb.slabs.length; (0 <= ref ? i < ref : i > ref); idx = 0 <= ref ? ++i : --i) {
results.push(INTERTEXT.SLABS.assemble(slb, 0, idx));
}
return results;
})();
for (idx = i = 0, len = result.length; i < len; idx = ++i) {
line = result[idx];
echo(CND.white(line.padEnd(50)), idx, line.length);
}
idx_1 = 11;
for (idx_2 = j = ref = idx_1, ref1 = slb.slabs.length; (ref <= ref1 ? j < ref1 : j > ref1); idx_2 = ref <= ref1 ? ++j : --j) {
line = INTERTEXT.SLABS.assemble(slb, idx_1, idx_2);
idx_1_txt = `${idx_1}`.padEnd(5);
idx_2_txt = `${idx_2}`.padEnd(5);
echo(CND.yellow(line.padEnd(50)), idx_1_txt, idx_2_txt, line.length);
}
help(jr(result));
T.eq(result, matcher);
done();
return null;
};
//-----------------------------------------------------------------------------------------------------------
this["INTERTEXT.SLABS.assemble (4)"] = function(T, done) {
var idx, matcher, probe, result, slb;
probe = "over-guess\xadti\xadmate";
matcher = ["over-", "over-guess-", "over-guessti-", "over-guesstimate"];
slb = INTERTEXT.SLABS.slabs_from_text(probe);
result = (function() {
var i, ref, results;
results = [];
for (idx = i = 0, ref = slb.slabs.length; (0 <= ref ? i < ref : i > ref); idx = 0 <= ref ? ++i : --i) {
results.push(INTERTEXT.SLABS.assemble(slb, 0, idx));
}
return results;
})();
help(jr(result));
T.eq(result, matcher);
done();
return null;
};
//###########################################################################################################
if (module === require.main) {
(() => { // await do =>
// await @_demo()
test(this);
return help('ok');
})();
}
// test @[ "demo" ]
}).call(this);
//# sourceMappingURL=slabs.test.js.map