summaryrefslogtreecommitdiff
path: root/tests/layouts
diff options
context:
space:
mode:
Diffstat (limited to 'tests/layouts')
-rw-r--r--tests/layouts/effigy.layout2
-rw-r--r--tests/layouts/valid-1.layout20
-rw-r--r--tests/layouts/valid-10.layout23
-rw-r--r--tests/layouts/valid-11.layout22
-rw-r--r--tests/layouts/valid-12.layout871
-rw-r--r--tests/layouts/valid-13.layout916
-rw-r--r--tests/layouts/valid-14.layout53
-rw-r--r--tests/layouts/valid-15.layout14
-rw-r--r--tests/layouts/valid-16.layout21
-rw-r--r--tests/layouts/valid-17.layout277
-rw-r--r--tests/layouts/valid-18.layout23
-rw-r--r--tests/layouts/valid-19.layout88
-rw-r--r--tests/layouts/valid-2.layout23
-rw-r--r--tests/layouts/valid-20.layout37
-rw-r--r--tests/layouts/valid-22.layout21
-rw-r--r--tests/layouts/valid-3.layout38
-rw-r--r--tests/layouts/valid-4.layout20
-rw-r--r--tests/layouts/valid-5.layout20
-rw-r--r--tests/layouts/valid-6.layout50
-rw-r--r--tests/layouts/valid-7.layout20
-rw-r--r--tests/layouts/valid-8.layout23
-rw-r--r--tests/layouts/valid-9.layout23
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 mis­ce­llaneous ignora‌bles\n",
+ "comment" : "Miscellaneous ignorables",
+ "text" : "some line breaks
and mis­ce­llaneous ignora‌bles",
"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 ac­tual­ly have multiple lines, unlike all the other wannabe äöü pa­ra­graph tests in this ugh test-case. Grow some lines!\n",
+ "text" : "This paragraph should ac­tual­ly have multiple lines, unlike all the other wannabe äöü pa­ra­graph 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" : []
}
]
}