[exslt] very low priority - date:add 'billionthSecBug'
by Bruce Krautbauer other posts by this author
Mar 21 2002 3:45PM messages near this date
Re: [exslt] very low priority - date:add 'billionthSecBug'
|
[exslt] problem with durations with negative time values in date:add
template
and just to show you how anal I can be... (poor Jeni, she must be a saint to put up with all
of us!) Jeni, BTW, in looking back at the original note I sent you it looks like the billi
onthSecBug.xsl code was corrupted during the cut'n paste; sorry.
Hi Jeni,
This one will either make you laugh or drive you crazy. Maybe both.
I was continuing on my date:add testing by checking how decimal seconds were handled. Being
studious I thought I would check down to 10^-9. Everything works as I expected except in o
ne case, which is in the middle of the testing. I've attached a text version of my output b
elow. Notice that when the duration is PT0.0000001S for some reason the result loses the 1x
10^-9. The base is the same for all of the offsets. I can see nothing in the code that sho
uld cause this to happen. It happens with both MSXML 4 and Saxon 6.0.2. My data and styles
heet are also included.
Any ideas? This wouldn't have anything to do with the British misunderstanding of what a bi
llion is, would it? ;)
Thanks,
Bruce
<output>
timeStudy
Check to see how fractional seconds are handled
Base: 2002-01-01T00:00:00.000000001
Offset Expected Calculated Template Comment
PT0.1S 2002-01-01T00:00:00.100000001 2002-01-01T00:00:00.100000001 add 1/10 second
PT0.01S 2002-01-01T00:00:00.010000001 2002-01-01T00:00:00.010000001 add 1/100 second
PT0.001S 2002-01-01T00:00:00.001000001 2002-01-01T00:00:00.001000001 add 1/1000 second
PT0.0001S 2002-01-01T00:00:00.000100001 2002-01-01T00:00:00.000100001 add 1/10,000 second
PT0.00001S 2002-01-01T00:00:00.000010001 2002-01-01T00:00:00.000010001 add 1/100,000 second
PT0.000001S 2002-01-01T00:00:00.000001001 2002-01-01T00:00:00.000001001 add 1/1,000,000 seco
nd
PT0.0000001S 2002-01-01T00:00:00.000000101 2002-01-01T00:00:00.000000100 add 1/10,000,000 se
cond
PT0.00000001S 2002-01-01T00:00:00.000000011 2002-01-01T00:00:00.000000011 add 1/100,000,000
second
PT0.000000001S 2002-01-01T00:00:00.000000002 2002-01-01T00:00:00.000000002 add 1/1,000,000,0
00 second
-PT0.1S 2001-12-31T11:59:59.9 2001-12-31T-01:-01:0-0.099999 subtract one tenth second
</output>
<billionthSecBug.xml>
<?xml-stylesheet type="text/xsl" href="billionthSecBug.xsl"?>
<timeStudy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<test>
<comment> Check to see how fractional seconds are handled</comment>
<dateTimeBase> 2002-01-01T00:00:00.000000001</dateTimeBase>
<offset>
<comment> add 1/10 second</comment>
<durationOffset> PT0.1S</durationOffset>
<dateTimeExpected> 2002-01-01T00:00:00.100000001</dateTimeExpected>
</offset>
<offset>
<comment> add 1/100 second</comment>
<durationOffset> PT0.01S</durationOffset>
<dateTimeExpected> 2002-01-01T00:00:00.010000001</dateTimeExpected>
</offset>
<offset>
<comment> add 1/1000 second</comment>
<durationOffset> PT0.001S</durationOffset>
<dateTimeExpected> 2002-01-01T00:00:00.001000001</dateTimeExpected>
</offset>
<offset>
<comment> add 1/10,000 second</comment>
<durationOffset> PT0.0001S</durationOffset>
<dateTimeExpected> 2002-01-01T00:00:00.000100001</dateTimeExpected>
</offset>
<offset>
<comment> add 1/100,000 second</comment>
<durationOffset> PT0.00001S</durationOffset>
<dateTimeExpected> 2002-01-01T00:00:00.000010001</dateTimeExpected>
</offset>
<offset>
<comment> add 1/1,000,000 second</comment>
<durationOffset> PT0.000001S</durationOffset>
<dateTimeExpected> 2002-01-01T00:00:00.000001001</dateTimeExpected>
</offset>
<offset>
<comment> add 1/10,000,000 second</comment>
<durationOffset> PT0.0000001S</durationOffset>
<dateTimeExpected> 2002-01-01T00:00:00.000000101</dateTimeExpected>
</offset>
<offset>
<comment> add 1/100,000,000 second</comment>
<durationOffset> PT0.00000001S</durationOffset>
<dateTimeExpected> 2002-01-01T00:00:00.000000011</dateTimeExpected>
</offset>
<offset>
<comment> add 1/1,000,000,000 second</comment>
<durationOffset> PT0.000000001S</durationOffset>
<dateTimeExpected> 2002-01-01T00:00:00.000000002</dateTimeExpected>
</offset>
<offset>
<comment> subtract one tenth second</comment>
<durationOffset> -PT0.1S</durationOffset>
<dateTimeExpected> 2001-12-31T11:59:59.9</dateTimeExpected>
</offset>
</test>
</timeStudy>
</billionthSecBug.xml>
<billionthSecBug.xsl>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:date="h
ttp://exslt.org/dates-and-times" extension-element-prefixes="date">
<xsl:import href="date.add.template.xsl" />
<xsl:template match="/">
<xsl:apply-templates select="timeStudy" />
</xsl:template>
<xsl:template match="timeStudy">
<xsl:element name="h1">
<xsl:text> timeStudy</xsl:text>
</xsl:element>
<xsl:apply-templates select="test" />
</xsl:template>
<xsl:template match="test">
<xsl:element name="h2">
<xsl:apply-templates select="comment" />
</xsl:element>
<xsl:element name="h3">
<xsl:text> Base: </xsl:text>
<xsl:apply-templates select="dateTimeBase" />
</xsl:element>
<xsl:element name="table">
<xsl:element name="tr">
<xsl:element name="th"> Offset</xsl:element>
<xsl:element name="th"> Expected</xsl:element>
<xsl:element name="th"> Calculated Template</xsl:element>
<xsl:element name="th"> Comment</xsl:element>
</xsl:element>
<xsl:apply-templates select="offset" />
</xsl:element>
</xsl:template>
<xsl:template match="comment | dateTimeBase | durationOffset | dateTimeExpected">
<xsl:value-of select="." />
</xsl:template>
<xsl:template match="offset">
<xsl:variable name="dateTimeResulttemplate">
<xsl:call-template name="date:add">
<xsl:with-param name="date-time" select="../dateTimeBase" />
<xsl:with-param name="duration" select="durationOffset" />
</xsl:call-template>
</xsl:variable>
<xsl:element name="tr">
<xsl:element name="td">
<xsl:apply-templates select="durationOffset" />
</xsl:element>
<xsl:element name="td">
<xsl:apply-templates select="dateTimeExpected" />
</xsl:element>
<xsl:element name="td">
<xsl:element name="div">
<xsl:if test="$dateTimeResulttemplate!=dateTimeExpected">
<xsl:attribute name="style"> color:red</xsl:attribute>
</xsl:if> otab </offset>
<of
<xsl:value-of select="$dateTimeResulttemplate" />
</xsl:element>
</xsl:element>
<xsl:element name="td">
<xsl:apply-templates select="comment" />
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
</billionthSecBug.xsl>
_______________________________________________
exslt mailing list
list@[...].org
http://www.exslt.org/list
|