[pango/font-serialize-test: 5/7] Update tests one more time




commit 2bd2a6b916f69c155c2a326c42922b65fe676643
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Nov 26 15:53:42 2021 -0500

    Update tests one more time

 tests/layouts/effigy.layout   |   2 +-
 tests/layouts/valid-1.layout  |  20 +-
 tests/layouts/valid-10.layout |  23 +-
 tests/layouts/valid-11.layout |  22 +-
 tests/layouts/valid-12.layout | 875 +++++++++++++++++++---------------------
 tests/layouts/valid-13.layout | 916 +++++++++++++++++++++---------------------
 tests/layouts/valid-14.layout |  53 +--
 tests/layouts/valid-15.layout |  14 +-
 tests/layouts/valid-16.layout |  21 +-
 tests/layouts/valid-17.layout | 277 +++++++++----
 tests/layouts/valid-18.layout |  23 +-
 tests/layouts/valid-19.layout |  88 ++--
 tests/layouts/valid-2.layout  |  23 +-
 tests/layouts/valid-20.layout |  37 +-
 tests/layouts/valid-22.layout |  21 +-
 tests/layouts/valid-3.layout  |  38 +-
 tests/layouts/valid-4.layout  |  20 +-
 tests/layouts/valid-5.layout  |  20 +-
 tests/layouts/valid-6.layout  |  50 +--
 tests/layouts/valid-7.layout  |  20 +-
 tests/layouts/valid-8.layout  |  23 +-
 tests/layouts/valid-9.layout  |  23 +-
 22 files changed, 1232 insertions(+), 1377 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,
@@ -325,13 +325,6 @@
         "word-end" : true,
         "word-boundary" : true
       },
-      {
-        "char-break" : true,
-        "white" : true,
-        "cursor-position" : true,
-        "sentence-end" : true,
-        "word-boundary" : true
-      },
       {
         "line-break" : true,
         "mandatory-break" : true,
@@ -339,7 +332,7 @@
         "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,
@@ -145,22 +146,15 @@
         "cursor-position" : true,
         "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,
@@ -156,22 +156,15 @@
         "cursor-position" : true,
         "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,
+                "glyph" : 268435455,
+                "width" : 43008,
                 "is-cluster-start" : true,
-                "log-cluster" : 5
+                "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" : 1109,
-                "width" : 3072,
+                "glyph" : 272,
+                "width" : 8192,
                 "is-cluster-start" : true,
-                "log-cluster" : 6
-              },
-              {
-                "glyph" : 1109,
-                "width" : 3072,
-                "is-cluster-start" : true,
-                "log-cluster" : 7
-              },
-              {
-                "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
-              },
+                "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" : 2
+                "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" : 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,
-                "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,
@@ -168,22 +168,15 @@
         "cursor-position" : true,
         "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,
@@ -620,13 +621,6 @@
         "word-end" : true,
         "word-boundary" : true
       },
-      {
-        "char-break" : true,
-        "white" : true,
-        "cursor-position" : true,
-        "sentence-end" : true,
-        "word-boundary" : true
-      },
       {
         "line-break" : true,
         "mandatory-break" : true,
@@ -634,7 +628,7 @@
         "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,
@@ -621,13 +622,6 @@
         "word-end" : true,
         "word-boundary" : true
       },
-      {
-        "char-break" : true,
-        "white" : true,
-        "cursor-position" : true,
-        "sentence-end" : true,
-        "word-boundary" : true
-      },
       {
         "line-break" : true,
         "mandatory-break" : true,
@@ -635,7 +629,7 @@
         "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,
@@ -119,36 +123,29 @@
         "cursor-position" : true,
         "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,
@@ -310,22 +311,15 @@
         "cursor-position" : true,
         "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,
@@ -148,13 +149,6 @@
         "cursor-position" : true,
         "word-boundary" : true
       },
-      {
-        "char-break" : true,
-        "white" : true,
-        "cursor-position" : true,
-        "sentence-end" : true,
-        "word-boundary" : true
-      },
       {
         "line-break" : true,
         "mandatory-break" : true,
@@ -162,7 +156,7 @@
         "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,
@@ -227,22 +228,15 @@
         "cursor-position" : true,
         "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,
@@ -76,22 +77,15 @@
         "cursor-position" : true,
         "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,
@@ -172,13 +173,6 @@
         "cursor-position" : true,
         "word-boundary" : true
       },
-      {
-        "char-break" : true,
-        "white" : true,
-        "cursor-position" : true,
-        "sentence-end" : true,
-        "word-boundary" : true
-      },
       {
         "line-break" : true,
         "mandatory-break" : true,
@@ -186,7 +180,7 @@
         "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,
@@ -58,22 +59,15 @@
         "word-start" : true,
         "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,
@@ -865,13 +865,6 @@
         "word-end" : true,
         "word-boundary" : true
       },
-      {
-        "char-break" : true,
-        "white" : true,
-        "cursor-position" : true,
-        "sentence-end" : true,
-        "word-boundary" : true
-      },
       {
         "line-break" : true,
         "mandatory-break" : true,
@@ -879,7 +872,7 @@
         "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,
@@ -765,13 +765,6 @@
         "word-end" : true,
         "word-boundary" : true
       },
-      {
-        "char-break" : true,
-        "white" : true,
-        "cursor-position" : true,
-        "sentence-end" : true,
-        "word-boundary" : true
-      },
       {
         "line-break" : true,
         "mandatory-break" : true,
@@ -779,7 +772,7 @@
         "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,
@@ -150,22 +151,15 @@
         "cursor-position" : true,
         "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,
@@ -326,13 +326,6 @@
         "word-end" : true,
         "word-boundary" : true
       },
-      {
-        "char-break" : true,
-        "white" : true,
-        "cursor-position" : true,
-        "sentence-end" : true,
-        "word-boundary" : true
-      },
       {
         "line-break" : true,
         "mandatory-break" : true,
@@ -340,7 +333,7 @@
         "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,
@@ -145,22 +146,15 @@
         "cursor-position" : true,
         "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,
@@ -150,22 +151,15 @@
         "cursor-position" : true,
         "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" : []
       }
     ]
   }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]