diff options
Diffstat (limited to 'tests/layouts')
-rw-r--r-- | tests/layouts/effigy.layout | 2 | ||||
-rw-r--r-- | tests/layouts/valid-1.layout | 20 | ||||
-rw-r--r-- | tests/layouts/valid-10.layout | 23 | ||||
-rw-r--r-- | tests/layouts/valid-11.layout | 22 | ||||
-rw-r--r-- | tests/layouts/valid-12.layout | 871 | ||||
-rw-r--r-- | tests/layouts/valid-13.layout | 916 | ||||
-rw-r--r-- | tests/layouts/valid-14.layout | 53 | ||||
-rw-r--r-- | tests/layouts/valid-15.layout | 14 | ||||
-rw-r--r-- | tests/layouts/valid-16.layout | 21 | ||||
-rw-r--r-- | tests/layouts/valid-17.layout | 277 | ||||
-rw-r--r-- | tests/layouts/valid-18.layout | 23 | ||||
-rw-r--r-- | tests/layouts/valid-19.layout | 88 | ||||
-rw-r--r-- | tests/layouts/valid-2.layout | 23 | ||||
-rw-r--r-- | tests/layouts/valid-20.layout | 37 | ||||
-rw-r--r-- | tests/layouts/valid-22.layout | 21 | ||||
-rw-r--r-- | tests/layouts/valid-3.layout | 38 | ||||
-rw-r--r-- | tests/layouts/valid-4.layout | 20 | ||||
-rw-r--r-- | tests/layouts/valid-5.layout | 20 | ||||
-rw-r--r-- | tests/layouts/valid-6.layout | 50 | ||||
-rw-r--r-- | tests/layouts/valid-7.layout | 20 | ||||
-rw-r--r-- | tests/layouts/valid-8.layout | 23 | ||||
-rw-r--r-- | tests/layouts/valid-9.layout | 23 |
22 files changed, 1230 insertions, 1375 deletions
diff --git a/tests/layouts/effigy.layout b/tests/layouts/effigy.layout index cc8c4282..73c6ce2d 100644 --- a/tests/layouts/effigy.layout +++ b/tests/layouts/effigy.layout @@ -29,7 +29,7 @@ "is-ellipsized" : false, "unknown-glyphs" : 0, "width" : 73728, - "height" : 102400, + "height" : 104448, "log-attrs" : [ { "char-break" : true, diff --git a/tests/layouts/valid-1.layout b/tests/layouts/valid-1.layout index 8ee8cf46..db84fb5c 100644 --- a/tests/layouts/valid-1.layout +++ b/tests/layouts/valid-1.layout @@ -15,7 +15,7 @@ 0.0 ] }, - "text" : "This is a test of the automatic emergency brake!\n", + "text" : "This is a test of the automatic emergency brake!", "attributes" : [ { "start" : 22, @@ -38,7 +38,7 @@ "is-ellipsized" : true, "unknown-glyphs" : 0, "width" : 225280, - "height" : 37888, + "height" : 19456, "log-attrs" : [ { "char-break" : true, @@ -326,20 +326,13 @@ "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -678,13 +671,6 @@ ] } ] - }, - { - "start-index" : 49, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-10.layout b/tests/layouts/valid-10.layout index 765aba83..0be9d333 100644 --- a/tests/layouts/valid-10.layout +++ b/tests/layouts/valid-10.layout @@ -15,7 +15,8 @@ 0.0 ] }, - "text" : "Hello שלום Γειά σας\n", + "comment" : "Mixed-direction ellipsization", + "text" : "Hello שלום Γειά σας", "font" : "Cantarell 11", "justify" : true, "ellipsize" : "end", @@ -25,7 +26,7 @@ "is-ellipsized" : true, "unknown-glyphs" : 0, "width" : 102400, - "height" : 38912, + "height" : 19456, "log-attrs" : [ { "char-break" : true, @@ -146,21 +147,14 @@ "break-inserts-hyphen" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "word-end" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, + "word-end" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -404,13 +398,6 @@ ] } ] - }, - { - "start-index" : 31, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-11.layout b/tests/layouts/valid-11.layout index 9a5e5f40..63c58ca2 100644 --- a/tests/layouts/valid-11.layout +++ b/tests/layouts/valid-11.layout @@ -15,7 +15,7 @@ 0.0 ] }, - "text" : "double low error\n", + "text" : "double low error", "attributes" : [ { "end" : 6, @@ -60,7 +60,7 @@ "is-ellipsized" : false, "unknown-glyphs" : 0, "width" : 109568, - "height" : 38912, + "height" : 20480, "log-attrs" : [ { "char-break" : true, @@ -157,21 +157,14 @@ "break-inserts-hyphen" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "word-end" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, + "word-end" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -469,13 +462,6 @@ ] } ] - }, - { - "start-index" : 17, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-12.layout b/tests/layouts/valid-12.layout index 59451e08..cc647178 100644 --- a/tests/layouts/valid-12.layout +++ b/tests/layouts/valid-12.layout @@ -15,7 +15,8 @@ 0.0 ] }, - "text" : "a b c d
e f g h\n", + "comment" : "Testing tabs", + "text" : "a\tb\tc\td
e\tf\tg\th", "font" : "Cantarell 11", "tabs" : { "positions-in-pixels" : true, @@ -31,8 +32,8 @@ "is-wrapped" : true, "is-ellipsized" : false, "unknown-glyphs" : 1, - "width" : 113664, - "height" : 56320, + "width" : 179200, + "height" : 38912, "log-attrs" : [ { "char-break" : true, @@ -48,50 +49,14 @@ "white" : true, "cursor-position" : true, "word-end" : true, - "expandable-space" : true, "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { "line-break" : true, "char-break" : true, "cursor-position" : true, "word-start" : true, + "backspace-deletes-character" : true, "word-boundary" : true }, { @@ -99,50 +64,14 @@ "white" : true, "cursor-position" : true, "word-end" : true, - "expandable-space" : true, "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { "line-break" : true, "char-break" : true, "cursor-position" : true, "word-start" : true, + "backspace-deletes-character" : true, "word-boundary" : true }, { @@ -150,50 +79,14 @@ "white" : true, "cursor-position" : true, "word-end" : true, - "expandable-space" : true, "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { "line-break" : true, "char-break" : true, "cursor-position" : true, "word-start" : true, + "backspace-deletes-character" : true, "word-boundary" : true }, { @@ -220,38 +113,14 @@ "white" : true, "cursor-position" : true, "word-end" : true, - "expandable-space" : true, "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { "line-break" : true, "char-break" : true, "cursor-position" : true, "word-start" : true, + "backspace-deletes-character" : true, "word-boundary" : true }, { @@ -259,50 +128,14 @@ "white" : true, "cursor-position" : true, "word-end" : true, - "expandable-space" : true, "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { "line-break" : true, "char-break" : true, "cursor-position" : true, "word-start" : true, + "backspace-deletes-character" : true, "word-boundary" : true }, { @@ -310,58 +143,14 @@ "white" : true, "cursor-position" : true, "word-end" : true, - "expandable-space" : true, "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { "line-break" : true, "char-break" : true, "cursor-position" : true, "word-start" : true, - "word-boundary" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "word-end" : true, - "sentence-end" : true, + "backspace-deletes-character" : true, "word-boundary" : true }, { @@ -370,22 +159,23 @@ "char-break" : true, "white" : true, "cursor-position" : true, + "word-end" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], "lines" : [ { "start-index" : 0, - "length" : 28, + "length" : 10, "paragraph-start" : true, "direction" : "ltr", "runs" : [ { "offset" : 0, - "length" : 25, - "text" : "a b c d", + "length" : 1, + "text" : "a", "bidi-level" : 0, "gravity" : "south", "language" : "en-us", @@ -415,155 +205,227 @@ "width" : 8192, "is-cluster-start" : true, "log-cluster" : 0 + } + ] + }, + { + "offset" : 1, + "length" : 1, + "text" : "\t", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 1 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 2 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 3 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 4 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 5 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 6 - }, - { - "glyph" : 1109, - "width" : 3072, + "glyph" : 268435455, + "width" : 43008, "is-cluster-start" : true, - "log-cluster" : 7 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 2, + "length" : 1, + "text" : "b", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { "glyph" : 272, "width" : 8192, "is-cluster-start" : true, - "log-cluster" : 8 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 9 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 10 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 11 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 12 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 13 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 14 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 3, + "length" : 1, + "text" : "\t", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { - "glyph" : 1109, - "width" : 3072, + "glyph" : 268435455, + "width" : 43008, "is-cluster-start" : true, - "log-cluster" : 15 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 4, + "length" : 1, + "text" : "c", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { "glyph" : 273, "width" : 7168, "is-cluster-start" : true, - "log-cluster" : 16 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 17 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 18 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 19 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 20 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 21 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 22 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 5, + "length" : 1, + "text" : "\t", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { - "glyph" : 1109, - "width" : 3072, + "glyph" : 268435455, + "width" : 44032, "is-cluster-start" : true, - "log-cluster" : 23 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 6, + "length" : 1, + "text" : "d", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { "glyph" : 280, "width" : 8192, "is-cluster-start" : true, - "log-cluster" : 24 + "log-cluster" : 0 } ] }, { - "offset" : 25, + "offset" : 7, "length" : 3, "text" : "
", "bidi-level" : 0, @@ -601,15 +463,15 @@ ] }, { - "start-index" : 28, - "length" : 23, + "start-index" : 10, + "length" : 7, "paragraph-start" : false, "direction" : "ltr", "runs" : [ { - "offset" : 28, - "length" : 23, - "text" : "e f g h", + "offset" : 10, + "length" : 1, + "text" : "e", "bidi-level" : 0, "gravity" : "south", "language" : "en-us", @@ -639,149 +501,226 @@ "width" : 8192, "is-cluster-start" : true, "log-cluster" : 0 + } + ] + }, + { + "offset" : 11, + "length" : 1, + "text" : "\t", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 1 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 2 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 3 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 4 - }, - { - "glyph" : 1109, - "width" : 3072, + "glyph" : 268435455, + "width" : 43008, "is-cluster-start" : true, - "log-cluster" : 5 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 12, + "length" : 1, + "text" : "f", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { "glyph" : 311, "width" : 5120, "is-cluster-start" : true, - "log-cluster" : 6 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 7 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 8 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 9 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 10 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 11 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 12 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 13, + "length" : 1, + "text" : "\t", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { - "glyph" : 1109, - "width" : 3072, + "glyph" : 268435455, + "width" : 46080, "is-cluster-start" : true, - "log-cluster" : 13 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 14, + "length" : 1, + "text" : "g", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { "glyph" : 312, "width" : 8192, "is-cluster-start" : true, - "log-cluster" : 14 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 15 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 16 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 17 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 18 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 19 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 20 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 15, + "length" : 1, + "text" : "\t", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { - "glyph" : 1109, - "width" : 3072, + "glyph" : 268435455, + "width" : 43008, "is-cluster-start" : true, - "log-cluster" : 21 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 16, + "length" : 1, + "text" : "h", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { "glyph" : 319, "width" : 8192, "is-cluster-start" : true, - "log-cluster" : 22 + "log-cluster" : 0 } ] } ] - }, - { - "start-index" : 52, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-13.layout b/tests/layouts/valid-13.layout index b3aaeb1c..7b70a602 100644 --- a/tests/layouts/valid-13.layout +++ b/tests/layouts/valid-13.layout @@ -15,7 +15,8 @@ 0.0 ] }, - "text" : "a b c d
e f g h\n", + "comment" : "Tabs in single-paragraph mode", + "text" : "a\tb\tc\td
e\tf\tg\th", "font" : "Cantarell 11", "tabs" : { "positions-in-pixels" : true, @@ -31,9 +32,9 @@ "output" : { "is-wrapped" : false, "is-ellipsized" : false, - "unknown-glyphs" : 2, - "width" : 219136, - "height" : 18432, + "unknown-glyphs" : 1, + "width" : 315392, + "height" : 19456, "log-attrs" : [ { "char-break" : true, @@ -49,50 +50,14 @@ "white" : true, "cursor-position" : true, "word-end" : true, - "expandable-space" : true, "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { "line-break" : true, "char-break" : true, "cursor-position" : true, "word-start" : true, + "backspace-deletes-character" : true, "word-boundary" : true }, { @@ -100,50 +65,14 @@ "white" : true, "cursor-position" : true, "word-end" : true, - "expandable-space" : true, "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { "line-break" : true, "char-break" : true, "cursor-position" : true, "word-start" : true, + "backspace-deletes-character" : true, "word-boundary" : true }, { @@ -151,50 +80,14 @@ "white" : true, "cursor-position" : true, "word-end" : true, - "expandable-space" : true, "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { "line-break" : true, "char-break" : true, "cursor-position" : true, "word-start" : true, + "backspace-deletes-character" : true, "word-boundary" : true }, { @@ -221,38 +114,14 @@ "white" : true, "cursor-position" : true, "word-end" : true, - "expandable-space" : true, "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { "line-break" : true, "char-break" : true, "cursor-position" : true, "word-start" : true, + "backspace-deletes-character" : true, "word-boundary" : true }, { @@ -260,50 +129,14 @@ "white" : true, "cursor-position" : true, "word-end" : true, - "expandable-space" : true, "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { "line-break" : true, "char-break" : true, "cursor-position" : true, "word-start" : true, + "backspace-deletes-character" : true, "word-boundary" : true }, { @@ -311,58 +144,14 @@ "white" : true, "cursor-position" : true, "word-end" : true, - "expandable-space" : true, "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "expandable-space" : true - }, - { "line-break" : true, "char-break" : true, "cursor-position" : true, "word-start" : true, - "word-boundary" : true - }, - { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "word-end" : true, - "sentence-end" : true, + "backspace-deletes-character" : true, "word-boundary" : true }, { @@ -371,22 +160,23 @@ "char-break" : true, "white" : true, "cursor-position" : true, + "word-end" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], "lines" : [ { "start-index" : 0, - "length" : 52, + "length" : 17, "paragraph-start" : true, "direction" : "ltr", "runs" : [ { "offset" : 0, - "length" : 25, - "text" : "a b c d", + "length" : 1, + "text" : "a", "bidi-level" : 0, "gravity" : "south", "language" : "en-us", @@ -422,155 +212,263 @@ "width" : 8192, "is-cluster-start" : true, "log-cluster" : 0 + } + ] + }, + { + "offset" : 1, + "length" : 1, + "text" : "\t", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "extra-attributes" : [ { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 1 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 2 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 3 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 4 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 5 - }, + "type" : "show", + "value" : 2 + } + ], + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { - "glyph" : 1109, - "width" : 3072, + "glyph" : 268435455, + "width" : 43008, "is-cluster-start" : true, - "log-cluster" : 6 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 2, + "length" : 1, + "text" : "b", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "extra-attributes" : [ { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 7 - }, + "type" : "show", + "value" : 2 + } + ], + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { "glyph" : 272, "width" : 8192, "is-cluster-start" : true, - "log-cluster" : 8 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 9 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 10 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 11 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 12 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 3, + "length" : 1, + "text" : "\t", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "extra-attributes" : [ { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 13 - }, + "type" : "show", + "value" : 2 + } + ], + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { - "glyph" : 1109, - "width" : 3072, + "glyph" : 268435455, + "width" : 43008, "is-cluster-start" : true, - "log-cluster" : 14 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 4, + "length" : 1, + "text" : "c", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "extra-attributes" : [ { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 15 - }, + "type" : "show", + "value" : 2 + } + ], + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { "glyph" : 273, "width" : 7168, "is-cluster-start" : true, - "log-cluster" : 16 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 17 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 18 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 19 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 20 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 5, + "length" : 1, + "text" : "\t", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "extra-attributes" : [ { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 21 - }, + "type" : "show", + "value" : 2 + } + ], + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { - "glyph" : 1109, - "width" : 3072, + "glyph" : 268435455, + "width" : 44032, "is-cluster-start" : true, - "log-cluster" : 22 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 6, + "length" : 1, + "text" : "d", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "extra-attributes" : [ { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 23 - }, + "type" : "show", + "value" : 2 + } + ], + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { "glyph" : 280, "width" : 8192, "is-cluster-start" : true, - "log-cluster" : 24 + "log-cluster" : 0 } ] }, { - "offset" : 25, + "offset" : 7, "length" : 3, "text" : "
", "bidi-level" : 0, @@ -612,9 +510,9 @@ ] }, { - "offset" : 28, - "length" : 24, - "text" : "e f g h\n", + "offset" : 10, + "length" : 1, + "text" : "e", "bidi-level" : 0, "gravity" : "south", "language" : "en-us", @@ -650,144 +548,258 @@ "width" : 8192, "is-cluster-start" : true, "log-cluster" : 0 + } + ] + }, + { + "offset" : 11, + "length" : 1, + "text" : "\t", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "extra-attributes" : [ { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 1 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 2 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 3 - }, + "type" : "show", + "value" : 2 + } + ], + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { - "glyph" : 1109, - "width" : 3072, + "glyph" : 268435455, + "width" : 17408, "is-cluster-start" : true, - "log-cluster" : 4 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 12, + "length" : 1, + "text" : "f", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "extra-attributes" : [ { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 5 - }, + "type" : "show", + "value" : 2 + } + ], + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { "glyph" : 311, "width" : 5120, "is-cluster-start" : true, - "log-cluster" : 6 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 7 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 8 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 9 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 10 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 13, + "length" : 1, + "text" : "\t", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "extra-attributes" : [ { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 11 - }, + "type" : "show", + "value" : 2 + } + ], + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { - "glyph" : 1109, - "width" : 3072, + "glyph" : 268435455, + "width" : 46080, "is-cluster-start" : true, - "log-cluster" : 12 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 14, + "length" : 1, + "text" : "g", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "extra-attributes" : [ { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 13 - }, + "type" : "show", + "value" : 2 + } + ], + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { "glyph" : 312, "width" : 8192, "is-cluster-start" : true, - "log-cluster" : 14 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 15 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 16 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 17 - }, - { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 18 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 15, + "length" : 1, + "text" : "\t", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "extra-attributes" : [ { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 19 - }, + "type" : "show", + "value" : 2 + } + ], + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { - "glyph" : 1109, - "width" : 3072, + "glyph" : 268435455, + "width" : 43008, "is-cluster-start" : true, - "log-cluster" : 20 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 16, + "length" : 1, + "text" : "h", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "extra-attributes" : [ { - "glyph" : 1109, - "width" : 3072, - "is-cluster-start" : true, - "log-cluster" : 21 - }, + "type" : "show", + "value" : 2 + } + ], + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { "glyph" : 319, "width" : 8192, "is-cluster-start" : true, - "log-cluster" : 22 - }, - { - "glyph" : 268435466, - "width" : 17408, - "is-cluster-start" : true, - "log-cluster" : 23 + "log-cluster" : 0 } ] } diff --git a/tests/layouts/valid-14.layout b/tests/layouts/valid-14.layout index 61e7182e..70ee954c 100644 --- a/tests/layouts/valid-14.layout +++ b/tests/layouts/valid-14.layout @@ -15,7 +15,7 @@ 0.0 ] }, - "text" : "你好 Hello שלום Γειά σας\n", + "text" : "你好 Hello שלום Γειά σας", "font" : "Cantarell 11", "ellipsize" : "start", "width" : 161792, @@ -23,9 +23,9 @@ "output" : { "is-wrapped" : false, "is-ellipsized" : true, - "unknown-glyphs" : 0, + "unknown-glyphs" : 1, "width" : 161792, - "height" : 47104, + "height" : 20480, "log-attrs" : [ { "char-break" : true, @@ -169,21 +169,14 @@ "break-inserts-hyphen" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "word-end" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, + "word-end" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -196,8 +189,8 @@ "runs" : [ { "offset" : 0, - "length" : 6, - "text" : "你好", + "length" : 3, + "text" : "你", "bidi-level" : 0, "gravity" : "south", "language" : "en-us", @@ -242,25 +235,22 @@ }, { "glyph" : 1058, - "width" : 16384, + "width" : 4096, "log-cluster" : 0 } ] }, { - "offset" : 6, - "length" : 1, - "text" : " ", + "offset" : 3, + "length" : 4, + "text" : "好 ", "bidi-level" : 0, "gravity" : "south", "language" : "xx", "script" : "han", "font" : { - "description" : "Cantarell 11", - "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", - "variations" : { - "wght" : 0 - }, + "description" : "Droid Sans Japanese 11", + "checksum" : "9e7449c453527829c963330ba36f4de3b20911e185a1df08a97082bb69e795d7", "matrix" : [ 1.0, -0.0, @@ -276,10 +266,16 @@ "end-x-offset" : 0, "glyphs" : [ { - "glyph" : 1109, - "width" : 3072, + "glyph" : 1, + "width" : 15360, "is-cluster-start" : true, "log-cluster" : 0 + }, + { + "glyph" : 268435488, + "width" : 0, + "is-cluster-start" : true, + "log-cluster" : 3 } ] }, @@ -515,13 +511,6 @@ ] } ] - }, - { - "start-index" : 38, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-15.layout b/tests/layouts/valid-15.layout index b6613068..6c3b786c 100644 --- a/tests/layouts/valid-15.layout +++ b/tests/layouts/valid-15.layout @@ -15,7 +15,8 @@ 0.0 ] }, - "text" : "Lets see if this text is long enough to wrap due to height limitations. It might, or it might not.\n", + "comment" : "", + "text" : "Lets see if this text is long enough to wrap due to height limitations. It might, or it might not.", "font" : "Cantarell 11", "ellipsize" : "end", "width" : 153600, @@ -25,7 +26,7 @@ "is-ellipsized" : true, "unknown-glyphs" : 0, "width" : 153600, - "height" : 36864, + "height" : 38912, "log-attrs" : [ { "char-break" : true, @@ -621,20 +622,13 @@ "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], diff --git a/tests/layouts/valid-16.layout b/tests/layouts/valid-16.layout index fc2776e2..d8d0d63b 100644 --- a/tests/layouts/valid-16.layout +++ b/tests/layouts/valid-16.layout @@ -15,7 +15,8 @@ 0.0 ] }, - "text" : "Lets see if this text is long enough to wrap due to height limitations. It might, or it might not.\n", + "comment" : "", + "text" : "Lets see if this text is long enough to wrap due to height limitations. It might, or it might not.", "font" : "Cantarell 11", "wrap" : "word-char", "ellipsize" : "end", @@ -26,7 +27,7 @@ "is-ellipsized" : true, "unknown-glyphs" : 0, "width" : 153600, - "height" : 56320, + "height" : 38912, "log-attrs" : [ { "char-break" : true, @@ -622,20 +623,13 @@ "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -1028,13 +1022,6 @@ ] } ] - }, - { - "start-index" : 99, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-17.layout b/tests/layouts/valid-17.layout index 71182844..9660e37d 100644 --- a/tests/layouts/valid-17.layout +++ b/tests/layouts/valid-17.layout @@ -15,7 +15,8 @@ 0.0 ] }, - "text" : "some|bla|bla|bla\n", + "comment" : "Hyphenation point should get replaced with a hyphen", + "text" : "some‧bla‧bla‧bla", "font" : "Cantarell 11", "justify" : true, "width" : 102400, @@ -23,8 +24,8 @@ "is-wrapped" : true, "is-ellipsized" : false, "unknown-glyphs" : 0, - "width" : 102400, - "height" : 56320, + "width" : 96976, + "height" : 38912, "log-attrs" : [ { "char-break" : true, @@ -53,15 +54,16 @@ { "char-break" : true, "cursor-position" : true, - "word-end" : true, - "word-boundary" : true + "word-end" : true }, { "line-break" : true, "char-break" : true, "cursor-position" : true, "word-start" : true, - "word-boundary" : true + "backspace-deletes-character" : true, + "break-inserts-hyphen" : true, + "break-removes_preceding" : true }, { "char-break" : true, @@ -76,15 +78,16 @@ { "char-break" : true, "cursor-position" : true, - "word-end" : true, - "word-boundary" : true + "word-end" : true }, { "line-break" : true, "char-break" : true, "cursor-position" : true, "word-start" : true, - "word-boundary" : true + "backspace-deletes-character" : true, + "break-inserts-hyphen" : true, + "break-removes_preceding" : true }, { "char-break" : true, @@ -99,15 +102,16 @@ { "char-break" : true, "cursor-position" : true, - "word-end" : true, - "word-boundary" : true + "word-end" : true }, { "line-break" : true, "char-break" : true, "cursor-position" : true, "word-start" : true, - "word-boundary" : true + "backspace-deletes-character" : true, + "break-inserts-hyphen" : true, + "break-removes_preceding" : true }, { "char-break" : true, @@ -120,35 +124,28 @@ "break-inserts-hyphen" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "word-end" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, + "word-end" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], "lines" : [ { "start-index" : 0, - "length" : 13, + "length" : 19, "paragraph-start" : true, "direction" : "ltr", "runs" : [ { "offset" : 0, - "length" : 13, - "text" : "some|bla|bla|", + "length" : 4, + "text" : "some", "bidi-level" : 0, "gravity" : "south", "language" : "en-us", @@ -175,106 +172,247 @@ "glyphs" : [ { "glyph" : 417, - "width" : 7168, + "width" : 7326, "is-cluster-start" : true, "log-cluster" : 0 }, { "glyph" : 370, - "width" : 9216, - "x-offset" : 1024, + "width" : 8508, + "x-offset" : 158, "is-cluster-start" : true, "log-cluster" : 1 }, { "glyph" : 358, - "width" : 14336, - "x-offset" : 1024, + "width" : 13628, + "x-offset" : 158, "is-cluster-start" : true, "log-cluster" : 2 }, { "glyph" : 287, - "width" : 9216, - "x-offset" : 1024, + "width" : 8508, + "x-offset" : 158, "is-cluster-start" : true, "log-cluster" : 3 - }, + } + ] + }, + { + "offset" : 4, + "length" : 3, + "text" : "‧", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "DejaVu Sans 11", + "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01", + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { - "glyph" : 1188, - "width" : 5120, - "x-offset" : 1024, + "glyph" : 2826, + "width" : 5436, + "x-offset" : 158, "is-cluster-start" : true, - "log-cluster" : 4 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 7, + "length" : 3, + "text" : "bla", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { "glyph" : 272, - "width" : 9216, - "x-offset" : 1024, + "width" : 8508, + "x-offset" : 158, "is-cluster-start" : true, - "log-cluster" : 5 + "log-cluster" : 0 }, { "glyph" : 349, - "width" : 5120, - "x-offset" : 1024, + "width" : 4412, + "x-offset" : 158, "is-cluster-start" : true, - "log-cluster" : 6 + "log-cluster" : 1 }, { "glyph" : 244, - "width" : 9216, - "x-offset" : 1024, + "width" : 8508, + "x-offset" : 158, "is-cluster-start" : true, - "log-cluster" : 7 - }, + "log-cluster" : 2 + } + ] + }, + { + "offset" : 10, + "length" : 3, + "text" : "‧", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "DejaVu Sans 11", + "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01", + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { - "glyph" : 1188, - "width" : 5120, - "x-offset" : 1024, + "glyph" : 2826, + "width" : 5436, + "x-offset" : 158, "is-cluster-start" : true, - "log-cluster" : 8 + "log-cluster" : 0 + } + ] + }, + { + "offset" : 13, + "length" : 3, + "text" : "bla", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "Cantarell 11", + "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2", + "variations" : { + "wght" : 0 }, + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 0, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { "glyph" : 272, - "width" : 9216, - "x-offset" : 1024, + "width" : 8508, + "x-offset" : 158, "is-cluster-start" : true, - "log-cluster" : 9 + "log-cluster" : 0 }, { "glyph" : 349, - "width" : 5120, - "x-offset" : 1024, + "width" : 4412, + "x-offset" : 158, "is-cluster-start" : true, - "log-cluster" : 10 + "log-cluster" : 1 }, { "glyph" : 244, - "width" : 9216, - "x-offset" : 1024, + "width" : 8508, + "x-offset" : 158, "is-cluster-start" : true, - "log-cluster" : 11 - }, + "log-cluster" : 2 + } + ] + }, + { + "offset" : 16, + "length" : 3, + "text" : "‧", + "bidi-level" : 0, + "gravity" : "south", + "language" : "en-us", + "script" : "latin", + "font" : { + "description" : "DejaVu Sans 11", + "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01", + "matrix" : [ + 1.0, + -0.0, + -0.0, + 1.0, + 0.0, + 0.0 + ] + }, + "flags" : 4, + "y-offset" : 0, + "start-x-offset" : 0, + "end-x-offset" : 0, + "glyphs" : [ { - "glyph" : 1188, - "width" : 5120, - "x-offset" : 1024, + "glyph" : 2803, + "width" : 5278, + "x-offset" : 158, "is-cluster-start" : true, - "log-cluster" : 12 + "log-cluster" : 0 } ] } ] }, { - "start-index" : 13, + "start-index" : 19, "length" : 3, "paragraph-start" : false, "direction" : "ltr", "runs" : [ { - "offset" : 13, + "offset" : 19, "length" : 3, "text" : "bla", "bidi-level" : 0, @@ -322,13 +460,6 @@ ] } ] - }, - { - "start-index" : 17, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-18.layout b/tests/layouts/valid-18.layout index 2337a562..8c56a7ed 100644 --- a/tests/layouts/valid-18.layout +++ b/tests/layouts/valid-18.layout @@ -15,7 +15,8 @@ 0.0 ] }, - "text" : "some line breaks
and miscellaneous ignorables\n", + "comment" : "Miscellaneous ignorables", + "text" : "some line breaks
and miscellaneous ignorables", "attributes" : [ { "end" : 57, @@ -29,7 +30,7 @@ "is-ellipsized" : false, "unknown-glyphs" : 5, "width" : 302080, - "height" : 56320, + "height" : 38912, "log-attrs" : [ { "char-break" : true, @@ -311,21 +312,14 @@ "break-inserts-hyphen" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "word-end" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, + "word-end" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -750,13 +744,6 @@ ] } ] - }, - { - "start-index" : 58, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-19.layout b/tests/layouts/valid-19.layout index c9e6d979..ef6ff650 100644 --- a/tests/layouts/valid-19.layout +++ b/tests/layouts/valid-19.layout @@ -15,14 +15,15 @@ 0.0 ] }, - "text" : "😊︎ 😊️ 🇩🇪 ✊ ✋🏾 0 # 🏴 ©\n", + "comment" : "Emoji", + "text" : "😊︎ 😊️ 🇩🇪 ✊ ✋🏾 0 # 🏴 ©", "font" : "Cantarell 11", "output" : { "is-wrapped" : false, "is-ellipsized" : false, "unknown-glyphs" : 0, - "width" : 649216, - "height" : 150528, + "width" : 167936, + "height" : 19456, "log-attrs" : [ { "char-break" : true, @@ -149,20 +150,13 @@ "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -227,13 +221,13 @@ "language" : "en-us", "script" : "common", "font" : { - "description" : "DejaVu Sans 11", - "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01", + "description" : "Noto Color Emoji 11", + "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47", "matrix" : [ - 1.0, + 0.13455956135321101, -0.0, -0.0, - 1.0, + 0.13455956135321101, 0.0, 0.0 ] @@ -244,9 +238,10 @@ "end-x-offset" : 0, "glyphs" : [ { - "glyph" : 5867, - "width" : 16384, + "glyph" : 13, + "width" : 18432, "is-cluster-start" : true, + "is-color" : true, "log-cluster" : 0 }, { @@ -303,12 +298,12 @@ "script" : "common", "font" : { "description" : "Noto Color Emoji 11", - "checksum" : "cc2ce7351378d5dfa4fce6fd8619e5dcf73693d0089e9223c54e3926cdb8a531", + "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47", "matrix" : [ - 1.0, + 0.13455956135321101, -0.0, -0.0, - 1.0, + 0.13455956135321101, 0.0, 0.0 ] @@ -319,8 +314,8 @@ "end-x-offset" : 0, "glyphs" : [ { - "glyph" : 20, - "width" : 139264, + "glyph" : 22, + "width" : 18432, "is-cluster-start" : true, "is-color" : true, "log-cluster" : 0 @@ -373,12 +368,12 @@ "script" : "common", "font" : { "description" : "Noto Color Emoji 11", - "checksum" : "cc2ce7351378d5dfa4fce6fd8619e5dcf73693d0089e9223c54e3926cdb8a531", + "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47", "matrix" : [ - 1.0, + 0.13455956135321101, -0.0, -0.0, - 1.0, + 0.13455956135321101, 0.0, 0.0 ] @@ -389,8 +384,8 @@ "end-x-offset" : 0, "glyphs" : [ { - "glyph" : 5, - "width" : 139264, + "glyph" : 6, + "width" : 18432, "is-cluster-start" : true, "is-color" : true, "log-cluster" : 0 @@ -443,12 +438,12 @@ "script" : "common", "font" : { "description" : "Noto Color Emoji 11", - "checksum" : "cc2ce7351378d5dfa4fce6fd8619e5dcf73693d0089e9223c54e3926cdb8a531", + "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47", "matrix" : [ - 1.0, + 0.13455956135321101, -0.0, -0.0, - 1.0, + 0.13455956135321101, 0.0, 0.0 ] @@ -459,8 +454,8 @@ "end-x-offset" : 0, "glyphs" : [ { - "glyph" : 19, - "width" : 139264, + "glyph" : 21, + "width" : 18432, "is-cluster-start" : true, "is-color" : true, "log-cluster" : 0 @@ -537,12 +532,12 @@ "script" : "common", "font" : { "description" : "Noto Color Emoji 11", - "checksum" : "cc2ce7351378d5dfa4fce6fd8619e5dcf73693d0089e9223c54e3926cdb8a531", + "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47", "matrix" : [ - 1.0, + 0.13455956135321101, -0.0, -0.0, - 1.0, + 0.13455956135321101, 0.0, 0.0 ] @@ -553,11 +548,23 @@ "end-x-offset" : 0, "glyphs" : [ { - "glyph" : 22, - "width" : 139264, + "glyph" : 10, + "width" : 18432, "is-cluster-start" : true, "is-color" : true, "log-cluster" : 0 + }, + { + "glyph" : 268435455, + "width" : 0, + "is-cluster-start" : true, + "log-cluster" : 16 + }, + { + "glyph" : 268435455, + "width" : 0, + "is-cluster-start" : true, + "log-cluster" : 20 } ] }, @@ -604,13 +611,6 @@ ] } ] - }, - { - "start-index" : 69, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-2.layout b/tests/layouts/valid-2.layout index 7e8fb961..f8f1f865 100644 --- a/tests/layouts/valid-2.layout +++ b/tests/layouts/valid-2.layout @@ -15,7 +15,8 @@ 0.0 ] }, - "text" : "test the blue drink after dinner\n", + "comment" : "", + "text" : "test the blue drink after dinner", "attributes" : [ { "start" : 9, @@ -36,7 +37,7 @@ "is-ellipsized" : false, "unknown-glyphs" : 0, "width" : 200704, - "height" : 37888, + "height" : 19456, "log-attrs" : [ { "char-break" : true, @@ -228,21 +229,14 @@ "break-inserts-hyphen" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "word-end" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, + "word-end" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -604,13 +598,6 @@ ] } ] - }, - { - "start-index" : 33, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-20.layout b/tests/layouts/valid-20.layout index 1be94175..47a9c6dc 100644 --- a/tests/layouts/valid-20.layout +++ b/tests/layouts/valid-20.layout @@ -15,7 +15,8 @@ 0.0 ] }, - "text" : "abcdef\n", + "comment" : "", + "text" : "abcdef", "attributes" : [ { "end" : 3, @@ -39,8 +40,8 @@ "is-wrapped" : false, "is-ellipsized" : false, "unknown-glyphs" : 0, - "width" : 76800, - "height" : 44032, + "width" : 79872, + "height" : 25600, "log-attrs" : [ { "char-break" : true, @@ -77,21 +78,14 @@ "break-inserts-hyphen" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "word-end" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, + "word-end" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -144,24 +138,24 @@ "glyphs" : [ { "glyph" : 244, - "width" : 18432, - "x-offset" : 33196, + "width" : 19456, + "x-offset" : 34220, "y-offset" : 3844, "is-cluster-start" : true, "log-cluster" : 0 }, { "glyph" : 272, - "width" : 18432, - "x-offset" : 33196, + "width" : 19456, + "x-offset" : 34220, "y-offset" : 4280, "is-cluster-start" : true, "log-cluster" : 1 }, { "glyph" : 273, - "width" : 18432, - "x-offset" : 33196, + "width" : 19456, + "x-offset" : 34220, "y-offset" : 3506, "is-cluster-start" : true, "log-cluster" : 2 @@ -225,13 +219,6 @@ ] } ] - }, - { - "start-index" : 7, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-22.layout b/tests/layouts/valid-22.layout index 615200cb..4731ac08 100644 --- a/tests/layouts/valid-22.layout +++ b/tests/layouts/valid-22.layout @@ -15,7 +15,8 @@ 0.0 ] }, - "text" : "e0 = ooo...\n", + "comment" : "", + "text" : "e0 = ooo...", "attributes" : [ { "start" : 1, @@ -102,7 +103,7 @@ "is-ellipsized" : false, "unknown-glyphs" : 0, "width" : 49152, - "height" : 41090, + "height" : 22658, "log-attrs" : [ { "char-break" : true, @@ -173,20 +174,13 @@ "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -708,13 +702,6 @@ ] } ] - }, - { - "start-index" : 12, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-3.layout b/tests/layouts/valid-3.layout index c11c2b35..2f0c4ba5 100644 --- a/tests/layouts/valid-3.layout +++ b/tests/layouts/valid-3.layout @@ -15,14 +15,15 @@ 0.0 ] }, - "text" : "ABC😀️D\n", + "comment" : "Emoji", + "text" : "ABC😀️D", "font" : "Cantarell 11", "output" : { "is-wrapped" : false, "is-ellipsized" : false, "unknown-glyphs" : 0, - "width" : 54272, - "height" : 38912, + "width" : 56320, + "height" : 19456, "log-attrs" : [ { "char-break" : true, @@ -59,21 +60,14 @@ "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "word-end" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, + "word-end" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -141,13 +135,13 @@ "language" : "en-us", "script" : "latin", "font" : { - "description" : "DejaVu Sans 11", - "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01", + "description" : "Noto Color Emoji 11", + "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47", "matrix" : [ - 1.0, + 0.13455956135321101, -0.0, -0.0, - 1.0, + 0.13455956135321101, 0.0, 0.0 ] @@ -158,9 +152,10 @@ "end-x-offset" : 0, "glyphs" : [ { - "glyph" : 5857, - "width" : 16384, + "glyph" : 12, + "width" : 18432, "is-cluster-start" : true, + "is-color" : true, "log-cluster" : 0 }, { @@ -208,13 +203,6 @@ ] } ] - }, - { - "start-index" : 12, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-4.layout b/tests/layouts/valid-4.layout index e4358637..31c1b44a 100644 --- a/tests/layouts/valid-4.layout +++ b/tests/layouts/valid-4.layout @@ -15,7 +15,7 @@ 0.0 ] }, - "text" : "This paragraph should actually have multiple lines, unlike all the other wannabe äöü paragraph tests in this ugh test-case. Grow some lines!\n", + "text" : "This paragraph should actually have multiple lines, unlike all the other wannabe äöü paragraph tests in this ugh test-case. Grow some lines!", "font" : "Cantarell 11", "width" : 198656, "output" : { @@ -23,7 +23,7 @@ "is-ellipsized" : false, "unknown-glyphs" : 0, "width" : 197632, - "height" : 111616, + "height" : 97280, "log-attrs" : [ { "char-break" : true, @@ -866,20 +866,13 @@ "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -1947,13 +1940,6 @@ ] } ] - }, - { - "start-index" : 152, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-5.layout b/tests/layouts/valid-5.layout index a861ab30..54154347 100644 --- a/tests/layouts/valid-5.layout +++ b/tests/layouts/valid-5.layout @@ -15,7 +15,7 @@ 0.0 ] }, - "text" : "A test with multiple paragraphs and with no-break attributes, which might trigger a crash.\nIf it doesn't the fix has worked.\n", + "text" : "A test with multiple paragraphs and with no-break attributes, which might trigger a crash.\nIf it doesn't the fix has worked.", "attributes" : [ { "start" : 21, @@ -31,7 +31,7 @@ "is-ellipsized" : false, "unknown-glyphs" : 0, "width" : 194560, - "height" : 130048, + "height" : 116736, "log-attrs" : [ { "char-break" : true, @@ -766,20 +766,13 @@ "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -1775,13 +1768,6 @@ ] } ] - }, - { - "start-index" : 125, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-6.layout b/tests/layouts/valid-6.layout index d74ff4eb..a1b171cf 100644 --- a/tests/layouts/valid-6.layout +++ b/tests/layouts/valid-6.layout @@ -15,14 +15,15 @@ 0.0 ] }, - "text" : " 0️⃣ Keycap Digit Zero\n", + "comment" : "A keycap sequence", + "text" : " 0️⃣ Keycap Digit Zero", "font" : "Cantarell 11", "output" : { "is-wrapped" : false, "is-ellipsized" : false, - "unknown-glyphs" : 1, - "width" : 151552, - "height" : 38912, + "unknown-glyphs" : 0, + "width" : 142336, + "height" : 19456, "log-attrs" : [ { "char-break" : true, @@ -151,21 +152,14 @@ "break-inserts-hyphen" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "word-end" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, + "word-end" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -221,13 +215,13 @@ "language" : "en-us", "script" : "latin", "font" : { - "description" : "DejaVu Sans 11", - "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01", + "description" : "Noto Color Emoji 11", + "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47", "matrix" : [ - 1.0, + 0.13455956135321101, -0.0, -0.0, - 1.0, + 0.13455956135321101, 0.0, 0.0 ] @@ -239,21 +233,10 @@ "glyphs" : [ { "glyph" : 19, - "width" : 10240, + "width" : 18432, "is-cluster-start" : true, + "is-color" : true, "log-cluster" : 0 - }, - { - "glyph" : 268435455, - "width" : 0, - "is-cluster-start" : true, - "log-cluster" : 1 - }, - { - "glyph" : 268443875, - "width" : 17408, - "is-cluster-start" : true, - "log-cluster" : 4 } ] }, @@ -396,13 +379,6 @@ ] } ] - }, - { - "start-index" : 27, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-7.layout b/tests/layouts/valid-7.layout index 705713ec..49b70180 100644 --- a/tests/layouts/valid-7.layout +++ b/tests/layouts/valid-7.layout @@ -15,7 +15,7 @@ 0.0 ] }, - "text" : "This is a test of the automatic emergency brake!\n", + "text" : "This is a test of the automatic emergency brake!", "attributes" : [ { "start" : 22, @@ -39,7 +39,7 @@ "is-ellipsized" : true, "unknown-glyphs" : 0, "width" : 153600, - "height" : 37888, + "height" : 19456, "log-attrs" : [ { "char-break" : true, @@ -327,20 +327,13 @@ "word-boundary" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -631,13 +624,6 @@ ] } ] - }, - { - "start-index" : 49, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-8.layout b/tests/layouts/valid-8.layout index ef463535..3e084bea 100644 --- a/tests/layouts/valid-8.layout +++ b/tests/layouts/valid-8.layout @@ -15,7 +15,8 @@ 0.0 ] }, - "text" : "Hello שלום Γειά σας\n", + "comment" : "", + "text" : "Hello שלום Γειά σας", "font" : "Cantarell 11", "auto-dir" : false, "alignment" : "center", @@ -25,7 +26,7 @@ "is-ellipsized" : false, "unknown-glyphs" : 0, "width" : 134144, - "height" : 90112, + "height" : 19456, "log-attrs" : [ { "char-break" : true, @@ -146,21 +147,14 @@ "break-inserts-hyphen" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "word-end" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, + "word-end" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -403,13 +397,6 @@ ] } ] - }, - { - "start-index" : 31, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } diff --git a/tests/layouts/valid-9.layout b/tests/layouts/valid-9.layout index 20cf4e84..6e083b58 100644 --- a/tests/layouts/valid-9.layout +++ b/tests/layouts/valid-9.layout @@ -15,7 +15,8 @@ 0.0 ] }, - "text" : "Hello שלום Γειά σας\n", + "comment" : "Letterspacing with scripts", + "text" : "Hello שלום Γειά σας", "attributes" : [ { "end" : 30, @@ -30,7 +31,7 @@ "is-ellipsized" : false, "unknown-glyphs" : 0, "width" : 71392, - "height" : 94208, + "height" : 77824, "log-attrs" : [ { "char-break" : true, @@ -151,21 +152,14 @@ "break-inserts-hyphen" : true }, { - "char-break" : true, - "white" : true, - "cursor-position" : true, - "word-end" : true, - "sentence-end" : true, - "word-boundary" : true - }, - { "line-break" : true, "mandatory-break" : true, "char-break" : true, "white" : true, "cursor-position" : true, + "word-end" : true, "sentence-boundary" : true, - "backspace-deletes-character" : true, + "sentence-end" : true, "word-boundary" : true } ], @@ -512,13 +506,6 @@ ] } ] - }, - { - "start-index" : 31, - "length" : 0, - "paragraph-start" : true, - "direction" : "ltr", - "runs" : [] } ] } |