aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorSimon Pepping <spepping@apache.org>2007-09-25 12:44:20 +0000
committerSimon Pepping <spepping@apache.org>2007-09-25 12:44:20 +0000
commitba65dea9430800d2cbd37ea45ab9f9967ca96a4b (patch)
treec96846da50e56a5253fb28a79bc2335e45643d37 /test
parent51efe0f61308aa92bc793a2d6dd278acf6d98ea5 (diff)
downloadxmlgraphics-fop-ba65dea9430800d2cbd37ea45ab9f9967ca96a4b.tar.gz
xmlgraphics-fop-ba65dea9430800d2cbd37ea45ab9f9967ca96a4b.zip
Merged revisions 550001-554093 via svnmerge from
https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk ........ r550098 | adelmelle | 2007-06-23 22:31:59 +0200 (Sat, 23 Jun 2007) | 1 line Bugzilla 42703: white-space incorrectly handled in retrieved markers ........ r551603 | vhennebert | 2007-06-28 17:52:45 +0200 (Thu, 28 Jun 2007) | 3 lines Additional testcases for tables with spanning cells and collapsing-border model. TODO the checks in table_border-collapse_collapse_spans_2.xml need to updated once bugs #42768 and #42769 are fixed ........ r551874 | jeremias | 2007-06-29 14:46:14 +0200 (Fri, 29 Jun 2007) | 9 lines Bugzilla #42278: Refactoring of color map cache and uri/fo resolution from FopFactory Submitted by: Adrian Cumiskey <fop-dev@cumiskey.com> Changes in addition to the patch by jeremias: - Moved the color map cache to the util package so it doesn't clutter the API (apps) package. - Factored out the data URL resolution into its own URIResolver class which can now be used separately. - Added a utility class for generating RFC2397 data URLs. - Added a unit test for data URL handling. ........ r551972 | spepping | 2007-06-29 19:39:01 +0200 (Fri, 29 Jun 2007) | 4 lines Applied fix suggested by Arno Peters to the fop shell script. This fix makes the script work with a FOP_HOME path containing spaces. This solves bug 42616. ........ r553612 | adelmelle | 2007-07-05 21:01:14 +0200 (Thu, 05 Jul 2007) | 1 line Fix for a tiny but very nasty bug... ........ r553627 | adelmelle | 2007-07-05 22:40:24 +0200 (Thu, 05 Jul 2007) | 1 line Fix a broken link ........ r553790 | vhennebert | 2007-07-06 10:41:46 +0200 (Fri, 06 Jul 2007) | 2 lines First step towards using a list of active cells for computing steps ........ r553792 | vhennebert | 2007-07-06 10:43:51 +0200 (Fri, 06 Jul 2007) | 2 lines Organize imports and remove no longer used methods ........ r553809 | vhennebert | 2007-07-06 11:24:06 +0200 (Fri, 06 Jul 2007) | 2 lines Remove decrease of activeRowIndex when backtracking ........ r553824 | vhennebert | 2007-07-06 12:01:58 +0200 (Fri, 06 Jul 2007) | 2 lines Add a testcase for a bug in TableStepper spotted during the refactoring. The border-before of the primary grid unit was taken into account instead of the whole cell border. If the cell is spanning over two columns and the border-before for the second grid unit is bigger, this was leading to a wrong step computation. ........ r553859 | jeremias | 2007-07-06 14:22:20 +0200 (Fri, 06 Jul 2007) | 1 line Clarification about the status of fo:bookmark support. ........ r553876 | vhennebert | 2007-07-06 15:34:41 +0200 (Fri, 06 Jul 2007) | 2 lines Move the getNextStep method into ActiveCell ........ r553878 | vhennebert | 2007-07-06 15:49:12 +0200 (Fri, 06 Jul 2007) | 2 lines Add a signalMinStep method in ActiveCell ........ r553895 | vhennebert | 2007-07-06 16:29:10 +0200 (Fri, 06 Jul 2007) | 2 lines Cleaner way to handle border-separation in ActiveCell ........ r554087 | adelmelle | 2007-07-07 01:29:26 +0200 (Sat, 07 Jul 2007) | 1 line Improvement in handling relative font-weights ........ r554088 | adelmelle | 2007-07-07 01:30:14 +0200 (Sat, 07 Jul 2007) | 1 line Improvement in handling relative font-weights ........ r554091 | adelmelle | 2007-07-07 01:44:57 +0200 (Sat, 07 Jul 2007) | 1 line Tweak: allow control over usage of Locators ........ r554092 | adelmelle | 2007-07-07 01:49:30 +0200 (Sat, 07 Jul 2007) | 1 line Removal of unused classes ? ........ git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_Interleaved_Page_Line_Breaking@579224 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'test')
-rw-r--r--test/fotree/testcases/font-weight_relative2.fo90
-rw-r--r--test/java/org/apache/fop/UtilityCodeTestSuite.java4
-rw-r--r--test/java/org/apache/fop/util/DataURIResolverTestCase.java116
-rw-r--r--test/layoutengine/standard-testcases/block_font-weight.xml30
-rw-r--r--test/layoutengine/standard-testcases/marker_inline_white-space.xml70
-rw-r--r--test/layoutengine/standard-testcases/table-stepper_colspan_border-before.xml83
-rw-r--r--test/layoutengine/standard-testcases/table_border-collapse_collapse_spans_1.xml390
-rw-r--r--test/layoutengine/standard-testcases/table_border-collapse_collapse_spans_2.xml689
8 files changed, 1457 insertions, 15 deletions
diff --git a/test/fotree/testcases/font-weight_relative2.fo b/test/fotree/testcases/font-weight_relative2.fo
new file mode 100644
index 000000000..530c9afe7
--- /dev/null
+++ b/test/fotree/testcases/font-weight_relative2.fo
@@ -0,0 +1,90 @@
+<?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$ -->
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:test="http://xmlgraphics.apache.org/fop/test">
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name="normal" page-width="210mm" page-height="297mm">
+ <fo:region-body/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+ <fo:page-sequence master-reference="normal" white-space-collapse="true">
+ <fo:flow flow-name="xsl-region-body">
+ <fo:block font-weight="900">font-weight="900"
+ <test:assert property="font-weight" expected="900" />
+ <fo:block font-weight="lighter">font-weight="lighter"
+ <test:assert property="font-weight" expected="800" />
+ <fo:block font-weight="lighter">font-weight="lighter"
+ <test:assert property="font-weight" expected="700" />
+ <fo:block font-weight="lighter">font-weight="lighter"
+ <test:assert property="font-weight" expected="600" />
+ <fo:block font-weight="lighter">font-weight="lighter"
+ <test:assert property="font-weight" expected="500" />
+ <fo:block font-weight="lighter">font-weight="lighter"
+ <test:assert property="font-weight" expected="400" />
+ <fo:block font-weight="lighter">font-weight="lighter"
+ <test:assert property="font-weight" expected="300" />
+ <fo:block font-weight="lighter">font-weight="lighter"
+ <test:assert property="font-weight" expected="200" />
+ <fo:block font-weight="lighter">font-weight="lighter"
+ <test:assert property="font-weight" expected="100" />
+ <fo:block font-weight="lighter">font-weight="lighter"
+ <test:assert property="font-weight" expected="100" />
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ <fo:block font-weight="100">font-weight="100"
+ <test:assert property="font-weight" expected="100" />
+ <fo:block font-weight="bolder">font-weight="bolder"
+ <test:assert property="font-weight" expected="200" />
+ <fo:block font-weight="bolder">font-weight="bolder"
+ <test:assert property="font-weight" expected="300" />
+ <fo:block font-weight="bolder">font-weight="bolder"
+ <test:assert property="font-weight" expected="400" />
+ <fo:block font-weight="bolder">font-weight="bolder"
+ <test:assert property="font-weight" expected="500" />
+ <fo:block font-weight="bolder">font-weight="bolder"
+ <test:assert property="font-weight" expected="600" />
+ <fo:block font-weight="bolder">font-weight="bolder"
+ <test:assert property="font-weight" expected="700" />
+ <fo:block font-weight="bolder">font-weight="bolder"
+ <test:assert property="font-weight" expected="800" />
+ <fo:block font-weight="bolder">font-weight="bolder"
+ <test:assert property="font-weight" expected="900" />
+ <fo:block font-weight="bolder">font-weight="bolder"
+ <test:assert property="font-weight" expected="900" />
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:flow>
+ </fo:page-sequence>
+</fo:root>
+
diff --git a/test/java/org/apache/fop/UtilityCodeTestSuite.java b/test/java/org/apache/fop/UtilityCodeTestSuite.java
index f84390518..679e16ce7 100644
--- a/test/java/org/apache/fop/UtilityCodeTestSuite.java
+++ b/test/java/org/apache/fop/UtilityCodeTestSuite.java
@@ -21,6 +21,8 @@ package org.apache.fop;
import org.apache.fop.traits.BorderPropsTestCase;
import org.apache.fop.traits.TraitColorTestCase;
+import org.apache.fop.util.DataURIResolverTestCase;
+import org.apache.fop.util.ElementListUtilsTestCase;
import org.apache.fop.util.PDFNumberTestCase;
import org.apache.fop.util.UnitConvTestCase;
@@ -44,6 +46,8 @@ public class UtilityCodeTestSuite {
suite.addTest(new TestSuite(UnitConvTestCase.class));
suite.addTest(new TestSuite(TraitColorTestCase.class));
suite.addTest(new TestSuite(BorderPropsTestCase.class));
+ suite.addTest(new TestSuite(ElementListUtilsTestCase.class));
+ suite.addTest(new TestSuite(DataURIResolverTestCase.class));
//$JUnit-END$
return suite;
}
diff --git a/test/java/org/apache/fop/util/DataURIResolverTestCase.java b/test/java/org/apache/fop/util/DataURIResolverTestCase.java
new file mode 100644
index 000000000..133d4fcd1
--- /dev/null
+++ b/test/java/org/apache/fop/util/DataURIResolverTestCase.java
@@ -0,0 +1,116 @@
+/*
+ * 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$ */
+
+package org.apache.fop.util;
+
+import java.io.ByteArrayInputStream;
+
+import javax.xml.transform.Source;
+import javax.xml.transform.URIResolver;
+import javax.xml.transform.stream.StreamSource;
+
+import org.apache.commons.io.IOUtils;
+
+import junit.framework.TestCase;
+
+/**
+ * Test case for the RFC 2397 data URL/URI resolver.
+ */
+public class DataURIResolverTestCase extends TestCase {
+
+ private static final byte[] TESTDATA = new byte[] {0, 1, 2, 3, 4, 5};
+
+ /**
+ * Tests DataURLUtil.
+ * @throws Exception if an error occurs
+ */
+ public void testRFC2397Generator() throws Exception {
+ String url = DataURLUtil.createDataURL(new ByteArrayInputStream(TESTDATA), null);
+ assertEquals("Generated data URL is wrong", "data:;base64,AAECAwQF", url);
+
+ url = DataURLUtil.createDataURL(new ByteArrayInputStream(TESTDATA), "application/pdf");
+ assertEquals("Generated data URL is wrong", "data:application/pdf;base64,AAECAwQF", url);
+ }
+
+ /**
+ * Test the URIResolver contract if the protocol doesn't match. Resolver must return null
+ * in this case.
+ * @throws Exception if an error occurs
+ */
+ public void testNonMatchingContract() throws Exception {
+ URIResolver resolver = new DataURIResolver();
+ Source src;
+
+ src = resolver.resolve("http://xmlgraphics.apache.org/fop/index.html", null);
+ assertNull(src);
+
+ src = resolver.resolve("index.html", "http://xmlgraphics.apache.org/fop/");
+ assertNull(src);
+ }
+
+ private static boolean byteCmp(byte[] src, int srcOffset, byte[] cmp) {
+ for (int i = 0, c = cmp.length; i < c; i++) {
+ if (src[srcOffset + i] != cmp[i]) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Test the DataURIResolver with correct values.
+ * @throws Exception if an error occurs
+ */
+ public void testDataURLHandling() throws Exception {
+ URIResolver resolver = new DataURIResolver();
+ Source src;
+
+ src = resolver.resolve("data:;base64,AAECAwQF", null);
+ assertNotNull(src);
+ StreamSource streamSource = (StreamSource)src;
+ byte[] data = IOUtils.toByteArray(streamSource.getInputStream());
+ assertTrue("Decoded data doesn't match the test data", byteCmp(TESTDATA, 0, data));
+
+ src = resolver.resolve(
+ "data:application/octet-stream;interpreter=fop;base64,AAECAwQF", null);
+ assertNotNull(src);
+ streamSource = (StreamSource)src;
+ assertNotNull(streamSource.getInputStream());
+ assertNull(streamSource.getReader());
+ data = IOUtils.toByteArray(streamSource.getInputStream());
+ assertTrue("Decoded data doesn't match the test data", byteCmp(TESTDATA, 0, data));
+
+ src = resolver.resolve("data:,FOP", null);
+ assertNotNull(src);
+ streamSource = (StreamSource)src;
+ assertNull(streamSource.getInputStream());
+ assertNotNull(streamSource.getReader());
+ String text = IOUtils.toString(streamSource.getReader());
+ assertEquals("FOP", text);
+
+ /* TODO Un-escaping of special URL chars like %20 hasn't been implemented, yet.
+ src = resolver.resolve("data:,A%20brief%20note", null);
+ assertNotNull(src);
+ streamSource = (StreamSource)src;
+ text = IOUtils.toString(streamSource.getReader());
+ assertEquals("A brief note", text);
+ */
+ }
+
+}
diff --git a/test/layoutengine/standard-testcases/block_font-weight.xml b/test/layoutengine/standard-testcases/block_font-weight.xml
index b9907ebc2..743aa69e7 100644
--- a/test/layoutengine/standard-testcases/block_font-weight.xml
+++ b/test/layoutengine/standard-testcases/block_font-weight.xml
@@ -86,7 +86,7 @@
</fo:page-sequence>
</fo:root>
</fo>
- <checks><!-- feature not properly implemented, checks are against current implementation -->
+ <checks>
<eval expected="400" xpath="//flow/block[1]/lineArea/text/@font-weight"/>
<eval expected="400" xpath="//flow/block[2]/lineArea/text/@font-weight"/>
<eval expected="700" xpath="//flow/block[3]/lineArea/text/@font-weight"/>
@@ -99,24 +99,24 @@
<eval expected="700" xpath="//flow/block[10]/lineArea/text/@font-weight"/>
<eval expected="700" xpath="//flow/block[11]/lineArea/text/@font-weight"/>
<eval expected="700" xpath="//flow/block[12]/lineArea/text/@font-weight"/>
- <eval expected="400" xpath="//flow/block[13]/block/lineArea/text/@font-weight"/>
- <eval expected="400" xpath="//flow/block[13]/block/block/lineArea/text/@font-weight"/>
- <eval expected="400" xpath="//flow/block[13]/block/block/block/lineArea/text/@font-weight"/>
- <eval expected="400" xpath="//flow/block[13]/block/block/block/block/lineArea/text/@font-weight"/>
- <eval expected="400" xpath="//flow/block[13]/block/block/block/block/block/lineArea/text/@font-weight"/>
- <eval expected="400" xpath="//flow/block[13]/block/block/block/block/block/block/lineArea/text/@font-weight"/>
- <eval expected="400" xpath="//flow/block[13]/block/block/block/block/block/block/block/lineArea/text/@font-weight"/>
- <eval expected="400" xpath="//flow/block[13]/block/block/block/block/block/block/block/block/lineArea/text/@font-weight"/>
- <eval expected="400" xpath="//flow/block[13]/block/block/block/block/block/block/block/block/block/lineArea/text/@font-weight"/>
+ <eval expected="700" xpath="//flow/block[12]/block/lineArea/text/@font-weight"/>
+ <eval expected="700" xpath="//flow/block[12]/block/block/lineArea/text/@font-weight"/>
+ <eval expected="700" xpath="//flow/block[12]/block/block/block/lineArea/text/@font-weight"/>
+ <eval expected="400" xpath="//flow/block[12]/block/block/block/block/lineArea/text/@font-weight"/>
+ <eval expected="400" xpath="//flow/block[12]/block/block/block/block/block/lineArea/text/@font-weight"/>
+ <eval expected="400" xpath="//flow/block[12]/block/block/block/block/block/block/lineArea/text/@font-weight"/>
+ <eval expected="400" xpath="//flow/block[12]/block/block/block/block/block/block/block/lineArea/text/@font-weight"/>
+ <eval expected="400" xpath="//flow/block[12]/block/block/block/block/block/block/block/block/lineArea/text/@font-weight"/>
+ <eval expected="400" xpath="//flow/block[12]/block/block/block/block/block/block/block/block/block/lineArea/text/@font-weight"/>
<eval expected="400" xpath="//flow/block[13]/lineArea/text/@font-weight"/>
<eval expected="400" xpath="//flow/block[13]/block/lineArea/text/@font-weight"/>
<eval expected="400" xpath="//flow/block[13]/block/block/lineArea/text/@font-weight"/>
<eval expected="400" xpath="//flow/block[13]/block/block/block/lineArea/text/@font-weight"/>
<eval expected="400" xpath="//flow/block[13]/block/block/block/block/lineArea/text/@font-weight"/>
- <eval expected="400" xpath="//flow/block[13]/block/block/block/block/block/lineArea/text/@font-weight"/>
- <eval expected="400" xpath="//flow/block[13]/block/block/block/block/block/block/lineArea/text/@font-weight"/>
- <eval expected="400" xpath="//flow/block[13]/block/block/block/block/block/block/block/lineArea/text/@font-weight"/>
- <eval expected="400" xpath="//flow/block[13]/block/block/block/block/block/block/block/block/lineArea/text/@font-weight"/>
- <eval expected="400" xpath="//flow/block[13]/block/block/block/block/block/block/block/block/block/lineArea/text/@font-weight"/>
+ <eval expected="700" xpath="//flow/block[13]/block/block/block/block/block/lineArea/text/@font-weight"/>
+ <eval expected="700" xpath="//flow/block[13]/block/block/block/block/block/block/lineArea/text/@font-weight"/>
+ <eval expected="700" xpath="//flow/block[13]/block/block/block/block/block/block/block/lineArea/text/@font-weight"/>
+ <eval expected="700" xpath="//flow/block[13]/block/block/block/block/block/block/block/block/lineArea/text/@font-weight"/>
+ <eval expected="700" xpath="//flow/block[13]/block/block/block/block/block/block/block/block/block/lineArea/text/@font-weight"/>
</checks>
</testcase>
diff --git a/test/layoutengine/standard-testcases/marker_inline_white-space.xml b/test/layoutengine/standard-testcases/marker_inline_white-space.xml
new file mode 100644
index 000000000..286ddc2bf
--- /dev/null
+++ b/test/layoutengine/standard-testcases/marker_inline_white-space.xml
@@ -0,0 +1,70 @@
+<?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>
+ Test for Bugzilla 42703: incorrect white-space handling during
+ marker-retrieval.
+ </p>
+ </info>
+ <fo>
+ <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" >
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name="all-pages">
+ <fo:region-body region-name="xsl-region-body" margin-top="10cm"/>
+ <fo:region-before region-name="xsl-region-before" extent="29cm" display-align="before" />
+ <fo:region-after region-name="xsl-region-after" extent="10cm" display-align="before" />
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+ <fo:page-sequence master-reference="all-pages">
+ <fo:static-content flow-name="xsl-region-before">
+ <fo:block color="blue" font-size="25pt">
+ <fo:block>marker1 content:
+ <fo:inline color="green"><fo:retrieve-marker
+ retrieve-class-name="marker1"
+ retrieve-boundary="page"
+ /></fo:inline>
+ </fo:block>
+ <fo:block>marker1 content:
+ <fo:inline color="green"><fo:retrieve-marker
+ retrieve-class-name="marker1"
+ retrieve-boundary="page"
+ /></fo:inline>
+ </fo:block>
+ </fo:block>
+ </fo:static-content>
+ <fo:flow flow-name="xsl-region-body">
+ <fo:block font-size="20pt">
+ <fo:block margin-top="2cm">
+ <fo:marker marker-class-name="marker1">
+ <fo:block>Block<fo:inline> with inline element </fo:inline>.</fo:block>
+ </fo:marker>
+ text with the marker
+ </fo:block>
+ </fo:block>
+ </fo:flow>
+ </fo:page-sequence>
+ </fo:root>
+ </fo>
+ <checks>
+ <!-- preserve leading white-space of the inline in the retrieved marker -->
+ <eval expected="4"
+ xpath="count(//regionBefore/*[1]/*[1]/*[2]/*/*/*/inlineparent/text/space)"/>
+ </checks>
+</testcase>
diff --git a/test/layoutengine/standard-testcases/table-stepper_colspan_border-before.xml b/test/layoutengine/standard-testcases/table-stepper_colspan_border-before.xml
new file mode 100644
index 000000000..623252acc
--- /dev/null
+++ b/test/layoutengine/standard-testcases/table-stepper_colspan_border-before.xml
@@ -0,0 +1,83 @@
+<?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 that TableStepper computes steps correctly in the following condition:
+ collapsing borders, a cell spanning over two columns, the border-before on the grid unit of
+ the second column bigger than on the first column.
+ </p>
+ </info>
+ <fo>
+ <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name="page" page-height="7cm" page-width="15cm" margin="1cm"
+ margin-bottom="0">
+ <fo:region-body/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+ <fo:page-sequence master-reference="page" font-family="serif" font-size="14pt">
+ <fo:flow flow-name="xsl-region-body">
+ <fo:block space-after="80pt">Before the table</fo:block>
+ <fo:table width="100%" table-layout="fixed" border="4pt solid black">
+ <fo:table-column number-columns-repeated="2"
+ column-width="proportional-column-width(1)"/>
+ <fo:table-body>
+ <fo:table-row>
+ <fo:table-cell border="2pt solid blue">
+ <fo:block>Cell 1.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="2pt solid blue">
+ <fo:block>Cell 1.2</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="2pt solid teal" border-bottom-width="40pt">
+ <!-- This big border-bottom prevents the second row of the table from fitting on
+ the first page -->
+ <fo:block>Cell 1.3</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell border="2pt solid blue">
+ <fo:block>Cell 2.1</fo:block>
+ <fo:block>Cell 2.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="2pt solid blue" number-columns-spanned="2">
+ <fo:block>Cell 2.2</fo:block>
+ <fo:block>Cell 2.2</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+ <fo:block space-before="0pt">After the table</fo:block>
+ </fo:flow>
+ </fo:page-sequence>
+ </fo:root>
+ </fo>
+ <checks>
+ <!-- 2 pages -->
+ <eval expected="2" xpath="count(//pageViewport)"/>
+ <!-- 2 blocks on the first page: "Before the table" plus the table itself -->
+ <eval expected="2" xpath="count(//pageViewport[1]//flow/block)"/>
+ <!-- 3 blocks in the table, corresponding to the first row -->
+ <eval expected="3" xpath="count(//pageViewport[1]//flow/block[2]/block)"/>
+ <eval expected="2" xpath="count(//pageViewport[2]//flow/block)"/>
+ <!-- the rest of the table on the second page -->
+ <eval expected="4" xpath="count(//pageViewport[2]//flow/block[1]/block)"/>
+ </checks>
+</testcase>
diff --git a/test/layoutengine/standard-testcases/table_border-collapse_collapse_spans_1.xml b/test/layoutengine/standard-testcases/table_border-collapse_collapse_spans_1.xml
new file mode 100644
index 000000000..14925e28f
--- /dev/null
+++ b/test/layoutengine/standard-testcases/table_border-collapse_collapse_spans_1.xml
@@ -0,0 +1,390 @@
+<?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 tables with the collapsing-border model and simple spanning cells.
+ </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="16cm" page-height="20cm" margin="20pt">
+ <fo:region-body margin="0pt"/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+ <fo:page-sequence master-reference="normal">
+ <fo:flow flow-name="xsl-region-body">
+
+ <fo:block>Before the tables</fo:block>
+ <!-- table 1 -->
+ <fo:table table-layout="fixed" width="200pt" border-collapse="collapse">
+ <fo:table-column column-width="proportional-column-width(1)"/>
+ <fo:table-body>
+ <fo:table-row>
+ <fo:table-cell number-rows-spanned="2"
+ background-color="yellow"
+ border-top="16pt solid black"
+ border-bottom="10pt solid blue"
+ border-left="12pt solid red"
+ border-right="4pt solid teal">
+ <fo:block>Cell 1.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell
+ border-top="4pt solid silver"
+ border-bottom="10pt solid navy"
+ border-left="10pt solid purple"
+ border-right="4pt solid olive">
+ <fo:block>Cell 1.2</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell
+ border-top="10pt solid black"
+ border-bottom="6pt solid silver"
+ border-left="3pt solid red"
+ border-right="10pt solid teal">
+ <fo:block>Cell 2.2 Cell 2.2 Cell 2.2 Cell 2.2</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+
+ <fo:block>Between tables</fo:block>
+ <!-- table 2 -->
+ <fo:table table-layout="fixed" width="200pt" border-collapse="collapse">
+ <fo:table-column column-width="proportional-column-width(1)"/>
+ <fo:table-body>
+ <fo:table-row>
+ <fo:table-cell
+ border-top="12pt solid black"
+ border-bottom="12pt solid blue"
+ border-left="12pt solid red"
+ border-right="4pt solid teal">
+ <fo:block>Cell 1.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell number-rows-spanned="2"
+ background-color="yellow"
+ padding="10pt"
+ border-top="4pt solid silver"
+ border-bottom="4pt solid purple"
+ border-left="4pt solid purple"
+ border-right="10pt solid olive">
+ <fo:block>Cell 1.2 Cell 1.2 Cell 1.2 Cell 1.2 Cell 1.2 Cell 1.2 Cell 1.2</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell
+ border-top="6pt solid silver"
+ border-bottom="6pt solid navy"
+ border-left="6pt solid purple"
+ border-right="16pt solid olive">
+ <fo:block>Cell 2.1</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+
+ <fo:block>Between tables</fo:block>
+ <!-- table 3 -->
+ <fo:table table-layout="fixed" width="200pt" border-collapse="collapse">
+ <fo:table-column column-width="proportional-column-width(1)"/>
+ <fo:table-body>
+ <fo:table-row>
+ <fo:table-cell number-columns-spanned="2"
+ background-color="yellow"
+ padding-top="4pt"
+ padding-bottom="5pt"
+ padding-left="6pt"
+ padding-right="7pt"
+ border-top="2pt solid black"
+ border-bottom="4pt solid blue"
+ border-left="2pt solid red"
+ border-right="2pt solid teal">
+ <fo:block>Cell 1.1 Cell 1.1 Cell 1.1 Cell 1.1</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell
+ border-top="1pt solid silver"
+ border-bottom="6pt solid navy"
+ border-left="6pt solid purple"
+ border-right="6pt solid olive">
+ <fo:block>Cell 2.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell
+ border-top="10pt solid black"
+ border-bottom="10pt solid silver"
+ border-left="10pt solid red"
+ border-right="10pt solid olive">
+ <fo:block>Cell 2.2 Cell 2.2 Cell 2.2 Cell 2.2</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+
+ <fo:block>Between tables</fo:block>
+ <!-- table 4 -->
+ <fo:table table-layout="fixed" width="200pt" border-collapse="collapse">
+ <fo:table-column column-width="proportional-column-width(1)"/>
+ <fo:table-body>
+ <fo:table-row>
+ <fo:table-cell
+ border-top="12pt solid black"
+ border-bottom="12pt solid blue"
+ border-left="12pt solid red"
+ border-right="12pt solid teal">
+ <fo:block>Cell 1.1 Cell 1.1 Cell 1.1 Cell 1.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell
+ border-top="4pt solid silver"
+ border-bottom="10pt solid navy"
+ border-left="4pt solid purple"
+ border-right="4pt solid purple">
+ <fo:block>Cell 1.2</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell number-columns-spanned="2"
+ background-color="yellow"
+ padding-top="10pt"
+ padding-bottom="15pt"
+ padding-left="20pt"
+ padding-right="30pt"
+ border-top="15pt solid silver"
+ border-bottom="6pt solid navy"
+ border-left="6pt solid purple"
+ border-right="6pt solid olive">
+ <fo:block>Cell 2.1</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+ </fo:flow>
+ </fo:page-sequence>
+ </fo:root>
+ </fo>
+ <checks>
+
+ <!-- table 1 -->
+ <eval expected="58200" xpath="//flow/block[2]/@bpd"/>
+ <eval expected="58200" xpath="//flow/block[2]/@bpda"/>
+ <!-- cell 1.2 -->
+ <eval expected="93000" xpath="//flow/block[2]/block[1]/@ipd"/>
+ <eval expected="107000" xpath="//flow/block[2]/block[1]/@ipda"/>
+ <eval expected="14400" xpath="//flow/block[2]/block[1]/@bpd"/>
+ <eval expected="28400" xpath="//flow/block[2]/block[1]/@bpda"/>
+ <eval expected="105000" xpath="//flow/block[2]/block[1]/@left-offset"/>
+ <eval expected="-2000" xpath="//flow/block[2]/block[1]/@top-offset"/>
+ <eval expected="(solid,#c0c0c0,4000,collapse-outer)" xpath="//flow/block[2]/block[1]/@border-before"/>
+ <eval expected="(solid,#000080,10000,collapse-inner)" xpath="//flow/block[2]/block[1]/@border-after"/>
+ <eval expected="(solid,#800080,10000,collapse-inner)" xpath="//flow/block[2]/block[1]/@border-start"/>
+ <eval expected="(solid,#808000,4000,collapse-outer)" xpath="//flow/block[2]/block[1]/@border-end"/>
+ <!-- cell 1.1 -->
+ <eval expected="89000" xpath="//flow/block[2]/block[2]/@ipd"/>
+ <eval expected="111000" xpath="//flow/block[2]/block[2]/@ipda"/>
+ <eval expected="13400" xpath="//flow/block[2]/block[2]/@bpd"/>
+ <eval expected="29400" xpath="//flow/block[2]/block[2]/@bpda"/>
+ <eval expected="6000" xpath="//flow/block[2]/block[2]/@left-offset"/>
+ <eval expected="-8000" xpath="//flow/block[2]/block[2]/@top-offset"/>
+ <eval expected="(solid,#000000,16000,collapse-outer)" xpath="//flow/block[2]/block[2]/@border-before"/>
+ <eval expected="(solid,#ff0000,12000,collapse-outer)" xpath="//flow/block[2]/block[2]/@border-start"/>
+ <eval expected="(solid,#800080,10000,collapse-inner)" xpath="//flow/block[2]/block[2]/@border-end"/>
+ <eval expected="92000" xpath="//flow/block[2]/block[3]/@ipd"/>
+ <eval expected="108000" xpath="//flow/block[2]/block[3]/@ipda"/>
+ <eval expected="31800" xpath="//flow/block[2]/block[3]/@bpd"/>
+ <eval expected="41800" xpath="//flow/block[2]/block[3]/@bpda"/>
+ <eval expected="6000" xpath="//flow/block[2]/block[3]/@left-offset"/>
+ <eval expected="21400" xpath="//flow/block[2]/block[3]/@top-offset"/>
+ <eval expected="(solid,#0000ff,10000,collapse-outer)" xpath="//flow/block[2]/block[3]/@border-after"/>
+ <eval expected="(solid,#ff0000,12000,collapse-outer)" xpath="//flow/block[2]/block[3]/@border-start"/>
+ <eval expected="(solid,#008080,4000,collapse-inner)" xpath="//flow/block[2]/block[3]/@border-end"/>
+ <eval expected="89000" xpath="//flow/block[2]/block[4]/@ipd"/>
+ <eval expected="89000" xpath="//flow/block[2]/block[4]/@ipda"/>
+ <eval expected="45200" xpath="//flow/block[2]/block[4]/@bpd"/>
+ <eval expected="45200" xpath="//flow/block[2]/block[4]/@bpda"/>
+ <eval expected="6000" xpath="//flow/block[2]/block[4]/@left-offset"/>
+ <eval expected="8000" xpath="//flow/block[2]/block[4]/@top-offset"/>
+ <!-- cell 1.2 -->
+ <eval expected="93000" xpath="//flow/block[2]/block[5]/@ipd"/>
+ <eval expected="107000" xpath="//flow/block[2]/block[5]/@ipda"/>
+ <eval expected="28800" xpath="//flow/block[2]/block[5]/@bpd"/>
+ <eval expected="44800" xpath="//flow/block[2]/block[5]/@bpda"/>
+ <eval expected="102000" xpath="//flow/block[2]/block[5]/@left-offset"/>
+ <eval expected="16400" xpath="//flow/block[2]/block[5]/@top-offset"/>
+ <eval expected="(solid,#000000,10000,collapse-inner)" xpath="//flow/block[2]/block[5]/@border-before"/>
+ <eval expected="(solid,#c0c0c0,6000,collapse-outer)" xpath="//flow/block[2]/block[5]/@border-after"/>
+ <eval expected="(solid,#008080,4000,collapse-inner)" xpath="//flow/block[2]/block[5]/@border-start"/>
+ <eval expected="(solid,#008080,10000,collapse-outer)" xpath="//flow/block[2]/block[5]/@border-end"/>
+
+ <!-- table 2 -->
+ <eval expected="96000" xpath="//flow/block[4]/@bpd"/>
+ <eval expected="96000" xpath="//flow/block[4]/@bpda"/>
+ <!-- cell 1.1 -->
+ <eval expected="92000" xpath="//flow/block[4]/block[1]/@ipd"/>
+ <eval expected="108000" xpath="//flow/block[4]/block[1]/@ipda"/>
+ <eval expected="14400" xpath="//flow/block[4]/block[1]/@bpd"/>
+ <eval expected="38400" xpath="//flow/block[4]/block[1]/@bpda"/>
+ <eval expected="6000" xpath="//flow/block[4]/block[1]/@left-offset"/>
+ <eval expected="-6000" xpath="//flow/block[4]/block[1]/@top-offset"/>
+ <eval expected="(solid,#000000,12000,collapse-outer)" xpath="//flow/block[4]/block[1]/@border-before"/>
+ <eval expected="(solid,#0000ff,12000,collapse-inner)" xpath="//flow/block[4]/block[1]/@border-after"/>
+ <eval expected="(solid,#ff0000,12000,collapse-outer)" xpath="//flow/block[4]/block[1]/@border-start"/>
+ <eval expected="(solid,#008080,4000,collapse-inner)" xpath="//flow/block[4]/block[1]/@border-end"/>
+ <!-- cell 2.1 -->
+ <eval expected="89000" xpath="//flow/block[4]/block[2]/@ipd"/>
+ <eval expected="111000" xpath="//flow/block[4]/block[2]/@ipda"/>
+ <eval expected="60600" xpath="//flow/block[4]/block[2]/@bpd"/>
+ <eval expected="78600" xpath="//flow/block[4]/block[2]/@bpda"/>
+ <eval expected="3000" xpath="//flow/block[4]/block[2]/@left-offset"/>
+ <eval expected="20400" xpath="//flow/block[4]/block[2]/@top-offset"/>
+ <eval expected="(solid,#0000ff,12000,collapse-inner)" xpath="//flow/block[4]/block[2]/@border-before"/>
+ <eval expected="(solid,#000080,6000,collapse-outer)" xpath="//flow/block[4]/block[2]/@border-after"/>
+ <eval expected="(solid,#800080,6000,collapse-outer)" xpath="//flow/block[4]/block[2]/@border-start"/>
+ <eval expected="(solid,#808000,16000,collapse-inner)" xpath="//flow/block[4]/block[2]/@border-end"/>
+ <!-- cell 1.2 -->
+ <eval expected="93000" xpath="//flow/block[4]/block[3]/@ipd"/>
+ <eval expected="107000" xpath="//flow/block[4]/block[3]/@ipda"/>
+ <eval expected="24400" xpath="//flow/block[4]/block[3]/@bpd"/>
+ <eval expected="28400" xpath="//flow/block[4]/block[3]/@bpda"/>
+ <eval expected="102000" xpath="//flow/block[4]/block[3]/@left-offset"/>
+ <eval expected="-2000" xpath="//flow/block[4]/block[3]/@top-offset"/>
+ <eval expected="(solid,#c0c0c0,4000,collapse-outer)" xpath="//flow/block[4]/block[3]/@border-before"/>
+ <eval expected="(solid,#800080,4000,collapse-inner)" xpath="//flow/block[4]/block[3]/@border-start"/>
+ <eval expected="(solid,#808000,10000,collapse-outer)" xpath="//flow/block[4]/block[3]/@border-end"/>
+ <eval expected="87000" xpath="//flow/block[4]/block[4]/@ipd"/>
+ <eval expected="113000" xpath="//flow/block[4]/block[4]/@ipda"/>
+ <eval expected="67600" xpath="//flow/block[4]/block[4]/@bpd"/>
+ <eval expected="71600" xpath="//flow/block[4]/block[4]/@bpda"/>
+ <eval expected="108000" xpath="//flow/block[4]/block[4]/@left-offset"/>
+ <eval expected="26400" xpath="//flow/block[4]/block[4]/@top-offset"/>
+ <eval expected="(solid,#800080,4000,collapse-outer)" xpath="//flow/block[4]/block[4]/@border-after"/>
+ <eval expected="(solid,#808000,16000,collapse-inner)" xpath="//flow/block[4]/block[4]/@border-start"/>
+ <eval expected="(solid,#808000,10000,collapse-outer)" xpath="//flow/block[4]/block[4]/@border-end"/>
+ <eval expected="67000" xpath="//flow/block[4]/block[5]/@ipd"/>
+ <eval expected="87000" xpath="//flow/block[4]/block[5]/@ipda"/>
+ <eval expected="72000" xpath="//flow/block[4]/block[5]/@bpd"/>
+ <eval expected="92000" xpath="//flow/block[4]/block[5]/@bpda"/>
+ <eval expected="118000" xpath="//flow/block[4]/block[5]/@left-offset"/>
+ <eval expected="2000" xpath="//flow/block[4]/block[5]/@top-offset"/>
+
+ <!-- table 3 -->
+ <eval expected="68200" xpath="//flow/block[6]/@bpd"/>
+ <eval expected="68200" xpath="//flow/block[6]/@bpda"/>
+ <!-- cell 1.1 -->
+ <eval expected="99000" xpath="//flow/block[6]/block[1]/@ipd"/>
+ <eval expected="101000" xpath="//flow/block[6]/block[1]/@ipda"/>
+ <eval expected="26400" xpath="//flow/block[6]/block[1]/@bpd"/>
+ <eval expected="32400" xpath="//flow/block[6]/block[1]/@bpda"/>
+ <eval expected="1000" xpath="//flow/block[6]/block[1]/@left-offset"/>
+ <eval expected="-1000" xpath="//flow/block[6]/block[1]/@top-offset"/>
+ <eval expected="(solid,#000000,2000,collapse-outer)" xpath="//flow/block[6]/block[1]/@border-before"/>
+ <eval expected="(solid,#0000ff,4000,collapse-inner)" xpath="//flow/block[6]/block[1]/@border-after"/>
+ <eval expected="(solid,#ff0000,2000,collapse-outer)" xpath="//flow/block[6]/block[1]/@border-start"/>
+ <eval expected="99000" xpath="//flow/block[6]/block[2]/@ipd"/>
+ <eval expected="101000" xpath="//flow/block[6]/block[2]/@ipda"/>
+ <eval expected="23400" xpath="//flow/block[6]/block[2]/@bpd"/>
+ <eval expected="35400" xpath="//flow/block[6]/block[2]/@bpda"/>
+ <eval expected="100000" xpath="//flow/block[6]/block[2]/@left-offset"/>
+ <eval expected="-1000" xpath="//flow/block[6]/block[2]/@top-offset"/>
+ <eval expected="(solid,#000000,2000,collapse-outer)" xpath="//flow/block[6]/block[2]/@border-before"/>
+ <eval expected="(solid,#000000,10000,collapse-inner)" xpath="//flow/block[6]/block[2]/@border-after"/>
+ <eval expected="(solid,#008080,2000,collapse-outer)" xpath="//flow/block[6]/block[2]/@border-end"/>
+ <eval expected="185000" xpath="//flow/block[6]/block[3]/@ipd"/>
+ <eval expected="198000" xpath="//flow/block[6]/block[3]/@ipda"/>
+ <eval expected="14400" xpath="//flow/block[6]/block[3]/@bpd"/>
+ <eval expected="23400" xpath="//flow/block[6]/block[3]/@bpda"/>
+ <eval expected="7000" xpath="//flow/block[6]/block[3]/@left-offset"/>
+ <eval expected="1000" xpath="//flow/block[6]/block[3]/@top-offset"/>
+ <!-- cell 2.1 -->
+ <eval expected="92000" xpath="//flow/block[6]/block[4]/@ipd"/>
+ <eval expected="108000" xpath="//flow/block[6]/block[4]/@ipda"/>
+ <eval expected="33800" xpath="//flow/block[6]/block[4]/@bpd"/>
+ <eval expected="43800" xpath="//flow/block[6]/block[4]/@bpda"/>
+ <eval expected="3000" xpath="//flow/block[6]/block[4]/@left-offset"/>
+ <eval expected="27400" xpath="//flow/block[6]/block[4]/@top-offset"/>
+ <eval expected="(solid,#0000ff,4000,collapse-inner)" xpath="//flow/block[6]/block[4]/@border-before"/>
+ <eval expected="(solid,#000080,6000,collapse-outer)" xpath="//flow/block[6]/block[4]/@border-after"/>
+ <eval expected="(solid,#800080,6000,collapse-outer)" xpath="//flow/block[6]/block[4]/@border-start"/>
+ <eval expected="(solid,#ff0000,10000,collapse-inner)" xpath="//flow/block[6]/block[4]/@border-end"/>
+ <!-- cell 2.2 -->
+ <eval expected="90000" xpath="//flow/block[6]/block[5]/@ipd"/>
+ <eval expected="110000" xpath="//flow/block[6]/block[5]/@ipda"/>
+ <eval expected="28800" xpath="//flow/block[6]/block[5]/@bpd"/>
+ <eval expected="48800" xpath="//flow/block[6]/block[5]/@bpda"/>
+ <eval expected="105000" xpath="//flow/block[6]/block[5]/@left-offset"/>
+ <eval expected="24400" xpath="//flow/block[6]/block[5]/@top-offset"/>
+ <eval expected="(solid,#000000,10000,collapse-inner)" xpath="//flow/block[6]/block[5]/@border-before"/>
+ <eval expected="(solid,#c0c0c0,10000,collapse-outer)" xpath="//flow/block[6]/block[5]/@border-after"/>
+ <eval expected="(solid,#ff0000,10000,collapse-inner)" xpath="//flow/block[6]/block[5]/@border-start"/>
+ <eval expected="(solid,#808000,10000,collapse-outer)" xpath="//flow/block[6]/block[5]/@border-end"/>
+
+ <!-- table 4 -->
+ <eval expected="92200" xpath="//flow/block[8]/@bpd"/>
+ <eval expected="92200" xpath="//flow/block[8]/@bpda"/>
+ <!-- cell 1.1 -->
+ <eval expected="88000" xpath="//flow/block[8]/block[1]/@ipd"/>
+ <eval expected="112000" xpath="//flow/block[8]/block[1]/@ipda"/>
+ <eval expected="28800" xpath="//flow/block[8]/block[1]/@bpd"/>
+ <eval expected="55800" xpath="//flow/block[8]/block[1]/@bpda"/>
+ <eval expected="6000" xpath="//flow/block[8]/block[1]/@left-offset"/>
+ <eval expected="-6000" xpath="//flow/block[8]/block[1]/@top-offset"/>
+ <eval expected="(solid,#000000,12000,collapse-outer)" xpath="//flow/block[8]/block[1]/@border-before"/>
+ <eval expected="(solid,#c0c0c0,15000,collapse-inner)" xpath="//flow/block[8]/block[1]/@border-after"/>
+ <eval expected="(solid,#ff0000,12000,collapse-outer)" xpath="//flow/block[8]/block[1]/@border-start"/>
+ <eval expected="(solid,#008080,12000,collapse-inner)" xpath="//flow/block[8]/block[1]/@border-end"/>
+ <!-- cell 1.2 -->
+ <eval expected="92000" xpath="//flow/block[8]/block[2]/@ipd"/>
+ <eval expected="108000" xpath="//flow/block[8]/block[2]/@ipda"/>
+ <eval expected="32800" xpath="//flow/block[8]/block[2]/@bpd"/>
+ <eval expected="51800" xpath="//flow/block[8]/block[2]/@bpda"/>
+ <eval expected="106000" xpath="//flow/block[8]/block[2]/@left-offset"/>
+ <eval expected="-2000" xpath="//flow/block[8]/block[2]/@top-offset"/>
+ <eval expected="(solid,#c0c0c0,4000,collapse-outer)" xpath="//flow/block[8]/block[2]/@border-before"/>
+ <eval expected="(solid,#c0c0c0,15000,collapse-inner)" xpath="//flow/block[8]/block[2]/@border-after"/>
+ <eval expected="(solid,#008080,12000,collapse-inner)" xpath="//flow/block[8]/block[2]/@border-start"/>
+ <eval expected="(solid,#800080,4000,collapse-outer)" xpath="//flow/block[8]/block[2]/@border-end"/>
+ <!-- cell 2.1 -->
+ <eval expected="97000" xpath="//flow/block[8]/block[3]/@ipd"/>
+ <eval expected="103000" xpath="//flow/block[8]/block[3]/@ipda"/>
+ <eval expected="39400" xpath="//flow/block[8]/block[3]/@bpd"/>
+ <eval expected="60400" xpath="//flow/block[8]/block[3]/@bpda"/>
+ <eval expected="3000" xpath="//flow/block[8]/block[3]/@left-offset"/>
+ <eval expected="34800" xpath="//flow/block[8]/block[3]/@top-offset"/>
+ <eval expected="(solid,#c0c0c0,15000,collapse-inner)" xpath="//flow/block[8]/block[3]/@border-before"/>
+ <eval expected="(solid,#000080,6000,collapse-outer)" xpath="//flow/block[8]/block[3]/@border-after"/>
+ <eval expected="(solid,#800080,6000,collapse-outer)" xpath="//flow/block[8]/block[3]/@border-start"/>
+ <eval expected="97000" xpath="//flow/block[8]/block[4]/@ipd"/>
+ <eval expected="103000" xpath="//flow/block[8]/block[4]/@ipda"/>
+ <eval expected="39400" xpath="//flow/block[8]/block[4]/@bpd"/>
+ <eval expected="60400" xpath="//flow/block[8]/block[4]/@bpda"/>
+ <eval expected="100000" xpath="//flow/block[8]/block[4]/@left-offset"/>
+ <eval expected="34800" xpath="//flow/block[8]/block[4]/@top-offset"/>
+ <eval expected="(solid,#c0c0c0,15000,collapse-inner)" xpath="//flow/block[8]/block[4]/@border-before"/>
+ <eval expected="(solid,#000080,6000,collapse-outer)" xpath="//flow/block[8]/block[4]/@border-after"/>
+ <eval expected="(solid,#808000,6000,collapse-outer)" xpath="//flow/block[8]/block[4]/@border-end"/>
+ <eval expected="144000" xpath="//flow/block[8]/block[5]/@ipd"/>
+ <eval expected="194000" xpath="//flow/block[8]/block[5]/@ipda"/>
+ <eval expected="14400" xpath="//flow/block[8]/block[5]/@bpd"/>
+ <eval expected="39400" xpath="//flow/block[8]/block[5]/@bpda"/>
+ <eval expected="23000" xpath="//flow/block[8]/block[5]/@left-offset"/>
+ <eval expected="49800" xpath="//flow/block[8]/block[5]/@top-offset"/>
+
+ </checks>
+</testcase>
diff --git a/test/layoutengine/standard-testcases/table_border-collapse_collapse_spans_2.xml b/test/layoutengine/standard-testcases/table_border-collapse_collapse_spans_2.xml
new file mode 100644
index 000000000..4579307ec
--- /dev/null
+++ b/test/layoutengine/standard-testcases/table_border-collapse_collapse_spans_2.xml
@@ -0,0 +1,689 @@
+<?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 tables with collapsing-border model and complex spanning cells.
+ </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="16cm" page-height="30cm" margin="20pt">
+ <fo:region-body margin="0pt"/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+ <fo:page-sequence master-reference="normal">
+ <fo:flow flow-name="xsl-region-body">
+
+ <fo:block>Before tables</fo:block>
+ <!-- table 1 -->
+ <fo:table table-layout="fixed" width="400pt" border-collapse="collapse">
+ <fo:table-column number-columns-repeated="4" column-width="proportional-column-width(1)"/>
+ <fo:table-body>
+ <fo:table-row>
+ <fo:table-cell
+ border-top ="4pt solid black"
+ border-bottom="4pt solid black"
+ border-left ="4pt solid black"
+ border-right ="4pt solid black">
+ <fo:block>Cell 1.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell
+ border-top ="6pt solid silver"
+ border-bottom="6pt hidden silver"
+ border-left ="6pt solid silver"
+ border-right ="6pt solid silver">
+ <fo:block>Cell 1.2</fo:block>
+ </fo:table-cell>
+ <fo:table-cell
+ border-top ="5pt solid green"
+ border-bottom="5pt solid green"
+ border-left ="5pt solid green"
+ border-right ="5pt solid green">
+ <fo:block>Cell 1.3 Cell 1.3 Cell 1.3 Cell 1.3</fo:block>
+ </fo:table-cell>
+ <fo:table-cell number-rows-spanned="2"
+ border-top ="15pt solid navy"
+ border-bottom="30pt solid navy"
+ border-left ="15pt solid navy"
+ border-right =" 5pt solid navy">
+ <fo:block>Cell 1.4</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell
+ border-top ="12pt solid maroon"
+ border-bottom=" 6pt double maroon"
+ border-left =" 6pt solid maroon"
+ border-right =" 6pt solid maroon">
+ <fo:block>Cell 2.1 Cell 2.1 Cell 2.1 Cell 2.1 Cell 2.1 Cell 2.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell number-rows-spanned="2" number-columns-spanned="2"
+ background-color="yellow"
+ border-top ="4pt solid red"
+ border-bottom="4pt dashed red"
+ border-left ="10pt dashed red"
+ border-right ="4pt double red">
+ <fo:block>Cell 2.2</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell
+ border-top ="6pt double fuchsia"
+ border-bottom="6pt inset fuchsia"
+ border-left ="30pt solid fuchsia"
+ border-right ="6pt inset fuchsia">
+ <fo:block>Cell 3.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell
+ border-top ="5pt ridge maroon"
+ border-bottom="6pt solid maroon"
+ border-left ="10pt none maroon"
+ border-right ="6pt none maroon">
+ <fo:block>Cell 3.4</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell
+ border-top =" 6pt inset black"
+ border-bottom=" 4pt solid black"
+ border-left =" 4pt solid black"
+ border-right ="40pt solid black">
+ <fo:block>Cell 4.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell
+ border-top =" 5pt outset silver"
+ border-bottom="60pt solid silver"
+ border-left =" 6pt solid silver"
+ border-right =" 6pt none silver">
+ <fo:block>Cell 4.2 Cell 4.2</fo:block>
+ </fo:table-cell>
+ <fo:table-cell number-rows-spanned="3" number-columns-spanned="2"
+ background-color="yellow"
+ border-top ="40pt double green"
+ border-bottom="5pt solid green"
+ border-left ="6pt solid green"
+ border-right ="5pt dashed green">
+ <fo:block>Cell 4.3 Cell 4.3 Cell 4.3 Cell 4.3 Cell 4.3 Cell 4.3</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell
+ border-top ="4pt solid black"
+ border-bottom="4pt solid black"
+ border-left ="4pt solid black"
+ border-right ="4pt solid black">
+ <fo:block>Cell 5.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell
+ border-top ="6pt solid silver"
+ border-bottom="6pt hidden silver"
+ border-left ="6pt solid silver"
+ border-right ="60pt solid silver">
+ <fo:block>Cell 5.2</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell
+ border-top ="12pt solid maroon"
+ border-bottom=" 6pt double maroon"
+ border-left =" 6pt solid maroon"
+ border-right =" 6pt solid maroon">
+ <fo:block>Cell 6.1 Cell 6.1 Cell 6.1 Cell 6.1 Cell 6.1 Cell 6.1</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+
+ <fo:block space-before="10pt" space-after="10pt">Between tables</fo:block>
+ <!-- table 2 -->
+ <fo:table table-layout="fixed" width="400pt" border-collapse="collapse">
+ <fo:table-column number-columns-repeated="4" column-width="proportional-column-width(1)"/>
+ <fo:table-body>
+ <fo:table-row>
+ <fo:table-cell
+ border-top="12pt solid black"
+ border-bottom="12pt solid blue"
+ border-left="12pt solid red"
+ border-right="4pt solid teal">
+ <fo:block>Cell 1.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell
+ padding="10pt"
+ border-top="4pt solid silver"
+ border-bottom="5pt solid purple"
+ border-left="5pt solid purple"
+ border-right="10pt solid olive">
+ <fo:block>Cell 1.2 Cell 1.2</fo:block>
+ </fo:table-cell>
+ <fo:table-cell
+ border-top="6pt solid black"
+ border-bottom="6pt solid navy"
+ border-left="6pt solid purple"
+ border-right="16pt solid red">
+ <fo:block>Cell 1.3</fo:block>
+ </fo:table-cell>
+ <fo:table-cell
+ border-top="0pt solid black"
+ border-bottom="10pt solid blue"
+ border-left="12pt solid red"
+ border-right="4pt solid teal">
+ <fo:block>Cell 1.4</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell
+ border-top="10pt solid black"
+ border-bottom="4pt solid blue"
+ border-left="12pt solid purple"
+ border-right="4pt solid teal">
+ <fo:block>Cell 2.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell number-rows-spanned="3" number-columns-spanned="3"
+ background-color="yellow"
+ padding="15pt"
+ border-top="4pt solid silver"
+ border-bottom="12pt solid navy"
+ border-left="2pt solid purple"
+ border-right="4pt solid olive">
+ <fo:block>Cell 2.2</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell
+ border-top="3pt solid black"
+ border-bottom="10pt solid silver"
+ border-left="3pt solid red"
+ border-right="10pt solid teal">
+ <fo:block>Cell 3.1 Cell 3.1 Cell 3.1 Cell 3.1</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell
+ border-top="6pt solid silver"
+ border-bottom="6pt solid navy"
+ border-left="6pt solid purple"
+ border-right="16pt solid olive">
+ <fo:block>Cell 4.1</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell
+ border-top="12pt solid black"
+ border-bottom="12pt solid blue"
+ border-left="12pt solid red"
+ border-right="12pt solid teal">
+ <fo:block>Cell 5.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell
+ border-top="4pt solid silver"
+ border-bottom="4pt solid purple"
+ border-left="4pt solid purple"
+ border-right="10pt solid olive">
+ <fo:block>Cell 5.2 Cell 5.2</fo:block>
+ </fo:table-cell>
+ <fo:table-cell
+ border-top="30pt solid silver"
+ border-bottom="6pt solid navy"
+ border-left="6pt solid purple"
+ border-right="16pt solid olive">
+ <fo:block>Cell 5.3</fo:block>
+ </fo:table-cell>
+ <fo:table-cell
+ padding="20pt"
+ border-top="10pt solid black"
+ border-bottom="4pt solid blue"
+ border-left="12pt solid red"
+ border-right="4pt solid teal">
+ <fo:block>Cell 5.4</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+
+ <fo:block>After the tables</fo:block>
+ </fo:flow>
+ </fo:page-sequence>
+ </fo:root>
+ </fo>
+ <checks>
+
+ <!-- table 1 -->
+ <eval expected="293300" xpath="//flow/block[2]/@bpd"/>
+ <eval expected="293300" xpath="//flow/block[2]/@bpda"/>
+ <eval expected="95000" xpath="//flow/block[2]/block[1]/@ipd"/>
+ <eval expected="105000" xpath="//flow/block[2]/block[1]/@ipda"/>
+ <eval expected="25800" xpath="//flow/block[2]/block[1]/@bpd"/>
+ <eval expected="41800" xpath="//flow/block[2]/block[1]/@bpda"/>
+ <eval expected="2000" xpath="//flow/block[2]/block[1]/@left-offset"/>
+ <eval expected="-2000" xpath="//flow/block[2]/block[1]/@top-offset"/>
+ <eval expected="(solid,#000000,4000,collapse-outer)" xpath="//flow/block[2]/block[1]/@border-before"/>
+ <eval expected="(solid,#800000,12000,collapse-inner)" xpath="//flow/block[2]/block[1]/@border-after"/>
+ <eval expected="(solid,#000000,4000,collapse-outer)" xpath="//flow/block[2]/block[1]/@border-start"/>
+ <eval expected="(solid,#c0c0c0,6000,collapse-inner)" xpath="//flow/block[2]/block[1]/@border-end"/>
+ <eval expected="94000" xpath="//flow/block[2]/block[2]/@ipd"/>
+ <eval expected="106000" xpath="//flow/block[2]/block[2]/@ipda"/>
+ <eval expected="30800" xpath="//flow/block[2]/block[2]/@bpd"/>
+ <eval expected="36800" xpath="//flow/block[2]/block[2]/@bpda"/>
+ <eval expected="103000" xpath="//flow/block[2]/block[2]/@left-offset"/>
+ <eval expected="-3000" xpath="//flow/block[2]/block[2]/@top-offset"/>
+ <eval expected="(solid,#c0c0c0,6000,collapse-outer)" xpath="//flow/block[2]/block[2]/@border-before"/>
+ <eval expected="(solid,#c0c0c0,6000,collapse-inner)" xpath="//flow/block[2]/block[2]/@border-start"/>
+ <eval expected="(solid,#c0c0c0,6000,collapse-inner)" xpath="//flow/block[2]/block[2]/@border-end"/>
+ <eval expected="89500" xpath="//flow/block[2]/block[3]/@ipd"/>
+ <eval expected="110500" xpath="//flow/block[2]/block[3]/@ipda"/>
+ <eval expected="28800" xpath="//flow/block[2]/block[3]/@bpd"/>
+ <eval expected="38800" xpath="//flow/block[2]/block[3]/@bpda"/>
+ <eval expected="203000" xpath="//flow/block[2]/block[3]/@left-offset"/>
+ <eval expected="-2500" xpath="//flow/block[2]/block[3]/@top-offset"/>
+ <eval expected="(solid,#008000,5000,collapse-outer)" xpath="//flow/block[2]/block[3]/@border-before"/>
+ <eval expected="(solid,#008000,5000,collapse-inner)" xpath="//flow/block[2]/block[3]/@border-after"/>
+ <eval expected="(solid,#c0c0c0,6000,collapse-inner)" xpath="//flow/block[2]/block[3]/@border-start"/>
+ <eval expected="(solid,#000080,15000,collapse-inner)" xpath="//flow/block[2]/block[3]/@border-end"/>
+ <eval expected="92000" xpath="//flow/block[2]/block[4]/@ipd"/>
+ <eval expected="108000" xpath="//flow/block[2]/block[4]/@ipda"/>
+ <eval expected="43200" xpath="//flow/block[2]/block[4]/@bpd"/>
+ <eval expected="61200" xpath="//flow/block[2]/block[4]/@bpda"/>
+ <eval expected="3000" xpath="//flow/block[2]/block[4]/@left-offset"/>
+ <eval expected="27800" xpath="//flow/block[2]/block[4]/@top-offset"/>
+ <eval expected="(solid,#800000,12000,collapse-inner)" xpath="//flow/block[2]/block[4]/@border-before"/>
+ <eval expected="(double,#800000,6000,collapse-inner)" xpath="//flow/block[2]/block[4]/@border-after"/>
+ <eval expected="(solid,#800000,6000,collapse-outer)" xpath="//flow/block[2]/block[4]/@border-start"/>
+ <eval expected="(dashed,#ff0000,10000,collapse-inner)" xpath="//flow/block[2]/block[4]/@border-end"/>
+ <eval expected="90000" xpath="//flow/block[2]/block[5]/@ipd"/>
+ <eval expected="110000" xpath="//flow/block[2]/block[5]/@ipda"/>
+ <eval expected="26300" xpath="//flow/block[2]/block[5]/@bpd"/>
+ <eval expected="41300" xpath="//flow/block[2]/block[5]/@bpda"/>
+ <eval expected="307500" xpath="//flow/block[2]/block[5]/@left-offset"/>
+ <eval expected="-7500" xpath="//flow/block[2]/block[5]/@top-offset"/>
+ <eval expected="(solid,#000080,15000,collapse-outer)" xpath="//flow/block[2]/block[5]/@border-before"/>
+ <eval expected="(solid,#000080,15000,collapse-inner)" xpath="//flow/block[2]/block[5]/@border-start"/>
+ <eval expected="90000" xpath="//flow/block[2]/block[6]/@ipd"/>
+ <eval expected="110000" xpath="//flow/block[2]/block[6]/@ipda"/>
+ <eval expected="37200" xpath="//flow/block[2]/block[6]/@bpd"/>
+ <eval expected="67200" xpath="//flow/block[2]/block[6]/@bpda"/>
+ <eval expected="307500" xpath="//flow/block[2]/block[6]/@left-offset"/>
+ <eval expected="33800" xpath="//flow/block[2]/block[6]/@top-offset"/>
+ <eval expected="(solid,#000080,30000,collapse-inner)" xpath="//flow/block[2]/block[6]/@border-after"/>
+ <eval expected="(solid,#000080,15000,collapse-inner)" xpath="//flow/block[2]/block[6]/@border-start"/>
+ <eval expected="90000" xpath="//flow/block[2]/block[7]/@ipd"/>
+ <eval expected="90000" xpath="//flow/block[2]/block[7]/@ipda"/>
+ <eval expected="63500" xpath="//flow/block[2]/block[7]/@bpd"/>
+ <eval expected="63500" xpath="//flow/block[2]/block[7]/@bpda"/>
+ <eval expected="307500" xpath="//flow/block[2]/block[7]/@left-offset"/>
+ <eval expected="7500" xpath="//flow/block[2]/block[7]/@top-offset"/>
+ <!--
+ <eval expected="80000" xpath="//flow/block[2]/block[8]/@ipd"/>
+ <eval expected="120000" xpath="//flow/block[2]/block[8]/@ipda"/>
+ -->
+ <eval expected="43400" xpath="//flow/block[2]/block[8]/@bpd"/>
+ <eval expected="55400" xpath="//flow/block[2]/block[8]/@bpda"/>
+ <eval expected="15000" xpath="//flow/block[2]/block[8]/@left-offset"/>
+ <eval expected="83000" xpath="//flow/block[2]/block[8]/@top-offset"/>
+ <eval expected="(double,#ff00ff,6000,collapse-inner)" xpath="//flow/block[2]/block[8]/@border-before"/>
+ <eval expected="(inset,#ff00ff,6000,collapse-inner)" xpath="//flow/block[2]/block[8]/@border-after"/>
+ <eval expected="(solid,#ff00ff,30000,collapse-outer)" xpath="//flow/block[2]/block[8]/@border-start"/>
+ <!--
+ <eval expected="(dashed,#ff0000,10000,collapse-inner)" xpath="//flow/block[2]/block[8]/@border-end"/>
+ -->
+ <eval expected="95000" xpath="//flow/block[2]/block[9]/@ipd"/>
+ <eval expected="105000" xpath="//flow/block[2]/block[9]/@ipda"/>
+ <eval expected="52200" xpath="//flow/block[2]/block[9]/@bpd"/>
+ <eval expected="52200" xpath="//flow/block[2]/block[9]/@bpda"/>
+ <eval expected="105000" xpath="//flow/block[2]/block[9]/@left-offset"/>
+ <eval expected="33800" xpath="//flow/block[2]/block[9]/@top-offset"/>
+ <eval expected="(dashed,#ff0000,10000,collapse-inner)" xpath="//flow/block[2]/block[9]/@border-start"/>
+ <!--
+ <eval expected="92500" xpath="//flow/block[2]/block[10]/@ipd"/>
+ <eval expected="107500" xpath="//flow/block[2]/block[10]/@ipda"/>
+ -->
+ <eval expected="49700" xpath="//flow/block[2]/block[10]/@bpd"/>
+ <eval expected="54700" xpath="//flow/block[2]/block[10]/@bpda"/>
+ <eval expected="200000" xpath="//flow/block[2]/block[10]/@left-offset"/>
+ <eval expected="31300" xpath="//flow/block[2]/block[10]/@top-offset"/>
+ <eval expected="(solid,#008000,5000,collapse-inner)" xpath="//flow/block[2]/block[10]/@border-before"/>
+ <!--
+ <eval expected="(solid,#000080,15000,collapse-inner)" xpath="//flow/block[2]/block[10]/@border-end"/>
+ -->
+ <eval expected="95000" xpath="//flow/block[2]/block[11]/@ipd"/>
+ <eval expected="105000" xpath="//flow/block[2]/block[11]/@ipda"/>
+ <eval expected="46900" xpath="//flow/block[2]/block[11]/@bpd"/>
+ <eval expected="51900" xpath="//flow/block[2]/block[11]/@bpda"/>
+ <eval expected="105000" xpath="//flow/block[2]/block[11]/@left-offset"/>
+ <eval expected="86000" xpath="//flow/block[2]/block[11]/@top-offset"/>
+ <eval expected="(outset,#c0c0c0,5000,collapse-inner)" xpath="//flow/block[2]/block[11]/@border-after"/>
+ <eval expected="(dashed,#ff0000,10000,collapse-inner)" xpath="//flow/block[2]/block[11]/@border-start"/>
+ <eval expected="98000" xpath="//flow/block[2]/block[12]/@ipd"/>
+ <eval expected="102000" xpath="//flow/block[2]/block[12]/@ipda"/>
+ <eval expected="29400" xpath="//flow/block[2]/block[12]/@bpd"/>
+ <eval expected="69400" xpath="//flow/block[2]/block[12]/@bpda"/>
+ <eval expected="200000" xpath="//flow/block[2]/block[12]/@left-offset"/>
+ <eval expected="86000" xpath="//flow/block[2]/block[12]/@top-offset"/>
+ <eval expected="(double,#008000,40000,collapse-inner)" xpath="//flow/block[2]/block[12]/@border-after"/>
+ <eval expected="(double,#ff0000,4000,collapse-inner)" xpath="//flow/block[2]/block[12]/@border-end"/>
+ <!--
+ <eval expected="187500" xpath="//flow/block[2]/block[13]/@ipd"/>
+ <eval expected="187500" xpath="//flow/block[2]/block[13]/@ipda"/>
+ -->
+ <eval expected="79100" xpath="//flow/block[2]/block[13]/@bpd"/>
+ <eval expected="79100" xpath="//flow/block[2]/block[13]/@bpda"/>
+ <eval expected="105000" xpath="//flow/block[2]/block[13]/@left-offset"/>
+ <eval expected="36300" xpath="//flow/block[2]/block[13]/@top-offset"/>
+ <eval expected="98000" xpath="//flow/block[2]/block[14]/@ipd"/>
+ <eval expected="102000" xpath="//flow/block[2]/block[14]/@ipda"/>
+ <eval expected="14400" xpath="//flow/block[2]/block[14]/@bpd"/>
+ <eval expected="84400" xpath="//flow/block[2]/block[14]/@bpda"/>
+ <eval expected="302000" xpath="//flow/block[2]/block[14]/@left-offset"/>
+ <eval expected="71000" xpath="//flow/block[2]/block[14]/@top-offset"/>
+ <eval expected="(solid,#000080,30000,collapse-inner)" xpath="//flow/block[2]/block[14]/@border-before"/>
+ <eval expected="(double,#008000,40000,collapse-inner)" xpath="//flow/block[2]/block[14]/@border-after"/>
+ <eval expected="(double,#ff0000,4000,collapse-inner)" xpath="//flow/block[2]/block[14]/@border-start"/>
+ <eval expected="78000" xpath="//flow/block[2]/block[15]/@ipd"/>
+ <eval expected="122000" xpath="//flow/block[2]/block[15]/@ipda"/>
+ <eval expected="56300" xpath="//flow/block[2]/block[15]/@bpd"/>
+ <eval expected="66300" xpath="//flow/block[2]/block[15]/@bpda"/>
+ <eval expected="2000" xpath="//flow/block[2]/block[15]/@left-offset"/>
+ <eval expected="132400" xpath="//flow/block[2]/block[15]/@top-offset"/>
+ <eval expected="(inset,#000000,6000,collapse-inner)" xpath="//flow/block[2]/block[15]/@border-before"/>
+ <eval expected="(solid,#000000,4000,collapse-inner)" xpath="//flow/block[2]/block[15]/@border-after"/>
+ <eval expected="(solid,#000000,4000,collapse-outer)" xpath="//flow/block[2]/block[15]/@border-start"/>
+ <eval expected="(solid,#000000,40000,collapse-inner)" xpath="//flow/block[2]/block[15]/@border-end"/>
+ <eval expected="77000" xpath="//flow/block[2]/block[16]/@ipd"/>
+ <eval expected="123000" xpath="//flow/block[2]/block[16]/@ipda"/>
+ <eval expected="28800" xpath="//flow/block[2]/block[16]/@bpd"/>
+ <eval expected="93800" xpath="//flow/block[2]/block[16]/@bpda"/>
+ <eval expected="120000" xpath="//flow/block[2]/block[16]/@left-offset"/>
+ <eval expected="132900" xpath="//flow/block[2]/block[16]/@top-offset"/>
+ <eval expected="(outset,#c0c0c0,5000,collapse-inner)" xpath="//flow/block[2]/block[16]/@border-before"/>
+ <eval expected="(solid,#c0c0c0,60000,collapse-inner)" xpath="//flow/block[2]/block[16]/@border-after"/>
+ <eval expected="(solid,#000000,40000,collapse-inner)" xpath="//flow/block[2]/block[16]/@border-start"/>
+ <eval expected="(solid,#008000,6000,collapse-inner)" xpath="//flow/block[2]/block[16]/@border-end"/>
+ <eval expected="95000" xpath="//flow/block[2]/block[17]/@ipd"/>
+ <eval expected="105000" xpath="//flow/block[2]/block[17]/@ipda"/>
+ <eval expected="36400" xpath="//flow/block[2]/block[17]/@bpd"/>
+ <eval expected="52400" xpath="//flow/block[2]/block[17]/@bpda"/>
+ <eval expected="2000" xpath="//flow/block[2]/block[17]/@left-offset"/>
+ <eval expected="194700" xpath="//flow/block[2]/block[17]/@top-offset"/>
+ <eval expected="(solid,#000000,4000,collapse-inner)" xpath="//flow/block[2]/block[17]/@border-before"/>
+ <eval expected="(solid,#800000,12000,collapse-inner)" xpath="//flow/block[2]/block[17]/@border-after"/>
+ <eval expected="(solid,#000000,4000,collapse-outer)" xpath="//flow/block[2]/block[17]/@border-start"/>
+ <eval expected="(solid,#c0c0c0,6000,collapse-inner)" xpath="//flow/block[2]/block[17]/@border-end"/>
+ <eval expected="67000" xpath="//flow/block[2]/block[18]/@ipd"/>
+ <eval expected="133000" xpath="//flow/block[2]/block[18]/@ipda"/>
+ <eval expected="14400" xpath="//flow/block[2]/block[18]/@bpd"/>
+ <eval expected="74400" xpath="//flow/block[2]/block[18]/@bpda"/>
+ <eval expected="103000" xpath="//flow/block[2]/block[18]/@left-offset"/>
+ <eval expected="166700" xpath="//flow/block[2]/block[18]/@top-offset"/>
+ <eval expected="(solid,#c0c0c0,60000,collapse-inner)" xpath="//flow/block[2]/block[18]/@border-before"/>
+ <eval expected="(solid,#c0c0c0,6000,collapse-inner)" xpath="//flow/block[2]/block[18]/@border-start"/>
+ <eval expected="(solid,#c0c0c0,60000,collapse-inner)" xpath="//flow/block[2]/block[18]/@border-end"/>
+ <eval expected="94000" xpath="//flow/block[2]/block[19]/@ipd"/>
+ <eval expected="106000" xpath="//flow/block[2]/block[19]/@ipda"/>
+ <eval expected="43200" xpath="//flow/block[2]/block[19]/@bpd"/>
+ <eval expected="61200" xpath="//flow/block[2]/block[19]/@bpda"/>
+ <eval expected="3000" xpath="//flow/block[2]/block[19]/@left-offset"/>
+ <eval expected="235100" xpath="//flow/block[2]/block[19]/@top-offset"/>
+ <eval expected="(solid,#800000,12000,collapse-inner)" xpath="//flow/block[2]/block[19]/@border-before"/>
+ <eval expected="(double,#800000,6000,collapse-outer)" xpath="//flow/block[2]/block[19]/@border-after"/>
+ <eval expected="(solid,#800000,6000,collapse-outer)" xpath="//flow/block[2]/block[19]/@border-start"/>
+ <eval expected="(solid,#800000,6000,collapse-inner)" xpath="//flow/block[2]/block[19]/@border-end"/>
+ <!--
+ <eval expected="94000" xpath="//flow/block[2]/block[20]/@ipd"/>
+ <eval expected="106000" xpath="//flow/block[2]/block[20]/@ipda"/>
+ <eval expected="52200" xpath="//flow/block[2]/block[20]/@bpd"/>
+ <eval expected="52200" xpath="//flow/block[2]/block[20]/@bpda"/>
+ <eval expected="103000" xpath="//flow/block[2]/block[20]/@left-offset"/>
+ <eval expected="241100" xpath="//flow/block[2]/block[20]/@top-offset"/>
+ <eval expected="(double,#800000,0,collapse-outer)" xpath="//flow/block[2]/block[20]/@border-after"/>
+ <eval expected="(solid,#800000,6000,collapse-inner)" xpath="//flow/block[2]/block[20]/@border-start"/>
+ <eval expected="(solid,#008000,6000,collapse-inner)" xpath="//flow/block[2]/block[20]/@border-end"/>
+ -->
+ <eval expected="97000" xpath="//flow/block[2]/block[20]/@ipd"/>
+ <eval expected="103000" xpath="//flow/block[2]/block[20]/@ipda"/>
+ <eval expected="41300" xpath="//flow/block[2]/block[20]/@bpd"/>
+ <eval expected="81300" xpath="//flow/block[2]/block[20]/@bpda"/>
+ <eval expected="203000" xpath="//flow/block[2]/block[20]/@left-offset"/>
+ <eval expected="115400" xpath="//flow/block[2]/block[20]/@top-offset"/>
+ <eval expected="(double,#008000,40000,collapse-inner)" xpath="//flow/block[2]/block[20]/@border-before"/>
+ <eval expected="(solid,#008000,6000,collapse-inner)" xpath="//flow/block[2]/block[20]/@border-start"/>
+ <eval expected="97500" xpath="//flow/block[2]/block[21]/@ipd"/>
+ <eval expected="102500" xpath="//flow/block[2]/block[21]/@ipda"/>
+ <eval expected="41300" xpath="//flow/block[2]/block[21]/@bpd"/>
+ <eval expected="81300" xpath="//flow/block[2]/block[21]/@bpda"/>
+ <eval expected="300000" xpath="//flow/block[2]/block[21]/@left-offset"/>
+ <eval expected="115400" xpath="//flow/block[2]/block[21]/@top-offset"/>
+ <eval expected="(double,#008000,40000,collapse-inner)" xpath="//flow/block[2]/block[21]/@border-before"/>
+ <eval expected="(dashed,#008000,5000,collapse-outer)" xpath="//flow/block[2]/block[21]/@border-end"/>
+ <eval expected="70000" xpath="//flow/block[2]/block[22]/@ipd"/>
+ <eval expected="130000" xpath="//flow/block[2]/block[22]/@ipda"/>
+ <eval expected="44400" xpath="//flow/block[2]/block[22]/@bpd"/>
+ <eval expected="44400" xpath="//flow/block[2]/block[22]/@bpda"/>
+ <eval expected="230000" xpath="//flow/block[2]/block[22]/@left-offset"/>
+ <eval expected="196700" xpath="//flow/block[2]/block[22]/@top-offset"/>
+ <eval expected="(solid,#c0c0c0,60000,collapse-inner)" xpath="//flow/block[2]/block[22]/@border-start"/>
+ <eval expected="97500" xpath="//flow/block[2]/block[23]/@ipd"/>
+ <eval expected="102500" xpath="//flow/block[2]/block[23]/@ipda"/>
+ <eval expected="44400" xpath="//flow/block[2]/block[23]/@bpd"/>
+ <eval expected="44400" xpath="//flow/block[2]/block[23]/@bpda"/>
+ <eval expected="300000" xpath="//flow/block[2]/block[23]/@left-offset"/>
+ <eval expected="196700" xpath="//flow/block[2]/block[23]/@top-offset"/>
+ <eval expected="(dashed,#008000,5000,collapse-outer)" xpath="//flow/block[2]/block[23]/@border-end"/>
+ <eval expected="97000" xpath="//flow/block[2]/block[24]/@ipd"/>
+ <eval expected="103000" xpath="//flow/block[2]/block[24]/@ipda"/>
+ <eval expected="49700" xpath="//flow/block[2]/block[24]/@bpd"/>
+ <eval expected="54700" xpath="//flow/block[2]/block[24]/@bpda"/>
+ <eval expected="203000" xpath="//flow/block[2]/block[24]/@left-offset"/>
+ <eval expected="241100" xpath="//flow/block[2]/block[24]/@top-offset"/>
+ <eval expected="(solid,#008000,5000,collapse-outer)" xpath="//flow/block[2]/block[24]/@border-after"/>
+ <eval expected="(solid,#008000,6000,collapse-inner)" xpath="//flow/block[2]/block[24]/@border-start"/>
+ <eval expected="97500" xpath="//flow/block[2]/block[25]/@ipd"/>
+ <eval expected="102500" xpath="//flow/block[2]/block[25]/@ipda"/>
+ <eval expected="49700" xpath="//flow/block[2]/block[25]/@bpd"/>
+ <eval expected="54700" xpath="//flow/block[2]/block[25]/@bpda"/>
+ <eval expected="300000" xpath="//flow/block[2]/block[25]/@left-offset"/>
+ <eval expected="241100" xpath="//flow/block[2]/block[25]/@top-offset"/>
+ <eval expected="(solid,#008000,5000,collapse-outer)" xpath="//flow/block[2]/block[25]/@border-after"/>
+ <eval expected="(dashed,#008000,5000,collapse-outer)" xpath="//flow/block[2]/block[25]/@border-end"/>
+ <eval expected="167500" xpath="//flow/block[2]/block[26]/@ipd"/>
+ <eval expected="167500" xpath="//flow/block[2]/block[26]/@ipda"/>
+ <eval expected="135400" xpath="//flow/block[2]/block[26]/@bpd"/>
+ <eval expected="135400" xpath="//flow/block[2]/block[26]/@bpda"/>
+ <eval expected="230000" xpath="//flow/block[2]/block[26]/@left-offset"/>
+ <eval expected="155400" xpath="//flow/block[2]/block[26]/@top-offset"/>
+
+ <!-- table 2 -->
+ <eval expected="199300" xpath="//flow/block[4]/@bpd"/>
+ <eval expected="199300" xpath="//flow/block[4]/@bpda"/>
+ <eval expected="91500" xpath="//flow/block[4]/block[1]/@ipd"/>
+ <eval expected="108500" xpath="//flow/block[4]/block[1]/@ipda"/>
+ <eval expected="41300" xpath="//flow/block[4]/block[1]/@bpd"/>
+ <eval expected="65300" xpath="//flow/block[4]/block[1]/@bpda"/>
+ <eval expected="6000" xpath="//flow/block[4]/block[1]/@left-offset"/>
+ <eval expected="-6000" xpath="//flow/block[4]/block[1]/@top-offset"/>
+ <eval expected="(solid,#000000,12000,collapse-outer)" xpath="//flow/block[4]/block[1]/@border-before"/>
+ <eval expected="(solid,#0000ff,12000,collapse-inner)" xpath="//flow/block[4]/block[1]/@border-after"/>
+ <eval expected="(solid,#ff0000,12000,collapse-outer)" xpath="//flow/block[4]/block[1]/@border-start"/>
+ <eval expected="(solid,#800080,5000,collapse-inner)" xpath="//flow/block[4]/block[1]/@border-end"/>
+ <eval expected="72500" xpath="//flow/block[4]/block[2]/@ipd"/>
+ <eval expected="107500" xpath="//flow/block[4]/block[2]/@ipda"/>
+ <eval expected="28800" xpath="//flow/block[4]/block[2]/@bpd"/>
+ <eval expected="57800" xpath="//flow/block[4]/block[2]/@bpda"/>
+ <eval expected="112500" xpath="//flow/block[4]/block[2]/@left-offset"/>
+ <eval expected="-2000" xpath="//flow/block[4]/block[2]/@top-offset"/>
+ <eval expected="(solid,#c0c0c0,4000,collapse-outer)" xpath="//flow/block[4]/block[2]/@border-before"/>
+ <eval expected="(solid,#800080,5000,collapse-inner)" xpath="//flow/block[4]/block[2]/@border-after"/>
+ <eval expected="(solid,#800080,5000,collapse-inner)" xpath="//flow/block[4]/block[2]/@border-start"/>
+ <eval expected="(solid,#808000,10000,collapse-inner)" xpath="//flow/block[4]/block[2]/@border-end"/>
+ <eval expected="87000" xpath="//flow/block[4]/block[3]/@ipd"/>
+ <eval expected="113000" xpath="//flow/block[4]/block[3]/@ipda"/>
+ <eval expected="47300" xpath="//flow/block[4]/block[3]/@bpd"/>
+ <eval expected="59300" xpath="//flow/block[4]/block[3]/@bpda"/>
+ <eval expected="205000" xpath="//flow/block[4]/block[3]/@left-offset"/>
+ <eval expected="-3000" xpath="//flow/block[4]/block[3]/@top-offset"/>
+ <eval expected="(solid,#000000,6000,collapse-outer)" xpath="//flow/block[4]/block[3]/@border-before"/>
+ <eval expected="(solid,#000080,6000,collapse-inner)" xpath="//flow/block[4]/block[3]/@border-after"/>
+ <eval expected="(solid,#808000,10000,collapse-inner)" xpath="//flow/block[4]/block[3]/@border-start"/>
+ <eval expected="(solid,#ff0000,16000,collapse-inner)" xpath="//flow/block[4]/block[3]/@border-end"/>
+ <eval expected="90000" xpath="//flow/block[4]/block[4]/@ipd"/>
+ <eval expected="110000" xpath="//flow/block[4]/block[4]/@ipda"/>
+ <eval expected="48300" xpath="//flow/block[4]/block[4]/@bpd"/>
+ <eval expected="58300" xpath="//flow/block[4]/block[4]/@bpda"/>
+ <eval expected="308000" xpath="//flow/block[4]/block[4]/@left-offset"/>
+ <eval expected="(solid,#0000ff,10000,collapse-inner)" xpath="//flow/block[4]/block[4]/@border-after"/>
+ <eval expected="(solid,#ff0000,16000,collapse-inner)" xpath="//flow/block[4]/block[4]/@border-start"/>
+ <eval expected="(solid,#008080,4000,collapse-outer)" xpath="//flow/block[4]/block[4]/@border-end"/>
+ <eval expected="92000" xpath="//flow/block[4]/block[5]/@ipd"/>
+ <eval expected="108000" xpath="//flow/block[4]/block[5]/@ipda"/>
+ <eval expected="14400" xpath="//flow/block[4]/block[5]/@bpd"/>
+ <eval expected="30400" xpath="//flow/block[4]/block[5]/@bpda"/>
+ <eval expected="6000" xpath="//flow/block[4]/block[5]/@left-offset"/>
+ <eval expected="47300" xpath="//flow/block[4]/block[5]/@top-offset"/>
+ <eval expected="(solid,#0000ff,12000,collapse-inner)" xpath="//flow/block[4]/block[5]/@border-before"/>
+ <eval expected="(solid,#0000ff,4000,collapse-inner)" xpath="//flow/block[4]/block[5]/@border-after"/>
+ <eval expected="(solid,#800080,12000,collapse-outer)" xpath="//flow/block[4]/block[5]/@border-start"/>
+ <eval expected="(solid,#008080,4000,collapse-inner)" xpath="//flow/block[4]/block[5]/@border-end"/>
+ <eval expected="93500" xpath="//flow/block[4]/block[6]/@ipd"/>
+ <eval expected="106500" xpath="//flow/block[4]/block[6]/@ipda"/>
+ <eval expected="28800" xpath="//flow/block[4]/block[6]/@bpd"/>
+ <eval expected="42800" xpath="//flow/block[4]/block[6]/@bpda"/>
+ <eval expected="1500" xpath="//flow/block[4]/block[6]/@left-offset"/>
+ <eval expected="73700" xpath="//flow/block[4]/block[6]/@top-offset"/>
+ <eval expected="(solid,#0000ff,4000,collapse-inner)" xpath="//flow/block[4]/block[6]/@border-before"/>
+ <eval expected="(solid,#c0c0c0,10000,collapse-inner)" xpath="//flow/block[4]/block[6]/@border-after"/>
+ <eval expected="(solid,#ff0000,3000,collapse-outer)" xpath="//flow/block[4]/block[6]/@border-start"/>
+ <eval expected="(solid,#008080,10000,collapse-inner)" xpath="//flow/block[4]/block[6]/@border-end"/>
+ <eval expected="89000" xpath="//flow/block[4]/block[7]/@ipd"/>
+ <eval expected="111000" xpath="//flow/block[4]/block[7]/@ipda"/>
+ <eval expected="14400" xpath="//flow/block[4]/block[7]/@bpd"/>
+ <eval expected="36400" xpath="//flow/block[4]/block[7]/@bpda"/>
+ <eval expected="3000" xpath="//flow/block[4]/block[7]/@left-offset"/>
+ <eval expected="106500" xpath="//flow/block[4]/block[7]/@top-offset"/>
+ <eval expected="(solid,#c0c0c0,10000,collapse-inner)" xpath="//flow/block[4]/block[7]/@border-before"/>
+ <eval expected="(solid,#000000,12000,collapse-inner)" xpath="//flow/block[4]/block[7]/@border-after"/>
+ <eval expected="(solid,#800080,6000,collapse-outer)" xpath="//flow/block[4]/block[7]/@border-start"/>
+ <eval expected="(solid,#808000,16000,collapse-inner)" xpath="//flow/block[4]/block[7]/@border-end"/>
+ <eval expected="98000" xpath="//flow/block[4]/block[8]/@ipd"/>
+ <eval expected="102000" xpath="//flow/block[4]/block[8]/@ipda"/>
+ <eval expected="19900" xpath="//flow/block[4]/block[8]/@bpd"/>
+ <eval expected="24900" xpath="//flow/block[4]/block[8]/@bpda"/>
+ <eval expected="102000" xpath="//flow/block[4]/block[8]/@left-offset"/>
+ <eval expected="50800" xpath="//flow/block[4]/block[8]/@top-offset"/>
+ <eval expected="(solid,#800080,5000,collapse-inner)" xpath="//flow/block[4]/block[8]/@border-before"/>
+ <eval expected="(solid,#008080,4000,collapse-inner)" xpath="//flow/block[4]/block[8]/@border-start"/>
+ <eval expected="100000" xpath="//flow/block[4]/block[9]/@ipd"/>
+ <eval expected="100000" xpath="//flow/block[4]/block[9]/@ipda"/>
+ <eval expected="19400" xpath="//flow/block[4]/block[9]/@bpd"/>
+ <eval expected="25400" xpath="//flow/block[4]/block[9]/@bpda"/>
+ <eval expected="200000" xpath="//flow/block[4]/block[9]/@left-offset"/>
+ <eval expected="50300" xpath="//flow/block[4]/block[9]/@top-offset"/>
+ <eval expected="(solid,#000080,6000,collapse-inner)" xpath="//flow/block[4]/block[9]/@border-before"/>
+ <eval expected="98000" xpath="//flow/block[4]/block[10]/@ipd"/>
+ <eval expected="102000" xpath="//flow/block[4]/block[10]/@ipda"/>
+ <eval expected="17400" xpath="//flow/block[4]/block[10]/@bpd"/>
+ <eval expected="27400" xpath="//flow/block[4]/block[10]/@bpda"/>
+ <eval expected="300000" xpath="//flow/block[4]/block[10]/@left-offset"/>
+ <eval expected="48300" xpath="//flow/block[4]/block[10]/@top-offset"/>
+ <eval expected="(solid,#0000ff,10000,collapse-inner)" xpath="//flow/block[4]/block[10]/@border-before"/>
+ <eval expected="(solid,#808000,4000,collapse-outer)" xpath="//flow/block[4]/block[10]/@border-end"/>
+ <eval expected="95000" xpath="//flow/block[4]/block[11]/@ipd"/>
+ <eval expected="105000" xpath="//flow/block[4]/block[11]/@ipda"/>
+ <eval expected="35800" xpath="//flow/block[4]/block[11]/@bpd"/>
+ <eval expected="35800" xpath="//flow/block[4]/block[11]/@bpda"/>
+ <eval expected="105000" xpath="//flow/block[4]/block[11]/@left-offset"/>
+ <eval expected="75700" xpath="//flow/block[4]/block[11]/@top-offset"/>
+ <eval expected="(solid,#008080,10000,collapse-inner)" xpath="//flow/block[4]/block[11]/@border-start"/>
+ <eval expected="98000" xpath="//flow/block[4]/block[12]/@ipd"/>
+ <eval expected="102000" xpath="//flow/block[4]/block[12]/@ipda"/>
+ <eval expected="35800" xpath="//flow/block[4]/block[12]/@bpd"/>
+ <eval expected="35800" xpath="//flow/block[4]/block[12]/@bpda"/>
+ <eval expected="300000" xpath="//flow/block[4]/block[12]/@left-offset"/>
+ <eval expected="75700" xpath="//flow/block[4]/block[12]/@top-offset"/>
+ <eval expected="(solid,#808000,4000,collapse-outer)" xpath="//flow/block[4]/block[12]/@border-end"/>
+ <eval expected="92000" xpath="//flow/block[4]/block[13]/@ipd"/>
+ <eval expected="108000" xpath="//flow/block[4]/block[13]/@ipda"/>
+ <eval expected="19400" xpath="//flow/block[4]/block[13]/@bpd"/>
+ <eval expected="31400" xpath="//flow/block[4]/block[13]/@bpda"/>
+ <eval expected="108000" xpath="//flow/block[4]/block[13]/@left-offset"/>
+ <eval expected="111500" xpath="//flow/block[4]/block[13]/@top-offset"/>
+ <eval expected="(solid,#000080,12000,collapse-inner)" xpath="//flow/block[4]/block[13]/@border-after"/>
+ <eval expected="(solid,#808000,16000,collapse-inner)" xpath="//flow/block[4]/block[13]/@border-start"/>
+ <eval expected="100000" xpath="//flow/block[4]/block[14]/@ipd"/>
+ <eval expected="100000" xpath="//flow/block[4]/block[14]/@ipda"/>
+ <eval expected="10400" xpath="//flow/block[4]/block[14]/@bpd"/>
+ <eval expected="40400" xpath="//flow/block[4]/block[14]/@bpda"/>
+ <eval expected="200000" xpath="//flow/block[4]/block[14]/@left-offset"/>
+ <eval expected="111500" xpath="//flow/block[4]/block[14]/@top-offset"/>
+ <eval expected="(solid,#c0c0c0,30000,collapse-inner)" xpath="//flow/block[4]/block[14]/@border-after"/>
+ <eval expected="98000" xpath="//flow/block[4]/block[15]/@ipd"/>
+ <eval expected="102000" xpath="//flow/block[4]/block[15]/@ipda"/>
+ <eval expected="19400" xpath="//flow/block[4]/block[15]/@bpd"/>
+ <eval expected="31400" xpath="//flow/block[4]/block[15]/@bpda"/>
+ <eval expected="300000" xpath="//flow/block[4]/block[15]/@left-offset"/>
+ <eval expected="111500" xpath="//flow/block[4]/block[15]/@top-offset"/>
+ <eval expected="(solid,#000080,12000,collapse-inner)" xpath="//flow/block[4]/block[15]/@border-after"/>
+ <eval expected="(solid,#808000,4000,collapse-outer)" xpath="//flow/block[4]/block[15]/@border-end"/>
+ <eval expected="260000" xpath="//flow/block[4]/block[16]/@ipd"/>
+ <eval expected="290000" xpath="//flow/block[4]/block[16]/@ipda"/>
+ <eval expected="33600" xpath="//flow/block[4]/block[16]/@bpd"/>
+ <eval expected="63600" xpath="//flow/block[4]/block[16]/@bpda"/>
+ <eval expected="123000" xpath="//flow/block[4]/block[16]/@left-offset"/>
+ <eval expected="58300" xpath="//flow/block[4]/block[16]/@top-offset"/>
+ <eval expected="88000" xpath="//flow/block[4]/block[17]/@ipd"/>
+ <eval expected="112000" xpath="//flow/block[4]/block[17]/@ipda"/>
+ <eval expected="50400" xpath="//flow/block[4]/block[17]/@bpd"/>
+ <eval expected="74400" xpath="//flow/block[4]/block[17]/@bpda"/>
+ <eval expected="6000" xpath="//flow/block[4]/block[17]/@left-offset"/>
+ <eval expected="130900" xpath="//flow/block[4]/block[17]/@top-offset"/>
+ <eval expected="(solid,#000000,12000,collapse-inner)" xpath="//flow/block[4]/block[17]/@border-before"/>
+ <eval expected="(solid,#0000ff,12000,collapse-outer)" xpath="//flow/block[4]/block[17]/@border-after"/>
+ <eval expected="(solid,#ff0000,12000,collapse-outer)" xpath="//flow/block[4]/block[17]/@border-start"/>
+ <eval expected="(solid,#008080,12000,collapse-inner)" xpath="//flow/block[4]/block[17]/@border-end"/>
+ <eval expected="89000" xpath="//flow/block[4]/block[18]/@ipd"/>
+ <eval expected="111000" xpath="//flow/block[4]/block[18]/@ipda"/>
+ <eval expected="54400" xpath="//flow/block[4]/block[18]/@bpd"/>
+ <eval expected="70400" xpath="//flow/block[4]/block[18]/@bpda"/>
+ <eval expected="106000" xpath="//flow/block[4]/block[18]/@left-offset"/>
+ <eval expected="130900" xpath="//flow/block[4]/block[18]/@top-offset"/>
+ <eval expected="(solid,#000080,12000,collapse-inner)" xpath="//flow/block[4]/block[18]/@border-before"/>
+ <eval expected="(solid,#800080,4000,collapse-outer)" xpath="//flow/block[4]/block[18]/@border-after"/>
+ <eval expected="(solid,#008080,12000,collapse-inner)" xpath="//flow/block[4]/block[18]/@border-start"/>
+ <eval expected="(solid,#808000,10000,collapse-inner)" xpath="//flow/block[4]/block[18]/@border-end"/>
+ <eval expected="87000" xpath="//flow/block[4]/block[19]/@ipd"/>
+ <eval expected="113000" xpath="//flow/block[4]/block[19]/@ipda"/>
+ <eval expected="44400" xpath="//flow/block[4]/block[19]/@bpd"/>
+ <eval expected="80400" xpath="//flow/block[4]/block[19]/@bpda"/>
+ <eval expected="205000" xpath="//flow/block[4]/block[19]/@left-offset"/>
+ <eval expected="121900" xpath="//flow/block[4]/block[19]/@top-offset"/>
+ <eval expected="(solid,#c0c0c0,30000,collapse-inner)" xpath="//flow/block[4]/block[19]/@border-before"/>
+ <eval expected="(solid,#000080,6000,collapse-outer)" xpath="//flow/block[4]/block[19]/@border-after"/>
+ <eval expected="(solid,#808000,10000,collapse-inner)" xpath="//flow/block[4]/block[19]/@border-start"/>
+ <eval expected="(solid,#808000,16000,collapse-inner)" xpath="//flow/block[4]/block[19]/@border-end"/>
+ <eval expected="50000" xpath="//flow/block[4]/block[20]/@ipd"/>
+ <eval expected="110000" xpath="//flow/block[4]/block[20]/@ipda"/>
+ <eval expected="14400" xpath="//flow/block[4]/block[20]/@bpd"/>
+ <eval expected="70400" xpath="//flow/block[4]/block[20]/@bpda"/>
+ <eval expected="328000" xpath="//flow/block[4]/block[20]/@left-offset"/>
+ <eval expected="130900" xpath="//flow/block[4]/block[20]/@top-offset"/>
+ <eval expected="(solid,#000080,12000,collapse-inner)" xpath="//flow/block[4]/block[20]/@border-before"/>
+ <eval expected="(solid,#0000ff,4000,collapse-outer)" xpath="//flow/block[4]/block[20]/@border-after"/>
+ <eval expected="(solid,#808000,16000,collapse-inner)" xpath="//flow/block[4]/block[20]/@border-start"/>
+ <eval expected="(solid,#008080,4000,collapse-outer)" xpath="//flow/block[4]/block[20]/@border-end"/>
+ </checks>
+</testcase>