UNPKG

intertext

Version:
264 lines (235 loc) 8.81 kB
// 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 cro­mu­lent so­lu­tion", { "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-guess­ti­mate", { "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 cro­mu­lent so­lu­tion", "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