function center_word_wrap($text, $totWidth = 75, $multi_center = false) { if (strlen($text) <= $totWidth && !preg_match('/[\\200-\\377]/', $text)) { return str_pad($text, (int) (($totWidth + strlen($text)) / 2), " ", STR_PAD_LEFT) . "\n"; } $out = ""; while (($line = UnicodeHelper::utf8_line_break($text, $totWidth)) !== false) { $linelen = UnicodeHelper::utf8_glyphlen($line); $out .= str_pad($line, (int) (($totWidth + $linelen) / 2), " ", STR_PAD_LEFT) . "\n"; } return $out; }
xassert_eqq(UnicodeHelper::utf8_prefix("aaaaaaaa", 7), "aaaaaaa"); xassert_eqq(UnicodeHelper::utf8_prefix("aaaaaaaa", 8), "aaaaaaaa"); xassert_eqq(UnicodeHelper::utf8_prefix("aaaaaaaa", 9), "aaaaaaaa"); xassert_eqq(UnicodeHelper::utf8_prefix("áááááááá", 7), "ááááááá"); xassert_eqq(UnicodeHelper::utf8_prefix("áááááááá", 8), "áááááááá"); xassert_eqq(UnicodeHelper::utf8_prefix("áááááááá", 9), "áááááááá"); xassert_eqq(UnicodeHelper::utf8_prefix("a̓a̓a̓a̓a̓a̓a̓a̓", 7), "a̓a̓a̓a̓a̓a̓a̓"); xassert_eqq(UnicodeHelper::utf8_prefix("a̓a̓a̓a̓a̓a̓a̓a̓", 8), "a̓a̓a̓a̓a̓a̓a̓a̓"); xassert_eqq(UnicodeHelper::utf8_prefix("a̓a̓a̓a̓a̓a̓a̓a̓", 9), "a̓a̓a̓a̓a̓a̓a̓a̓"); xassert_eqq(UnicodeHelper::utf8_word_prefix("aaaaaaaa bbb", 7), "aaaaaaaa"); xassert_eqq(UnicodeHelper::utf8_word_prefix("aaaaaaaa bbb", 8), "aaaaaaaa"); xassert_eqq(UnicodeHelper::utf8_word_prefix("aaaaaaaa bbb", 9), "aaaaaaaa"); xassert_eqq(UnicodeHelper::utf8_word_prefix("aaaaaaaa bbb", 10), "aaaaaaaa"); xassert_eqq(UnicodeHelper::utf8_glyphlen("aaaaaaaa"), 8); xassert_eqq(UnicodeHelper::utf8_glyphlen("áááááááá"), 8); xassert_eqq(UnicodeHelper::utf8_glyphlen("a̓a̓a̓a̓a̓a̓a̓a̓"), 8); xassert_eqq(prefix_word_wrap("+ ", "This is a thing to be wrapped.", "- ", 10), "+ This is\n- a thing\n- to be\n- wrapped.\n"); xassert_eqq(prefix_word_wrap("+ ", "This is a thing to be wrapped.", "- ", 9), "+ This is\n- a thing\n- to be\n- wrapped.\n"); xassert_eqq(prefix_word_wrap("+ ", "This\nis\na thing\nto\nbe wrapped.", "- ", 9), "+ This\n- is\n- a thing\n- to\n- be\n- wrapped.\n"); xassert_eqq(!!preg_match('/\\A\\pZ\\z/u', ' '), true); // deaccent tests xassert_eqq(UnicodeHelper::deaccent("Á é î ç ø U"), "A e i c o U"); $do = UnicodeHelper::deaccent_offsets("Á é î ç ø U .K"); xassert_eqq($do[0], "A e i c o U .K"); xassert_eqq(json_encode($do[1]), "[[0,0],[1,2],[3,5],[5,8],[7,11],[9,14],[14,21]]"); $regex = (object) ["preg_raw" => Text::word_regex("foo"), "preg_utf8" => Text::utf8_word_regex("foo")]; xassert_eqq(Text::highlight("Is foo bar føo bar fóó bar highlit right? foö", $regex), "Is <span class=\"match\">foo</span> bar <span class=\"match\">føo</span> bar <span class=\"match\">fóó</span> bar highlit right? <span class=\"match\">foö</span>"); // Qobject tests $q = new Qobject(["a" => 1, "b" => 2]); xassert_eqq($q->a, 1); xassert_eqq($q->b, 2);