text:
<?xml version="1.0" encoding="us-ascii"?>
<test-set xmlns="http://www.w3.org/2010/09/qt-fots-catalog" name="fn-format-date" covers-30="fn-format-date">
   <description>Tests for the format-date() function</description>
   <link type="spec" document="http://www.w3.org/TR/xpath-functions-11/"
         idref="func-format-date"/>
   <dependency type="spec" value="XP30+ XQ30+"/>

   <test-case name="format-date-001a">
      <description>test format-date: basic numeric formats</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-09-07')"/>
      </environment>
      <test>format-date($d,"[Y]-[M01]-[D]")</test>
      <result>
         <assert-string-value>2003-09-7</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-001b">
      <description>test format-date: basic numeric formats</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-09-07')"/>
      </environment>
      <test>format-date($d,"[M]-[D]-[Y]")</test>
      <result>
         <assert-string-value>9-7-2003</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-001c">
      <description>test format-date: basic numeric formats</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-09-07')"/>
      </environment>
      <test>format-date($d,"[D]-[M]-[Y]")</test>
      <result>
         <assert-string-value>7-9-2003</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-001d">
      <description>test format-date: basic numeric formats</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-09-07')"/>
      </environment>
      <test>format-date($d,"[D1] [MI] [Y]")</test>
      <result>
         <assert-string-value>7 IX 2003</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-001e">
      <description>test format-date: basic numeric formats</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-09-07')"/>
      </environment>
      <test>format-date($d,"[[[Y]-[M01]-[D01]]]")</test>
      <result>
         <assert-string-value>[2003-09-07]</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-001f">
      <description>test format-date: basic numeric formats</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-09-07')"/>
      </environment>
      <test>format-date($d,"[[[Y0001]-[M01]-[D01]]]")</test>
      <result>
         <assert-string-value>[2003-09-07]</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-001g">
      <description>test format-date: basic numeric formats</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-09-07')"/>
      </environment>
      <test>format-date($d,"([Y01]-[M01]-[D01])")</test>
      <result>
         <assert-string-value>(03-09-07)</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-005">
      <description>Test format-date: upper-case roman numerals for year</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('1950-01-01')"/>
      </environment>
      <test> string-join( for $i in 1 to 100 return format-date($t + xs:yearMonthDuration('P1Y')*$i,
         '[YI]'), ' ')</test>
      <result>
         <assert-string-value normalize-space="true">MCMLI MCMLII MCMLIII MCMLIV MCMLV MCMLVI MCMLVII MCMLVIII
            MCMLIX MCMLX MCMLXI MCMLXII MCMLXIII MCMLXIV MCMLXV MCMLXVI MCMLXVII MCMLXVIII
            MCMLXIX MCMLXX MCMLXXI MCMLXXII MCMLXXIII MCMLXXIV MCMLXXV MCMLXXVI MCMLXXVII
            MCMLXXVIII MCMLXXIX MCMLXXX MCMLXXXI MCMLXXXII MCMLXXXIII MCMLXXXIV MCMLXXXV
            MCMLXXXVI MCMLXXXVII MCMLXXXVIII MCMLXXXIX MCMXC MCMXCI MCMXCII MCMXCIII
            MCMXCIV MCMXCV MCMXCVI MCMXCVII MCMXCVIII MCMXCIX MM MMI MMII MMIII MMIV MMV
            MMVI MMVII MMVIII MMIX MMX MMXI MMXII MMXIII MMXIV MMXV MMXVI MMXVII
            MMXVIII MMXIX MMXX MMXXI MMXXII MMXXIII MMXXIV MMXXV MMXXVI MMXXVII MMXXVIII
            MMXXIX MMXXX MMXXXI MMXXXII MMXXXIII MMXXXIV MMXXXV MMXXXVI MMXXXVII MMXXXVIII
            MMXXXIX MMXL MMXLI MMXLII MMXLIII MMXLIV MMXLV MMXLVI MMXLVII MMXLVIII MMXLIX
            MML</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-006">
      <description>Test format-date: lower-case roman numerals for year (width specifier ignored)</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('0800-01-01')"/>
      </environment>
      <test> string-join( for $i in 1 to 100 return format-date($t +
         xs:yearMonthDuration('P17Y')*$i, '[Yi,4-4]'), ' ')</test>
      <result>
         <assert-string-value normalize-space="true">dcccxvii dcccxxxiv dcccli dccclxviii dccclxxxv cmii cmxix
            cmxxxvi cmliii cmlxx cmlxxxvii miv mxxi mxxxviii mlv mlxxii mlxxxix mcvi
            mcxxiii mcxl mclvii mclxxiv mcxci mccviii mccxxv mccxlii mcclix mcclxxvi
            mccxciii mcccx mcccxxvii mcccxliv mccclxi mccclxxviii mcccxcv mcdxii mcdxxix
            mcdxlvi mcdlxiii mcdlxxx mcdxcvii mdxiv mdxxxi mdxlviii mdlxv mdlxxxii mdxcix
            mdcxvi mdcxxxiii mdcl mdclxvii mdclxxxiv mdcci mdccxviii mdccxxxv mdcclii
            mdcclxix mdcclxxxvi mdccciii mdcccxx mdcccxxxvii mdcccliv mdccclxxi
            mdccclxxxviii mcmv mcmxxii mcmxxxix mcmlvi mcmlxxiii mcmxc mmvii mmxxiv mmxli
            mmlviii mmlxxv mmxcii mmcix mmcxxvi mmcxliii mmclx mmclxxvii mmcxciv mmccxi
            mmccxxviii mmccxlv mmcclxii mmcclxxix mmccxcvi mmcccxiii mmcccxxx mmcccxlvii
            mmccclxiv mmccclxxxi mmcccxcviii mmcdxv mmcdxxxii mmcdxlix mmcdlxvi mmcdlxxxiii
            mmd</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-007a">
      <description>Test format-date: numeric formats using Thai digits</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-09-07')"/>
      </environment>
      <test>format-date($d,"[Y๐๐๐๑]-[M๐๑]-[D๑]")</test>
      <result>
         <assert-string-value>๒๐๐๓-๐๙-๗</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-007b">
      <description>Test format-date: numeric formats using Thai digits</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-09-07')"/>
      </environment>
      <test>format-date($d,"[M๑]-[D๑]-[Y๐๐๐๑]")</test>
      <result>
         <assert-string-value>๙-๗-๒๐๐๓</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-007c">
      <description>Test format-date: numeric formats using Thai digits</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-09-07')"/>
      </environment>
      <test>format-date($d,"([Y๐๑]-[M๐๑]-[D๐๑])")</test>
      <result>
         <assert-string-value>(๐๓-๐๙-๐๗)</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-008a">
      <description>Test format-date: numeric formats using Osmanya (non-BMP) digits</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-09-07')"/>
      </environment>
      <test>format-date($d,"[Y𐒠𐒠𐒠𐒡]-[M𐒠𐒡]-[D𐒡]")</test>
      <result>
         <assert-string-value>𐒢𐒠𐒠𐒣-𐒠𐒩-𐒧</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-008b">
      <description>Test format-date: numeric formats using Osmanya (non-BMP) digits</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-09-07')"/>
      </environment>
      <test>format-date($d,"[M𐒡]-[D𐒡]-[Y𐒠𐒠𐒠𐒡]")</test>
      <result>
         <assert-string-value>𐒩-𐒧-𐒢𐒠𐒠𐒣</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-008c">
      <description>Test format-date: numeric formats using Osmanya (non-BMP) digits</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-09-07')"/>
      </environment>
      <test>format-date($d,"([Y𐒠𐒡]-[M𐒠𐒡]-[D𐒠𐒡])")</test>
      <result>
         <assert-string-value>(𐒠𐒣-𐒠𐒩-𐒠𐒧)</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-009">
      <description>Test format-date: test format-date: ISO week numbers Specifically, in the ISO calendar the days of the week are numbered from 1 (Monday) to 7 (Sunday), and week 1 in any calendar year is the week (from Monday to Sunday) that includes the first Thursday of that year.</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('2004-04-01')"/>
      </environment>
      <test>
        for $i in 1 to 48, $d in $t + xs:yearMonthDuration('P1M')*$i
        return concat("[", $d, ":", format-date($d, '[W]', (), 'ISO', ()), "]")
      </test>
      <result>
         <assert-string-value normalize-space="true">
            [2004-05-01:18] [2004-06-01:23] [2004-07-01:27] [2004-08-01:31] [2004-09-01:36] [2004-10-01:40] [2004-11-01:45]
            [2004-12-01:49] [2005-01-01:53] [2005-02-01:5] [2005-03-01:9] [2005-04-01:13] [2005-05-01:17] [2005-06-01:22]
            [2005-07-01:26] [2005-08-01:31] [2005-09-01:35] [2005-10-01:39] [2005-11-01:44] [2005-12-01:48] [2006-01-01:52]
            [2006-02-01:5] [2006-03-01:9] [2006-04-01:13] [2006-05-01:18] [2006-06-01:22] [2006-07-01:26] [2006-08-01:31]
            [2006-09-01:35] [2006-10-01:39] [2006-11-01:44] [2006-12-01:48] [2007-01-01:1] [2007-02-01:5] [2007-03-01:9]
            [2007-04-01:13] [2007-05-01:18] [2007-06-01:22] [2007-07-01:26] [2007-08-01:31] [2007-09-01:35] [2007-10-01:40]
            [2007-11-01:44] [2007-12-01:48] [2008-01-01:1] [2008-02-01:5] [2008-03-01:9] [2008-04-01:14]
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-010">
      <description>test format-date: ISO day within week Specifically, in the ISO calendar the days of the week are numbered from 1 (Monday) to 7 (Sunday), and week 1 in any calendar year is the week (from Monday to Sunday) that includes the first Thursday of that year.</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <modified by="Michael Kay, Saxonica" on="2013-06-12" change="Use an EQName for the calendar argument"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('2003-12-01')"/>
      </environment>
      <test>for $i in 1 to 48, $d in $t + xs:yearMonthDuration('P1M')*$i
            return concat("[", $d, ":", format-date($d, '[F01]', (), 'Q{}ISO', ()), ']')
      </test>
      <result>
         <assert-string-value normalize-space="true">
            [2004-01-01:04] [2004-02-01:07] [2004-03-01:01] [2004-04-01:04] [2004-05-01:06] [2004-06-01:02]
            [2004-07-01:04] [2004-08-01:07] [2004-09-01:03] [2004-10-01:05] [2004-11-01:01] [2004-12-01:03]
            [2005-01-01:06] [2005-02-01:02] [2005-03-01:02] [2005-04-01:05] [2005-05-01:07] [2005-06-01:03]
            [2005-07-01:05] [2005-08-01:01] [2005-09-01:04] [2005-10-01:06] [2005-11-01:02] [2005-12-01:04]
            [2006-01-01:07] [2006-02-01:03] [2006-03-01:03] [2006-04-01:06] [2006-05-01:01] [2006-06-01:04]
            [2006-07-01:06] [2006-08-01:02] [2006-09-01:05] [2006-10-01:07] [2006-11-01:03] [2006-12-01:05]
            [2007-01-01:01] [2007-02-01:04] [2007-03-01:04] [2007-04-01:07] [2007-05-01:02] [2007-06-01:05]
            [2007-07-01:07] [2007-08-01:03] [2007-09-01:06] [2007-10-01:01] [2007-11-01:04] [2007-12-01:06]
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-011">
      <description>test format-date: ISO week number within month --> Specifically, in the ISO calendar the days of the week are numbered from 1 (Monday) to 7 (Sunday), and week 1 in any calendar year is the week (from Monday to Sunday) that includes the first Thursday of that year.</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('2005-12-01')"/>
      </environment>
      <test>
        for $i in 1 to 48, $d in $t + xs:dayTimeDuration('P3D')*$i
        return concat("[", $d, ":", format-date($d, '[w]', (), 'ISO', ()), ']')</test>
      <result>
         <assert-string-value normalize-space="true">
            [2005-12-04:1] [2005-12-07:2] [2005-12-10:2] [2005-12-13:3] [2005-12-16:3] [2005-12-19:4] [2005-12-22:4]
            [2005-12-25:4] [2005-12-28:5] [2005-12-31:5] [2006-01-03:1] [2006-01-06:1] [2006-01-09:2] [2006-01-12:2]
            [2006-01-15:2] [2006-01-18:3] [2006-01-21:3] [2006-01-24:4] [2006-01-27:4] [2006-01-30:5] [2006-02-02:1]
            [2006-02-05:1] [2006-02-08:2] [2006-02-11:2] [2006-02-14:3] [2006-02-17:3] [2006-02-20:4] [2006-02-23:4]
            [2006-02-26:4] [2006-03-01:1] [2006-03-04:1] [2006-03-07:2] [2006-03-10:2] [2006-03-13:3] [2006-03-16:3]
            [2006-03-19:3] [2006-03-22:4] [2006-03-25:4] [2006-03-28:5] [2006-03-31:5] [2006-04-03:1] [2006-04-06:1]
            [2006-04-09:1] [2006-04-12:2] [2006-04-15:2] [2006-04-18:3] [2006-04-21:3] [2006-04-24:4]
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-013a">
      <description>test format-date(): effect of width specifiers</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('0985-03-01')"/>
      </environment>
      <test>format-date($t, '[Y,4-4]')</test>
      <result>
         <assert-string-value>0985</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-013b">
      <description>test format-date(): effect of width specifiers</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('0985-03-01')"/>
      </environment>
      <test>format-date($t, '[Y,3-4]')</test>
      <result>
         <assert-string-value>985</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-013c">
      <description>test format-date(): effect of width specifiers</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('0985-03-01')"/>
      </environment>
      <test>format-date($t, '[Y,2-5]')</test>
      <result>
         <assert-string-value>985</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-013d">
      <description>test format-date(): effect of width specifiers</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('0985-03-01')"/>
      </environment>
      <test>format-date($t, '[Y,2-2]')</test>
      <result>
         <assert-string-value>85</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-013e">
      <description>test format-date(): effect of width specifiers</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('0985-03-01')"/>
      </environment>
      <test>format-date($t, '[Y,2-*]')</test>
      <result>
         <assert-string-value>985</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-013f">
      <description>test format-date(): effect of width specifiers</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('0985-03-01')"/>
      </environment>
      <test>format-date($t, '[Y,*-4]')</test>
      <result>
         <assert-string-value>985</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-013g">
      <description>test format-date(): effect of width specifiers</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('0985-03-01')"/>
      </environment>
      <test>format-date($t, '[Y,3]')</test>
      <result>
         <assert-string-value>985</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-013h">
      <description>test format-date(): effect of width specifiers</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('0985-03-01')"/>
      </environment>
      <test>format-date($t, '[M,4-4]')</test>
      <result>
         <assert-string-value>0003</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-013i">
      <description>test format-date(): effect of width specifiers</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('0985-03-01')"/>
      </environment>
      <test>format-date($t, '[M,1-4]')</test>
      <result>
         <assert-string-value>3</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-013j">
      <description>test format-date(): effect of width specifiers</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('0985-03-01')"/>
      </environment>
      <test>format-date($t, '[M,2-5]')</test>
      <result>
         <assert-string-value>03</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-013k">
      <description>test format-date(): effect of width specifiers</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('0985-03-01')"/>
      </environment>
      <test>format-date($t, '[M,2-2]')</test>
      <result>
         <assert-string-value>03</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-013L">
      <description>test format-date(): effect of width specifiers</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('0985-03-01')"/>
      </environment>
      <test>format-date($t, '[M,1-*]')</test>
      <result>
         <assert-string-value>3</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-013m">
      <description>test format-date(): effect of width specifiers</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('0985-03-01')"/>
      </environment>
      <test>format-date($t, '[M,*-2]')</test>
      <result>
         <assert-string-value>3</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-013n">
      <description>test format-date(): effect of width specifiers</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('0985-03-01')"/>
      </environment>
      <test>format-date($t, '[M,3]')</test>
      <result>
         <assert-string-value>003</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-014">
      <description>test format-date(): timezones in +nn:nn notation</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <modified by="Michael Kay, Saxonica" on="2012-07-06" change="modify GMT+0 representation"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('1985-03-01Z')"/>
      </environment>
      <test>string-join( for $z in -28 to +28 return format-date(adjust-date-to-timezone($t,
         $z*xs:dayTimeDuration('PT30M')), '[Z]'), ' ')</test>
      <result>
         <assert-string-value normalize-space="true">-14:00 -13:30 -13:00 -12:30 -12:00 -11:30 -11:00 -10:30 -10:00
            -09:30 -09:00 -08:30 -08:00 -07:30 -07:00 -06:30 -06:00 -05:30 -05:00 -04:30
            -04:00 -03:30 -03:00 -02:30 -02:00 -01:30 -01:00 -00:30 +00:00 +00:30 +01:00
            +01:30 +02:00 +02:30 +03:00 +03:30 +04:00 +04:30 +05:00 +05:30 +06:00 +06:30
            +07:00 +07:30 +08:00 +08:30 +09:00 +09:30 +10:00 +10:30 +11:00 +11:30 +12:00
            +12:30 +13:00 +13:30 +14:00</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-015">
      <description>test format-date(): timezones in GMT+x notation</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <modified by="Michael Kay" on="2012-05-18" change="see bug 14874"/>
      <modified by="Michael Kay, Saxonica" on="2012-07-06" change="modify GMT+0 representation"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('1985-03-01Z')"/>
      </environment>
      <test>string-join( for $z in -28 to +28 return format-date(adjust-date-to-timezone($t,
         $z*xs:dayTimeDuration('PT30M')), '[z0]'), '; ')</test>
      <result>
         <assert-string-value normalize-space="true">GMT-14; GMT-13:30; GMT-13; GMT-12:30; GMT-12; GMT-11:30; GMT-11;
            GMT-10:30; GMT-10; GMT-9:30; GMT-9; GMT-8:30; GMT-8; GMT-7:30; GMT-7; GMT-6:30; GMT-6;
            GMT-5:30; GMT-5; GMT-4:30; GMT-4; GMT-3:30; GMT-3; GMT-2:30; GMT-2; GMT-1:30; GMT-1;
            GMT-0:30; GMT+0; GMT+0:30; GMT+1; GMT+1:30; GMT+2; GMT+2:30; GMT+3; GMT+3:30; GMT+4;
            GMT+4:30; GMT+5; GMT+5:30; GMT+6; GMT+6:30; GMT+7; GMT+7:30; GMT+8; GMT+8:30; GMT+9;
            GMT+9:30; GMT+10; GMT+10:30; GMT+11; GMT+11:30; GMT+12; GMT+12:30; GMT+13; GMT+13:30;
            GMT+14</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-016">
      <description>test format-date(): timezones in GMT+x notation</description>
      <created by="Michael Kay, Saxonica" on="2012-05-18"/>
      <modified by="Michael Kay, Saxonica" on="2012-07-06" change="modify GMT+0 representation"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('1985-03-01Z')"/>
      </environment>
      <test>string-join( for $z in -28 to +28 return format-date(adjust-date-to-timezone($t,
         $z*xs:dayTimeDuration('PT30M')), '[z]'), '; ')</test>
      <result>
         <assert-string-value normalize-space="true">
         	GMT-14:00; GMT-13:30; GMT-13:00; GMT-12:30; GMT-12:00; GMT-11:30; GMT-11:00;
			GMT-10:30; GMT-10:00; GMT-09:30; GMT-09:00; GMT-08:30; GMT-08:00; GMT-07:30;
			GMT-07:00; GMT-06:30; GMT-06:00; GMT-05:30; GMT-05:00; GMT-04:30; GMT-04:00;
			GMT-03:30; GMT-03:00; GMT-02:30; GMT-02:00; GMT-01:30; GMT-01:00; GMT-00:30;
			GMT+00:00; GMT+00:30; GMT+01:00; GMT+01:30; GMT+02:00; GMT+02:30; GMT+03:00;
			GMT+03:30; GMT+04:00; GMT+04:30; GMT+05:00; GMT+05:30; GMT+06:00; GMT+06:30;
			GMT+07:00; GMT+07:30; GMT+08:00; GMT+08:30; GMT+09:00; GMT+09:30; GMT+10:00;
			GMT+10:30; GMT+11:00; GMT+11:30; GMT+12:00; GMT+12:30; GMT+13:00; GMT+13:30;
			GMT+14:00
		 </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-017">
      <description>test format-date(): timezones in military notation</description>
      <created by="Michael Kay, Saxonica" on="2012-05-18"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('1985-03-01Z')"/>
      </environment>
      <test>string-join( for $z in -12 to +12 return format-date(adjust-date-to-timezone($t,
         $z*xs:dayTimeDuration('PT1H')), '[ZZ]'), ' ')</test>
      <result>
         <assert-string-value normalize-space="true">
         	Y X W V U T S R Q P O N Z A B C D E F G H I K L M
		 </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-018">
      <description>test format-date(): timezone-less date in military notation</description>
      <created by="Michael Kay, Saxonica" on="2012-05-18"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('1985-03-01Z')"/>
      </environment>
      <test>format-date(xs:date('1987-12-13'), '[ZZ]')</test>
      <result>
         <assert-string-value>J</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-019">
      <description>test format-date(): non-integral timezone in military notation</description>
      <created by="Michael Kay, Saxonica" on="2012-05-18"/>
      <test>format-date(xs:date('1987-12-13+05:30'), '[ZZ]')</test>
      <result>
         <assert-string-value>+05:30</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-020">
      <description>test format-date(): extreme timezone in military notation</description>
      <created by="Michael Kay, Saxonica" on="2012-05-18"/>
      <test>format-date(xs:date('1987-12-13+13:00'), '[ZZ]')</test>
      <result>
         <assert-string-value>+13:00</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-021">
      <description>test format-date(): timezones with an alternate separator</description>
      <created by="Michael Kay, Saxonica" on="2012-05-18"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('1985-03-01Z')"/>
      </environment>
      <test>string-join( for $z in -28 to +28 return format-date(adjust-date-to-timezone($t,
         $z*xs:dayTimeDuration('PT30M')), '[z00~00]'), '; ')</test>
      <result>
         <assert-string-value normalize-space="true">
         	GMT-14~00; GMT-13~30; GMT-13~00; GMT-12~30; GMT-12~00; GMT-11~30; GMT-11~00; GMT-10~30;
         	GMT-10~00; GMT-09~30; GMT-09~00; GMT-08~30; GMT-08~00; GMT-07~30; GMT-07~00; GMT-06~30;
         	GMT-06~00; GMT-05~30; GMT-05~00; GMT-04~30; GMT-04~00; GMT-03~30; GMT-03~00; GMT-02~30;
         	GMT-02~00; GMT-01~30; GMT-01~00; GMT-00~30; GMT+00~00; GMT+00~30; GMT+01~00; GMT+01~30;
         	GMT+02~00; GMT+02~30; GMT+03~00; GMT+03~30; GMT+04~00; GMT+04~30; GMT+05~00; GMT+05~30;
         	GMT+06~00; GMT+06~30; GMT+07~00; GMT+07~30; GMT+08~00; GMT+08~30; GMT+09~00; GMT+09~30;
         	GMT+10~00; GMT+10~30; GMT+11~00; GMT+11~30; GMT+12~00; GMT+12~30; GMT+13~00; GMT+13~30;
         	GMT+14~00
		 </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-022">
      <description>test format-date(): timezones with non-ASCII digits</description>
      <created by="Michael Kay, Saxonica" on="2012-05-18"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('1985-03-01Z')"/>
      </environment>
      <test>format-date(xs:date('2012-05-18+05:30'), '[Z٠٠:٠٠]')</test>
      <result>
         <assert-string-value>+٠٥:٣٠</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-023">
      <description>test format-date(): timezones with three-digit format</description>
      <created by="Michael Kay, Saxonica" on="2012-05-18"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('1985-03-01Z')"/>
      </environment>
      <test>string-join( for $z in -28 to +28 return format-date(adjust-date-to-timezone($t,
         $z*xs:dayTimeDuration('PT30M')), '[Z0:01]'), '; ')</test>
      <result>
         <assert-string-value normalize-space="true">
         	-14:00; -13:30; -13:00; -12:30; -12:00; -11:30; -11:00; -10:30; -10:00; -9:30; -9:00;
         	-8:30; -8:00; -7:30; -7:00; -6:30; -6:00; -5:30; -5:00; -4:30; -4:00; -3:30; -3:00;
         	-2:30; -2:00; -1:30; -1:00; -0:30; +0:00; +0:30; +1:00; +1:30; +2:00; +2:30; +3:00;
         	+3:30; +4:00; +4:30; +5:00; +5:30; +6:00; +6:30; +7:00; +7:30; +8:00; +8:30; +9:00;
         	+9:30; +10:00; +10:30; +11:00; +11:30; +12:00; +12:30; +13:00; +13:30; +14:00
		 </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-024">
      <description>test format-date(): timezones with three-digit format, no separator</description>
      <created by="Michael Kay, Saxonica" on="2012-05-18"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('1985-03-01Z')"/>
      </environment>
      <test>string-join( for $z in -28 to +28 return format-date(adjust-date-to-timezone($t,
         $z*xs:dayTimeDuration('PT30M')), '[Z999]'), '; ')</test>
      <result>
         <assert-string-value normalize-space="true">
         	-1400; -1330; -1300; -1230; -1200; -1130; -1100; -1030; -1000; -930; -900; -830;
         	-800; -730; -700; -630; -600; -530; -500; -430; -400; -330; -300; -230; -200;
         	-130; -100; -030; +000; +030; +100; +130; +200; +230; +300; +330; +400; +430;
         	+500; +530; +600; +630; +700; +730; +800; +830; +900; +930; +1000; +1030; +1100;
         	+1130; +1200; +1230; +1300; +1330; +1400
		 </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-025">
      <description>test format-date(): timezones with two-digit format, no separator</description>
      <created by="Michael Kay, Saxonica" on="2012-05-18"/>
      <modified by="O'Neil Delpratt, Saxonica" on="2012-10-08" change="bug fix for 17285"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('1985-03-01Z')"/>
      </environment>
      <test>string-join( for $z in -28 to +28 return format-date(adjust-date-to-timezone($t,
         $z*xs:dayTimeDuration('PT30M')), '[Z99]'), '; ')</test>
      <result>
         <assert-string-value normalize-space="true">
         	-14; -13:30; -13; -12:30; -12; -11:30; -11; -10:30; -10; -09:30; -09; -08:30; -08;
         	-07:30; -07; -06:30; -06; -05:30; -05; -04:30; -04; -03:30; -03; -02:30; -02; -01:30;
         	-01; -00:30; +00; +00:30; +01; +01:30; +02; +02:30; +03; +03:30; +04; +04:30; +05;
         	+05:30; +06; +06:30; +07; +07:30; +08; +08:30; +09; +09:30; +10; +10:30; +11; +11:30;
         	+12; +12:30; +13; +13:30; +14
		 </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-026">
      <description>test format-date(): timezones with one-digit format, no separator, t modifier</description>
      <created by="Michael Kay, Saxonica" on="2012-05-18"/>
      <modified by="O'Neil Delpratt, Saxonica" on="2012-10-08" change="bug fix for 17285"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('1985-03-01Z')"/>
      </environment>
      <test>string-join( for $z in -28 to +28 return format-date(adjust-date-to-timezone($t,
         $z*xs:dayTimeDuration('PT30M')), '[Z0t]'), '; ')</test>
      <result>
         <assert-string-value normalize-space="true">
         	-14; -13:30; -13; -12:30; -12; -11:30; -11; -10:30; -10; -9:30; -9; -8:30; -8;
         	-7:30; -7; -6:30; -6; -5:30; -5; -4:30; -4; -3:30; -3; -2:30; -2; -1:30; -1; -0:30;
         	Z; +0:30; +1; +1:30; +2; +2:30; +3; +3:30; +4; +4:30; +5; +5:30; +6; +6:30; +7;
         	+7:30; +8; +8:30; +9; +9:30; +10; +10:30; +11; +11:30; +12; +12:30; +13;
         	+13:30; +14
		 </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-027">
      <description>test format-date(): timezones with astral plane digits</description>
      <created by="Michael Kay, Saxonica" on="2012-05-18"/>
      <environment>
         <param name="t" as="xs:date" select="xs:date('1985-03-01Z')"/>
      </environment>
      <test>format-date(xs:date('2012-05-18+05:30'), '[Z𐒡:𐒠𐒡]')</test>
      <result>
         <assert-string-value>+𐒥:𐒣𐒠</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-028">
      <description>test format-date(): whitespace within a variable marker is ignored</description>
      <created by="Michael Kay, Saxonica" on="2015-01-03"/>
      <test>format-date(xs:date('2012-05-18'), '[ D 01 ] [M 0 1] [ Y 0 0 0 1 ]')</test>
      <result>
         <assert-string-value>18 05 2012</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-029">
      <description>test format-date(): semicolon as grouping separator</description>
      <created by="Debbie Lockett, Saxonica" on="2015-11-16"/>
      <test>format-date(xs:date('2012-05-18'), '[Y9;999]')</test>
      <result>
         <assert-string-value>2;012</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-030">
      <description>test format-date(): comma as grouping separator</description>
      <created by="Debbie Lockett, Saxonica" on="2015-11-16"/>
      <test>format-date(xs:date('2012-05-18'), '[Y9,999,*]')</test>
      <result>
         <assert-string-value>2,012</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-031">
      <description>test format-date(): grouping separators</description>
      <created by="Debbie Lockett, Saxonica" on="2015-11-16"/>
      <test>format-date(xs:date('2012-05-18'), '[Y9,99-9,*]')</test>
      <result>
         <assert-string-value>2,01-2</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-032">
      <description>test format-date(): optional digit symbols in picture</description>
      <created by="Debbie Lockett, Saxonica" on="2015-11-16"/>
      <test>format-date(xs:date("1200-01-01"),"[Y###9]")</test>
      <result>
         <assert-string-value>1200</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-033">
      <description>test format-date(): optional digit symbols in picture</description>
      <created by="Debbie Lockett, Saxonica" on="2015-11-16"/>
      <test>format-date(xs:date("0900-01-01"),"[Y###9]")</test>
      <result>
         <assert-string-value>900</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-034">
      <description>test format-date(): large width modifier</description>
      <created by="Debbie Lockett, Saxonica" on="2015-11-16"/>
      <test>format-date(xs:date('2012-05-18'), '[Y9999,25]')</test>
      <result>
         <assert-string-value>0000000000000000000002012</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-035">
      <description>test format-date(): large width modifier, Thai digits</description>
      <created by="Debbie Lockett, Saxonica" on="2015-11-16"/>
      <test>format-date(xs:date('2012-05-18'), '[Y๐๐๐๑,10]')</test>
      <result>
         <assert-string-value>๐๐๐๐๐๐๒๐๑๒</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-036">
      <description>test format-date(): day in year</description>
      <created by="Josh Spiegel" on="2016-03-11"/>
      <test>format-date(xs:date('2016-02-01'), '[d]')</test>
      <result>
         <assert-string-value>32</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-037">
      <description>test format-date(): day in year</description>
      <created by="Josh Spiegel" on="2016-05-04"/>
      <modified by="Tim Mills" on="2016-08-05" change="Bug 29762"/>
      <test>format-date(xs:date('2016-01-01'), '[Y# $ 0,3-3]')</test>
      <result>
         <assert-type>xs:string</assert-type>
      </result>
   </test-case>

   <test-case name="format-date-038">
      <description>test format-date(): year component</description>
      <created by="Josh Spiegel" on="2016-05-04"/>
      <test>format-date(xs:date('654321-01-01'), '[Y#0 ' || codepoints-to-string(10) || '00            0]')</test>
      <result>
         <assert-string-value>54321</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-039">
      <description>test format-date(): year component</description>
      <created by="Josh Spiegel" on="2016-05-04"/>
      <test>format-date(xs:date('654321-01-01'), '[Y#0,2-5]')</test>
      <result>
         <assert-string-value>54321</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-040">
      <description>test format-date(): year component</description>
      <created by="Josh Spiegel" on="2016-05-04"/>
      <modified by="Tim Mills" on="2016-08-05" change="Bug 29762"/>
      <test>format-date(xs:date('654321-01-01'), '[Y#!0!0,5-5]')</test>
      <result>
         <assert-type>xs:string</assert-type>
      </result>
   </test-case>

   <test-case name="format-date-041">
      <description>test format-date(): year component</description>
      <created by="Josh Spiegel" on="2016-01-01"/>
      <test>format-date(xs:date('2016-01-01'), '[Y#.0]')</test>
      <result>
         <assert-string-value>1.6</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-042">
      <description>test format-date(): year component</description>
      <created by="Josh Spiegel" on="2016-01-01"/>
      <modified by="Tim Mills" on="2016-08-05" change="Bug 29762"/>
      <test>format-date(xs:date('2016-01-01'), '[Y#.0,2-4]')</test>
      <result>
         <assert-type>xs:string</assert-type>
      </result>
   </test-case>

   <test-case name="format-date-043">
      <description>test format-date(): year component</description>
      <created by="Josh Spiegel" on="2016-01-01"/>
      <modified by="Tim Mills" on="2016-08-05" change="Bug 29762"/>
      <test>format-date(xs:date('2016-01-01'), '[Y#.0,2-*]')</test>
      <result>
         <assert-type>xs:string</assert-type>
      </result>
   </test-case>

   <test-case name="format-date-044">
      <description>test format-date(): year component</description>
      <created by="Josh Spiegel" on="2016-01-01"/>
      <modified by="Tim Mills" on="2016-08-05" change="Bug 29762"/>
      <test>format-date(xs:date('2016-01-01'), '[Y#.0,2]')</test>
      <result>
         <assert-type>xs:string</assert-type>
      </result>
   </test-case>

   <test-case name="format-date-045">
      <description>test format-date(): year component</description>
      <created by="Josh Spiegel" on="2016-01-01"/>
      <modified by="Tim Mills" on="2016-08-05" change="Bug 29762"/>
      <test>format-date(xs:date('2016-01-01'), '[Y#.0,1-4]')</test>
      <result>
         <assert-type>xs:string</assert-type>
      </result>
   </test-case>

   <test-case name="format-date-046">
      <description>test format-date(): year component</description>
      <created by="Josh Spiegel" on="2016-01-01"/>
      <modified by="Tim Mills" on="2016-08-05" change="Bug 29762"/>
      <test>format-date(xs:date('2016-01-01'), '[Y#.0,3-4]')</test>
      <result>
         <assert-type>xs:string</assert-type>
      </result>
   </test-case>

   <test-case name="format-date-047">
      <description>test format-date(): year component</description>
      <created by="Josh Spiegel" on="2016-01-01"/>
      <modified by="Tim Mills" on="2016-08-05" change="Bug 29762"/>
      <test>format-date(xs:date('2016-01-01'), '[Y#.0,3-3]')</test>
      <result>
         <assert-type>xs:string</assert-type>
      </result>
   </test-case>

   <test-case name="format-date-048">
      <description>test format-date(): width modifier, min greater than max</description>
      <created by="Josh Spiegel" on="2016-01-01"/>
      <test>format-date(xs:date('2016-01-01'), '[Y#.0,4-3]')</test>
      <result>
         <error code="FOFD1340"/>
      </result>
   </test-case>

   <test-case name="format-date-801err">
      <description>Error XTDE1340 incorrect picture string</description>
      <created by="Anders Berglund" on="2011-07-01"/>
      <test>format-date(current-date(), '[bla]', 'en', (), ())</test>
      <result>
        <any-of>
         <error code="XTDE1340"/>
         <error code="FOFD1340"/>
        </any-of>
      </result>
   </test-case>

   <test-case name="format-date-802err">
      <description>Error XTDE1350 component in picture string not available in value</description>
      <created by="Anders Berglund" on="2011-07-01"/>
      <test>format-date(current-date(), '[H]', 'en', (), ())</test>
      <result>
        <any-of>
         <error code="XTDE1350"/>
         <error code="FOFD1350"/>
        </any-of>
      </result>
   </test-case>

   <test-case name="format-date-803err">
      <description>Error XTDE1350 component in picture string not available in value</description>
      <created by="Anders Berglund" on="2011-07-01"/>
      <test>format-date(current-date(), '[h]', 'en', (), ())</test>
      <result>
        <any-of>
         <error code="XTDE1350"/>
         <error code="FOFD1350"/>
        </any-of>
      </result>
   </test-case>

   <test-case name="format-date-804err">
      <description>Error XTDE1350 component in picture string not available in value</description>
      <created by="Anders Berglund" on="2011-07-01"/>
      <test>format-date(current-date(), '[P]', 'en', (), ())</test>
      <result>
        <any-of>
         <error code="XTDE1350"/>
         <error code="FOFD1350"/>
        </any-of>
      </result>
   </test-case>

   <test-case name="format-date-805err">
      <description>Error XTDE1350 component in picture string not available in value</description>
      <created by="Anders Berglund" on="2011-07-01"/>
      <test>format-date(current-date(), '[m]', 'en', (), ())</test>
      <result>
        <any-of>
         <error code="XTDE1350"/>
         <error code="FOFD1350"/>
        </any-of>
      </result>
   </test-case>

   <test-case name="format-date-806err">
      <description>Error XTDE1350 component in picture string not available in value</description>
      <created by="Anders Berglund" on="2011-07-01"/>
      <test>format-date(current-date(), '[s]', 'en', (), ())</test>
      <result>
        <any-of>
         <error code="XTDE1350"/>
         <error code="FOFD1350"/>
        </any-of>
      </result>
   </test-case>

   <test-case name="format-date-807err">
      <description>Error XTDE1350 component in picture string not available in value</description>
      <created by="Anders Berglund" on="2011-07-01"/>
      <test>format-date(current-date(), '[f]', 'en', (), ())</test>
      <result>
        <any-of>
         <error code="XTDE1350"/>
         <error code="FOFD1350"/>
        </any-of>
      </result>
   </test-case>

   <test-case name="format-date-808err">
      <description>Error XTDE1340 incorrect picture string</description>
      <created by="Anders Berglund" on="2011-07-01"/>
      <modified by="O'Neil Delpratt" on="2012-05-22" change="Bug fix related to bug #14875: Corrected error code"/>
      <test>format-date(current-date(), '[bla]', 'en', (), ())</test>
      <result>
        <any-of>
         <error code="XTDE1340"/>
         <error code="FOFD1340"/>
        </any-of>
      </result>
   </test-case>

   <test-case name="format-date-809err">
      <description>Error FOFD1340 incorrect use of optional digit symbol in picture</description>
      <created by="Debbie Lockett, Saxonica" on="2015-11-16"/>
      <test>format-date(xs:date("2012-05-18"),"[Y999#]")</test>
      <result>
         <error code="FOFD1340"/>
      </result>
   </test-case>

   <test-case name="format-date-810err">
      <description>Error FOFD1340 incorrect use of optional digit symbol in picture</description>
      <created by="Debbie Lockett, Saxonica" on="2015-11-16"/>
      <test>format-date(xs:date("2012-05-18"),"[Y##9#]")</test>
      <result>
         <error code="FOFD1340"/>
      </result>
   </test-case>

   <test-case name="format-date-en101">
      <description>English month names</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-12-07')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>for $i in 1 to 12 return let $d2 := $d + xs:yearMonthDuration('P1M')*$i return
         format-date($d2, '[MN]', 'en', (), ()) </test>
      <result>
         <assert-string-value normalize-space="true">
            JANUARY FEBRUARY MARCH APRIL MAY JUNE JULY AUGUST SEPTEMBER OCTOBER NOVEMBER DECEMBER
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en102">
      <description>English month names</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-12-07')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>for $i in 1 to 12 return let $d2 := $d + xs:yearMonthDuration('P1M')*$i return
         format-date($d2, '[Mn]', 'en', (), ()) </test>
      <result>
         <assert-string-value normalize-space="true">
            january february march april may june july august september october november december
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en103">
      <description>English month names</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-12-07')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>
        for $i in 1 to 12
        return let $d2 := $d + xs:yearMonthDuration('P1M')*$i
        return format-date($d2, '[MNn]', 'en', (), ()) </test>
      <result>
         <assert-string-value normalize-space="true">
            January February March April May June July August September October November December
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en104">
      <description>English month names</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-12-07')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>
        for $i in 1 to 12
        return let $d2 := $d + xs:yearMonthDuration('P1M')*$i
        return format-date($d2, '[MN,3-3]', 'en', (), ())
      </test>
      <result>
         <assert-string-value normalize-space="true">JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en105">
      <description>English month names</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-12-07')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>
        for $i in 1 to 12
        return let $d2 := $d + xs:yearMonthDuration('P1M')*$i
        return format-date($d2, '[Mn,3-3]', 'en', (), ())
      </test>
      <result>
         <assert-string-value normalize-space="true">jan feb mar apr may jun jul aug sep oct nov dec</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en106">
      <description>English month names</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-12-07')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>
        for $i in 1 to 12
        return let $d2 := $d + xs:yearMonthDuration('P1M')*$i
        return format-date($d2, '[MNn,3-3]', 'en', (), ())
      </test>
      <result>
         <assert-string-value normalize-space="true">Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en111">
      <description>English weekday names</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-12-07')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>for $i in 1 to 7 return let $d2 := $d + xs:dayTimeDuration('P1D')*$i return
         format-date($d2, '[FN]', 'en', (), ()) </test>
      <result>
         <assert-string-value normalize-space="true">
             MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY SUNDAY
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en112">
      <description>English weekday names</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-12-07')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>for $i in 1 to 7 return let $d2 := $d + xs:dayTimeDuration('P1D')*$i return
         format-date($d2, '[Fn]', 'en', (), ()) </test>
      <result>
         <assert-string-value normalize-space="true">
             monday tuesday wednesday thursday friday saturday sunday
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en113">
      <description>English weekday names</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-12-07')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>for $i in 1 to 7 return let $d2 := $d + xs:dayTimeDuration('P1D')*$i return
         format-date($d2, '[FNn]', 'en', (), ()) </test>
      <result>
         <assert-string-value normalize-space="true">
            Monday Tuesday Wednesday Thursday Friday Saturday Sunday
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en114">
      <description>English weekday names</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-12-07')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>for $i in 1 to 7 return let $d2 := $d + xs:dayTimeDuration('P1D')*$i return
         format-date($d2, '[FN,3-3]', 'en', (), ()) </test>
      <result>
         <assert-string-value>MON TUE WED THU FRI SAT SUN</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en115">
      <description>English weekday names</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-12-07')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>for $i in 1 to 7 return let $d2 := $d + xs:dayTimeDuration('P1D')*$i return
         format-date($d2, '[Fn,3-3]', 'en', (), ()) </test>
      <result>
         <assert-string-value>mon tue wed thu fri sat sun</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en116">
      <description>English weekday names</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-12-07')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>for $i in 1 to 7 return let $d2 := $d + xs:dayTimeDuration('P1D')*$i return
         format-date($d2, '[FNn,3-3]', 'en', (), ()) </test>
      <result>
         <assert-string-value>Mon Tue Wed Thu Fri Sat Sun</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en117">
      <description>English weekday names, abbreviated, variable length</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-12-07')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>
      	for $i in 1 to 7
      	return let $d2 := $d + xs:dayTimeDuration('P1D')*$i
      	return let $abb := format-date($d2, '[FNn,3-4]', 'en', (), ())
        return let $expected := ('Mon', 'Tues', 'Weds', 'Thur', 'Fri', 'Sat', 'Sun')
        return (
         	substring($abb, 1, 3),
         	starts-with($expected[$i], $abb) and string-length($abb) le 4 and string-length($abb) ge 3)
      </test>
      <result>
         <assert-string-value normalize-space="true">
            Mon true Tue true Wed true Thu true Fri true Sat true Sun true
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en118">
      <description>English weekday names, abbreviated, variable length</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-12-07')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>for $i in 1 to 7 return let $d2 := $d + xs:dayTimeDuration('P1D')*$i return let $abb :=
         format-date($d2, '[FNn,3-5]', 'en', (), ()) return let $expected := ('Mon', 'Tues', 'Weds',
         'Thurs', 'Fri', 'Sat', 'Sun') return (substring($abb, 1, 3), starts-with($expected[$i],
         $abb) and string-length($abb) le 5 and string-length($abb) ge 3) </test>
      <result>
         <assert-string-value normalize-space="true">
            Mon true Tue true Wed true Thu true Fri true Sat true Sun true
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en121">
      <description>English ordinal numbers 1-31</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('2003-12-01')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>for $i in 0 to 30 return let $d2 := $d + xs:dayTimeDuration('P1D')*$i return
         format-date($d2, '[D1o]', 'en', (), ()) </test>
      <result>
         <assert-string-value normalize-space="true">
            1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th
            16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th
            31st
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en122">
      <description>English ordinal numbers 1990-2020</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <modified by="Tim Mills" on="2016-08-19" change="Bug 29769" />
      <modified by="Michael Kay" on="2016-09-13" change="Bug 29765" />
      <environment>
         <param name="d" as="xs:date" select="xs:date('1990-12-01')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>for $i in 0 to 30 return let $d2 := $d + xs:yearMonthDuration('P1Y')*$i return
         format-date($d2, '[Y1o]', 'en', (), ()) </test>
      <result>
         <assert-string-value normalize-space="true">
            1990th 1991st 1992nd 1993rd 1994th 1995th 1996th 1997th 1998th 1999th
            2000th 2001st 2002nd 2003rd 2004th 2005th 2006th 2007th 2008th 2009th 2010th 2011th
            2012th 2013th 2014th 2015th 2016th 2017th 2018th 2019th 2020th
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en122b">
      <description>English ordinal numbers 1990-2020</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <modified by="Tim Mills" on="2011-07-01" change="Bug 29769" />
      <environment>
         <param name="d" as="xs:date" select="xs:date('1990-12-01')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>for $i in 0 to 30 return let $d2 := $d + xs:yearMonthDuration('P1Y')*$i return
         format-date($d2, '[Y0001o]', 'en', (), ()) </test>
      <result>
         <assert-string-value normalize-space="true">
            1990th 1991st 1992nd 1993rd 1994th 1995th 1996th 1997th 1998th 1999th
            2000th 2001st 2002nd 2003rd 2004th 2005th 2006th 2007th 2008th 2009th 2010th 2011th
            2012th 2013th 2014th 2015th 2016th 2017th 2018th 2019th 2020th
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en123">
      <description>English cardinal words 1-31 upper case</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <modified by="O'Neil Delpratt" on="2016-04-19" change="Fix to bug issue #29494. Added alternative results" />
      <environment>
         <param name="d" as="xs:date" select="xs:date('1990-12-01')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test> string-join( for $i in 0 to 30 return let $d2 := $d + xs:dayTimeDuration('P1D')*$i
         return format-date($d2, '[DW]', 'en', (), ()), ' ') </test>
      <result>
         <any-of>
            <assert-string-value normalize-space="true">
               ONE TWO THREE FOUR FIVE SIX SEVEN EIGHT NINE TEN ELEVEN
                TWELVE THIRTEEN FOURTEEN FIFTEEN SIXTEEN SEVENTEEN EIGHTEEN NINETEEN TWENTY
                TWENTY ONE TWENTY TWO TWENTY THREE TWENTY FOUR TWENTY FIVE TWENTY SIX TWENTY
                SEVEN TWENTY EIGHT TWENTY NINE THIRTY THIRTY ONE
            </assert-string-value>

            <assert-string-value normalize-space="true">
               ONE TWO THREE FOUR FIVE SIX SEVEN EIGHT NINE TEN ELEVEN
               TWELVE THIRTEEN FOURTEEN FIFTEEN SIXTEEN SEVENTEEN EIGHTEEN NINETEEN TWENTY
               TWENTY-ONE TWENTY-TWO TWENTY-THREE TWENTY-FOUR TWENTY-FIVE TWENTY-SIX
               TWENTY-SEVEN TWENTY-EIGHT TWENTY-NINE THIRTY THIRTY-ONE
            </assert-string-value>
         </any-of>
      </result>
   </test-case>

   <test-case name="format-date-en124">
      <description>English cardinal words 1-31 lower case</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <modified by="O'Neil Delpratt" on="2016-04-19" change="Fix to bug issue #29494. Added alternative results" />
      <environment>
         <param name="d" as="xs:date" select="xs:date('1990-12-01')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test> string-join( for $i in 0 to 30 return let $d2 := $d + xs:dayTimeDuration('P1D')*$i
         return format-date($d2, '[Dw]', 'en', (), ()), ' ') </test>
      <result>
         <any-of>
            <assert-string-value normalize-space="true">
               one two three four five six seven eight nine ten eleven
               twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen twenty
               twenty one twenty two twenty three twenty four twenty five twenty six twenty
               seven twenty eight twenty nine thirty thirty one
            </assert-string-value>
            <assert-string-value normalize-space="true">
               one two three four five six seven eight nine ten eleven
               twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen twenty
               twenty-one twenty-two twenty-three twenty-four twenty-five twenty-six
               twenty-seven twenty-eight twenty-nine thirty thirty-one
            </assert-string-value>
         </any-of>
      </result>
   </test-case>

   <test-case name="format-date-en125">
      <description>English cardinal words 1-31 title case</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <modified by="O'Neil Delpratt" on="2016-04-19" change="Fix to bug issue #29494. Added alternative results" />
      <environment>
         <param name="d" as="xs:date" select="xs:date('1990-12-01')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test> string-join( for $i in 0 to 30 return let $d2 := $d + xs:dayTimeDuration('P1D')*$i
         return format-date($d2, '[DWw]', 'en', (), ()), '; ') </test>
      <result>
         <any-of>

            <assert-string-value normalize-space="true">
               One; Two; Three; Four; Five; Six; Seven; Eight; Nine; Ten; Eleven;
               Twelve; Thirteen; Fourteen; Fifteen; Sixteen; Seventeen; Eighteen; Nineteen; Twenty;
               Twenty One; Twenty Two; Twenty Three; Twenty Four; Twenty Five; Twenty Six; Twenty
               Seven; Twenty Eight; Twenty Nine; Thirty; Thirty One
            </assert-string-value>
            <assert-string-value normalize-space="true">
               One; Two; Three; Four; Five; Six; Seven; Eight; Nine; Ten; Eleven;
               Twelve; Thirteen; Fourteen; Fifteen; Sixteen; Seventeen; Eighteen; Nineteen; Twenty;
               Twenty-One; Twenty-Two; Twenty-Three; Twenty-Four; Twenty-Five; Twenty-Six;
               Twenty-Seven; Twenty-Eight; Twenty-Nine; Thirty; Thirty-One
           </assert-string-value>
         </any-of>
      </result>
   </test-case>

   <test-case name="format-date-en126">
      <description>English cardinal words 1990-2020 upper case</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <modified by="Michael Kay" on="2013-05-01" change="make 'AND' optional, see bug 21423"/>
      <modified by="O'Neil Delpratt" on="2016-04-19" change="Fix to bug issue #29494. Added alternative results" />
      <environment>
         <param name="d" as="xs:date" select="xs:date('1990-12-01')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test>
         string-join(
            for $i in 0 to 30 return let $d2 := $d + xs:yearMonthDuration('P1Y')*$i
              return replace(format-date($d2, '[YW]', 'en', (), ()), ' AND ', ' '),
            '; ') </test>
      <result>
         <any-of>
            <assert-string-value normalize-space="true">
               ONE THOUSAND NINE HUNDRED NINETY; ONE THOUSAND NINE HUNDRED
               NINETY ONE; ONE THOUSAND NINE HUNDRED NINETY TWO; ONE THOUSAND NINE HUNDRED
               NINETY THREE; ONE THOUSAND NINE HUNDRED NINETY FOUR; ONE THOUSAND NINE HUNDRED
               NINETY FIVE; ONE THOUSAND NINE HUNDRED NINETY SIX; ONE THOUSAND NINE HUNDRED
               NINETY SEVEN; ONE THOUSAND NINE HUNDRED NINETY EIGHT; ONE THOUSAND NINE HUNDRED
               NINETY NINE; TWO THOUSAND; TWO THOUSAND ONE; TWO THOUSAND TWO; TWO THOUSAND
               THREE; TWO THOUSAND FOUR; TWO THOUSAND FIVE; TWO THOUSAND SIX; TWO THOUSAND
               SEVEN; TWO THOUSAND EIGHT; TWO THOUSAND NINE; TWO THOUSAND TEN; TWO
               THOUSAND ELEVEN; TWO THOUSAND TWELVE; TWO THOUSAND THIRTEEN; TWO THOUSAND
               FOURTEEN; TWO THOUSAND FIFTEEN; TWO THOUSAND SIXTEEN; TWO THOUSAND
               SEVENTEEN; TWO THOUSAND EIGHTEEN; TWO THOUSAND NINETEEN; TWO THOUSAND
               TWENTY
            </assert-string-value>
            <assert-string-value normalize-space="true">
               ONE THOUSAND NINE HUNDRED NINETY; ONE THOUSAND NINE HUNDRED
               NINETY-ONE; ONE THOUSAND NINE HUNDRED NINETY-TWO; ONE THOUSAND NINE HUNDRED
               NINETY-THREE; ONE THOUSAND NINE HUNDRED NINETY-FOUR; ONE THOUSAND NINE HUNDRED
               NINETY-FIVE; ONE THOUSAND NINE HUNDRED NINETY-SIX; ONE THOUSAND NINE HUNDRED
               NINETY-SEVEN; ONE THOUSAND NINE HUNDRED NINETY-EIGHT; ONE THOUSAND NINE HUNDRED
               NINETY-NINE; TWO THOUSAND; TWO THOUSAND ONE; TWO THOUSAND TWO; TWO THOUSAND
               THREE; TWO THOUSAND FOUR; TWO THOUSAND FIVE; TWO THOUSAND SIX; TWO THOUSAND
               SEVEN; TWO THOUSAND EIGHT; TWO THOUSAND NINE; TWO THOUSAND TEN; TWO
               THOUSAND ELEVEN; TWO THOUSAND TWELVE; TWO THOUSAND THIRTEEN; TWO THOUSAND
               FOURTEEN; TWO THOUSAND FIFTEEN; TWO THOUSAND SIXTEEN; TWO THOUSAND
               SEVENTEEN; TWO THOUSAND EIGHTEEN; TWO THOUSAND NINETEEN; TWO THOUSAND
               TWENTY
            </assert-string-value>
         </any-of>
      </result>
   </test-case>

   <test-case name="format-date-en127">
      <description>English cardinal words 1990-2020 lower case</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <modified by="Michael Kay" on="2013-05-01" change="make 'and' optional, see bug 21423"/>
      <modified by="O'Neil Delpratt" on="2016-04-19" change="Fix to bug issue #29494. Added alternative results" />
      <environment>
         <param name="d" as="xs:date" select="xs:date('1990-12-01')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test> string-join( for $i in 0 to 30 return let $d2 := $d + xs:yearMonthDuration('P1Y')*$i
         return replace(format-date($d2, '[Yw]', 'en', (), ()), ' and ', ' '), '; ') </test>
      <result>
         <any-of>
            <assert-string-value normalize-space="true">
               one thousand nine hundred ninety; one thousand nine hundred
               ninety one; one thousand nine hundred ninety two; one thousand nine hundred
               ninety three; one thousand nine hundred ninety four; one thousand nine hundred
               ninety five; one thousand nine hundred ninety six; one thousand nine hundred
               ninety seven; one thousand nine hundred ninety eight; one thousand nine hundred
               ninety nine; two thousand; two thousand one; two thousand two; two thousand
               three; two thousand four; two thousand five; two thousand six; two thousand
               seven; two thousand eight; two thousand nine; two thousand ten; two
               thousand eleven; two thousand twelve; two thousand thirteen; two thousand
               fourteen; two thousand fifteen; two thousand sixteen; two thousand
               seventeen; two thousand eighteen; two thousand nineteen; two thousand
               twenty
            </assert-string-value>
            <assert-string-value normalize-space="true">
               one thousand nine hundred ninety; one thousand nine hundred
               ninety-one; one thousand nine hundred ninety-two; one thousand nine hundred
               ninety-three; one thousand nine hundred ninety-four; one thousand nine hundred
               ninety-five; one thousand nine hundred ninety-six; one thousand nine hundred
               ninety-seven; one thousand nine hundred ninety-eight; one thousand nine hundred
               ninety-nine; two thousand; two thousand one; two thousand two; two thousand
               three; two thousand four; two thousand five; two thousand six; two thousand
               seven; two thousand eight; two thousand nine; two thousand ten; two
               thousand eleven; two thousand twelve; two thousand thirteen; two thousand
               fourteen; two thousand fifteen; two thousand sixteen; two thousand
               seventeen; two thousand eighteen; two thousand nineteen; two thousand
               twenty
            </assert-string-value>
         </any-of>
      </result>
   </test-case>

   <test-case name="format-date-en128">
      <description>English cardinal words 1990-2020 title case</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <modified by="Michael Kay" on="2013-05-01" change="make 'and' optional, see bug 21423"/>
      <modified by="O'Neil Delpratt" on="2016-04-19" change="Fix to bug issue #29494. Added alternative results" />
      <environment>
         <param name="d" as="xs:date" select="xs:date('1990-12-01')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test> string-join( for $i in 0 to 30 return let $d2 := $d + xs:yearMonthDuration('P1Y')*$i
         return replace(format-date($d2, '[YWw]', 'en', (), ()), ' [Aa]nd ', ' '), '; ') </test>
      <result>
         <any-of>
            <assert-string-value normalize-space="true">
               One Thousand Nine Hundred Ninety; One Thousand Nine Hundred
               Ninety One; One Thousand Nine Hundred Ninety Two; One Thousand Nine Hundred
               Ninety Three; One Thousand Nine Hundred Ninety Four; One Thousand Nine Hundred
               Ninety Five; One Thousand Nine Hundred Ninety Six; One Thousand Nine Hundred
               Ninety Seven; One Thousand Nine Hundred Ninety Eight; One Thousand Nine Hundred
               Ninety Nine; Two Thousand; Two Thousand One; Two Thousand Two; Two Thousand
               Three; Two Thousand Four; Two Thousand Five; Two Thousand Six; Two Thousand
               Seven; Two Thousand Eight; Two Thousand Nine; Two Thousand Ten; Two
               Thousand Eleven; Two Thousand Twelve; Two Thousand Thirteen; Two Thousand
               Fourteen; Two Thousand Fifteen; Two Thousand Sixteen; Two Thousand
               Seventeen; Two Thousand Eighteen; Two Thousand Nineteen; Two Thousand
               Twenty
            </assert-string-value>
            <assert-string-value normalize-space="true">
               One Thousand Nine Hundred Ninety; One Thousand Nine Hundred
               Ninety-One; One Thousand Nine Hundred Ninety-Two; One Thousand Nine Hundred
               Ninety-Three; One Thousand Nine Hundred Ninety-Four; One Thousand Nine Hundred
               Ninety-Five; One Thousand Nine Hundred Ninety-Six; One Thousand Nine Hundred
               Ninety-Seven; One Thousand Nine Hundred Ninety-Eight; One Thousand Nine Hundred
               Ninety-Nine; Two Thousand; Two Thousand One; Two Thousand Two; Two Thousand
               Three; Two Thousand Four; Two Thousand Five; Two Thousand Six; Two Thousand
               Seven; Two Thousand Eight; Two Thousand Nine; Two Thousand Ten; Two
               Thousand Eleven; Two Thousand Twelve; Two Thousand Thirteen; Two Thousand
               Fourteen; Two Thousand Fifteen; Two Thousand Sixteen; Two Thousand
               Seventeen; Two Thousand Eighteen; Two Thousand Nineteen; Two Thousand
               Twenty
            </assert-string-value>
         </any-of>
      </result>
   </test-case>

   <test-case name="format-date-en129">
      <description>English ordinal words 1-31 upper case</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('1990-12-01')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test> string-join( for $i in 0 to 30 return let $d2 := $d + xs:dayTimeDuration('P1D')*$i
         return translate(format-date($d2, '[DWo]', 'en', (), ()), '- ', ''), '; ') </test>
      <result>
         <assert-string-value normalize-space="true">
            FIRST; SECOND; THIRD; FOURTH; FIFTH; SIXTH; SEVENTH; EIGHTH; NINTH;
            TENTH; ELEVENTH; TWELFTH; THIRTEENTH; FOURTEENTH; FIFTEENTH; SIXTEENTH; SEVENTEENTH;
            EIGHTEENTH; NINETEENTH; TWENTIETH; TWENTYFIRST; TWENTYSECOND; TWENTYTHIRD; TWENTYFOURTH;
            TWENTYFIFTH; TWENTYSIXTH; TWENTYSEVENTH; TWENTYEIGHTH; TWENTYNINTH; THIRTIETH;
            THIRTYFIRST
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en130">
      <description>English ordinal words 1-31 lower case</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('1990-12-01')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test> string-join( for $i in 0 to 30 return let $d2 := $d + xs:dayTimeDuration('P1D')*$i
         return translate(format-date($d2, '[Dwo]', 'en', (), ()), '- ', ''), '; ') </test>
      <result>
         <assert-string-value normalize-space="true">
            first; second; third; fourth; fifth; sixth; seventh; eighth; ninth;
            tenth; eleventh; twelfth; thirteenth; fourteenth; fifteenth; sixteenth; seventeenth;
            eighteenth; nineteenth; twentieth; twentyfirst; twentysecond; twentythird; twentyfourth;
            twentyfifth; twentysixth; twentyseventh; twentyeighth; twentyninth; thirtieth;
            thirtyfirst
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en131">
      <description>English ordinal words 1-31 title case</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('1990-12-01')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test> string-join( for $i in 0 to 30 return let $d2 := $d + xs:dayTimeDuration('P1D')*$i
         return translate(format-date($d2, '[DWwo]', 'en', (), ()), '- ', ''), '; ') </test>
      <result>
         <assert-string-value normalize-space="true">
            First; Second; Third; Fourth; Fifth; Sixth; Seventh; Eighth; Ninth;
            Tenth; Eleventh; Twelfth; Thirteenth; Fourteenth; Fifteenth; Sixteenth; Seventeenth;
            Eighteenth; Nineteenth; Twentieth; TwentyFirst; TwentySecond; TwentyThird; TwentyFourth;
            TwentyFifth; TwentySixth; TwentySeventh; TwentyEighth; TwentyNinth; Thirtieth;
            ThirtyFirst
         </assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en132">
      <description>English ordinal words 1990-2020 upper case</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <modified by="Michael Kay" on="2013-05-01" change="make 'and' optional, see bug 21423"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('1990-12-01')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test> string-join( for $i in 0 to 30 return let $d2 := $d + xs:yearMonthDuration('P1Y')*$i
         return translate(replace(format-date($d2, '[YWo]', 'en', (), ()), ' AND ', ' '), '- ', ''), '; ') </test>
      <result>
         <assert-string-value normalize-space="true">ONETHOUSANDNINEHUNDREDNINETIETH;
            ONETHOUSANDNINEHUNDREDNINETYFIRST; ONETHOUSANDNINEHUNDREDNINETYSECOND;
            ONETHOUSANDNINEHUNDREDNINETYTHIRD; ONETHOUSANDNINEHUNDREDNINETYFOURTH;
            ONETHOUSANDNINEHUNDREDNINETYFIFTH; ONETHOUSANDNINEHUNDREDNINETYSIXTH;
            ONETHOUSANDNINEHUNDREDNINETYSEVENTH; ONETHOUSANDNINEHUNDREDNINETYEIGHTH;
            ONETHOUSANDNINEHUNDREDNINETYNINTH; TWOTHOUSANDTH; TWOTHOUSANDFIRST;
            TWOTHOUSANDSECOND; TWOTHOUSANDTHIRD; TWOTHOUSANDFOURTH; TWOTHOUSANDFIFTH;
            TWOTHOUSANDSIXTH; TWOTHOUSANDSEVENTH; TWOTHOUSANDEIGHTH; TWOTHOUSANDNINTH;
            TWOTHOUSANDTENTH; TWOTHOUSANDELEVENTH; TWOTHOUSANDTWELFTH;
            TWOTHOUSANDTHIRTEENTH; TWOTHOUSANDFOURTEENTH; TWOTHOUSANDFIFTEENTH;
            TWOTHOUSANDSIXTEENTH; TWOTHOUSANDSEVENTEENTH; TWOTHOUSANDEIGHTEENTH;
            TWOTHOUSANDNINETEENTH; TWOTHOUSANDTWENTIETH</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en133">
      <description>English ordinal words 1990-2020 lower case</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <modified by="Michael Kay" on="2013-05-01" change="make 'and' optional, see bug 21423"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('1990-12-01')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test> string-join( for $i in 0 to 30 return let $d2 := $d + xs:yearMonthDuration('P1Y')*$i
         return translate(replace(format-date($d2, '[Ywo]', 'en', (), ()), ' and ', ' '), '- ', ''), '; ') </test>
      <result>
         <assert-string-value normalize-space="true">onethousandninehundredninetieth;
            onethousandninehundredninetyfirst; onethousandninehundredninetysecond;
            onethousandninehundredninetythird; onethousandninehundredninetyfourth;
            onethousandninehundredninetyfifth; onethousandninehundredninetysixth;
            onethousandninehundredninetyseventh; onethousandninehundredninetyeighth;
            onethousandninehundredninetyninth; twothousandth; twothousandfirst;
            twothousandsecond; twothousandthird; twothousandfourth; twothousandfifth;
            twothousandsixth; twothousandseventh; twothousandeighth; twothousandninth;
            twothousandtenth; twothousandeleventh; twothousandtwelfth;
            twothousandthirteenth; twothousandfourteenth; twothousandfifteenth;
            twothousandsixteenth; twothousandseventeenth; twothousandeighteenth;
            twothousandnineteenth; twothousandtwentieth</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en134">
      <description>English ordinal words 1990-2020 title case</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <modified by="Michael Kay" on="2013-05-01" change="make 'and' optional, see bug 21423"/>
      <environment>
         <param name="d" as="xs:date" select="xs:date('1990-12-01')"/>
      </environment>
      <dependency type="language" value="en"/>
      <test> string-join( for $i in 0 to 30 return let $d2 := $d + xs:yearMonthDuration('P1Y')*$i
         return translate(replace(format-date($d2, '[YWwo]', 'en', (), ()), ' [Aa]nd ', ' '), '- ', ''), '; ') </test>
      <result>
         <assert-string-value normalize-space="true">OneThousandNineHundredNinetieth;
            OneThousandNineHundredNinetyFirst; OneThousandNineHundredNinetySecond;
            OneThousandNineHundredNinetyThird; OneThousandNineHundredNinetyFourth;
            OneThousandNineHundredNinetyFifth; OneThousandNineHundredNinetySixth;
            OneThousandNineHundredNinetySeventh; OneThousandNineHundredNinetyEighth;
            OneThousandNineHundredNinetyNinth; TwoThousandth; TwoThousandFirst;
            TwoThousandSecond; TwoThousandThird; TwoThousandFourth; TwoThousandFifth;
            TwoThousandSixth; TwoThousandSeventh; TwoThousandEighth; TwoThousandNinth;
            TwoThousandTenth; TwoThousandEleventh; TwoThousandTwelfth;
            TwoThousandThirteenth; TwoThousandFourteenth; TwoThousandFifteenth;
            TwoThousandSixteenth; TwoThousandSeventeenth; TwoThousandEighteenth;
            TwoThousandNineteenth; TwoThousandTwentieth</assert-string-value>
      </result>
   </test-case>

   <test-case name="format-date-en141">
      <description>English BC/AD</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <environment>
         <param name="d1" as="xs:date" select="xs:date('1990-12-01')"/>
         <param name="d2" as="xs:date" select="xs:date('-0055-12-01')"/>
      </environment>
      <dependency type="language" value="en"/>
      <dependency type="limits" value="year_lt_0"/>
      <test> format-date($d1, '[Y][EN]', 'en', (), ()), format-date($d2, '[Y][EN]', 'en', (), ()) </test>
      <result>
         <any-of>
            <assert-deep-eq>"1990AD", "55BC"</assert-deep-eq>
            <assert-deep-eq>"1990CE", "55BCE"</assert-deep-eq>
            <assert-deep-eq>"1990A.D.", "55B.C."</assert-deep-eq>
            <assert-deep-eq>"1990C.E.", "55B.C.E."</assert-deep-eq>
         </any-of>
      </result>
   </test-case>

   <test-case name="format-date-en151">
      <description>test format-date: fallback to English for unsupported language. Test assumes (a) that Iberian (xib) is not supported, and (b) that the fallback language is English. Changed from lang="fo" to lang="xib": See bug 862.</description>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <modified by="Michael Kay, Saxonica" on="2016-04-26" change="see bug 29573"/>
      <environment>
         <param name="b" as="xs:date" select="xs:date('2006-03-01')"/>
      </environment>
      <dependency type="language" value="xib" satisfied="false"/>
      <test>format-date($b, '[MNn]', 'xib', (), ())</test>
      <result>
         <all-of>
            <assert>matches($result, "en")</assert>
            <assert>matches($result, "March")</assert>
         </all-of>
      </result>
   </test-case>

   <test-case name="format-date-en152">
      <description/>
      <created by="Michael Kay, Saxonica" on="2011-07-01"/>
      <modified by="Michael Kay, Saxonica" on="2016-04-26" change="see bug 29573"/>
      <environment>
         <param name="b" as="xs:date" select="xs:date('2006-03-01')"/>
      </environment>
      <dependency type="calendar" value="CB" satisfied="false"/>
      <test>format-date($b, '[M01]', 'en', 'CB', ())</test>
      <result>
         <all-of>
            <assert>matches($result, "AD")</assert>
            <assert>matches($result, "03")</assert>
         </all-of>
      </result>
   </test-case>

   <test-case name="format-date-en153">
      <description>Use an unknown calendar in a namespace, specified by means of an EQName</description>
      <created by="Michael Kay, Saxonica" on="2013-06-12"/>
      <modified by="O'Neil Delpratt" on="2013-06-21" change="Bug fix #22418 - changed assertion to assert-type" />
      <environment>
         <param name="b" as="xs:date" select="xs:date('2006-03-01')"/>
      </environment>
      <test>
      	format-date($b, '[M01]', 'en', 'Q{http://calendar.example.com/non-existent-calendar}CB', ())
      </test>
      <result>
         <assert-type>xs:string</assert-type>
      </result>
   </test-case>

   <test-case name="format-date-en154">
      <description>Use an unknown calendar in a namespace, specified by means of a lexical QName</description>
      <created by="Michael Kay, Saxonica" on="2013-06-12"/>
      <modified by="O'Neil Delpratt" on="2013-06-21" change="Bug fix #22418 - changed assertion to assert-type" />
      <dependency type="spec" value="XQ30+"/>
      <test>
      	declare namespace cal = "http://calendar.example.com/non-existent-calendar";
      	format-date(xs:date('2006-03-01'), '[M01]', 'en', 'cal:CB', ())
      </test>
      <result>
         <assert-type>xs:string</assert-type>
      </result>
   </test-case>

   <test-case name="format-date-en155">
      <description>Use an unknown calendar in no namespace, specified by means of an EQName</description>
      <created by="Michael Kay, Saxonica" on="2013-06-12"/>
      <environment>
         <param name="b" as="xs:date" select="xs:date('2006-03-01')"/>
      </environment>
      <test>
      	format-date($b, '[M01]', 'en', 'Q{}ZODIAC', ())
      </test>
      <result>
         <error code="FOFD1340"/>
      </result>
   </test-case>

   <test-case name="format-date-en156">
      <description>Use an unknown calendar in no namespace, specified by means of a lexical QName</description>
      <created by="Michael Kay, Saxonica" on="2013-06-12"/>
      <environment>
         <param name="b" as="xs:date" select="xs:date('2006-03-01')"/>
      </environment>
      <test>
      	format-date($b, '[M01]', 'en', 'ZODIAC', ())
      </test>
      <result>
         <error code="FOFD1340"/>
      </result>
   </test-case>

   <test-case name="format-date-en157">
      <description>Use a badly-formed calendar name</description>
      <created by="Michael Kay, Saxonica" on="2013-06-12"/>
      <environment>
         <param name="b" as="xs:date" select="xs:date('2006-03-01')"/>
      </environment>
      <test>
      	format-date($b, '[M01]', 'en', ':w', ())
      </test>
      <result>
         <error code="FOFD1340"/>
      </result>
   </test-case>

   <test-case name="format-date-en158">
      <description>Use a badly-formed calendar name</description>
      <created by="Michael Kay, Saxonica" on="2013-06-12"/>
      <environment>
         <param name="b" as="xs:date" select="xs:date('2006-03-01')"/>
      </environment>
      <test>
      	format-date($b, '[M01]', 'en', 'Q{}1', ())
      </test>
      <result>
         <error code="FOFD1340"/>
      </result>
   </test-case>

  <test-case name="format-date-inpt-er1">
      <description>wrong arg input to format-date()</description>
      <created by="Zhen Hua Liu" on="2012-01-18"/>
      <test>format-date('abc', '[bla]', 'en', (), ())</test>
      <result>
         <error code="XPTY0004"/>
      </result>
   </test-case>

   <test-case name="format-date-inpt-er2">
      <description>wrong number of args to format-date()</description>
      <created by="Zhen Hua Liu" on="2012-01-18"/>
      <test>format-date(current-date(), '[bla]', 'en', (), (), 6)</test>
      <result>
         <error code="XPST0017"/>
      </result>
   </test-case>

   <test-case name="format-date-inpt-er3">
      <description>wrong number of args to format-date()</description>
      <created by="Zhen Hua Liu" on="2012-01-18"/>
      <test>format-date(current-date(), '[bla]', 'en', (), 5)</test>
      <result>
         <error code="XPTY0004"/>
      </result>
   </test-case>

   <test-case name="format-date-inpt-er4">
      <description>wrong number of args</description>
      <created by="Debbie Lockett, Saxonica" on="2016-04-27"/>
      <test>format-date(current-date(), "[D01]", "")</test>
      <result>
         <error code="XPST0017"/>
      </result>
   </test-case>

   <test-case name="format-date-1340err">
      <description>Error FOFD1340 syntax of picture is incorrect</description>
      <created by="Zhen Hua Liu" on="2012-01-18"/>
      <test>format-date(current-date(), '[yY]', 'en', (), ())</test>
      <result>
         <error code="FOFD1340"/>
      </result>
   </test-case>

