Variants of some math tests to force runtime evaluation
authorMichael Kay <mike@saxonica.com>
Mon, 11 Jan 2016 11:27:29 +0000
changeset 1198 aacf3d6d8681
parent 1197 d300f98a5bb8
child 1199 69cf9726a11f
Variants of some math tests to force runtime evaluation
tests/expr/math/_math-test-set.xml
tests/expr/math/math-3301a.xsl
tests/expr/math/math-3302a.xsl
tests/expr/math/math-3303a.xsl
tests/expr/math/math-3304a.xsl
tests/expr/math/math-3305a.xsl
tests/expr/math/math-3306a.xsl
tests/expr/math/math-3307a.xsl
tests/expr/math/math-3308a.xsl
tests/expr/math/math-3309a.xsl
tests/expr/math/math-3310a.xsl
--- a/tests/expr/math/_math-test-set.xml	Wed Dec 30 13:04:42 2015 +0000
+++ b/tests/expr/math/_math-test-set.xml	Mon Jan 11 11:27:29 2016 +0000
@@ -2132,6 +2132,21 @@
          <assert-xml file="math-3301.out"/>
       </result>
    </test-case>
+   
+   <test-case name="math-3301a">
+      <description>Test of round-half-to-even on integers: variant test forcing run-time evaluation</description>
+      <created by="Michael Kay" on="2016-01-11"/>
+      <environment ref="math-33"/>
+      <dependencies>
+         <spec value="XSLT20+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="math-3301a.xsl"/>
+      </test>
+      <result>
+         <assert-xml file="math-3301.out"/>
+      </result>
+   </test-case>
 
    <test-case name="math-3302">
       <description>Test of round-half-to-even on decimals.</description>
@@ -2147,6 +2162,21 @@
          <assert-xml file="math-3302.out"/>
       </result>
    </test-case>
+   
+   <test-case name="math-3302a">
+      <description>Test of round-half-to-even on decimals; variant forcing runtime evaluation</description>
+      <created by="Michael Kay" on="2016-01-11"/>
+      <environment ref="math-33"/>
+      <dependencies>
+         <spec value="XSLT20+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="math-3302a.xsl"/>
+      </test>
+      <result>
+         <assert-xml file="math-3302.out"/>
+      </result>
+   </test-case>
 
    <test-case name="math-3303">
       <description>Test of round-half-to-even on doubles.</description>
@@ -2162,6 +2192,21 @@
          <assert-xml file="math-3303.out"/>
       </result>
    </test-case>
+   
+   <test-case name="math-3303a">
+      <description>Test of round-half-to-even on doubles: variant forcing runtime evaluation</description>
+      <created by="Michael Kay" on="2016-01-11"/>
+      <environment ref="math-33"/>
+      <dependencies>
+         <spec value="XSLT20+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="math-3303a.xsl"/>
+      </test>
+      <result>
+         <assert-xml file="math-3303.out"/>
+      </result>
+   </test-case>
 
    <test-case name="math-3304">
       <description>Test of round-half-to-even on floats.</description>
@@ -2177,6 +2222,21 @@
          <assert-xml file="math-3304.out"/>
       </result>
    </test-case>
+   
+   <test-case name="math-3304a">
+      <description>Test of round-half-to-even on floats. Variant forcing runtime evaluation</description>
+      <created by="Michael Kay" on="2016-01-11"/>
+      <environment ref="math-33"/>
+      <dependencies>
+         <spec value="XSLT20+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="math-3304a.xsl"/>
+      </test>
+      <result>
+         <assert-xml file="math-3304.out"/>
+      </result>
+   </test-case>
 
    <test-case name="math-3305">
       <description>Test of abs() on all numeric data types.</description>
@@ -2192,6 +2252,21 @@
          <assert-xml file="math-3305.out"/>
       </result>
    </test-case>
+   
+   <test-case name="math-3305a">
+      <description>Test of abs() on all numeric data types. Variant forcing runtime evaluation</description>
+      <created by="Michael Kay" on="2016-01-11"/>
+      <environment ref="math-33"/>
+      <dependencies>
+         <spec value="XSLT20+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="math-3305a.xsl"/>
+      </test>
+      <result>
+         <assert-xml file="math-3305.out"/>
+      </result>
+   </test-case>
 
    <test-case name="math-3306">
       <description>Test that casting to integer truncates towards zero.</description>
