mirror of
https://gitlab.gnome.org/GNOME/libxslt
synced 2025-11-06 23:49:25 +03:00
applied another patch from Charles Bozeman to enhance date/duration
* libexslt/date.c: applied another patch from Charles Bozeman to enhance date/duration support * tests/exslt/date: added the associated set of regression tests Daniel
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
Fri Apr 26 08:15:30 CEST 2002 Daniel Veillard <daniel@veillard.com>
|
||||
|
||||
* libexslt/date.c: applied another patch from Charles Bozeman to
|
||||
enhance date/duration support
|
||||
* tests/exslt/date: added the associated set of regression tests
|
||||
|
||||
Thu Apr 25 08:18:57 CEST 2002 Daniel Veillard <daniel@veillard.com>
|
||||
|
||||
* libexslt/date.c: applied a patch from Charles Bozeman to add
|
||||
|
||||
@@ -76,8 +76,9 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd">
|
||||
<p>The latest versions of libxslt can be found on <a href="ftp://xmlsoft.org/">xmlsoft.org</a> (<a href="ftp://speakeasy.rpmfind.net/pub/libxml/">Seattle</a>, <a href="ftp://fr.rpmfind.net/pub/libxml/">France</a>) or on the <a href="ftp://ftp.gnome.org/pub/GNOME/MIRRORS.html">Gnome FTP server</a> either
|
||||
as a <a href="ftp://ftp.gnome.org/pub/GNOME/stable/sources/libxslt/">source
|
||||
archive</a> or <a href="ftp://ftp.gnome.org/pub/GNOME/contrib/redhat/SRPMS/">RPM packages</a>.
|
||||
(NOTE that you need the <a href="http://rpmfind.net/linux/RPM/libxml2.html">libxml2</a>, <a href="http://rpmfind.net/linux/RPM/libxml2-devel.html">libxml2-devel</a>, <a href="http://rpmfind.net/linux/RPM/libxslt.html">libxslt</a> and <a href="http://rpmfind.net/linux/RPM/libxslt-devel.html">libxslt-devel</a>
|
||||
archive</a> or <a href="ftp://ftp.gnome.org/pub/GNOME/contrib/redhat/SRPMS/">RPM packages</a>,
|
||||
Antonin Sprinzl also provides <a href="ftp://gd.tuwien.ac.at/pub/libxml/">a
|
||||
mirror in Austria</a>. (NOTE that you need the <a href="http://rpmfind.net/linux/RPM/libxml2.html">libxml2</a>, <a href="http://rpmfind.net/linux/RPM/libxml2-devel.html">libxml2-devel</a>, <a href="http://rpmfind.net/linux/RPM/libxslt.html">libxslt</a> and <a href="http://rpmfind.net/linux/RPM/libxslt-devel.html">libxslt-devel</a>
|
||||
packages installed to compile applications using libxslt.) <a href="mailto:igor@stud.fh-frankfurt.de">Igor Zlatkovic</a> is now the
|
||||
maintainer of the Windows port, <a href="http://www.fh-frankfurt.de/~igor/projects/libxml/index.html">he
|
||||
provides binaries</a>. <a href="mailto:Gary.Pennington@sun.com">Gary
|
||||
|
||||
@@ -176,8 +176,9 @@ href="ftp://fr.rpmfind.net/pub/libxml/">France</a>) or on the <a
|
||||
href="ftp://ftp.gnome.org/pub/GNOME/MIRRORS.html">Gnome FTP server</a> either
|
||||
as a <a href="ftp://ftp.gnome.org/pub/GNOME/stable/sources/libxslt/">source
|
||||
archive</a> or <a
|
||||
href="ftp://ftp.gnome.org/pub/GNOME/contrib/redhat/SRPMS/">RPM packages</a>.
|
||||
(NOTE that you need the <a
|
||||
href="ftp://ftp.gnome.org/pub/GNOME/contrib/redhat/SRPMS/">RPM packages</a>,
|
||||
Antonin Sprinzl also provides <a href="ftp://gd.tuwien.ac.at/pub/libxml/">a
|
||||
mirror in Austria</a>. (NOTE that you need the <a
|
||||
href="http://rpmfind.net/linux/RPM/libxml2.html">libxml2</a>, <a
|
||||
href="http://rpmfind.net/linux/RPM/libxml2-devel.html">libxml2-devel</a>, <a
|
||||
href="http://rpmfind.net/linux/RPM/libxslt.html">libxslt</a> and <a
|
||||
|
||||
@@ -922,7 +922,7 @@ exsltDateParseDuration (const xmlChar *duration) {
|
||||
const xmlChar *cur = duration;
|
||||
exsltDateValPtr dur;
|
||||
int isneg = 0;
|
||||
int seq = 0;
|
||||
unsigned int seq = 0;
|
||||
|
||||
if (duration == NULL)
|
||||
return NULL;
|
||||
@@ -944,7 +944,7 @@ exsltDateParseDuration (const xmlChar *duration) {
|
||||
double num;
|
||||
int num_type = 0; /* -1 = invalid, 0 = int, 1 = floating */
|
||||
const xmlChar desig[] = {'Y', 'M', 'D', 'H', 'M', 'S'};
|
||||
const double mult[] = { 0.0, 0.0, 86400.0, 3600.0, 60.0, 1.0, 0.0};
|
||||
const double multi[] = { 0.0, 0.0, 86400.0, 3600.0, 60.0, 1.0, 0.0};
|
||||
|
||||
/* input string should be empty or invalid date/time item */
|
||||
if (seq >= sizeof(desig))
|
||||
@@ -971,7 +971,7 @@ exsltDateParseDuration (const xmlChar *duration) {
|
||||
if (*cur == desig[seq]) {
|
||||
|
||||
/* verify numeric type; only seconds can be float */
|
||||
if ((num_type != 0) && (seq < (sizeof(desig-1))))
|
||||
if ((num_type != 0) && (seq < (sizeof(desig)-1)))
|
||||
goto error;
|
||||
|
||||
switch (seq) {
|
||||
@@ -983,7 +983,7 @@ exsltDateParseDuration (const xmlChar *duration) {
|
||||
break;
|
||||
default:
|
||||
/* convert to seconds using multiplier */
|
||||
dur->value.dur.sec += num * mult[seq];
|
||||
dur->value.dur.sec += num * multi[seq];
|
||||
seq++;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -20,14 +20,20 @@ EXTRA_DIST = \
|
||||
gyearmonth.1.out gyearmonth.1.xml gyearmonth.1.xsl \
|
||||
gyearmonth.2.out gyearmonth.2.xml gyearmonth.2.xsl \
|
||||
time.1.out time.1.xml time.1.xsl \
|
||||
time.2.out time.2.xml time.2.xsl
|
||||
time.2.out time.2.xml time.2.xsl \
|
||||
add.1.out add.1.xml add.1.xsl \
|
||||
add.2.out add.2.xml add.2.xsl \
|
||||
add-duration.1.out add-duration.1.xml add-duration.1.xsl \
|
||||
add-duration.2.out add-duration.2.xml add-duration.2.xsl \
|
||||
difference.1.out difference.1.xml difference.1.xsl \
|
||||
difference.2.out difference.2.xml difference.2.xsl \
|
||||
duration.1.out duration.1.xml duration.1.xsl \
|
||||
duration.2.out duration.2.xml duration.2.xsl \
|
||||
seconds.1.out seconds.1.xml seconds.1.xsl \
|
||||
seconds.2.out seconds.2.xml seconds.2.xsl
|
||||
|
||||
all:
|
||||
|
||||
valgrind:
|
||||
@echo '## Running the regression tests under Valgrind'
|
||||
$(MAKE) CHECKER='valgrind -q' tests
|
||||
|
||||
test-current:
|
||||
@(echo > .memdump)
|
||||
@echo \<doc/\> >current.xml
|
||||
@@ -37,7 +43,7 @@ test-current:
|
||||
@(for i in $(srcdir)/current.xsl ; do \
|
||||
name=`basename $$i .xsl` ; \
|
||||
if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
|
||||
$(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/$$name.xsl $(srcdir)/$$name.xml;\
|
||||
$(top_builddir)/xsltproc/xsltproc $(srcdir)/$$name.xsl $(srcdir)/$$name.xml;\
|
||||
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" || true;\
|
||||
done)
|
||||
@rm -f current.xml
|
||||
@@ -48,7 +54,7 @@ test tests: $(top_builddir)/xsltproc/xsltproc test-current
|
||||
name=`basename $$i .xsl` ; \
|
||||
if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
|
||||
echo $$name.xml ; \
|
||||
$(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res;\
|
||||
$(top_builddir)/xsltproc/xsltproc $(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res;\
|
||||
if [ ! -f $(srcdir)/$$name.out ] ; then cp $$name.res $(srcdir)/$$name.out ; \
|
||||
else if [ ! -s $$name.res ] ; then echo "Fatal error, no $$name.res\n" ; \
|
||||
else diff $(srcdir)/$$name.out $$name.res ; fi ; fi; \
|
||||
|
||||
47
tests/exslt/date/add-duration.1.out
Normal file
47
tests/exslt/date/add-duration.1.out
Normal file
@@ -0,0 +1,47 @@
|
||||
|
||||
add-duration : P1Y + -P1Y
|
||||
result : P0D
|
||||
add-duration : P1M + -P1M
|
||||
result : P0D
|
||||
add-duration : P1D + -P1D
|
||||
result : P0D
|
||||
add-duration : PT1H + -PT1H
|
||||
result : P0D
|
||||
add-duration : PT1M + -PT1M
|
||||
result : P0D
|
||||
add-duration : PT1S + -PT1S
|
||||
result : P0D
|
||||
add-duration : P1Y + -P12M
|
||||
result : P0D
|
||||
add-duration : P1D + -PT24H
|
||||
result : P0D
|
||||
add-duration : P1D + -PT1440M
|
||||
result : P0D
|
||||
add-duration : P1D + -PT86400S
|
||||
result : P0D
|
||||
add-duration : P1Y1D + -P12MT86400S
|
||||
result : P0D
|
||||
add-duration : P30D + PT24H
|
||||
result : P31D
|
||||
add-duration : P10Y + P45M
|
||||
result : P13Y9M
|
||||
add-duration : P10Y + -P12M
|
||||
result : P9Y
|
||||
add-duration : P5Y11M + -P12M
|
||||
result : P4Y11M
|
||||
add-duration : P1000Y11M30D + -PT9S
|
||||
result : P1000Y11M29DT23H59M51S
|
||||
add-duration : P12M29D + P365D
|
||||
result : P1Y394D
|
||||
add-duration : P1000Y + PT45.65S
|
||||
result : P1000YT45.65S
|
||||
add-duration : PT23H59M0S + PT59S
|
||||
result : PT23H59M59S
|
||||
add-duration : PT23H59M0S + PT61S
|
||||
result : P1DT1S
|
||||
add-duration : P1000Y11M30DT23H59M0.1S + PT59.9S
|
||||
result : P1000Y11M31D
|
||||
add-duration : P1000Y11M30DT23H59M1S + PT59S
|
||||
result : P1000Y11M31D
|
||||
add-duration : P1000Y11M30D + -P1DT9S
|
||||
result : P1000Y11M28DT23H59M51S
|
||||
27
tests/exslt/date/add-duration.1.xml
Normal file
27
tests/exslt/date/add-duration.1.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0"?>
|
||||
<page>
|
||||
<date dur1='P1Y' dur2='-P1Y'/>
|
||||
<date dur1='P1M' dur2='-P1M'/>
|
||||
<date dur1='P1D' dur2='-P1D'/>
|
||||
<date dur1='PT1H' dur2='-PT1H'/>
|
||||
<date dur1='PT1M' dur2='-PT1M'/>
|
||||
<date dur1='PT1S' dur2='-PT1S'/>
|
||||
<date dur1='P1Y' dur2='-P12M'/>
|
||||
<date dur1='P1D' dur2='-PT24H'/>
|
||||
<date dur1='P1D' dur2='-PT1440M'/>
|
||||
<date dur1='P1D' dur2='-PT86400S'/>
|
||||
<date dur1='P1Y1D' dur2='-P12MT86400S'/>
|
||||
<date dur1='P30D' dur2='PT24H'/>
|
||||
<date dur1='P10Y' dur2='P45M'/>
|
||||
<date dur1='P10Y' dur2='-P12M'/>
|
||||
<date dur1='P5Y11M' dur2='-P12M'/>
|
||||
<date dur1='P1000Y11M30D' dur2='-PT9S'/>
|
||||
<date dur1='P12M29D' dur2='P365D'/>
|
||||
<date dur1='P1000Y' dur2='PT45.65S'/>
|
||||
<date dur1='PT23H59M0S' dur2='PT59S'/>
|
||||
<date dur1='PT23H59M0S' dur2='PT61S'/>
|
||||
<date dur1='P1000Y11M30DT23H59M0.1S' dur2='PT59.9S'/>
|
||||
<date dur1='P1000Y11M30DT23H59M1S' dur2='PT59S'/>
|
||||
<date dur1='P1000Y11M30D' dur2='-P1DT9S'/>
|
||||
</page>
|
||||
|
||||
16
tests/exslt/date/add-duration.1.xsl
Normal file
16
tests/exslt/date/add-duration.1.xsl
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:date="http://exslt.org/dates-and-times"
|
||||
extension-element-prefixes="date">
|
||||
|
||||
<xsl:output method="text"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<xsl:template match="date">
|
||||
add-duration : <xsl:value-of select="@dur1"/> + <xsl:value-of select="@dur2"/>
|
||||
result : <xsl:value-of select="date:add-duration(@dur1,@dur2)"/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
13
tests/exslt/date/add-duration.2.out
Normal file
13
tests/exslt/date/add-duration.2.out
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
add-duration : 2001 + -P1Y
|
||||
result :
|
||||
add-duration : P1M + 2000-01-01
|
||||
result :
|
||||
add-duration : P11M30D + -P12M
|
||||
result :
|
||||
add-duration : P11M + -P12D
|
||||
result :
|
||||
add-duration : P1000Y11M + -PT9S
|
||||
result :
|
||||
add-duration : -P1000Y + PT9S
|
||||
result :
|
||||
12
tests/exslt/date/add-duration.2.xml
Normal file
12
tests/exslt/date/add-duration.2.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0"?>
|
||||
<page>
|
||||
<!-- invalid types -->
|
||||
<date dur1='2001' dur2='-P1Y'/>
|
||||
<date dur1='P1M' dur2='2000-01-01'/>
|
||||
<!-- cannot express result -->
|
||||
<date dur1='P11M30D' dur2='-P12M'/>
|
||||
<date dur1='P11M' dur2='-P12D'/>
|
||||
<date dur1='P1000Y11M' dur2='-PT9S'/>
|
||||
<date dur1='-P1000Y' dur2='PT9S'/>
|
||||
</page>
|
||||
|
||||
16
tests/exslt/date/add-duration.2.xsl
Normal file
16
tests/exslt/date/add-duration.2.xsl
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:date="http://exslt.org/dates-and-times"
|
||||
extension-element-prefixes="date">
|
||||
|
||||
<xsl:output method="text"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<xsl:template match="date">
|
||||
add-duration : <xsl:value-of select="@dur1"/> + <xsl:value-of select="@dur2"/>
|
||||
result : <xsl:value-of select="date:add-duration(@dur1,@dur2)"/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
29
tests/exslt/date/add.1.out
Normal file
29
tests/exslt/date/add.1.out
Normal file
@@ -0,0 +1,29 @@
|
||||
|
||||
add : 2000-01-01T01:01:00Z + PT0S
|
||||
result : 2000-01-01T01:01:00Z
|
||||
add : 2000-01-01T01:01:00Z + PT60S
|
||||
result : 2000-01-01T01:02:00Z
|
||||
add : 2000-01-01T01:01:00Z + PT59S
|
||||
result : 2000-01-01T01:01:59Z
|
||||
add : 2000-01-01 + PT86400S
|
||||
result : 2000-01-02
|
||||
add : 2000-02-29 + PT86400S
|
||||
result : 2000-03-01
|
||||
add : 2000-01-01 + -PT86400S
|
||||
result : 1999-12-31
|
||||
add : -0001-12-31T23:59:59 + PT1S
|
||||
result : 0001-01-01T00:00:00Z
|
||||
add : 0001-01-01T00:00:00 + -PT1S
|
||||
result : -0001-12-31T23:59:59Z
|
||||
add : 2000-01-01T00:00:00Z + -PT59S
|
||||
result : 1999-12-31T23:59:01Z
|
||||
add : -0001 + -PT59S
|
||||
result : -0002-12-31T23:59:01Z
|
||||
add : -0001 + P1Y
|
||||
result : 0001
|
||||
add : 2000-01 + -PT86400S
|
||||
result : 1999-12-31
|
||||
add : 2000-01 + -P1D
|
||||
result : 1999-12-31
|
||||
add : 1970-01-01T00:00:00-00:30 + -PT30S
|
||||
result : 1969-12-31T23:29:30Z
|
||||
18
tests/exslt/date/add.1.xml
Normal file
18
tests/exslt/date/add.1.xml
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0"?>
|
||||
<page>
|
||||
<date date='2000-01-01T01:01:00Z' dur='PT0S'/>
|
||||
<date date='2000-01-01T01:01:00Z' dur='PT60S'/>
|
||||
<date date='2000-01-01T01:01:00Z' dur='PT59S'/>
|
||||
<date date='2000-01-01' dur='PT86400S'/>
|
||||
<date date='2000-02-29' dur='PT86400S'/>
|
||||
<date date='2000-01-01' dur='-PT86400S'/>
|
||||
<date date='-0001-12-31T23:59:59' dur='PT1S'/>
|
||||
<date date='0001-01-01T00:00:00' dur='-PT1S'/>
|
||||
<date date='2000-01-01T00:00:00Z' dur='-PT59S'/>
|
||||
<date date='-0001' dur='-PT59S'/>
|
||||
<date date='-0001' dur='P1Y'/>
|
||||
<date date='2000-01' dur='-PT86400S'/>
|
||||
<date date='2000-01' dur='-P1D'/>
|
||||
<date date='1970-01-01T00:00:00-00:30' dur='-PT30S'/>
|
||||
</page>
|
||||
|
||||
16
tests/exslt/date/add.1.xsl
Normal file
16
tests/exslt/date/add.1.xsl
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:date="http://exslt.org/dates-and-times"
|
||||
extension-element-prefixes="date">
|
||||
|
||||
<xsl:output method="text"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<xsl:template match="date">
|
||||
add : <xsl:value-of select="@date"/> + <xsl:value-of select="@dur"/>
|
||||
result : <xsl:value-of select="date:add(@date,@dur)"/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
13
tests/exslt/date/add.2.out
Normal file
13
tests/exslt/date/add.2.out
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
add : PT0S + 2000-01-01T01:01:00Z
|
||||
result :
|
||||
add : 2000-01-01T01:01:00Z +
|
||||
result :
|
||||
add : + PT60S
|
||||
result :
|
||||
add : --10-29 + PT60S
|
||||
result :
|
||||
add : ---29 + PT60S
|
||||
result :
|
||||
add : 10:31:07 + PT60S
|
||||
result :
|
||||
12
tests/exslt/date/add.2.xml
Normal file
12
tests/exslt/date/add.2.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0"?>
|
||||
<page>
|
||||
<!-- invalid arguments -->
|
||||
<date date='PT0S' dur='2000-01-01T01:01:00Z'/>
|
||||
<date date='2000-01-01T01:01:00Z' dur=''/>
|
||||
<date date='' dur='PT60S'/>
|
||||
<!-- invalid date/time types -->
|
||||
<date date="--10-29" dur="PT60S"/>
|
||||
<date date="---29" dur="PT60S"/>
|
||||
<date date="10:31:07" dur="PT60S"/>
|
||||
</page>
|
||||
|
||||
16
tests/exslt/date/add.2.xsl
Normal file
16
tests/exslt/date/add.2.xsl
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:date="http://exslt.org/dates-and-times"
|
||||
extension-element-prefixes="date">
|
||||
|
||||
<xsl:output method="text"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<xsl:template match="date">
|
||||
add : <xsl:value-of select="@date"/> + <xsl:value-of select="@dur"/>
|
||||
result : <xsl:value-of select="date:add(@date,@dur)"/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
23
tests/exslt/date/difference.1.out
Normal file
23
tests/exslt/date/difference.1.out
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
difference : 2000 - 1999
|
||||
result : P1Y
|
||||
difference : 2000-01 - 1999-12
|
||||
result : P1M
|
||||
difference : 1999-12 - 2000-01
|
||||
result : -P1M
|
||||
difference : 1999-12-31 - 2000-01-01
|
||||
result : -P1D
|
||||
difference : 1999 - 2000-01
|
||||
result : -P1Y
|
||||
difference : 0002-01-05 - 0001-01-04
|
||||
result : P366D
|
||||
difference : 0002-05-05 - 0001-01
|
||||
result : P1Y4M
|
||||
difference : -0002-01-05 - 0001-01-04
|
||||
result : -P729D
|
||||
difference : 1970-01-01T05:04:03 - 1970-01-01T04:03:02
|
||||
result : PT1H1M1S
|
||||
difference : 2000-01-01T05:00:03 - 2000-01-01T04:03:02
|
||||
result : PT57M1S
|
||||
difference : 2000-01-01T05:00:03 - 1980-01-01T04:03:02
|
||||
result : P7305DT57M1S
|
||||
16
tests/exslt/date/difference.1.xml
Normal file
16
tests/exslt/date/difference.1.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0"?>
|
||||
<page>
|
||||
<!-- valid date/times -->
|
||||
<date date1='2000' date2='1999'/>
|
||||
<date date1='2000-01' date2='1999-12'/>
|
||||
<date date1='1999-12' date2='2000-01'/>
|
||||
<date date1='1999-12-31' date2='2000-01-01'/>
|
||||
<date date1='1999' date2='2000-01'/>
|
||||
<date date1='0002-01-05' date2='0001-01-04'/>
|
||||
<date date1='0002-05-05' date2='0001-01'/>
|
||||
<date date1='-0002-01-05' date2='0001-01-04'/>
|
||||
<date date1='1970-01-01T05:04:03' date2='1970-01-01T04:03:02'/>
|
||||
<date date1='2000-01-01T05:00:03' date2='2000-01-01T04:03:02'/>
|
||||
<date date1='2000-01-01T05:00:03' date2='1980-01-01T04:03:02'/>
|
||||
</page>
|
||||
|
||||
16
tests/exslt/date/difference.1.xsl
Normal file
16
tests/exslt/date/difference.1.xsl
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:date="http://exslt.org/dates-and-times"
|
||||
extension-element-prefixes="date">
|
||||
|
||||
<xsl:output method="text"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<xsl:template match="date">
|
||||
difference : <xsl:value-of select="@date1"/> - <xsl:value-of select="@date2"/>
|
||||
result : <xsl:value-of select="date:difference(@date1,@date2)"/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
9
tests/exslt/date/difference.2.out
Normal file
9
tests/exslt/date/difference.2.out
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
difference : 2000-01-01T05:00:03 - ---01
|
||||
result :
|
||||
difference : 0002-01-05 - --01-04
|
||||
result :
|
||||
difference : 1970-01-01T05:04:03 - 04:03:02
|
||||
result :
|
||||
difference : 2000 -
|
||||
result :
|
||||
9
tests/exslt/date/difference.2.xml
Normal file
9
tests/exslt/date/difference.2.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0"?>
|
||||
<page>
|
||||
<!-- invalid date/time types -->
|
||||
<date date1='2000-01-01T05:00:03' date2='---01'/>
|
||||
<date date1='0002-01-05' date2='--01-04'/>
|
||||
<date date1='1970-01-01T05:04:03' date2='04:03:02'/>
|
||||
<date date1='2000' date2=''/>
|
||||
</page>
|
||||
|
||||
16
tests/exslt/date/difference.2.xsl
Normal file
16
tests/exslt/date/difference.2.xsl
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:date="http://exslt.org/dates-and-times"
|
||||
extension-element-prefixes="date">
|
||||
|
||||
<xsl:output method="text"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<xsl:template match="date">
|
||||
difference : <xsl:value-of select="@date1"/> - <xsl:value-of select="@date2"/>
|
||||
result : <xsl:value-of select="date:difference(@date1,@date2)"/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
29
tests/exslt/date/duration.1.out
Normal file
29
tests/exslt/date/duration.1.out
Normal file
@@ -0,0 +1,29 @@
|
||||
|
||||
duration : 60
|
||||
result : PT1M
|
||||
duration : 360
|
||||
result : PT6M
|
||||
duration : 3600
|
||||
result : PT1H
|
||||
duration : 86400
|
||||
result : P1D
|
||||
duration : 86400.5
|
||||
result : P1DT0.5S
|
||||
duration : 3660
|
||||
result : PT1H1M
|
||||
duration : 61
|
||||
result : PT1M1S
|
||||
duration : 90061
|
||||
result : P1DT1H1M1S
|
||||
duration : 0.5
|
||||
result : PT0.5S
|
||||
duration : 0.05
|
||||
result : PT0.05S
|
||||
duration : 990.005
|
||||
result : PT16M30.005S
|
||||
duration : -60
|
||||
result : -PT1M
|
||||
duration : 9999999999999
|
||||
result : P115740740DT17H46M39S
|
||||
duration : -2999999999
|
||||
result : -P34722DT5H19M59S
|
||||
18
tests/exslt/date/duration.1.xml
Normal file
18
tests/exslt/date/duration.1.xml
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0"?>
|
||||
<page>
|
||||
<date seconds="60"/>
|
||||
<date seconds="360"/>
|
||||
<date seconds="3600"/>
|
||||
<date seconds="86400"/>
|
||||
<date seconds="86400.5"/>
|
||||
<date seconds="3660"/>
|
||||
<date seconds="61"/>
|
||||
<date seconds="90061"/>
|
||||
<date seconds="0.5"/>
|
||||
<date seconds="0.05"/>
|
||||
<date seconds="990.005"/>
|
||||
<date seconds="-60"/>
|
||||
<date seconds="9999999999999"/>
|
||||
<date seconds="-2999999999"/>
|
||||
</page>
|
||||
|
||||
16
tests/exslt/date/duration.1.xsl
Normal file
16
tests/exslt/date/duration.1.xsl
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:date="http://exslt.org/dates-and-times"
|
||||
extension-element-prefixes="date">
|
||||
|
||||
<xsl:output method="text"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<xsl:template match="date">
|
||||
duration : <xsl:value-of select="@seconds"/>
|
||||
result : <xsl:value-of select="date:duration(@seconds)"/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
15
tests/exslt/date/duration.2.out
Normal file
15
tests/exslt/date/duration.2.out
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
duration : P10Y20M100DT
|
||||
result :
|
||||
duration : P-10Y
|
||||
result :
|
||||
duration : P10YM100D
|
||||
result :
|
||||
duration : P10Y100D10M
|
||||
result :
|
||||
duration : P10Y10H
|
||||
result :
|
||||
duration : P10Y10Y
|
||||
result :
|
||||
duration : P10.0Y
|
||||
result :
|
||||
12
tests/exslt/date/duration.2.xml
Normal file
12
tests/exslt/date/duration.2.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0"?>
|
||||
<page>
|
||||
<!-- errors -->
|
||||
<date seconds="P10Y20M100DT"/>
|
||||
<date seconds="P-10Y"/>
|
||||
<date seconds="P10YM100D"/>
|
||||
<date seconds="P10Y100D10M"/>
|
||||
<date seconds="P10Y10H"/>
|
||||
<date seconds="P10Y10Y"/>
|
||||
<date seconds="P10.0Y"/>
|
||||
</page>
|
||||
|
||||
16
tests/exslt/date/duration.2.xsl
Normal file
16
tests/exslt/date/duration.2.xsl
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:date="http://exslt.org/dates-and-times"
|
||||
extension-element-prefixes="date">
|
||||
|
||||
<xsl:output method="text"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<xsl:template match="date">
|
||||
duration : <xsl:value-of select="@seconds"/>
|
||||
result : <xsl:value-of select="date:duration(@seconds)"/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
BIN
tests/exslt/date/gmon.out
Normal file
BIN
tests/exslt/date/gmon.out
Normal file
Binary file not shown.
37
tests/exslt/date/seconds.1.out
Normal file
37
tests/exslt/date/seconds.1.out
Normal file
@@ -0,0 +1,37 @@
|
||||
|
||||
seconds : PT10M
|
||||
result : 600
|
||||
seconds : -P10D
|
||||
result : -864000
|
||||
seconds : PT10H
|
||||
result : 36000
|
||||
seconds : PT10H10M10.5S
|
||||
result : 36610.5
|
||||
seconds : PT0.00001S
|
||||
result : 0.00001
|
||||
seconds : PT49.00001S
|
||||
result : 49.00001
|
||||
seconds : P0Y0M31DT10H10M10.09S
|
||||
result : 2715010.09
|
||||
seconds : -P0Y0M31DT10H10M10.09S
|
||||
result : -2715010.09
|
||||
seconds : PT100H100M100.001S
|
||||
result : 366100.001
|
||||
seconds : 2001
|
||||
result : 978307200
|
||||
seconds : 2001-10-29T10:31:07
|
||||
result : 1004351467
|
||||
seconds : 1970-01-01T00:00:00
|
||||
result : 0
|
||||
seconds : 1970-01-01T00:00:01
|
||||
result : 1
|
||||
seconds : 1969-12-31T23:59:59
|
||||
result : -1
|
||||
seconds : 1969-01-01T00:00:00
|
||||
result : -31536000
|
||||
seconds : 1971-01-01T00:00:00
|
||||
result : 31536000
|
||||
seconds : 0001-01-01T00:00:00
|
||||
result : -2006054656
|
||||
seconds : -0001-01-01T00:00:00
|
||||
result : -2037590656
|
||||
24
tests/exslt/date/seconds.1.xml
Normal file
24
tests/exslt/date/seconds.1.xml
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0"?>
|
||||
<page>
|
||||
<!-- valid durations -->
|
||||
<date duration="PT10M"/>
|
||||
<date duration="-P10D"/>
|
||||
<date duration="PT10H"/>
|
||||
<date duration="PT10H10M10.5S"/>
|
||||
<date duration="PT0.00001S"/>
|
||||
<date duration="PT49.00001S"/>
|
||||
<date duration="P0Y0M31DT10H10M10.09S"/>
|
||||
<date duration="-P0Y0M31DT10H10M10.09S"/>
|
||||
<date duration="PT100H100M100.001S"/>
|
||||
<!-- date/times -->
|
||||
<date duration="2001"/>
|
||||
<date duration="2001-10-29T10:31:07"/>
|
||||
<date duration="1970-01-01T00:00:00"/>
|
||||
<date duration="1970-01-01T00:00:01"/>
|
||||
<date duration="1969-12-31T23:59:59"/>
|
||||
<date duration="1969-01-01T00:00:00"/>
|
||||
<date duration="1971-01-01T00:00:00"/>
|
||||
<date duration="0001-01-01T00:00:00"/>
|
||||
<date duration="-0001-01-01T00:00:00"/>
|
||||
</page>
|
||||
|
||||
16
tests/exslt/date/seconds.1.xsl
Normal file
16
tests/exslt/date/seconds.1.xsl
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:date="http://exslt.org/dates-and-times"
|
||||
extension-element-prefixes="date">
|
||||
|
||||
<xsl:output method="html"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<xsl:template match="date">
|
||||
seconds : <xsl:value-of select="@duration"/>
|
||||
result : <xsl:value-of select="date:seconds(@duration)"/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
27
tests/exslt/date/seconds.2.out
Normal file
27
tests/exslt/date/seconds.2.out
Normal file
@@ -0,0 +1,27 @@
|
||||
|
||||
seconds : P10H
|
||||
result : NaN
|
||||
seconds : P-T10D
|
||||
result : NaN
|
||||
seconds : PT-10D
|
||||
result : NaN
|
||||
seconds : --PT10H
|
||||
result : NaN
|
||||
seconds : PT10H10M.5S
|
||||
result : NaN
|
||||
seconds : PYT0.00001S
|
||||
result : NaN
|
||||
seconds : PT49.00001
|
||||
result : NaN
|
||||
seconds : P0Y0MDT10H10M10.09S
|
||||
result : NaN
|
||||
seconds : --10-29
|
||||
result : NaN
|
||||
seconds : ---29
|
||||
result : NaN
|
||||
seconds : 10:31:07
|
||||
result : NaN
|
||||
seconds : P10Y20M100DT40H61M100S
|
||||
result : NaN
|
||||
seconds : P10000Y
|
||||
result : NaN
|
||||
21
tests/exslt/date/seconds.2.xml
Normal file
21
tests/exslt/date/seconds.2.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0"?>
|
||||
<page>
|
||||
<!-- invalid duration syntax -->
|
||||
<date duration="P10H"/>
|
||||
<date duration="P-T10D"/>
|
||||
<date duration="PT-10D"/>
|
||||
<date duration="--PT10H"/>
|
||||
<date duration="PT10H10M.5S"/>
|
||||
<date duration="PYT0.00001S"/>
|
||||
<date duration="PT49.00001"/>
|
||||
<date duration="P0Y0MDT10H10M10.09S"/>
|
||||
<!-- invalid date/time type -->
|
||||
<date duration="--10-29"/>
|
||||
<date duration="---29"/>
|
||||
<date duration="10:31:07"/>
|
||||
<!-- invalid duration values for date:seconds -->
|
||||
<!-- years and months are not handled by date:seconds() -->
|
||||
<date duration="P10Y20M100DT40H61M100S"/>
|
||||
<date duration="P10000Y"/>
|
||||
</page>
|
||||
|
||||
16
tests/exslt/date/seconds.2.xsl
Normal file
16
tests/exslt/date/seconds.2.xsl
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:date="http://exslt.org/dates-and-times"
|
||||
extension-element-prefixes="date">
|
||||
|
||||
<xsl:output method="html"/>
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<xsl:template match="date">
|
||||
seconds : <xsl:value-of select="@duration"/>
|
||||
result : <xsl:value-of select="date:seconds(@duration)"/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
Reference in New Issue
Block a user