</test-set>

redpajama_set_name: RedPajamaGithub


text:
A Suicide in Brooklyn
February 26, 2015 Thomas L. Knapp Leave a comment
Maraschino cherry mogul Arthur Mondella put a pistol to his head and pulled the trigger on February 24. He was 57. New York City's medical examiners will no doubt rule his death a suicide. But Mondella was really the latest victim of a multi-billion dollar industry: Drug prohibition.
Why did Mondella lock himself in the bathroom at Dell's Maraschino Cherries — a company his grandfather founded in 1948, and which annually produces more than a billion of the sweet, syrupy little treats that top America's desserts — ask his sister to take care of his children, and kill himself?
Because police, posing as "environmental inspectors," discovered (as they suspected) that in addition to producing cherries, Mondella was using the factory to run a marijuana business. After five hours of tearing the place apart, they found a false wall hiding 80 pounds of cannabis and hundreds of thousands of dollars in cash.
Mondella ran a second business behind the scenes. As with his cherry business, he provided a desired product to willing customers, leaving both parties better off than before the exchange. Unfortunately for him, that second business ran afoul of a set of evil laws maintained well past their "okay, that didn't work" dates for the purpose of keeping government bureaucrats and "non-profit" executives employed.
In 2015 alone, one federal bureaucracy — the Office of National Drug Control Policy — will spend more than $25 billion taxpayer dollars hunting down and caging or killing entrepreneurs like Mondella. That's not counting the expenditures of state and local law enforcement agencies, or the tens of millions raised and spent by "non-profit" propaganda shops like DARE and the Partnership for Drug Free Kids.
Drug prohibition is big business. Not the kind of business Arthur Mondella ran, though. It isn't the win-win proposition that defines legitimate enterprise. Drug prohibition's "products" are people jailed, people killed, property seized. Its "transactions" harm everyone except the fat cats who run its various divisions and subsidiaries.
In 1971, a young Vietnam veteran testifying before Congress against the war, John Kerry (now US Secretary of State), wondered "How do you ask a man to be the last man to die for a mistake?"
America's tragic history of marijuana prohibition seems to be slowly drawing to an end as more and more states legalize it for medical and, lately, recreational use. Unfortunately Arthur Mondella probably won't be its last casualty.
Thomas L. Knapp is director and senior news analyst at the William Lloyd Garrison Center for Libertarian Advocacy Journalism (thegarrisoncenter.org). He lives and works in north central Florida.
"A Suicide in Brooklyn" by Thomas L. Knapp, CounterPunch, 02/27/15
"A Suicide in Brooklyn," by Thomas L. Knapp, Batesville, Arkansas Daily Guard (paywall), 03/02/15
Arthur MondellaBrooklyndrug prohibitionmarijuanaNew York Citywar on drugs

