Adding several sequence-constructor tests, esp. w.r.t. sequence and node concatenation
authorabraaksm
Tue, 09 Feb 2016 03:12:20 +0100
changeset 1222 94da36ae60a0
parent 1221 9cd84770e5ef
child 1223 b46414ccbf77
Adding several sequence-constructor tests, esp. w.r.t. sequence and node concatenation
tests/misc/seqtor/_seqtor-test-set.xml
tests/misc/seqtor/seqtor-001.xsl
tests/misc/seqtor/seqtor-002.xsl
tests/misc/seqtor/seqtor-003.xsl
tests/misc/seqtor/seqtor-004.xsl
tests/misc/seqtor/seqtor-005.xsl
tests/misc/seqtor/seqtor-006.xsl
tests/misc/seqtor/seqtor-007.xsl
tests/misc/seqtor/seqtor-008.xsl
tests/misc/seqtor/seqtor-009.xsl
tests/misc/seqtor/seqtor-010.xsl
tests/misc/seqtor/seqtor-011.xsl
tests/misc/seqtor/seqtor-012.xsl
tests/misc/seqtor/seqtor-013.xsl
tests/misc/seqtor/seqtor-014.xsl
tests/misc/seqtor/seqtor-015.xsl
tests/misc/seqtor/seqtor-016.xsl
tests/misc/seqtor/seqtor-017.xsl
tests/misc/seqtor/seqtor-018.xsl
tests/misc/seqtor/seqtor-019.xsl
tests/misc/seqtor/seqtor-020.xsl
tests/misc/seqtor/seqtor-021.xsl
tests/misc/seqtor/seqtor-022.xsl
tests/misc/seqtor/seqtor-023.xsl
tests/misc/seqtor/seqtor-024.xsl
tests/misc/seqtor/seqtor-025.xsl
tests/misc/seqtor/seqtor-026.xsl
tests/misc/seqtor/seqtor-027.xsl
tests/misc/seqtor/seqtor-028.xsl
tests/misc/seqtor/seqtor-029.xsl
tests/misc/seqtor/seqtor-030.xsl
tests/misc/seqtor/seqtor-031.xsl
tests/misc/seqtor/seqtor-032.xsl
tests/misc/seqtor/seqtor-033.xsl
tests/misc/seqtor/seqtor-034.xsl
tests/misc/seqtor/seqtor-035.xsl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/_seqtor-test-set.xml	Tue Feb 09 03:12:20 2016 +0100
@@ -0,0 +1,394 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<test-set xmlns="http://www.w3.org/2012/10/xslt-test-catalog" xmlns:xs="http://www.w3.org/2001/XMLSchema" name="seqtor">
+   <description>Tests constructing content in sequence constructors</description>
+   
+   <dependencies>
+      <spec value="XSLT30+"/>
+   </dependencies>
+   
+   <test-case name="seqtor-001">
+      <description>Constructing sequence constructor</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-001.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>|||</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-002">
+      <description>Constructing sequence constructor</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-002.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>1|2|3|4</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-003">
+      <description>Constructing sequence constructor</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-003.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>1|2|3|4|</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-004">
+      <description>Constructing sequence constructor</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-004.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>1|2|3|4|</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-005">
+      <description>Constructing sequence constructor</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-005.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>1|2|3</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-006">
+      <description>Constructing sequence constructor</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-006.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>1|2|3|4|</assert-string-value>
+      </result>
+   </test-case>
+      
+   <test-case name="seqtor-007">
+      <description>Constructing sequence constructor</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-007.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>1 2 | 3 4 |</assert-string-value>
+      </result>
+   </test-case>
+      
+   <test-case name="seqtor-008">
+      <description>Constructing sequence constructor</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-008.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>12|34|</assert-string-value>
+      </result>
+   </test-case>
+      
+   <test-case name="seqtor-009">
+      <description>Constructing sequence constructor with expand-text, should behave same as without</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-009.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --12|34|-- END --</assert-string-value>
+      </result>
+   </test-case>
+      
+   <test-case name="seqtor-010">
+      <description>Constructing sequence constructor, xsl:sequence at before/end of xsl:for-each and a tricky atomics concat</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-010.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --1 2| 3 4|-- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-011">
+      <description>Constructing sequence constructor, xsl:text at before/end of xsl:for-each and a tricky atomics concat</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-011.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --| 1  2 || 3  4 |-- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-012">
+      <description>Constructing sequence constructor, mode complex test with spacing</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-012.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --1 - 2 {3} 4 - 5 {6} 7 - 8 {9} 10 - 11 {12} 13 - 14 {15} 16 - 17 {18} 19 - 20 {21} 22 - 23 {24} 25 - 26 {27} 28 - 29 {30} 31 - 32 {33} 34 - 35 {36} 37 - 38 {39} 40 - 41 {42} 43 - 44 {45} 46 - 47 {48} 49 - 50 {51} 52 - 53 {54} 55 - 56 {57} 58 - 59 {60} 61 - 62 {63} 64 - 65 {66} 67 - 68 {69} 70 - 71 {72} 73 - 74 {75} 76 - 77 {78} 79 - 80 {81} 82 - 83 {84} 85 - 86 {87} 88 - 89 {90} 91 - 92 {93} 94 - 95 {96} 97 - 98 {99} 100 -- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-013">
+      <description>Constructing sequence constructor, test same as seqtor-013, but intertwined with text node, removing the spaces</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-013.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --1-2{3}4-5{6}7-8{9}10-11{12}13-14{15}16-17{18}19-20{21}22-23{24}25-26{27}28-29{30}31-32{33}34-35{36}37-38{39}40-41{42}43-44{45}46-47{48}49-50{51}52-53{54}55-56{57}58-59{60}61-62{63}64-65{66}67-68{69}70-71{72}73-74{75}76-77{78}79-80{81}82-83{84}85-86{87}88-89{90}91-92{93}94-95{96}97-98{99}100-- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-014">
+      <description>Constructing sequence constructor, test same as seqtor-013, without the dashes and nicer space-folding</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-014.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --12 {3} 45 {6} 78 {9} 1011 {12} 1314 {15} 1617 {18} 1920 {21} 2223 {24} 2526 {27} 2829 {30} 3132 {33} 3435 {36} 3738 {39} 4041 {42} 4344 {45} 4647 {48} 4950 {51} 5253 {54} 5556 {57} 5859 {60} 6162 {63} 6465 {66} 6768 {69} 7071 {72} 7374 {75} 7677 {78} 7980 {81} 8283 {84} 8586 {87} 8889 {90} 9192 {93} 9495 {96} 9798 {99} 100-- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-015">
+      <description>Constructing sequence constructor, test same as seqtor-014, using xsl:value-of instead of xsl:text, but with expand-text</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-015.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --12 {3} 45 {6} 78 {9} 1011 {12} 1314 {15} 1617 {18} 1920 {21} 2223 {24} 2526 {27} 2829 {30} 3132 {33} 3435 {36} 3738 {39} 4041 {42} 4344 {45} 4647 {48} 4950 {51} 5253 {54} 5556 {57} 5859 {60} 6162 {63} 6465 {66} 6768 {69} 7071 {72} 7374 {75} 7677 {78} 7980 {81} 8283 {84} 8586 {87} 8889 {90} 9192 {93} 9495 {96} 9798 {99} 100-- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-016">
+      <description>Constructing sequence constructor, test same as seqtor-014, using xsl:sequence instead of xsl:text, but with expand-text to create a text node</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-016.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --12 {3} 45 {6} 78 {9} 1011 {12} 1314 {15} 1617 {18} 1920 {21} 2223 {24} 2526 {27} 2829 {30} 3132 {33} 3435 {36} 3738 {39} 4041 {42} 4344 {45} 4647 {48} 4950 {51} 5253 {54} 5556 {57} 5859 {60} 6162 {63} 6465 {66} 6768 {69} 7071 {72} 7374 {75} 7677 {78} 7980 {81} 8283 {84} 8586 {87} 8889 {90} 9192 {93} 9495 {96} 9798 {99} 100-- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-017">
+      <description>Constructing sequence constructor, test same as seqtor-014, using xsl:document instead of xsl:text, but with expand-text to create a text node inside a document node</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-017.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --12 {3} 45 {6} 78 {9} 1011 {12} 1314 {15} 1617 {18} 1920 {21} 2223 {24} 2526 {27} 2829 {30} 3132 {33} 3435 {36} 3738 {39} 4041 {42} 4344 {45} 4647 {48} 4950 {51} 5253 {54} 5556 {57} 5859 {60} 6162 {63} 6465 {66} 6768 {69} 7071 {72} 7374 {75} 7677 {78} 7980 {81} 8283 {84} 8586 {87} 8889 {90} 9192 {93} 9495 {96} 9798 {99} 100-- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-018">
+      <description>Constructing sequence constructor, the reverse of seqtor-016, creating atomics where we created text nodes earlier</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-018.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START -- 1   2 {   3   } 4   5 {   6   } 7   8 {   9   } 10   11 {   12   } 13   14 {   15   } 16   17 {   18   } 19   20 {   21   } 22   23 {   24   } 25   26 {   27   } 28   29 {   30   } 31   32 {   33   } 34   35 {   36   } 37   38 {   39   } 40   41 {   42   } 43   44 {   45   } 46   47 {   48   } 49   50 {   51   } 52   53 {   54   } 55   56 {   57   } 58   59 {   60   } 61   62 {   63   } 64   65 {   66   } 67   68 {   69   } 70   71 {   72   } 73   74 {   75   } 76   77 {   78   } 79   80 {   81   } 82   83 {   84   } 85   86 {   87   } 88   89 {   90   } 91   92 {   93   } 94   95 {   96   } 97   98 {   99   } 100 -- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-019">
+      <description>Constructing sequence constructor, nesting xsl:sequence and xsl:text and expand-text</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-019.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>before-after</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-020">
+      <description>Constructing sequence constructor, creating nothingness</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-020.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-               -</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-021">
+      <description>Constructing sequence constructor, creating (real) nothingness, variant of previous</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-021.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>--</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-022">
+      <description>Constructing sequence constructor, creating (real) nothingness, variant of previous (expand-text)</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-022.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>--</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-023">
+      <description>Constructing sequence constructor, creating (real) nothingness, variant of previous (expand-text)</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-023.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>--</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-024">
+      <description>Constructing sequence constructor, yet another way of getting (almost) nothing, this time with xsl:function</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-024.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>- -</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-025">
+      <description>Constructing sequence constructor, yet another way of getting (almost) nothing, this time with xsl:function, variant</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-025.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>--</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-026">
+      <description>Constructing sequence constructor, yet another way of getting (almost) nothing, this time with xsl:function, variant</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-026.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>--</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-027">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-027.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>startendA B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-028">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-028.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>startendA B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-029">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-029.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>startendABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-030">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-030.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>start endABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-031">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function, note the space after the tilde at the end!</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-031.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>start end  A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z   [   \   ]   ^   _   `   a   b   c   d   e   f   g   h   i   j   k   l   m   n   o   p   q   r   s   t   u   v   w   x   y   z   {   |   }   ~ </assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-032">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function, note the space between "start" and "end"</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-032.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>start endA|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|[|\|]|^|_|`|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|{|||}|~</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-033">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function, note the incidental wrong recursion</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-033.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>start ~ } | { z y x w v u t s r q p o n m l k j i h g f e d c b a ` _ ^ ] \ [ Z Y X W V U T S R Q P O N M L K J I H G F E D C B A end|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-034">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function, note the incidental wrong recursion, variant, subtly different from seqtor-033</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-034.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>start~ } | { z y x w v u t s r q p o n m l k j i h g f e d c b a ` _ ^ ] \ [ Z Y X W V U T S R Q P O N M L K J I H G F E D C B A end|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-035">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function, note the incidental wrong recursion, variant, quite subtly different from seqtor-033/-34</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-035.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>start~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBAend|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||</assert-string-value>
+      </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-001.xsl	Tue Feb 09 03:12:20 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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template name="xsl:initial-template">
+        <!-- create text nodes that are concatenated together without spaces -->
+        <xsl:value-of select="''" />
+        <xsl:value-of select="''" />
+        <xsl:value-of select="'|'" />
+        <xsl:value-of select="''" />
+        <xsl:value-of select="''" />
+        <xsl:value-of select="'|'" />
+        <xsl:value-of select="''" />
+        <xsl:value-of select="''" />
+        <xsl:value-of select="'|'" />
+        <xsl:value-of select="''" />
+        <xsl:value-of select="''" />
+    </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-002.xsl	Tue Feb 09 03:12:20 2016 +0100
@@ -0,0 +1,21 @@
+<?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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!-- create text nodes that are concatenated together without spaces -->
+        <xsl:value-of select="1" />
+        <xsl:value-of select="'|'" />
+        <xsl:value-of select="2" />
+        <xsl:value-of select="'|'" />
+        <xsl:value-of select="3" />
+        <xsl:value-of select="'|'" />
+        <xsl:value-of select="4" />
+    </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-003.xsl	Tue Feb 09 03:12:20 2016 +0100
@@ -0,0 +1,18 @@
+<?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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!-- create text nodes that are concatenated together without spaces -->
+        <xsl:for-each select="1 to 4">
+            <xsl:value-of select="." />
+            <xsl:value-of select="'|'" />
+        </xsl:for-each>
+    </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-004.xsl	Tue Feb 09 03:12:20 2016 +0100
@@ -0,0 +1,21 @@
+<?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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!-- create text nodes that are concatenated together without spaces -->
+        <xsl:for-each select="1 to 4">
+            <xsl:text expand-text="yes">{''}</xsl:text>
+            <xsl:value-of select="." />
+            <xsl:text></xsl:text>
+            <xsl:value-of select="'|'" />
+            <xsl:text></xsl:text>
+        </xsl:for-each>
+    </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-005.xsl	Tue Feb 09 03:12:20 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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!-- create text nodes that are concatenated together without spaces -->
+        <xsl:sequence>
+            <xsl:text expand-text="yes">{''}</xsl:text>
+            <xsl:value-of select="1" />
+            <xsl:text></xsl:text>
+            <xsl:value-of select="'|'" />
+            <xsl:text></xsl:text>
+            <xsl:value-of select="2" />
+            <xsl:text></xsl:text>
+            <xsl:value-of select="'|'" />
+            <xsl:text></xsl:text>
+            <xsl:value-of select="3" />
+        </xsl:sequence>
+    </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-006.xsl	Tue Feb 09 03:12:20 2016 +0100
@@ -0,0 +1,22 @@
+<?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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!-- create text nodes that are concatenated together without spaces -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 4">
+                <xsl:sequence>
+                    <xsl:value-of select="." />
+                    <xsl:value-of select="'|'" />
+                </xsl:sequence>
+            </xsl:for-each>
+        </xsl:sequence>
+    </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-007.xsl	Tue Feb 09 03:12:20 2016 +0100
@@ -0,0 +1,20 @@
+<?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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!-- create text nodes that are concatenated together without spaces -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 4">
+                <xsl:sequence select="."/>
+                <xsl:sequence select="if(. mod 2) then () else '|'" />
+            </xsl:for-each>
+        </xsl:sequence>
+    </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-008.xsl	Tue Feb 09 03:12:20 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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Since "consecutive strings" from the spec does not apply here, we expect no spaces (w/o the text nodes, spaces would occur)
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 4">
+                <xsl:text></xsl:text>
+                <xsl:sequence select="."/>
+                <xsl:value-of select="''" />
+                <xsl:sequence select="if(. mod 2) then () else '|'" />
+                <xsl:value-of select="''" />
+            </xsl:for-each>
+        </xsl:sequence>
+    </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-009.xsl	Tue Feb 09 03:12:20 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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Since "consecutive strings" from the spec does not apply here, we expect no spaces (w/o the text nodes, spaces would occur)
+            Same as seqtor-008, but with expand-text
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 4">
+                <xsl:text expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:text>
+                <xsl:sequence select="."/>
+                <xsl:value-of select="''" />
+                <xsl:sequence select="if(. mod 2) then () else '|'" />
+                <xsl:value-of select="''" />
+                <xsl:text expand-text="yes">{''}</xsl:text>
+                <xsl:text expand-text="yes">{ if(. = 4) then '-- END --' else ''}</xsl:text>
+            </xsl:for-each>
+        </xsl:sequence>
+    </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-010.xsl	Tue Feb 09 03:12:20 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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Since "consecutive strings" from the spec does not apply here, we expect no spaces (w/o the text nodes, spaces would occur)
+            Same as seqtor-008, but with expand-text and with two empty strings that end up consecutive at beginning of 2nd, 3rd and 4th loop
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 4">
+                <xsl:sequence select="''"/>
+                <xsl:text expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:text>
+                <xsl:sequence select="."/>
+                <xsl:value-of select="''" />
+                <xsl:sequence select="if(. mod 2) then () else '|'" />
+                <xsl:value-of select="''" />
+                <xsl:text expand-text="yes">{''}</xsl:text>
+                <xsl:text expand-text="yes">{ if(. = 4) then '-- END --' else ''}</xsl:text>
+                <xsl:sequence select="''"/>
+            </xsl:for-each>
+        </xsl:sequence>
+    </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-011.xsl	Tue Feb 09 03:12:20 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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Since "consecutive strings" from the spec does not apply here, we expect no spaces (w/o the text nodes, spaces would occur)
+            Same as seqtor-008, but with expand-text and with some obvious programmer's mistakes not returning the empty sequence in the if-statements
+            Note the difference with seqtor-010, which had opening/ending atomics, whereas here we have text nodes leading to surprising symmetry in the result
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 4">
+                <xsl:text expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:text>
+                <xsl:sequence select="if(. mod 2) then '|' else ''" />
+                <xsl:sequence select="."/>
+                <xsl:sequence select="if(. mod 2) then '' else '|'" />
+                <xsl:text expand-text="yes">{ if(. = 4) then '-- END --' else ''}</xsl:text>
+            </xsl:for-each>
+        </xsl:sequence>
+    </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-012.xsl	Tue Feb 09 03:12:20 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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Grouping by threes
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 100">
+                <xsl:text expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:text>
+                <xsl:sequence select="if(. mod 3 = 1 and . != 1) then '}' else if(. mod 3 = 2) then '-' else ()" />
+                <xsl:sequence select="."/>
+                <xsl:sequence select="if(. mod 3 = 2) then '{' else if(. mod 3 = 1) then '' else ()" />
+                <xsl:text expand-text="yes">{ if(. = 100) then '-- END --' else ''}</xsl:text>
+            </xsl:for-each>
+        </xsl:sequence>
+    </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-013.xsl	Tue Feb 09 03:12:20 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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Grouping by threes, same as previous, condensed by the text nodes
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 100">
+                <xsl:text expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:text>
+                <xsl:sequence select="if(. mod 3 = 1 and . != 1) then '}' else if(. mod 3 = 2) then '-' else ()" />
+                <xsl:text></xsl:text>
+                <xsl:sequence select="."/>
+                <xsl:text></xsl:text>
+                <xsl:sequence select="if(. mod 3 = 2) then '{' else if(. mod 3 = 1) then '' else ()" />
+                <xsl:text expand-text="yes">{ if(. = 100) then '-- END --' else ''}</xsl:text>
+            </xsl:for-each>
+        </xsl:sequence>
+    </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-014.xsl	Tue Feb 09 03:12:20 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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Grouping by threes, balancing the spaces before/after the curlies byt the magic of XSLT space-folding
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 100">
+                <xsl:text expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:text>
+                <xsl:sequence select="if(. mod 3 = 1 and . != 1) then '}' else ()" />
+                <xsl:sequence select="."/>
+                <xsl:sequence select="if(. mod 3 = 2) then '{' else  ()" />
+                <xsl:text expand-text="yes">{ if(. = 100) then '-- END --' else ''}</xsl:text>
+            </xsl:for-each>
+        </xsl:sequence>
+    </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-015.xsl	Tue Feb 09 03:12:20 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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Grouping by threes, balancing the spaces before/after the curlies byt the magic of XSLT space-folding
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 100">
+                <xsl:value-of expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:value-of>
+                <xsl:sequence select="if(. mod 3 = 1 and . != 1) then '}' else ()" />
+                <xsl:sequence select="."/>
+                <xsl:sequence select="if(. mod 3 = 2) then '{' else  ()" />
+                <xsl:value-of expand-text="yes">{ if(. = 100) then '-- END --' else ''}</xsl:value-of>
+            </xsl:for-each>
+        </xsl:sequence>
+    </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-016.xsl	Tue Feb 09 03:12:20 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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Grouping by threes, balancing the spaces before/after the curlies by the magic of XSLT space-folding
+            Same as previous, but using xsl:sequence with expand-text, returning text nodes
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 100">
+                <xsl:sequence expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:sequence>
+                <xsl:sequence select="if(. mod 3 = 1 and . != 1) then '}' else ()" />
+                <xsl:sequence select="."/>
+                <xsl:sequence select="if(. mod 3 = 2) then '{' else  ()" />
+                <xsl:sequence expand-text="yes">{ if(. = 100) then '-- END --' else ''}</xsl:sequence>
+            </xsl:for-each>
+        </xsl:sequence>
+    </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-017.xsl	Tue Feb 09 03:12:20 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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Grouping by threes, balancing the spaces before/after the curlies by the magic of XSLT space-folding
+            Same as previous, but using xsl:document with expand-text, returning text nodes inside document nodes, should have no discernible effect
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 100">
+                <xsl:document expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:document>
+                <xsl:sequence select="if(. mod 3 = 1 and . != 1) then '}' else ()" />
+                <xsl:sequence select="."/>
+                <xsl:sequence select="if(. mod 3 = 2) then '{' else  ()" />
+                <xsl:document expand-text="yes">{ if(. = 100) then '-- END --' else ''}</xsl:document>
+            </xsl:for-each>
+        </xsl:sequence>
+    </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-018.xsl	Tue Feb 09 03:12:20 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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Grouping by threes, balancing the spaces before/after the curlies by the magic of XSLT space-folding
+            Same as previous, but using xsl:sequence with @select, leading to extra spaces
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 100">
+                <xsl:sequence select="if(. = 1) then '-- START --' else ''" />
+                <xsl:sequence select="if(. mod 3 = 1 and . != 1) then '}' else ()" />
+                <xsl:sequence select="."/>
+                <xsl:sequence select="if(. mod 3 = 2) then '{' else  ()" />
+                <xsl:sequence select="if(. = 100) then '-- END --' else ''" />
+            </xsl:for-each>
+        </xsl:sequence>
+    </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-019.xsl	Tue Feb 09 03:12:20 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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Nesting example with xsl:sequence and xsl:text and expand-text
+        -->
+        <xsl:text>before</xsl:text>
+        <xsl:sequence expand-text="yes">
+            <xsl:for-each select="1 to 100">
+                <xsl:sequence expand-text="yes">{
+                ''
+                }<xsl:text expand-text="yes"></xsl:text><xsl:text expand-text="yes"></xsl:text><xsl:text expand-text="yes"></xsl:text>{
+                (1,2,3)[false()]}<xsl:text expand-text="yes"></xsl:text><xsl:text expand-text="yes"></xsl:text><xsl:text expand-text="yes"></xsl:text></xsl:sequence>
+            </xsl:for-each>
+            <xsl:text expand-text="yes">{'-'}</xsl:text>
+        </xsl:sequence>
+        <xsl:text>after</xsl:text>
+    </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-020.xsl	Tue Feb 09 03:12:20 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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating a lot of nothing (15 spaces)
+        -->
+        <xsl:sequence select="'-'"/>
+        <xsl:sequence expand-text="yes">
+            <xsl:for-each select="1 to 2">
+                <xsl:sequence select="xs:anyURI('')" />
+                <xsl:sequence select="xs:base64Binary('')" />
+                <xsl:sequence select="xs:string('')" />
+                <xsl:sequence select="''" />
+                <xsl:sequence select="xs:hexBinary('')" />
+                <xsl:sequence select="xs:token('')" />
+                <xsl:sequence select="xs:language(())" />
+                <xsl:sequence select="xs:normalizedString('')" />
+            </xsl:for-each>
+        </xsl:sequence>
+        <xsl:sequence select="'-'"/>
+    </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-021.xsl	Tue Feb 09 03:12:20 2016 +0100
@@ -0,0 +1,41 @@
+<?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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating a lot of nothing (15 spaces removed by xsl:text)
+        -->
+        <xsl:sequence select="'-'"/>
+        <xsl:sequence expand-text="yes">
+            <xsl:for-each select="1 to 2">
+                <xsl:text></xsl:text>
+                <xsl:sequence select="xs:anyURI('')" />
+                <xsl:text></xsl:text>
+                <xsl:sequence select="xs:base64Binary('')" />
+                <xsl:text></xsl:text>
+                <xsl:sequence select="xs:string('')" />
+                <xsl:text></xsl:text>
+                <xsl:sequence select="''" />
+                <xsl:text></xsl:text>
+                <xsl:sequence select="xs:hexBinary('')" />
+                <xsl:text></xsl:text>
+                <xsl:sequence select="xs:token('')" />
+                <xsl:text></xsl:text>
+                <xsl:sequence select="xs:language(())" />
+                <xsl:text></xsl:text>
+                <xsl:sequence select="xs:normalizedString('')" />
+                <xsl:text></xsl:text>
+            </xsl:for-each>
+        </xsl:sequence>
+        <xsl:sequence select="'-'"/>
+    </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-022.xsl	Tue Feb 09 03:12:20 2016 +0100
@@ -0,0 +1,41 @@
+<?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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating a lot of nothing (15 spaces removed by the xsl:text)
+        -->
+        <xsl:sequence select="'-'"/>
+        <xsl:sequence expand-text="yes">
+            <xsl:for-each select="1 to 2">
+                <xsl:text expand-text="yes"></xsl:text>
+                <xsl:sequence select="xs:anyURI('')" />
+                <xsl:text expand-text="yes"></xsl:text>
+                <xsl:sequence select="xs:base64Binary('')" />
+                <xsl:text expand-text="yes"></xsl:text>
+                <xsl:sequence select="xs:string('')" />
+                <xsl:text expand-text="yes"></xsl:text>
+                <xsl:sequence select="''" />
+                <xsl:text expand-text="yes"></xsl:text>
+                <xsl:sequence select="xs:hexBinary('')" />
+                <xsl:text expand-text="yes"></xsl:text>
+                <xsl:sequence select="xs:token('')" />
+                <xsl:text expand-text="yes"></xsl:text>
+                <xsl:sequence select="xs:language(())" />
+                <xsl:text expand-text="yes"></xsl:text>
+                <xsl:sequence select="xs:normalizedString('')" />
+                <xsl:text expand-text="yes"></xsl:text>
+            </xsl:for-each>
+        </xsl:sequence>
+        <xsl:sequence select="'-'"/>
+    </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-023.xsl	Tue Feb 09 03:12:20 2016 +0100
@@ -0,0 +1,41 @@
+<?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">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating a lot of nothing (15 spaces)
+        -->
+        <xsl:sequence select="'-'"/>
+        <xsl:sequence expand-text="yes">
+            <xsl:for-each select="1 to 2">
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+                <xsl:sequence select="xs:anyURI('')" />
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+                <xsl:sequence select="xs:base64Binary('')" />
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+                <xsl:sequence select="xs:string('')" />
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+                <xsl:sequence select="''" />
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+                <xsl:sequence select="xs:hexBinary('')" />
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+                <xsl:sequence select="xs:token('')" />
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+                <xsl:sequence select="xs:language(())" />
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+                <xsl:sequence select="xs:normalizedString('')" />
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+            </xsl:for-each>
+        </xsl:sequence>
+        <xsl:sequence select="'-'"/>
+    </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-024.xsl	Tue Feb 09 03:12:20 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"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, mark the last item, it ends with two atomics after unrolling the loop
+        -->
+        <xsl:sequence select="'-'"/>
+        <xsl:sequence expand-text="yes">
+            <xsl:for-each select="1 to 10">
+                <xsl:sequence select="f:create()" />
+            </xsl:for-each>
+        </xsl:sequence>
+        <xsl:sequence select="'-'"/>
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:text expand-text="yes">{''}</xsl:text>
+        <xsl:sequence select="''" />
+    </xsl:function>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-025.xsl	Tue Feb 09 03:12:20 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"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, mark the last item, it ends with two atomics after unrolling the loop
+        -->
+        <xsl:sequence select="'-'"/>
+        <xsl:sequence expand-text="yes">
+            <xsl:for-each select="1 to 10">
+                <xsl:sequence select="f:create()" />
+            </xsl:for-each>
+        </xsl:sequence>
+        <xsl:sequence select="'-'"/>
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:text expand-text="yes">{''}</xsl:text>
+        <xsl:sequence select="''" />
+        <xsl:text expand-text="yes">{''}</xsl:text>
+    </xsl:function>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-026.xsl	Tue Feb 09 03:12:20 2016 +0100
@@ -0,0 +1,33 @@
+<?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"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, mark the last item, it ends with two atomics after unrolling the loop
+        -->
+        <xsl:sequence select="'-'"/>
+        <xsl:sequence expand-text="yes">
+            <xsl:for-each select="1 to 10">
+                <xsl:sequence select="f:create()" />
+            </xsl:for-each>
+        </xsl:sequence>
+        <xsl:sequence select="'-'"/>
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <!-- empty seq. in expand-text creates an empty text node, which has a different effect then select="()" -->
+        <xsl:sequence expand-text="yes">{()}</xsl:sequence>
+        <xsl:sequence select="''" />
+        <xsl:sequence expand-text="yes">{()}</xsl:sequence>
+    </xsl:function>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-027.xsl	Tue Feb 09 03:12:20 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"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, no space between "start" and "end" and "A"
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(61)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:text expand-text="yes">{if($i = 0) then 'end' else f:create($i - 1)}</xsl:text>
+        <xsl:sequence select="codepoints-to-string($i + 65)" />
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-028.xsl	Tue Feb 09 03:12:20 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"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, no space between "start" and "end" and "A"
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(61)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:sequence expand-text="yes">{if($i = 0) then 'end' else f:create($i - 1)}</xsl:sequence>
+        <xsl:sequence select="codepoints-to-string($i + 65)" />
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-029.xsl	Tue Feb 09 03:12:20 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"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, no spaces at all, only text nodes are created
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(61)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:sequence expand-text="yes">{if($i = 0) then 'end' else f:create($i - 1)}</xsl:sequence>
+        <xsl:sequence expand-text="yes">{codepoints-to-string($i + 65)}</xsl:sequence> 
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-030.xsl	Tue Feb 09 03:12:20 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"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, no spaces at all, only text nodes are created
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(61)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:sequence select="if($i = 0) then 'end' else f:create($i - 1)" />
+        <xsl:text></xsl:text>
+        <xsl:sequence select="codepoints-to-string($i + 65)" /> 
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-031.xsl	Tue Feb 09 03:12:20 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"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, tripling the spaces
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(61)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:sequence select="if($i = 0) then 'end' else f:create($i - 1)" />
+        <xsl:sequence select="''" />
+        <xsl:sequence select="codepoints-to-string($i + 65)" /> 
+        <xsl:sequence select="''" />
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-032.xsl	Tue Feb 09 03:12:20 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"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, tripling the spaces
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(62)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:sequence select="if($i = 0) then 'end' else (f:create($i - 1), codepoints-to-string($i + 64))" />
+        <xsl:text expand-text="yes">{if($i = 62 or $i = 0) then '' else '|'}</xsl:text>
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-033.xsl	Tue Feb 09 03:12:20 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"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, mimicking a programmer's mistake
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(62)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:sequence select="if($i = 0) then 'end' else (codepoints-to-string($i + 64), f:create($i - 1))" />
+        <xsl:text expand-text="yes">{if($i = 0 or $i = 62) then '' else '|'}</xsl:text>
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-034.xsl	Tue Feb 09 03:12:20 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"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, mimicking a programmer's mistake
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(62)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:sequence expand-text="yes">{if($i = 0) then 'end' else (codepoints-to-string($i + 64), f:create($i - 1))}</xsl:sequence> 
+        <xsl:text expand-text="yes">{if($i = 0 or $i = 62) then '' else '|'}</xsl:text>
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-035.xsl	Tue Feb 09 03:12:20 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"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, mimicking a programmer's mistake
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(62)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:sequence expand-text="yes">{if($i = 0) then 'end' else codepoints-to-string($i + 64)}{if($i = 0) then () else f:create($i - 1)}</xsl:sequence> 
+        <xsl:text expand-text="yes">{if($i = 0 or $i = 62) then '' else '|'}</xsl:text>
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file