Adding a few corner-case seqtor tests (from f# conversion)
authorabraaksm
Tue, 09 Feb 2016 07:15:43 +0100
changeset 1227 741ceefda514
parent 1226 65bde0c29953
child 1228 8f2f0982148d
Adding a few corner-case seqtor tests (from f# conversion)
.hgignore
tests/misc/seqtor/_seqtor-test-set.xml
tests/misc/seqtor/seqtor-036a.xsl
tests/misc/seqtor/seqtor-036b.xsl
tests/misc/seqtor/seqtor-036c.xsl
tests/misc/seqtor/seqtor-036d.xsl
tests/misc/seqtor/seqtor-036e.xsl
tests/misc/seqtor/seqtor-037a.xsl
tests/misc/seqtor/seqtor-037b.xsl
tests/misc/seqtor/seqtor-037c.xsl
tests/misc/seqtor/seqtor-037d.xsl
tests/misc/seqtor/seqtor-037e.xsl
tests/misc/seqtor/seqtor-038a.xsl
tests/misc/seqtor/seqtor-038b.xsl
tests/misc/seqtor/seqtor-038c.xsl
tests/misc/seqtor/seqtor-038d.xsl
tests/misc/seqtor/seqtor-038e.xsl
tests/misc/seqtor/seqtor-039a.xsl
tests/misc/seqtor/seqtor-039b.xsl
tests/misc/seqtor/seqtor-039c.xsl
tests/misc/seqtor/seqtor-039d.xsl
tests/misc/seqtor/seqtor-039e.xsl
tests/misc/seqtor/seqtor-040a.xsl
tests/misc/seqtor/seqtor-040b.xsl
tests/misc/seqtor/seqtor-040c.xsl
tests/misc/seqtor/seqtor-040d.xsl
tests/misc/seqtor/seqtor-040e.xsl
--- a/.hgignore	Tue Feb 09 03:16:44 2016 +0100
+++ b/.hgignore	Tue Feb 09 07:15:43 2016 +0100
@@ -17,3 +17,5 @@
 exselt/*
 xgespräch.xml
 xgespräch.xml
+tests/sandp/tempresult.xml
+tests/insn/sort/sort-0001.xsl
--- a/tests/misc/seqtor/_seqtor-test-set.xml	Tue Feb 09 03:16:44 2016 +0100
+++ b/tests/misc/seqtor/_seqtor-test-set.xml	Tue Feb 09 07:15:43 2016 +0100
@@ -391,4 +391,282 @@
       </result>
    </test-case>
    
+   <test-case name="seqtor-036a">
+      <description>Constructing simple content, xsl:comment</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-036a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<!--  |   |  -->]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-036b">
+      <description>Constructing simple content, xsl:comment</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-036b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<!--||-->]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-036c">
+      <description>Constructing simple content, xsl:comment</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-036c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<!-- | | -->]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-036d">
+      <description>Constructing simple content, xsl:comment</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-036d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<!-- |  | -->]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-036e">
+      <description>Constructing simple content, xsl:comment</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-036e.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<!--||-->]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-037a">
+      <description>Constructing simple content, xsl:processing-instruction</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-037a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<?foo |   |  ?>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-037b">
+      <description>Constructing simple content, xsl:processing-instruction</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-037b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<?foo ||?>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-037c">
+      <description>Constructing simple content, xsl:processing-instruction</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-037c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<?foo | | ?>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-037d">
+      <description>Constructing simple content, xsl:processing-instruction</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-037d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<?foo |  | ?>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-037e">
+      <description>Constructing simple content, xsl:processing-instruction</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-037e.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<?foo ||?>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-038a">
+      <description>Constructing simple content, xsl:namespace</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-038a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar xmlns:foo="  |   |  "/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-038b">
+      <description>Constructing simple content, xsl:namespace</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-038b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar xmlns:foo="||"/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-038c">
+      <description>Constructing simple content, xsl:namespace</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-038c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar xmlns:foo=" | | "/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-038d">
+      <description>Constructing simple content, xsl:namespace</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-038d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar xmlns:foo=" |  | "/>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-038e">
+      <description>Constructing simple content, xsl:namespace</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-038e.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar xmlns:foo="||"/>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-039a">
+      <description>Constructing simple content, xsl:attribute</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-039a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar foo="  |   |  "/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-039b">
+      <description>Constructing simple content, xsl:attribute</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-039b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar foo="||"/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-039c">
+      <description>Constructing simple content, xsl:attribute</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-039c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar foo=" | | "/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-039d">
+      <description>Constructing simple content, xsl:attribute</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-039d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar foo=" |  | "/>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-039e">
+      <description>Constructing simple content, xsl:attribute</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-039e.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar foo="||"/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-040a">
+      <description>Constructing simple content, xsl:text/value-of</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-040a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar>  |   |  </bar>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-040b">
+      <description>Constructing simple content, xsl:text/value-of</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-040b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar>||</bar>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-040c">
+      <description>Constructing simple content, xsl:text/value-of</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-040c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar>| |</bar>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-040d">
+      <description>Constructing simple content, xsl:text/value-of</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-040d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar> |  | </bar>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-040e">
+      <description>Constructing simple content, xsl:text/value-of</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-040e.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar>||</bar>]]></assert-xml>
+      </result>
+   </test-case>
+
+
+
+
 </test-set>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-036a.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+                 
+        When the document node is used inside a simple constructor, it returns a single space (text node),
+        because the document node is removed and its children returned, which are already constructed (i.e., not a sequence)
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty">
+            <xsl:sequence select="''" />
+            <xsl:sequence select="''" />
+        </xsl:variable>
+        
+        <xsl:comment>
+            <xsl:copy-of select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:copy-of select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:copy-of select="$non-empty"/>
+        </xsl:comment>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-036b.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="text()">
+            <xsl:value-of>
+                <xsl:text expand-text="yes">{''}</xsl:text>
+                <xsl:text expand-text="yes">{''}</xsl:text>
+            </xsl:value-of>
+        </xsl:variable>
+        
+        <xsl:comment>
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+        </xsl:comment>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-036c.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="text()">
+            <xsl:text expand-text="yes">{' '}</xsl:text>
+        </xsl:variable>
+        
+        <xsl:comment>
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+        </xsl:comment>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-036d.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="xs:string" select="''"/>        
+        
+        <xsl:comment>
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+        </xsl:comment>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-036e.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="xs:string" select="''"/>        
+        
+        <xsl:comment>
+            <xsl:value-of select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:value-of select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:value-of select="$non-empty"/>
+        </xsl:comment>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-037a.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+                 
+        When the document node is used inside a simple constructor, it returns a single space (text node),
+        because the document node is removed and its children returned, which are already constructed (i.e., not a sequence)
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty">
+            <xsl:sequence select="''" />
+            <xsl:sequence select="''" />
+        </xsl:variable>
+        
+        <xsl:processing-instruction name="foo">
+            <xsl:copy-of select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:copy-of select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:copy-of select="$non-empty"/>
+        </xsl:processing-instruction>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-037b.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="text()">
+            <xsl:value-of>
+                <xsl:text expand-text="yes">{''}</xsl:text>
+                <xsl:text expand-text="yes">{''}</xsl:text>
+            </xsl:value-of>
+        </xsl:variable>
+        
+        <xsl:processing-instruction name="foo">
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+        </xsl:processing-instruction>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-037c.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="text()">
+            <xsl:text expand-text="yes">{' '}</xsl:text>
+        </xsl:variable>
+        
+        <xsl:processing-instruction name="foo">
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+        </xsl:processing-instruction>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-037d.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="xs:string" select="''"/>        
+        
+        <xsl:processing-instruction name="foo">
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+        </xsl:processing-instruction>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-037e.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="xs:string" select="''"/>        
+        
+        <xsl:processing-instruction name="foo">
+            <xsl:value-of select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:value-of select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:value-of select="$non-empty"/>
+        </xsl:processing-instruction>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-038a.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+                 
+        When the document node is used inside a simple constructor, it returns a single space (text node),
+        because the document node is removed and its children returned, which are already constructed (i.e., not a sequence)
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty">
+            <xsl:sequence select="''" />
+            <xsl:sequence select="''" />
+        </xsl:variable>
+        
+        <bar>
+            <xsl:namespace name="foo">
+                <xsl:copy-of select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:copy-of select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:copy-of select="$non-empty"/>
+            </xsl:namespace>
+        </bar>
+    </xsl:template>
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-038b.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="text()">
+            <xsl:value-of>
+                <xsl:text expand-text="yes">{''}</xsl:text>
+                <xsl:text expand-text="yes">{''}</xsl:text>
+            </xsl:value-of>
+        </xsl:variable>
+        
+        <bar>
+            <xsl:namespace name="foo">
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+            </xsl:namespace>
+        </bar>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-038c.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="text()">
+            <xsl:text expand-text="yes">{' '}</xsl:text>
+        </xsl:variable>
+        
+        <bar>
+            <xsl:namespace name="foo">
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+            </xsl:namespace>
+        </bar>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-038d.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="xs:string" select="''"/>        
+        
+        <bar>
+            <xsl:namespace name="foo">
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+            </xsl:namespace>
+        </bar>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-038e.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="xs:string" select="''"/>        
+        
+        <bar>
+            <xsl:namespace name="foo">
+                <xsl:value-of select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:value-of select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:value-of select="$non-empty"/>
+            </xsl:namespace>
+        </bar>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-039a.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+                 
+        When the document node is used inside a simple constructor, it returns a single space (text node),
+        because the document node is removed and its children returned, which are already constructed (i.e., not a sequence)
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty">
+            <xsl:sequence select="''" />
+            <xsl:sequence select="''" />
+        </xsl:variable>
+        
+        <bar>
+            <xsl:attribute name="foo">
+                <xsl:copy-of select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:copy-of select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:copy-of select="$non-empty"/>
+            </xsl:attribute>
+        </bar>
+    </xsl:template>
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-039b.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="text()">
+            <xsl:value-of>
+                <xsl:text expand-text="yes">{''}</xsl:text>
+                <xsl:text expand-text="yes">{''}</xsl:text>
+            </xsl:value-of>
+        </xsl:variable>
+        
+        <bar>
+            <xsl:attribute name="foo">
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+            </xsl:attribute>
+        </bar>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-039c.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="text()">
+            <xsl:text expand-text="yes">{' '}</xsl:text>
+        </xsl:variable>
+        
+        <bar>
+            <xsl:attribute name="foo">
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+            </xsl:attribute>
+        </bar>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-039d.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="xs:string" select="''"/>        
+        
+        <bar>
+            <xsl:attribute name="foo">
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+            </xsl:attribute>
+        </bar>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-039e.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="xs:string" select="''"/>        
+        
+        <bar>
+            <xsl:attribute name="foo">
+                <xsl:value-of select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:value-of select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:value-of select="$non-empty"/>
+            </xsl:attribute>
+        </bar>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-040a.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+                 
+        When the document node is used inside a simple constructor, it returns a single space (text node),
+        because the document node is removed and its children returned, which are already constructed (i.e., not a sequence)
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty">
+            <xsl:sequence select="''" />
+            <xsl:sequence select="''" />
+        </xsl:variable>
+        
+        <bar>
+            <xsl:value-of>
+                <xsl:copy-of select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:copy-of select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:copy-of select="$non-empty"/>
+            </xsl:value-of>
+        </bar>
+    </xsl:template>
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-040b.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="text()">
+            <xsl:value-of>
+                <xsl:text expand-text="yes">{''}</xsl:text>
+                <xsl:text expand-text="yes">{''}</xsl:text>
+            </xsl:value-of>
+        </xsl:variable>
+        
+        <bar>
+            <xsl:value-of>
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+            </xsl:value-of>
+        </bar>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-040c.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="text()">
+            <xsl:text expand-text="yes">{' '}</xsl:text>
+        </xsl:variable>
+        
+        <bar>
+            <xsl:value-of>
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+            </xsl:value-of>
+        </bar>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-040d.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="xs:string" select="''"/>        
+        
+        <bar>
+            <xsl:value-of>
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:sequence select="$non-empty"/>
+            </xsl:value-of>
+        </bar>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-040e.xsl	Tue Feb 09 07:15:43 2016 +0100
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="xs:string" select="''"/>        
+        
+        <bar>
+            <xsl:value-of>
+                <xsl:value-of select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:value-of select="$non-empty"/>
+                <xsl:value-of select="'|'" />
+                <xsl:value-of select="$non-empty"/>
+            </xsl:value-of>
+        </bar>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file