]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Update white-space test case to cover more Unicode whitespace codepoints
authorManuel Mall <manuel@apache.org>
Sat, 6 Jan 2007 06:58:14 +0000 (06:58 +0000)
committerManuel Mall <manuel@apache.org>
Sat, 6 Jan 2007 06:58:14 +0000 (06:58 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@493429 13f79535-47bb-0310-9956-ffa450edef68

test/layoutengine/standard-testcases/block_white-space_4.xml

index f615e62eee1683d829074fdb91c2f429d847cc8b..b587f6b8a8b8d9353bc509c2ed8ecf3e5b71aeca 100644 (file)
           <!-- for nbsp see block_white-space_2 and block_white-space_3 -->
           <fo:block>
             <fo:block background-color="yellow" id="l-sp">« text text »<fo:inline font-style="italic"> (normal space)</fo:inline></fo:block>
-            <fo:block background-color="orange" id="l-thin-space">«&#x2009;text text&#x2009;»<fo:inline font-style="italic"> (thin space, &amp;#x2009;)</fo:inline></fo:block>
-            <fo:block background-color="yellow" id="l-hair-space">«&#x200A;text text&#x200A;»<fo:inline font-style="italic"> (hair space, &amp;#x200A;)</fo:inline></fo:block>
-            <fo:block background-color="orange" id="l-zwsp">«&#x200B;text text&#x200B;»<fo:inline font-style="italic"> (zero width space, &amp;#x200B;)</fo:inline></fo:block>
-            <fo:block background-color="yellow" id="l-nosp">«text text»<fo:inline font-style="italic"> (no spaces)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="l-en-quad">«&#x2000;text text&#x2000;»<fo:inline font-style="italic"> (en quad, &amp;#x2000;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="l-em-quad">«&#x2001;text text&#x2001;»<fo:inline font-style="italic"> (em quad, &amp;#x2001;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="l-en-space">«&#x2002;text text&#x2002;»<fo:inline font-style="italic"> (en space, &amp;#x2002;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="l-em-space">«&#x2003;text text&#x2003;»<fo:inline font-style="italic"> (em space, &amp;#x2003;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="l-three-per-em-space">«&#x2004;text text&#x2004;»<fo:inline font-style="italic"> (three per em space, &amp;#x2004;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="l-four-per-em-space">«&#x2005;text text&#x2005;»<fo:inline font-style="italic"> (four per em space, &amp;#x2005;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="l-six-per-em-space">«&#x2006;text text&#x2006;»<fo:inline font-style="italic"> (six per em space, &amp;#x2006;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="l-figure-space">«&#x2007;text text&#x2007;»<fo:inline font-style="italic"> (figure space, &amp;#x2007;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="l-punctuation-space">«&#x2008;text text&#x2008;»<fo:inline font-style="italic"> (punctuation space, &amp;#x2008;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="l-thin-space">«&#x2009;text text&#x2009;»<fo:inline font-style="italic"> (thin space, &amp;#x2009;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="l-hair-space">«&#x200A;text text&#x200A;»<fo:inline font-style="italic"> (hair space, &amp;#x200A;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="l-zwsp">«&#x200B;text text&#x200B;»<fo:inline font-style="italic"> (zero width space, &amp;#x200B;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="l-nosp">«text text»<fo:inline font-style="italic"> (no spaces)</fo:inline></fo:block>
           </fo:block>
-          <fo:block space-before="2mm" text-align="center">
+          <fo:block break-before="page" text-align="center">
             <fo:block background-color="yellow" id="c-sp">« text text »<fo:inline font-style="italic"> (normal space)</fo:inline></fo:block>
-            <fo:block background-color="orange" id="c-thin-space">«&#x2009;text text&#x2009;»<fo:inline font-style="italic"> (thin space, &amp;#x2009;)</fo:inline></fo:block>
-            <fo:block background-color="yellow" id="c-hair-space">«&#x200A;text text&#x200A;»<fo:inline font-style="italic"> (hair space, &amp;#x200A;)</fo:inline></fo:block>
-            <fo:block background-color="orange" id="c-zwsp">«&#x200B;text text&#x200B;»<fo:inline font-style="italic"> (zero width space, &amp;#x200B;)</fo:inline></fo:block>
-            <fo:block background-color="yellow" id="c-nosp">«text text»<fo:inline font-style="italic"> (no spaces)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="c-en-quad">«&#x2000;text text&#x2000;»<fo:inline font-style="italic"> (en quad, &amp;#x2000;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="c-em-quad">«&#x2001;text text&#x2001;»<fo:inline font-style="italic"> (em quad, &amp;#x2001;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="c-en-space">«&#x2002;text text&#x2002;»<fo:inline font-style="italic"> (en space, &amp;#x2002;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="c-em-space">«&#x2003;text text&#x2003;»<fo:inline font-style="italic"> (em space, &amp;#x2003;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="c-three-per-em-space">«&#x2004;text text&#x2004;»<fo:inline font-style="italic"> (three per em space, &amp;#x2004;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="c-four-per-em-space">«&#x2005;text text&#x2005;»<fo:inline font-style="italic"> (four per em space, &amp;#x2005;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="c-six-per-em-space">«&#x2006;text text&#x2006;»<fo:inline font-style="italic"> (six per em space, &amp;#x2006;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="c-figure-space">«&#x2007;text text&#x2007;»<fo:inline font-style="italic"> (figure space, &amp;#x2007;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="c-punctuation-space">«&#x2008;text text&#x2008;»<fo:inline font-style="italic"> (punctuation space, &amp;#x2008;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="c-thin-space">«&#x2009;text text&#x2009;»<fo:inline font-style="italic"> (thin space, &amp;#x2009;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="c-hair-space">«&#x200A;text text&#x200A;»<fo:inline font-style="italic"> (hair space, &amp;#x200A;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="c-zwsp">«&#x200B;text text&#x200B;»<fo:inline font-style="italic"> (zero width space, &amp;#x200B;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="c-nosp">«text text»<fo:inline font-style="italic"> (no spaces)</fo:inline></fo:block>
           </fo:block>
-          <fo:block space-before="2mm" text-align="justify" text-align-last="justify">
+          <fo:block break-before="page" text-align="justify" text-align-last="justify">
             <fo:block background-color="yellow" id="j-sp">« text text »<fo:inline font-style="italic"> (normal space)</fo:inline></fo:block>
-            <fo:block background-color="orange" id="j-thin-space">«&#x2009;text text&#x2009;»<fo:inline font-style="italic"> (thin space, &amp;#x2009;)</fo:inline></fo:block>
-            <fo:block background-color="yellow" id="j-hair-space">«&#x200A;text text&#x200A;»<fo:inline font-style="italic"> (hair space, &amp;#x200A;)</fo:inline></fo:block>
-            <fo:block background-color="orange" id="j-zwsp">«&#x200B;text text&#x200B;»<fo:inline font-style="italic"> (zero width space, &amp;#x200B;)</fo:inline></fo:block>
-            <fo:block background-color="yellow" id="j-nosp">«text text»<fo:inline font-style="italic"> (no spaces)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="j-en-quad">«&#x2000;text text&#x2000;»<fo:inline font-style="italic"> (en quad, &amp;#x2000;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="j-em-quad">«&#x2001;text text&#x2001;»<fo:inline font-style="italic"> (em quad, &amp;#x2001;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="j-en-space">«&#x2002;text text&#x2002;»<fo:inline font-style="italic"> (en space, &amp;#x2002;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="j-em-space">«&#x2003;text text&#x2003;»<fo:inline font-style="italic"> (em space, &amp;#x2003;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="j-three-per-em-space">«&#x2004;text text&#x2004;»<fo:inline font-style="italic"> (three per em space, &amp;#x2004;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="j-four-per-em-space">«&#x2005;text text&#x2005;»<fo:inline font-style="italic"> (four per em space, &amp;#x2005;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="j-six-per-em-space">«&#x2006;text text&#x2006;»<fo:inline font-style="italic"> (six per em space, &amp;#x2006;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="j-figure-space">«&#x2007;text text&#x2007;»<fo:inline font-style="italic"> (figure space, &amp;#x2007;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="j-punctuation-space">«&#x2008;text text&#x2008;»<fo:inline font-style="italic"> (punctuation space, &amp;#x2008;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="j-thin-space">«&#x2009;text text&#x2009;»<fo:inline font-style="italic"> (thin space, &amp;#x2009;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="j-hair-space">«&#x200A;text text&#x200A;»<fo:inline font-style="italic"> (hair space, &amp;#x200A;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="j-zwsp">«&#x200B;text text&#x200B;»<fo:inline font-style="italic"> (zero width space, &amp;#x200B;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="j-nosp">«text text»<fo:inline font-style="italic"> (no spaces)</fo:inline></fo:block>
           </fo:block>
-          <fo:block space-before="2mm" text-align="justify" text-align-last="justify" letter-spacing="2pt">
+          <fo:block break-before="page" text-align="justify" text-align-last="justify" letter-spacing="2pt">
             <fo:block background-color="yellow" id="lsj-sp">« text text »<fo:inline font-style="italic"> (normal space)</fo:inline></fo:block>
-            <fo:block background-color="orange" id="lsj-thin-space">«&#x2009;text text&#x2009;»<fo:inline font-style="italic"> (thin space, &amp;#x2009;)</fo:inline></fo:block>
-            <fo:block background-color="yellow" id="lsj-hair-space">«&#x200A;text text&#x200A;»<fo:inline font-style="italic"> (hair space, &amp;#x200A;)</fo:inline></fo:block>
-            <fo:block background-color="orange" id="lsj-zwsp">«&#x200B;text text&#x200B;»<fo:inline font-style="italic"> (zero width space, &amp;#x200B;)</fo:inline></fo:block>
-            <fo:block background-color="yellow" id="lsj-nosp">«text text»<fo:inline font-style="italic"> (no spaces)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="lsj-en-quad">«&#x2000;text text&#x2000;»<fo:inline font-style="italic"> (en quad, &amp;#x2000;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="lsj-em-quad">«&#x2001;text text&#x2001;»<fo:inline font-style="italic"> (em quad, &amp;#x2001;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="lsj-en-space">«&#x2002;text text&#x2002;»<fo:inline font-style="italic"> (en space, &amp;#x2002;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="lsj-em-space">«&#x2003;text text&#x2003;»<fo:inline font-style="italic"> (em space, &amp;#x2003;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="lsj-three-per-em-space">«&#x2004;text text&#x2004;»<fo:inline font-style="italic"> (three per em space, &amp;#x2004;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="lsj-four-per-em-space">«&#x2005;text text&#x2005;»<fo:inline font-style="italic"> (four per em space, &amp;#x2005;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="lsj-six-per-em-space">«&#x2006;text text&#x2006;»<fo:inline font-style="italic"> (six per em space, &amp;#x2006;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="lsj-figure-space">«&#x2007;text text&#x2007;»<fo:inline font-style="italic"> (figure space, &amp;#x2007;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="lsj-punctuation-space">«&#x2008;text text&#x2008;»<fo:inline font-style="italic"> (punctuation space, &amp;#x2008;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="lsj-thin-space">«&#x2009;text text&#x2009;»<fo:inline font-style="italic"> (thin space, &amp;#x2009;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="lsj-hair-space">«&#x200A;text text&#x200A;»<fo:inline font-style="italic"> (hair space, &amp;#x200A;)</fo:inline></fo:block>
+            <fo:block background-color="yellow" id="lsj-zwsp">«&#x200B;text text&#x200B;»<fo:inline font-style="italic"> (zero width space, &amp;#x200B;)</fo:inline></fo:block>
+            <fo:block background-color="orange" id="lsj-nosp">«text text»<fo:inline font-style="italic"> (no spaces)</fo:inline></fo:block>
           </fo:block>
         </fo:flow>
       </fo:page-sequence>
     <true xpath="not(//block[@prod-id='l-sp']/lineArea/text/*[2]/@adj = 'false')"/>
     <true xpath="not(//block[@prod-id='l-sp']/lineArea/text/*[6]/@adj = 'false')"/>
 
+    <eval expected="67368" xpath="//block[@prod-id='l-en-quad']/lineArea/text/@ipd"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='l-en-quad']/lineArea/text/*[1])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='l-en-quad']/lineArea/text/*[2])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='l-en-quad']/lineArea/text/*[3])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='l-en-quad']/lineArea/text/*[4])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='l-en-quad']/lineArea/text/*[5])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='l-en-quad']/lineArea/text/*[6])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='l-en-quad']/lineArea/text/*[7])"/>
+    <true xpath="//block[@prod-id='l-en-quad']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='l-en-quad']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="79368" xpath="//block[@prod-id='l-em-quad']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='l-em-quad']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='l-em-quad']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="67368" xpath="//block[@prod-id='l-en-space']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='l-en-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='l-en-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="79368" xpath="//block[@prod-id='l-em-space']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='l-em-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='l-em-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="63368" xpath="//block[@prod-id='l-three-per-em-space']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='l-three-per-em-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='l-three-per-em-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="61368" xpath="//block[@prod-id='l-four-per-em-space']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='l-four-per-em-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='l-four-per-em-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="59368" xpath="//block[@prod-id='l-six-per-em-space']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='l-six-per-em-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='l-six-per-em-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="68712" xpath="//block[@prod-id='l-figure-space']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='l-figure-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='l-figure-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="62040" xpath="//block[@prod-id='l-punctuation-space']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='l-punctuation-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='l-punctuation-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
     <eval expected="60168" xpath="//block[@prod-id='l-thin-space']/lineArea/text/@ipd"/>
-    <eval expected="word" xpath="local-name(//block[@prod-id='l-thin-space']/lineArea/text/*[1])"/>
-    <eval expected="space" xpath="local-name(//block[@prod-id='l-thin-space']/lineArea/text/*[2])"/>
-    <eval expected="word" xpath="local-name(//block[@prod-id='l-thin-space']/lineArea/text/*[3])"/>
-    <eval expected="space" xpath="local-name(//block[@prod-id='l-thin-space']/lineArea/text/*[4])"/>
-    <eval expected="word" xpath="local-name(//block[@prod-id='l-thin-space']/lineArea/text/*[5])"/>
-    <eval expected="space" xpath="local-name(//block[@prod-id='l-thin-space']/lineArea/text/*[6])"/>
-    <eval expected="word" xpath="local-name(//block[@prod-id='l-thin-space']/lineArea/text/*[7])"/>
     <true xpath="//block[@prod-id='l-thin-space']/lineArea/text/*[2]/@adj = 'false'"/>
     <true xpath="//block[@prod-id='l-thin-space']/lineArea/text/*[6]/@adj = 'false'"/>
 
 
     <eval expected="55368" xpath="//block[@prod-id='l-nosp']/lineArea/text/@ipd"/>
 
+    <eval expected="62040" xpath="//block[@prod-id='c-sp']/lineArea/text/@ipd"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='c-sp']/lineArea/text/*[1])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='c-sp']/lineArea/text/*[2])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='c-sp']/lineArea/text/*[3])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='c-sp']/lineArea/text/*[4])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='c-sp']/lineArea/text/*[5])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='c-sp']/lineArea/text/*[6])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='c-sp']/lineArea/text/*[7])"/>
+    <true xpath="not(//block[@prod-id='c-sp']/lineArea/text/*[2]/@adj = 'false')"/>
+    <true xpath="not(//block[@prod-id='c-sp']/lineArea/text/*[6]/@adj = 'false')"/>
+
+    <eval expected="67368" xpath="//block[@prod-id='c-en-quad']/lineArea/text/@ipd"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='c-en-quad']/lineArea/text/*[1])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='c-en-quad']/lineArea/text/*[2])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='c-en-quad']/lineArea/text/*[3])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='c-en-quad']/lineArea/text/*[4])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='c-en-quad']/lineArea/text/*[5])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='c-en-quad']/lineArea/text/*[6])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='c-en-quad']/lineArea/text/*[7])"/>
+    <true xpath="//block[@prod-id='c-en-quad']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='c-en-quad']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="79368" xpath="//block[@prod-id='c-em-quad']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='c-em-quad']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='c-em-quad']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="67368" xpath="//block[@prod-id='c-en-space']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='c-en-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='c-en-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="79368" xpath="//block[@prod-id='c-em-space']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='c-em-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='c-em-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="63368" xpath="//block[@prod-id='c-three-per-em-space']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='c-three-per-em-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='c-three-per-em-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="61368" xpath="//block[@prod-id='c-four-per-em-space']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='c-four-per-em-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='c-four-per-em-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="59368" xpath="//block[@prod-id='c-six-per-em-space']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='c-six-per-em-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='c-six-per-em-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="68712" xpath="//block[@prod-id='c-figure-space']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='c-figure-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='c-figure-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="62040" xpath="//block[@prod-id='c-punctuation-space']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='c-punctuation-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='c-punctuation-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
     <eval expected="60168" xpath="//block[@prod-id='c-thin-space']/lineArea/text/@ipd"/>
-    <eval expected="word" xpath="local-name(//block[@prod-id='c-thin-space']/lineArea/text/*[1])"/>
-    <eval expected="space" xpath="local-name(//block[@prod-id='c-thin-space']/lineArea/text/*[2])"/>
-    <eval expected="word" xpath="local-name(//block[@prod-id='c-thin-space']/lineArea/text/*[3])"/>
-    <eval expected="space" xpath="local-name(//block[@prod-id='c-thin-space']/lineArea/text/*[4])"/>
-    <eval expected="word" xpath="local-name(//block[@prod-id='c-thin-space']/lineArea/text/*[5])"/>
-    <eval expected="space" xpath="local-name(//block[@prod-id='c-thin-space']/lineArea/text/*[6])"/>
-    <eval expected="word" xpath="local-name(//block[@prod-id='c-thin-space']/lineArea/text/*[7])"/>
     <true xpath="//block[@prod-id='c-thin-space']/lineArea/text/*[2]/@adj = 'false'"/>
     <true xpath="//block[@prod-id='c-thin-space']/lineArea/text/*[6]/@adj = 'false'"/>
 
+    <eval expected="57768" xpath="//block[@prod-id='c-hair-space']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='c-hair-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='c-hair-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="55368" xpath="//block[@prod-id='c-zwsp']/lineArea/text/@ipd"/>
+    <true xpath="//block[@prod-id='c-zwsp']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='c-zwsp']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="55368" xpath="//block[@prod-id='c-nosp']/lineArea/text/@ipd"/>
+
     <eval expected="190804" xpath="//block[@prod-id='j-sp']/lineArea/text/@ipd"/>
     <eval expected="42921" xpath="//block[@prod-id='j-sp']/lineArea/text/@twsadjust"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='j-sp']/lineArea/text/*[1])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='j-sp']/lineArea/text/*[2])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='j-sp']/lineArea/text/*[3])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='j-sp']/lineArea/text/*[4])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='j-sp']/lineArea/text/*[5])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='j-sp']/lineArea/text/*[6])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='j-sp']/lineArea/text/*[7])"/>
+    <true xpath="not(//block[@prod-id='j-sp']/lineArea/text/*[2]/@adj = 'false')"/>
+    <true xpath="not(//block[@prod-id='j-sp']/lineArea/text/*[6]/@adj = 'false')"/>
+
+    <eval expected="112509" xpath="//block[@prod-id='j-en-quad']/lineArea/text/@ipd"/>
+    <eval expected="45141" xpath="//block[@prod-id='j-en-quad']/lineArea/text/@twsadjust"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='j-en-quad']/lineArea/text/*[1])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='j-en-quad']/lineArea/text/*[2])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='j-en-quad']/lineArea/text/*[3])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='j-en-quad']/lineArea/text/*[4])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='j-en-quad']/lineArea/text/*[5])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='j-en-quad']/lineArea/text/*[6])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='j-en-quad']/lineArea/text/*[7])"/>
+    <true xpath="//block[@prod-id='j-en-quad']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='j-en-quad']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="120678" xpath="//block[@prod-id='j-em-quad']/lineArea/text/@ipd"/>
+    <eval expected="41310" xpath="//block[@prod-id='j-em-quad']/lineArea/text/@twsadjust"/>
+    <true xpath="//block[@prod-id='j-em-quad']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='j-em-quad']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="111177" xpath="//block[@prod-id='j-en-space']/lineArea/text/@ipd"/>
+    <eval expected="43809" xpath="//block[@prod-id='j-en-space']/lineArea/text/@twsadjust"/>
+    <true xpath="//block[@prod-id='j-en-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='j-en-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="119346" xpath="//block[@prod-id='j-em-space']/lineArea/text/@ipd"/>
+    <eval expected="39978" xpath="//block[@prod-id='j-em-space']/lineArea/text/@twsadjust"/>
+    <true xpath="//block[@prod-id='j-em-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='j-em-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="84126" xpath="//block[@prod-id='j-three-per-em-space']/lineArea/text/@ipd"/>
+    <eval expected="20758" xpath="//block[@prod-id='j-three-per-em-space']/lineArea/text/@twsadjust"/>
+    <true xpath="//block[@prod-id='j-three-per-em-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='j-three-per-em-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="83572" xpath="//block[@prod-id='j-four-per-em-space']/lineArea/text/@ipd"/>
+    <eval expected="22204" xpath="//block[@prod-id='j-four-per-em-space']/lineArea/text/@twsadjust"/>
+    <true xpath="//block[@prod-id='j-four-per-em-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='j-four-per-em-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="82907" xpath="//block[@prod-id='j-six-per-em-space']/lineArea/text/@ipd"/>
+    <eval expected="23539" xpath="//block[@prod-id='j-six-per-em-space']/lineArea/text/@twsadjust"/>
+    <true xpath="//block[@prod-id='j-six-per-em-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='j-six-per-em-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="108018" xpath="//block[@prod-id='j-figure-space']/lineArea/text/@ipd"/>
+    <eval expected="39306" xpath="//block[@prod-id='j-figure-space']/lineArea/text/@twsadjust"/>
+    <true xpath="//block[@prod-id='j-figure-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='j-figure-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="95007" xpath="//block[@prod-id='j-punctuation-space']/lineArea/text/@ipd"/>
+    <eval expected="32967" xpath="//block[@prod-id='j-punctuation-space']/lineArea/text/@twsadjust"/>
+    <true xpath="//block[@prod-id='j-punctuation-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='j-punctuation-space']/lineArea/text/*[6]/@adj = 'false'"/>
 
     <eval expected="104277" xpath="//block[@prod-id='j-thin-space']/lineArea/text/@ipd"/>
     <eval expected="44109" xpath="//block[@prod-id='j-thin-space']/lineArea/text/@twsadjust"/>
     <true xpath="//block[@prod-id='j-thin-space']/lineArea/text/*[2]/@adj = 'false'"/>
     <true xpath="//block[@prod-id='j-thin-space']/lineArea/text/*[6]/@adj = 'false'"/>
 
+    <eval expected="101979" xpath="//block[@prod-id='j-hair-space']/lineArea/text/@ipd"/>
+    <eval expected="44211" xpath="//block[@prod-id='j-hair-space']/lineArea/text/@twsadjust"/>
+    <true xpath="//block[@prod-id='j-hair-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='j-hair-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
     <eval expected="84280" xpath="//block[@prod-id='j-zwsp']/lineArea/text/@ipd"/>
     <eval expected="28912" xpath="//block[@prod-id='j-zwsp']/lineArea/text/@twsadjust"/>
     <true xpath="//block[@prod-id='j-zwsp']/lineArea/text/*[2]/@adj = 'false'"/>
     <true xpath="//block[@prod-id='j-zwsp']/lineArea/text/*[6]/@adj = 'false'"/>
 
+    <eval expected="134904" xpath="//block[@prod-id='j-nosp']/lineArea/text/@ipd"/>
+    <eval expected="79536" xpath="//block[@prod-id='j-nosp']/lineArea/text/@twsadjust"/>
+
     <eval expected="182404" xpath="//block[@prod-id='lsj-sp']/lineArea/text/@ipd"/>
     <eval expected="32121" xpath="//block[@prod-id='lsj-sp']/lineArea/text/@twsadjust"/>
     <eval expected="2000" xpath="//block[@prod-id='lsj-sp']/lineArea/text/@tlsadjust"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='lsj-sp']/lineArea/text/*[1])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='lsj-sp']/lineArea/text/*[2])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='lsj-sp']/lineArea/text/*[3])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='lsj-sp']/lineArea/text/*[4])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='lsj-sp']/lineArea/text/*[5])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='lsj-sp']/lineArea/text/*[6])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='lsj-sp']/lineArea/text/*[7])"/>
+    <true xpath="not(//block[@prod-id='lsj-sp']/lineArea/text/*[2]/@adj = 'false')"/>
+    <true xpath="not(//block[@prod-id='lsj-sp']/lineArea/text/*[6]/@adj = 'false')"/>
+
+    <eval expected="114508" xpath="//block[@prod-id='lsj-en-quad']/lineArea/text/@ipd"/>
+    <eval expected="31140" xpath="//block[@prod-id='lsj-en-quad']/lineArea/text/@twsadjust"/>
+    <eval expected="2000" xpath="//block[@prod-id='lsj-en-quad']/lineArea/text/@tlsadjust"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='lsj-en-quad']/lineArea/text/*[1])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='lsj-en-quad']/lineArea/text/*[2])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='lsj-en-quad']/lineArea/text/*[3])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='lsj-en-quad']/lineArea/text/*[4])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='lsj-en-quad']/lineArea/text/*[5])"/>
+    <eval expected="space" xpath="local-name(//block[@prod-id='lsj-en-quad']/lineArea/text/*[6])"/>
+    <eval expected="word" xpath="local-name(//block[@prod-id='lsj-en-quad']/lineArea/text/*[7])"/>
+    <true xpath="//block[@prod-id='lsj-en-quad']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='lsj-en-quad']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="122678" xpath="//block[@prod-id='lsj-em-quad']/lineArea/text/@ipd"/>
+    <eval expected="27310" xpath="//block[@prod-id='lsj-em-quad']/lineArea/text/@twsadjust"/>
+    <eval expected="2000" xpath="//block[@prod-id='lsj-em-quad']/lineArea/text/@tlsadjust"/>
+    <true xpath="//block[@prod-id='lsj-em-quad']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='lsj-em-quad']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="112677" xpath="//block[@prod-id='lsj-en-space']/lineArea/text/@ipd"/>
+    <eval expected="29309" xpath="//block[@prod-id='lsj-en-space']/lineArea/text/@twsadjust"/>
+    <eval expected="2000" xpath="//block[@prod-id='lsj-en-space']/lineArea/text/@tlsadjust"/>
+    <true xpath="//block[@prod-id='lsj-en-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='lsj-en-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="120846" xpath="//block[@prod-id='lsj-em-space']/lineArea/text/@ipd"/>
+    <eval expected="25478" xpath="//block[@prod-id='lsj-em-space']/lineArea/text/@twsadjust"/>
+    <eval expected="2000" xpath="//block[@prod-id='lsj-em-space']/lineArea/text/@tlsadjust"/>
+    <true xpath="//block[@prod-id='lsj-em-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='lsj-em-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="87126" xpath="//block[@prod-id='lsj-three-per-em-space']/lineArea/text/@ipd"/>
+    <eval expected="7758" xpath="//block[@prod-id='lsj-three-per-em-space']/lineArea/text/@twsadjust"/>
+    <eval expected="2000" xpath="//block[@prod-id='lsj-three-per-em-space']/lineArea/text/@tlsadjust"/>
+    <true xpath="//block[@prod-id='lsj-three-per-em-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='lsj-three-per-em-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="86905" xpath="//block[@prod-id='lsj-four-per-em-space']/lineArea/text/@ipd"/>
+    <eval expected="9537" xpath="//block[@prod-id='lsj-four-per-em-space']/lineArea/text/@twsadjust"/>
+    <eval expected="2000" xpath="//block[@prod-id='lsj-four-per-em-space']/lineArea/text/@tlsadjust"/>
+    <true xpath="//block[@prod-id='lsj-four-per-em-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='lsj-four-per-em-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="86574" xpath="//block[@prod-id='lsj-six-per-em-space']/lineArea/text/@ipd"/>
+    <eval expected="11206" xpath="//block[@prod-id='lsj-six-per-em-space']/lineArea/text/@twsadjust"/>
+    <eval expected="2000" xpath="//block[@prod-id='lsj-six-per-em-space']/lineArea/text/@tlsadjust"/>
+    <true xpath="//block[@prod-id='lsj-six-per-em-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='lsj-six-per-em-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="107518" xpath="//block[@prod-id='lsj-figure-space']/lineArea/text/@ipd"/>
+    <eval expected="22806" xpath="//block[@prod-id='lsj-figure-space']/lineArea/text/@twsadjust"/>
+    <eval expected="2000" xpath="//block[@prod-id='lsj-figure-space']/lineArea/text/@tlsadjust"/>
+    <true xpath="//block[@prod-id='lsj-figure-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='lsj-figure-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
+    <eval expected="92007" xpath="//block[@prod-id='lsj-punctuation-space']/lineArea/text/@ipd"/>
+    <eval expected="13967" xpath="//block[@prod-id='lsj-punctuation-space']/lineArea/text/@twsadjust"/>
+    <eval expected="2000" xpath="//block[@prod-id='lsj-punctuation-space']/lineArea/text/@tlsadjust"/>
+    <true xpath="//block[@prod-id='lsj-punctuation-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='lsj-punctuation-space']/lineArea/text/*[6]/@adj = 'false'"/>
 
     <eval expected="104777" xpath="//block[@prod-id='lsj-thin-space']/lineArea/text/@ipd"/>
     <eval expected="28609" xpath="//block[@prod-id='lsj-thin-space']/lineArea/text/@twsadjust"/>
     <true xpath="//block[@prod-id='lsj-thin-space']/lineArea/text/*[2]/@adj = 'false'"/>
     <true xpath="//block[@prod-id='lsj-thin-space']/lineArea/text/*[6]/@adj = 'false'"/>
 
+    <eval expected="102479" xpath="//block[@prod-id='lsj-hair-space']/lineArea/text/@ipd"/>
+    <eval expected="28711" xpath="//block[@prod-id='lsj-hair-space']/lineArea/text/@twsadjust"/>
+    <eval expected="2000" xpath="//block[@prod-id='lsj-hair-space']/lineArea/text/@tlsadjust"/>
+    <true xpath="//block[@prod-id='lsj-hair-space']/lineArea/text/*[2]/@adj = 'false'"/>
+    <true xpath="//block[@prod-id='lsj-hair-space']/lineArea/text/*[6]/@adj = 'false'"/>
+
     <eval expected="85480" xpath="//block[@prod-id='lsj-zwsp']/lineArea/text/@ipd"/>
     <eval expected="14112" xpath="//block[@prod-id='lsj-zwsp']/lineArea/text/@twsadjust"/>
     <eval expected="2000" xpath="//block[@prod-id='lsj-zwsp']/lineArea/text/@tlsadjust"/>
     <true xpath="//block[@prod-id='lsj-zwsp']/lineArea/text/*[2]/@adj = 'false'"/>
     <true xpath="//block[@prod-id='lsj-zwsp']/lineArea/text/*[6]/@adj = 'false'"/>
 
+    <eval expected="140237" xpath="//block[@prod-id='lsj-nosp']/lineArea/text/@ipd"/>
+    <eval expected="64869" xpath="//block[@prod-id='lsj-nosp']/lineArea/text/@twsadjust"/>
+    <eval expected="2000" xpath="//block[@prod-id='lsj-nosp']/lineArea/text/@tlsadjust"/>
+
   </checks>
 </testcase>