@@ -2208,6 +2283,22 @@
 <decimal a="3" b="-3"/><double a="3" b="-3"/><float a="3" b="-3"/></out>]]></assert-xml>
       </result>
    </test-case>
+   
+   <test-case name="math-3306a">
+      <description>Test that casting to integer truncates towards zero. Variant forcing runtime evaluation</description>
+      <created by="Michael Kay" on="2016-01-11"/>
+      <environment ref="math-33"/>
+      <dependencies>
+         <spec value="XSLT20+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="math-3306a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<out xmlns:xs="http://www.w3.org/2001/XMLSchema">;
+<decimal a="3" b="-3"/><double a="3" b="-3"/><float a="3" b="-3"/></out>]]></assert-xml>
+      </result>
+   </test-case>
 
    <test-case name="math-3307">
       <description>Test that the result of dividing two integers is a decimal.</description>
@@ -2223,6 +2314,21 @@
          <assert-xml><![CDATA[<out xmlns:xs="http://www.w3.org/2001/XMLSchema" result="true"/>]]></assert-xml>
       </result>
    </test-case>
+   
+   <test-case name="math-3307a">
+      <description>Test that the result of dividing two integers is a decimal. Variant forcing runtime evaluation</description>
+      <created by="Michael Kay" on="2016-01-11"/>
+      <environment ref="math-33"/>
+      <dependencies>
+         <spec value="XSLT20+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="math-3307a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<out xmlns:xs="http://www.w3.org/2001/XMLSchema" result="true"/>]]></assert-xml>
+      </result>
+   </test-case>
 
    <test-case name="math-3308">
       <description>Bug in 7.8: converting a string of spaces to a number crashes</description>
@@ -2238,6 +2344,21 @@
          <assert-xml><![CDATA[<out>NaN</out>]]></assert-xml>
       </result>
    </test-case>
+   
+   <test-case name="math-3308a">
+      <description>Bug in 7.8: converting a string of spaces to a number crashes. Variant forcing runtime evaluation</description>
+      <created by="Michael Kay" on="2016-01-11"/>
+      <environment ref="math-33"/>
+      <dependencies>
+         <spec value="XSLT10+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="math-3308a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<out>NaN</out>]]></assert-xml>
+      </result>
+   </test-case>
 
    <test-case name="math-3309">
       <description>Test whitespace trimming in string-to-number conversion</description>
@@ -2253,6 +2374,21 @@
          <assert-xml><![CDATA[<out>-2</out>]]></assert-xml>
       </result>
    </test-case>
+   
+   <test-case name="math-3309a">
+      <description>Test whitespace trimming in string-to-number conversion. Variant forcing runtime evaluation</description>
+      <created by="Michael Kay" on="2016-01-11"/>
+      <environment ref="math-33"/>
+      <dependencies>
+         <spec value="XSLT10+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="math-3309a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<out>-2</out>]]></assert-xml>
+      </result>
+   </test-case>
 
    <test-case name="math-3310">
       <description>test value comparisons on NaN</description>
@@ -2271,6 +2407,24 @@
          </all-of>
       </result>
    </test-case>
