blob: 1fa72b1cd23184c9067649baca6c0f8be98f2116 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- $Id$ -->
<testcase>
<info>
<p>
This test checks element generation for various spaces.
</p>
</info>
<fo>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="normal" page-width="5in" page-height="5in">
<fo:region-body/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="normal">
<fo:flow flow-name="xsl-region-body">
<!-- 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-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 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-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 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-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 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-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>
</fo:root>
</fo>
<checks>
<eval expected="62040" xpath="//block[@prod-id='l-sp']/lineArea/text/@ipd"/>
<eval expected="word" xpath="local-name(//block[@prod-id='l-sp']/lineArea/text/*[1])"/>
<eval expected="space" xpath="local-name(//block[@prod-id='l-sp']/lineArea/text/*[2])"/>
<eval expected="word" xpath="local-name(//block[@prod-id='l-sp']/lineArea/text/*[3])"/>
<eval expected="space" xpath="local-name(//block[@prod-id='l-sp']/lineArea/text/*[4])"/>
<eval expected="word" xpath="local-name(//block[@prod-id='l-sp']/lineArea/text/*[5])"/>
<eval expected="space" xpath="local-name(//block[@prod-id='l-sp']/lineArea/text/*[6])"/>
<eval expected="word" xpath="local-name(//block[@prod-id='l-sp']/lineArea/text/*[7])"/>
<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"/>
<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="57768" xpath="//block[@prod-id='l-hair-space']/lineArea/text/@ipd"/>
<true xpath="//block[@prod-id='l-hair-space']/lineArea/text/*[2]/@adj = 'false'"/>
<true xpath="//block[@prod-id='l-hair-space']/lineArea/text/*[6]/@adj = 'false'"/>
<eval expected="55368" xpath="//block[@prod-id='l-zwsp']/lineArea/text/@ipd"/>
<!-- zwsp is not rendered to the area tree -->
<eval expected="1" xpath="count(//block[@prod-id='l-zwsp']/lineArea/text/space)"/>
<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"/>
<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"/>
<!-- zwsp is not rendered to the area tree -->
<eval expected="1" xpath="count(//block[@prod-id='c-zwsp']/lineArea/text/space)"/>
<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"/>
<!-- zwsp is not rendered to the area tree -->
<eval expected="1" xpath="count(//block[@prod-id='j-zwsp']/lineArea/text/space)"/>
<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"/>
<eval expected="2000" xpath="//block[@prod-id='lsj-thin-space']/lineArea/text/@tlsadjust"/>
<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"/>
<!-- zwsp is not rendered to the area tree -->
<eval expected="1" xpath="count(//block[@prod-id='lsj-zwsp']/lineArea/text/space)"/>
<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>