aboutsummaryrefslogtreecommitdiff
path: root/test/unit/liang.cc
diff options
context:
space:
mode:
authorRodrigo Arias Mallo <rodarima@gmail.com>2023-12-12 21:27:08 +0100
committerRodrigo Arias Mallo <rodrigo.arias@bsc.es>2023-12-21 01:05:58 +0100
commit1da1260af72b20126176e2b8f73f7b7fd5952ce1 (patch)
tree0fcdb276d30814ce4075f7cc205e357b2b7c1be5 /test/unit/liang.cc
parent78ad5bfe9644d1217f9d9ad0bf2fcdc388551113 (diff)
Split tests into unit and dw (graphical)
Graphical tests for the dw (Dillo Widget) are moved to test/dw, while unit tests are placed into test/unit. All tests are compiled with "make check" but only the tests that can run without intervention and without a graphic display are executed.
Diffstat (limited to 'test/unit/liang.cc')
-rw-r--r--test/unit/liang.cc79
1 files changed, 79 insertions, 0 deletions
diff --git a/test/unit/liang.cc b/test/unit/liang.cc
new file mode 100644
index 00000000..ee3f8e9e
--- /dev/null
+++ b/test/unit/liang.cc
@@ -0,0 +1,79 @@
+#include <unistd.h>
+
+#include "../dw/fltkcore.hh"
+#include "../dw/hyphenator.hh"
+
+void hyphenateWord (dw::core::Platform *p, const char *lang, const char *word)
+{
+ dw::Hyphenator *h = dw::Hyphenator::getHyphenator (lang);
+
+ int numBreaks;
+ int *breakPos = h->hyphenateWord (p, word, &numBreaks);
+ for (int i = 0; i < numBreaks + 1; i++) {
+ if (i != 0)
+ printf (" \xc2\xad ");
+ int start = (i == 0 ? 0 : breakPos[i - 1]);
+ int end = (i == numBreaks ? strlen (word) : breakPos[i]);
+ for (int j = start; j < end; j++)
+ putchar (word[j]);
+ }
+ putchar ('\n');
+ if (breakPos)
+ free (breakPos);
+}
+
+int main (int argc, char *argv[])
+{
+ dw::fltk::FltkPlatform p;
+
+ if (argc > 1) {
+ // Usage: liang [-l LANG] WORD ...
+
+ const char *lang = "de";
+ char opt;
+
+ while ((opt = getopt(argc, argv, "l:")) != -1) {
+ switch (opt) {
+ case 'l':
+ lang = optarg;
+ break;
+ }
+ }
+
+ for (int i = optind; i < argc; i++)
+ hyphenateWord (&p, lang, argv[i]);
+
+ } else {
+ hyphenateWord (&p, "de", "...");
+ hyphenateWord (&p, "de", "Jahrhundertroman");
+ hyphenateWord (&p, "de", "JAHRHUNDERTROMAN");
+ hyphenateWord (&p, "de", "„Jahrhundertroman“");
+ hyphenateWord (&p, "de", "währenddessen");
+ hyphenateWord (&p, "de", "„währenddessen“");
+ hyphenateWord (&p, "de", "Ückendorf");
+ hyphenateWord (&p, "de", "über");
+ hyphenateWord (&p, "de", "aber");
+ hyphenateWord (&p, "de", "Ackermann");
+ hyphenateWord (&p, "de", "„Ackermann“");
+ hyphenateWord (&p, "de", "entscheidet.");
+ hyphenateWord (&p, "de", "Grundstücksverkehrsgenehmigungszuständigkeits"
+ "übertragungsverordnung");
+ hyphenateWord (&p, "de", "„Grundstücksverkehrsgenehmigungszuständigkeits"
+ "übertragungsverordnung“");
+ hyphenateWord (&p, "de", "Grundstücksverkehrsgenehmigungszuständigkeit");
+ hyphenateWord (&p, "de",
+ "„Grundstücksverkehrsgenehmigungszuständigkeit“");
+ hyphenateWord (&p, "de",
+ "(6R,7R)-7-[2-(2-Amino-4-thiazolyl)-glyoxylamido]-3-"
+ "(2,5-dihydro-6-hydroxy-2-methyl-5-oxo-1,2,4-triazin-3-yl-"
+ "thiomethyl)-8-oxo-5-thia-1-azabicyclo[4.2.0]oct-2-en-2-"
+ "carbonsäure-7²-(Z)-(O-methyloxim)");
+ hyphenateWord (&p, "de", "Abtei-Stadt");
+ hyphenateWord (&p, "de", "Nordrhein-Westfalen");
+ hyphenateWord (&p, "de", "kurz\xc2\xa0und\xc2\xa0knapp");
+ hyphenateWord (&p, "de", "weiß");
+ hyphenateWord (&p, "de", "www.dillo.org");
+ }
+
+ return 0;
+}