+   
+   <test-case name="math-3310a">
+      <description>test value comparisons on NaN. Variant forcing runtime evaluation</description>
+      <created by="Michael Kay" on="2016-01-11"/>
+      <environment ref="math-33"/>
+      <dependencies>
+         <spec value="XSLT20+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="math-3310a.xsl"/>
+      </test>
+      <result>
+         <all-of>
+            <assert>every $b in //t satisfies $b = 'true'</assert>
+            <assert>every $b in //f satisfies $b = 'false'</assert>
+         </all-of>
+      </result>
+   </test-case>
 
    <test-case name="math-3311">
       <description>test arithmetic on big integers</description>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/expr/math/math-3301a.xsl	Mon Jan 11 11:27:29 2016 +0000
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
+<?spec fo#func-round-half-to-even?>
+<!-- PURPOSE:  Test of round-half-to-even on integers. -->
+    <!-- variant of 3301 forcing run-time evaluation -->
+    
+    <xsl:param name="p" select="1"/>
+
+<xsl:template match="doc">
+<out>;
+    <a b="{round-half-to-even($p*120)}" c="{round-half-to-even($p*0)}" d="{round-half-to-even($p*-3)}"/>;
+    <a b="{round-half-to-even($p*120, 2)}" c="{round-half-to-even($p*0, 2)}" d="{round-half-to-even($p*-3, 2)}"/>;
+    <a b="{round-half-to-even($p*120, -2)}" c="{round-half-to-even($p*0, -2)}" d="{round-half-to-even($p*-3, -2)}"/>;
+    <a b="{round-half-to-even($p*180, -2)}" c="{round-half-to-even($p*150, -2)}" d="{round-half-to-even($p*250, -2)}"/>;
+    <a b="{round-half-to-even($p*-180, -2)}" c="{round-half-to-even($p*-150, -2)}" d="{round-half-to-even($p*-250, -2)}"/>;
+</out>
+</xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/expr/math/math-3302a.xsl	Mon Jan 11 11:27:29 2016 +0000
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
+<?spec fo#func-round-half-to-even?>
+<!-- PURPOSE:  Test of round-half-to-even on decimals. -->
+    <!-- Variant forcing runtime evaluation -->
+
+<xsl:param name="p" select="1"/>
+    
+<xsl:template match="doc">
+<out>;
+    <a b="{round-half-to-even($p*120.0)}" c="{round-half-to-even($p*0.0)}" d="{round-half-to-even($p*-3.0)}"/>;
+    <a b="{round-half-to-even($p*120.0, 2)}" c="{round-half-to-even($p*0.0, 2)}" d="{round-half-to-even($p*-3.0, 2)}"/>;
+    <a b="{round-half-to-even($p*120.0, -2)}" c="{round-half-to-even($p*0.0, -2)}" d="{round-half-to-even(-3.0, -2)}"/>;
+    <a b="{round-half-to-even($p*180.0, -2)}" c="{round-half-to-even($p*150.0, -2)}" d="{round-half-to-even($p*250.0, -2)}"/>;
+    <a b="{round-half-to-even($p*-120.0, -2)}" c="{round-half-to-even($p*-150.0, -2)}" d="{round-half-to-even($p*-250.0, -2)}"/>;
+    <a b="{round-half-to-even($p*180.0180, 2)}" c="{round-half-to-even($p*150.0150, 2)}" d="{round-half-to-even($p*250.0250, 2)}"/>;
+    <a b="{round-half-to-even($p*-120.0120, 2)}" c="{round-half-to-even($p*-150.0150, 2)}" d="{round-half-to-even($p*-250.0250, 2)}"/>;
+</out>
+</xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/expr/math/math-3303a.xsl	Mon Jan 11 11:27:29 2016 +0000
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
+<?spec fo#func-round-half-to-even?>
+<!-- PURPOSE:  Test of round-half-to-even on doubles. -->
+    <!-- Variant forcing runtime evaluation -->
+    
+    <xsl:param name="p" select="1"/>
+
+<xsl:template match="doc">
+<out>;
+    <a b="{round-half-to-even($p*120.0e0)}" c="{round-half-to-even($p*0.0e0)}" d="{round-half-to-even($p*-3.0e0)}"/>;
+    <a b="{round-half-to-even($p*120.0e0, 2)}" c="{round-half-to-even($p*0.0e0, 2)}" d="{round-half-to-even($p*-3.0e0, 2)}"/>;
+    <a b="{round-half-to-even($p*120.0e0, -2)}" c="{round-half-to-even($p*0.0e0, -2)}" d="{round-half-to-even($p*-3.0e0, -2)}"/>;
+    <a b="{round-half-to-even($p*180.0e0, -2)}" c="{round-half-to-even($p*150.0e0, -2)}" d="{round-half-to-even($p*250.0e0, -2)}"/>;
+    <a b="{round-half-to-even($p*-120.0e0, -2)}" c="{round-half-to-even($p*-150.0e0, -2)}" d="{round-half-to-even($p*-250.0e0, -2)}"/>;
+    <a b="{round-half-to-even($p*180.0180e0, 2)}" c="{round-half-to-even($p*150.0150e0, 2)}" d="{round-half-to-even($p*250.0250e0, 2)}"/>;
+    <a b="{round-half-to-even($p*-120.0120e0, 2)}" c="{round-half-to-even($p*-150.0150e0, 2)}" d="{round-half-to-even($p*-250.0250e0, 2)}"/>;
+</out>
+</xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/expr/math/math-3304a.xsl	Mon Jan 11 11:27:29 2016 +0000
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
+xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs">
+<?spec fo#func-round-half-to-even?>
+<!-- PURPOSE:  Test of round-half-to-even on floats. -->
+    <!-- Variant forcing runtime evaluation -->
+    
+    <xsl:param name="p" select="1"/>
+
+<xsl:template match="doc">
+<out>;
+<a b="{round-half-to-even($p*xs:float(120.0e0))}" 
+    c="{round-half-to-even($p*xs:float(0.0e0))}" 
+    d="{round-half-to-even($p*xs:float(-3.0e0))}"/>;
+<a b="{round-half-to-even($p*xs:float(120.0e0), 2)}" 
+    c="{round-half-to-even($p*xs:float(0.0e0), 2)}" 
+    d="{round-half-to-even($p*xs:float(-3.0e0), 2)}"/>;
+<a b="{round-half-to-even($p*xs:float(120.0e0), -2)}" 
+    c="{round-half-to-even($p*xs:float(0.0e0), -2)}" 
+    d="{round-half-to-even($p*xs:float(-3.0e0), -2)}"/>;
+<a b="{round-half-to-even($p*xs:float(180.0e0), -2)}" 
+    c="{round-half-to-even($p*xs:float(150.0e0), -2)}" 
+    d="{round-half-to-even($p*xs:float(250.0e0), -2)}"/>;
+<a b="{round-half-to-even($p*xs:float(-120.0e0), -2)}" 
+    c="{round-half-to-even($p*xs:float(-150.0e0), -2)}" 
+    d="{round-half-to-even($p*xs:float(-250.0e0), -2)}"/>;
+<a b="{round-half-to-even($p*xs:float(180.0180e0), 2)}" 
+    c="{round-half-to-even($p*xs:float(150.0150e0), 2)}" 
+    d="{round-half-to-even($p*xs:float(250.0250e0), 2)}"/>;
+<a b="{round-half-to-even($p*xs:float(-120.0120e0), 2)}" 
+    c="{round-half-to-even($p*xs:float(-150.0150e0), 2)}" 
+    d="{round-half-to-even($p*xs:float(-250.0250e0), 2)}"/>;
+</out>
+</xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/expr/math/math-3305a.xsl	Mon Jan 11 11:27:29 2016 +0000
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
+  xmlns:xs="http://www.w3.org/2001/XMLSchema">
+<?spec fo#func-abs?>
+<!-- PURPOSE:  Test of abs($p*) on all numeric data types. -->
+  <!-- Variant forcing runtime evaluation -->
+  
+  <xsl:param name="p" select="1"/>
+
+<xsl:template match="doc">
+<out>;
+<int a="{abs($p*3)}" b="{abs($p*-3)}" c="{abs($p*0)}"/>
+<decimal a="{abs($p*3.2)}" b="{abs($p*-3.2)}" c="{abs($p*0.0)}"/>
+<double a="{abs($p*3.2e0)}" b="{abs($p*-3.2e0)}" c="{abs($p*0.0e0)}" d="{abs($p*-0.0e0)}" e="{abs($p*number('NaN'))}"
+   f="{abs($p*1e0 div 0)}" g="{abs($p*-1e0 div 0)}"/>
+<float a="{abs($p*xs:float(3.2e0))}" b="{abs($p*xs:float(-3.2e0))}" c="{abs($p*xs:float(0.0e0))}" 
+d="{abs($p*xs:float(-0.0e0))}" e="{abs($p*xs:float('NaN'))}"   f="{abs($p*xs:float(1e0 div 0))}" 
+g="{abs($p*xs:float(-1e0 div 0))}"/>
+</out>
+</xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/expr/math/math-3306a.xsl	Mon Jan 11 11:27:29 2016 +0000
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
+  xmlns:xs="http://www.w3.org/2001/XMLSchema">
+<?spec fo#casting-to-numerics?>
+<!-- PURPOSE:  Test that casting to integer truncates towards zero. -->
+  <!-- Variant forcing run-time evaluation -->
+  
+  <xsl:param name="p" select="1"/>
+<xsl:template match="doc">
+<out>;
+<decimal a="{xs:integer($p*3.8)}" b="{xs:integer($p*-3.8)}"/>
+<double a="{xs:integer($p*3.8e0)}" b="{xs:integer($p*-3.8e0)}"/>
+<float a="{xs:integer($p*xs:float(3.8e0))}" b="{xs:integer($p*xs:float(-3.8e0))}"/>
+</out>
+</xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/expr/math/math-3307a.xsl	Mon Jan 11 11:27:29 2016 +0000
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
+  xmlns:xs="http://www.w3.org/2001/XMLSchema">
+<?spec fo#func-numeric-divide?>
+<!-- PURPOSE:  Test that the result of dividing two integers is a decimal. -->
+  <!-- Variant forcing run-time evaluation -->
+  
+  <xsl:param name="p" select="3"/>
+
+<xsl:template match="/">
+<out result="{($p div 4) instance of xs:decimal}"/>
+</xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/expr/math/math-3308a.xsl	Mon Jan 11 11:27:29 2016 +0000
@@ -0,0 +1,15 @@
+<xsl:stylesheet version="2.0"
+   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+<?spec fo#func-number?>
+<!-- Bug in 7.8: converting a string of spaces to a number crashes -->
+  <!-- Variant forcing runtime evaluation -->
+  
+  <xsl:param name="p" select="'   '"/>
+
+<xsl:template match="/">
+  <out>
+    <xsl:value-of select="number($p)"/>
+  </out>
+</xsl:template>
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/expr/math/math-3309a.xsl	Mon Jan 11 11:27:29 2016 +0000
@@ -0,0 +1,16 @@
+<xsl:stylesheet version="2.0"
+   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+<?spec fo#func-number?>
+<!-- Test whitespace trimming in string-to-number conversion -->
+  <!-- Variant forcing runtime evaluation -->
+  
+  <xsl:param name="p" select="'  -2  '"/>
+  
+
+<xsl:template match="/">
+  <out>
+    <xsl:value-of select="number($p)"/>
+  </out>
+</xsl:template>
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/expr/math/math-3310a.xsl	Mon Jan 11 11:27:29 2016 +0000
@@ -0,0 +1,97 @@
+<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+    <xsl:template match="/">
+
+        <!-- test value comparisons on NaN -->
+        <!-- Variant forcing runtime evaluation -->
+
+        <xsl:param name="a" select="2"/>
+        <xsl:param name="n" select="number(dummy)"/>
+        <xsl:param name="s" select="(2,3,4)"/>
+        <xsl:param name="t" select="($n, 4)"/>
+        <z>
+            <x>
+                <f>
+                    <xsl:value-of select="$a eq $n"/>
+                </f>
+                <t>
+                    <xsl:value-of select="$a ne $n"/>
+                </t>
+                <f>
+                    <xsl:value-of select="$a lt $n"/>
+                </f>
+                <f>
+                    <xsl:value-of select="$a le $n"/>
+                </f>
+                <f>
+                    <xsl:value-of select="$a gt $n"/>
+                </f>
+                <f>
+                    <xsl:value-of select="$a ge $n"/>
+                </f>
+            </x>
+            <x>
+                <f>
+                    <xsl:value-of select="$n eq $a"/>
+                </f>
+                <t>
+                    <xsl:value-of select="$n ne $a"/>
+                </t>
+                <f>
+                    <xsl:value-of select="$n lt $a"/>
+                </f>
+                <f>
+                    <xsl:value-of select="$n le $a"/>
+                </f>
+                <f>
+                    <xsl:value-of select="$n gt $a"/>
+                </f>
+                <f>
+                    <xsl:value-of select="$n ge $a"/>
+                </f>
+            </x>
+            <x>
+                <t>
+                    <xsl:value-of select="$s = $t"/>
+                </t>
+                <t>
+                    <xsl:value-of select="$s != $t"/>
+                </t>
+                <t>
+                    <xsl:value-of select="$s &lt; $t"/>
+                </t>
+                <t>
+                    <xsl:value-of select="$s &lt;= $t"/>
+                </t>
+                <f>
+                    <xsl:value-of select="$s &gt; $t"/>
+                </f>
+                <t>
+                    <xsl:value-of select="$s &gt;= $t"/>
+                </t>
+            </x>
+            <x>
+                <t>
+                    <xsl:value-of select="$t = $s"/>
+                </t>
+                <t>
+                    <xsl:value-of select="$t != $s"/>
+                </t>
+                <f>
+                    <xsl:value-of select="$t &lt; $s"/>
+                </f>
+                <t>
+                    <xsl:value-of select="$t &lt;= $s"/>
+                </t>
+                <t>
+                    <xsl:value-of select="$t &gt; $s"/>
+                </t>
+                <t>
+                    <xsl:value-of select="$t &gt;= $s"/>
+                </t>
+            </x>
+
+
+        </z>
+    </xsl:template>
+</xsl:stylesheet>