redpajama_set_name: RedPajamaCommonCrawl


text:
Abortion and the Taliban…Checkers and Chess
by Bradford Smith | 21 Feb, 2019 | 3 comments
How do you best kill the Taliban?
Upstream, that's how.
Let's see if I can explain.
For nearly two decades, we engaged the Taliban on the battlefield with stunning success. In virtually every engagement, coalition troops prevail. Usually, it's a slaughter. I can think of only a handful of tactical engagements won by the Taliban.
Yet, they stand poised to eject us from Afghanistan with control over large swaths of the countryside. Outside the capital and the few cities, the Taliban are the power-brokers.
After 19 years and over 2,000 American soldiers dead, the United States finds itself embroiled in a strategic quagmire from which we may not extract ourselves or the whole thing likely falls apart.
Each year, we bleed out just a little bit more.
How could this be?
Checkers. We're playing checkers.
Just like the church.
Don't get me wrong.
Checkers is a fun game, valuable to an extent. When your opponent plays chess though…
Pro-life advocates declared February 23rd of this year, a Day of Mourning. In response to the recent and radical New York abortion law, the website instructs us to wear black, not shop, close businesses, and repent for abortion. Albany, New York will host a rally/meeting/worship service with a host of notable pro-life speakers.
On January 18th, tens of thousands of pro-life warriors braved the cold streets of our nation's capital in protest of the evil of abortion. This is the 46th annual iteration. Vice President Mike Pence and a host of conservative leaders attended this year's event. President Trump attended last year.
Though large and dramatic, these are tactical engagements. Like any tactical engagement, if not supported by sound strategy, the engagement fails to yield long-term results.
And, in a way, these are the large-scale equivalent of me arguing with my pro-choice cousin on social media.
I'm not too sure about their productivity, even on the tactical level. I acknowledge the efficacy of compelling our political leaders to pen pro-life legislation and nominate pro-life judicial members.
But this is about hearts and minds, like any counter-insurgency.
Has a single heart or mind been changed by demonstrations?
Building pregnancy centers is a step toward strategy, toward chess. What if, next to every single Planned Parenthood, was a crisis pregnancy center that offered every service, but abortion? Once a woman views her baby on an ultrasound, once she sees it's personhood, she is much less likely to go through with an abortion.
Our city has a crisis pregnancy center with a great ministry.
Adopt.
Okay, now we're getting somewhere. Parcheesi maybe.
What if we could tell every woman in a crisis pregnancy, "Don't abort, please. We'll raise your child in a loving home." I choose to believe that most women do not want to have an abortion, but in many cases, feel they do not have an option.
The church ought to be elbowing one another out of the way to adopt available children. The existence of unwanted children is itself, an indictment of the church.
We never get this far. It's too hard, requires too much of us.
We're stuck in confronting the issue head-on with protests and marches and rallies and moaning and arguing on social media, slandering those who live blinded by their sin.
Meanwhile, the enemy busily destroys the nuclear family, drives a wedge between men and women, even going so far as to destroy the very idea of men and women, blurring the lines until the are unrecognizable.
And his agents of destruction are legions of unwitting men who stand idle as their sons grow into godlessness.
But, what if we played chess?
Like with the Taliban.
I'll not deny the efficacy of shooting the Taliban in the face wherever you can.
We can build the world's most sophisticated military machine to ensure that the trigger-puller is in the exact right place at the exact right time to squeeze the trigger and propel the 7.62 round into the skull of said Taliban.
The problem…h e's got brothers, and a father, and uncles, and friends…i.e. the Taliban.
Let's work upstream.
What if he was never there in the first place? Let us dispatch him before he ever sets foot on the battlefield, perhaps walking out his door in the morning, or sleeping in his bed at night.
Let's give him options, an education. Let us dangle the allure of financial prosperity before him, the hope of a better future for him and his family, a desire common to all men.
Further upstream, let us raze the Pakistani madrassa that taught him the Koran and to hate America. Let us coerce Pakistan to raze all their madrassas. Imprison the fundamental clerics. What if we westernized his homeland to the greatest extent possible, immersing him in the seductiveness of secularism, confusing him, undermining his Islamic faith which drives his zeal.
What if we fervently prayed for the Gospel to penetrate Muslim lands and for the Lord to raise up missionaries to go, and to make disciples? What if we went ourselves?
Abortion and Chess
Abortion will never end as godlessness proliferates.
Revival is the answer to abortion and I'm not talking a scheduled tent revival with open-air preaching. I'm talking real revival found in the serious commitment of men making disciples of their sons.
You want to end abortion?
Men, let us teach our sons to follow the Lord Jesus Christ.
Do the other things. Protest. Legislate. Inform. Rally. Resist. Build. Adopt. All of it. But apart from the engagement of godly men discipling their sons, these are but band-aids on a gushing hemorrhage.
Abortion is a symptom. Treating symptoms is okay as long as we treat the source of the illness. The source of the illness is godlessness, and as each generation becomes increasingly godless, abortion will proliferate.
Consider a generation of young men, of young Christ-followers and what the Lord would accomplish through them.
These young men would cherish and esteem young women. They would honor them and respect them. They would reject the overt sexualization of our culture and the insidious but prevalent view that a woman's worth is in her sexuality and her looks. They would lift this burden from young women.
These young disciples would not pressure them into sex outside the covenant of marriage. They would value them as people, as sisters in Christ, as perhaps a future mate and wife.
But you know what, it will still happen. Christ-followers still fall into sin. There will still be unplanned and unwanted pregnancy. Yet, these young men, as Christians living a life of repentance, would seek out the Lord's forgiveness and the woman's as well and then seek to make things right.
Young disciples would not abandon a young lady to her pregnancy and vulnerability. Young disciples would not force her into a position of having to make a dreadful but seemingly necessary choice. "I'm here," they'll say. "I'm scared too, but let us rejoice at life. It didn't happen how we planned, but it happened and so we'll embrace it. Hallelujah, I get to father."
And still sin happens. As their brothers wrestle with the flesh and maybe do abandon a woman in her time of need, they would come alongside and say, "we will support you as you need or, if necessary, we will love this child and raise them as a son or a daughter."
Godly young men would push back against the rampant godlessness and how, by living according to the dictates of Christ, as disciples themselves. They would commit their lives to being disciples and themselves, to making disciples, of their own sons at first and then all the nations.
As they push back the darkness, as revival engulfs the nation, abortion would necessarily wane.
Men, make disciples of your sons.
Checkmate.
Kings to you, Satan.
LH	on March 1, 2019 at 12:10 pm
Obama passed legislation that blocked adoption through Christian organizations because they gave children to traditional families.
Alfred Puglisi	on March 1, 2019 at 8:27 pm
I don't know what it is you are trying to say here…you are all over the place. But incidentally, Islam teaches against abortion.
Bradford Smith	on March 2, 2019 at 6:58 am
The Taliban have nothing to do with abortion. Using them to make the point that we often treat symptoms in many areas, but with abortion, that the true solution to abortion is to make disciples of our sons.
Bradford Smith
Author - Founder
Soldier, Pastor, Author – Bradford stays busy, with his wife Ami, raising their 9 children, serving the nation, pastoring, preaching, and writing books (#3 is due out October '17).
THE 413 REPORT
If you loved this article, and would like to learn more about foster and adoption care, and to stay up to date on our projects, missions, and programs, as well as the release of Bradford's third book, Brave Rifles, please sign up for our Newsletter. The 413 Project is made up of common people empowering and serving others to accomplish an uncommon good.
This is a powerful read in a small book. The subtitle hits the mark with its description of, "A Biblical Treatise on Adoption." The author poses a challenge to the reader to stop reading the book upfront if the reader does not want to be moved to action.
Janice S. Garey
The call that sounds for the incredible need of emotionally and physically abandoned and orphaned children and one that when answered manifests the love of Christ.
Anne Rightler
This book is a must read for anyone affected in any way by addictions. So many of the situations in this book seem hopeless, but as Brad so clearly points out, Christ is the solution and the only hope of man. As long as there is breath, there is hope!
Scott Doherty
In Scourge, Brad offers us more than cold statistics or a cautionary tale. Instead, he offers us the solution - faith backed by action - to overcome this insidious problem Insightful and provocative, Scourge is a warning flag, guide post and rally to hope for all of us.
FOLLOW THE 413!
Crumbling America
The Tragedy of Transgender
The Great Desire of a Woman
The Preaching of a Lawless Gospel
Tim M on Biblical Masculinity is Toxic Masculinity
Rudy on Stop Kidding Yourself…Nothing is Neutral
Kenneth Poindexter on The Good Dude—the Worst Kind of Dude
Bradford Smith on Sleep – the Currency of Compassion in Raising the Fetal Alcohol Syndrome Child
Designed by JHRivas
Facebookhttps://www.facebook.com/pg/fouronethreeproject/about/?section=official_page&tab=page_info
Twitterhttps://twitter.com/Brad413project
LinkedInhttps://www.linkedin.com/in/bradford-smith-897112a3