InputDate Mon Apr 24 2017 08:47:31 GMT+0100 (BST) | |||||
Number failed: 67Number passed:146File: /Servers/htdocs/test/2013/js/day/tests/scripts//InputDate.testScript | |||||
Line | Test | Expected | Actual | Comment | |
# CONVERTING STRINGS TO DATES | |||||
# ----------------------------------------- | |||||
# Format: Function (Input) Expected_result [#comment] | |||||
# Conversions to dates See also: ImpliedYear and InputInterval | |||||
6 | SETCONFIG(DM_ORDER,DMY) | DM_ORDER set to DMY | British D-M order | ||
# Special values | |||||
10 | DATEFROMSTRING() | Not valid(1) | |||
11 | DATEFROMSTRING(EoT) | End-of-Time | |||
12 | DATEFROMSTRING(End-of-Time) | End-of-Time | |||
13 | DATEFROMSTRING(E) | End-of-Time | |||
14 | DATEFROMSTRING(BoT) | Beg-of-Time | |||
15 | DATEFROMSTRING(Beg-of-Time) | Beg-of-Time | |||
16 | DATEFROMSTRING(B) | Beg-of-Time | |||
17 | DATEFROMSTRING(U) | Unknown | |||
18 | DATEFROMSTRING(Unknown) | Unknown | |||
19 | DATEFROMSTRING(NOT VALID) | Not valid(0) | Unknown/OK | ||
20 | DATEFROMSTRING(!) | Not valid(0) | Unknown short form | ||
# 6 and 8 digits all together | |||||
# --------------------------- | |||||
24 | DATEFROMSTRING(010203) | 1 Feb 2003 | |||
25 | DATEFROMSTRING(011203) | 1 Dec 2003 | |||
26 | DATEFROMSTRING(01122003) | 1 Dec 2003 | |||
27 | DATEFROMSTRING(01122013) | 1 Dec 2013 | |||
28 | DATEFROMSTRING(01122113) | 1 Dec 2113 | |||
29 | DATEFROMSTRING(01121913) | 1 Dec 1913 | |||
30 | DATEFROMSTRING(01121813) | 1 Dec 1813 | |||
# forcing day-of-month that are too large to max length of month | |||||
32 | SETCONFIG(ALLOW_31_TO_30, 1) | ALLOW_31_TO_30 set to 1 | following should all pass | ||
33 | DATEFROMSTRING(31112009) | 30 Nov 2009 | |||
34 | DATEFROMSTRING(32112009) | Not valid(2) | |||
35 | DATEFROMSTRING(31022008) | 29 Feb 2008 | leap year | ||
# Hovering around year 0 etc | |||||
37 | DATEFROMSTRING(010100) | 1 Jan 2000 | |||
38 | DATEFROMSTRING(01010000) | Not valid(2) | |||
39 | DATEFROMSTRING(010101) | 1 Jan 2001 | |||
40 | DATEFROMSTRING(01010001) | 1 Jan 0001 | |||
41 | DATEFROMSTRING(000000) | Not valid(2) | 00 is a bad year | ||
42 | DATEFROMSTRING(00000000) | Not valid(2) | 0000 is a bad year | ||
43 | DATEFROMSTRING(00032004) | Mar 2004 | |||
44 | DATEFROMSTRING(65122004) | Not valid(2) | |||
45 | DATEFROMSTRING(03132004) | Not valid(2) | |||
46 | DATEFROMSTRING(03047004) | Not valid(2) | |||
# Three separate tokens | |||||
51 | DATEFROMSTRING(1 1 2000) | 1 Jan 2000 | |||
52 | DATEFROMSTRING(2 1 2000) | 2 Jan 2000 | |||
53 | DATEFROMSTRING(3 1 2000) | 3 Jan 2000 | |||
54 | DATEFROMSTRING(9 4 2000) | 9 Apr 2000 | |||
55 | DATEFROMSTRING(9 Apr 2000) | 9 Apr 2000 | |||
56 | DATEFROMSTRING(9 Ap 2000) | 9 Apr 2000 | |||
57 | DATEFROMSTRING(9 A 2000) | Not valid(2) | |||
58 | DATEFROMSTRING(31 Jan 07) | 31 Jan 2007 | |||
59 | DATEFROMSTRING(31 Feb 07) | 28 Feb 2007 | |||
60 | DATEFROMSTRING(Aug 12 2001) | 12 Aug 2001 | Can o/w day first if needed | ||
61 | DATEFROMSTRING(12 Aug 2001) | 12 Aug 2001 | |||
63 | DATEFROMSTRING(31 Feb 08) | 29 Feb 2008 | leap year | ||
64 | DATEFROMSTRING(31 Mar 00) | 31 Mar 2000 | Not valid(2) | ||
65 | DATEFROMSTRING(31 Apr 00) | 30 Apr 2000 | Not valid(2) | ||
66 | DATEFROMSTRING(31 May 00) | 31 May 2000 | Not valid(2) | ||
67 | DATEFROMSTRING(31 Jun 00) | 30 Jun 2000 | Not valid(2) | ||
68 | DATEFROMSTRING(31 Jul 00) | 31 Jly 2000 | Not valid(2) | allow Jul as input but use Jly as outputclass=tags> [FromText] Zero token is not valid | |
69 | DATEFROMSTRING(31 Jly 00) | 31 Jly 2000 | Not valid(2) | ||
70 | DATEFROMSTRING(31 Aug 00) | 31 Aug 2000 | Not valid(2) | ||
71 | DATEFROMSTRING(31 Sep 00) | 30 Sep 2000 | Not valid(2) | ||
72 | DATEFROMSTRING(31 Oct 00) | 31 Oct 2000 | Not valid(2) | ||
73 | DATEFROMSTRING(31 Nov 00) | 30 Nov 2000 | Not valid(2) | ||
74 | DATEFROMSTRING(31 Dec 00) | 31 Dec 2000 | Not valid(2) | ||
75 | DATEFROMSTRING(31 Jan Dec 00) | Not valid(1) | |||
77 | DATEFROMSTRING(31 Ja 07) | 31 Jan 2007 | |||
78 | DATEFROMSTRING(31 F 07) | 28 Feb 2007 | |||
79 | DATEFROMSTRING(31 Mr 00) | 31 Mar 2000 | Not valid(2) | ||
80 | DATEFROMSTRING(31 Ap 00) | 30 Apr 2000 | Not valid(2) | ||
81 | DATEFROMSTRING(31 My 00) | 31 May 2000 | Not valid(2) | ||
82 | DATEFROMSTRING(31 Jun 00) | 30 Jun 2000 | Not valid(2) | ||
83 | DATEFROMSTRING(31 Jul 00) | 31 Jly 2000 | Not valid(2) | ||
84 | DATEFROMSTRING(31 Au 00) | 31 Aug 2000 | Not valid(2) | ||
85 | DATEFROMSTRING(31 Se 00) | 30 Sep 2000 | Not valid(2) | ||
86 | DATEFROMSTRING(31 O 00) | 31 Oct 2000 | Not valid(2) | ||
87 | DATEFROMSTRING(30 No 00) | 30 Nov 2000 | Not valid(2) | ||
88 | DATEFROMSTRING(31 N 00) | Not valid(2) | |||
89 | DATEFROMSTRING(31 D 00) | 31 Dec 2000 | Not valid(2) | ||
# allowing overflow dates to be coerced to last day of month (ALLOW_31_TO_30) already set | |||||
92 | EXPLAIN() | DM_ORDER=DMY IMPLIED_YEAR=-1 BC_INDICATOR=BC TWO_DIGIT_FIX=50 ALLOW_31_TO_30=1 ALLOW_DAY_ONLY_INT=1 error= appendix=en-gb.dax force2or4DigitYears=false Default year=2017 | |||
93 | DATEFROMSTRING(30 Nov 2010) | 30 Nov 2010 | Always passes | ||
94 | DATEFROMSTRING(31 Nov 2010) | 30 Nov 2010 | Only passes if ALLOW_31_TO_30 = 1 | ||
95 | DATEFROMSTRING(32 Nov 2010) | Not valid(2) | |||
96 | DATEFROMSTRING(29 Feb 2010) | 28 Feb 2010 | Only passes if ALLOW_31_TO_30 = 1 | ||
97 | DATEFROMSTRING(29 Feb 2008) | 29 Feb 2008 | Always passes | ||
99 | SETCONFIG(ALLOW_31_TO_30, 0) | ALLOW_31_TO_30 set to 0 | dis-allow day coercing | ||
100 | EXPLAIN() | DM_ORDER=DMY IMPLIED_YEAR=-1 BC_INDICATOR=BC TWO_DIGIT_FIX=50 ALLOW_31_TO_30=0 ALLOW_DAY_ONLY_INT=1 error= appendix=en-gb.dax force2or4DigitYears=false Default year=2017 | |||
101 | DATEFROMSTRING(31 Nov 2010) | Not valid(2) | |||
102 | DATEFROMSTRING(29 Feb 2010) | Not valid(2) | |||
103 | DATEFROMSTRING(31 Ap 00) | Not valid(2) | |||
# Strangely formatted input | |||||
106 | DATEFROMSTRING(NULL) | Not valid(2) | |||
107 | DATEFROMSTRING(Z) | Not valid(2) | |||
108 | DATEFROMSTRING(ZZ) | Not valid(2) | |||
109 | DATEFROMSTRING(ZZZ) | Not valid(2) | |||
110 | DATEFROMSTRING(ZZZZ) | Not valid(2) | |||
111 | DATEFROMSTRING(ZZZZZ) | Not valid(2) | |||
112 | DATEFROMSTRING(ZZZZZZ) | Not valid(2) | |||
113 | DATEFROMSTRING(ZZZZZZZ) | Not valid(2) | |||
114 | DATEFROMSTRING(ZZZZZZZZ) | Not valid(2) | |||
115 | DATEFROMSTRING(ZZZZZZZZZ) | Not valid(2) | |||
116 | DATEFROMSTRING(ZZZZZZZZZZ) | Not valid(2) | |||
117 | DATEFROMSTRING(ZZZZZZZZZZZ) | Not valid(2) | |||
118 | DATEFROMSTRING(ZZZZZZZZZZZZ) | Not valid(2) | |||
119 | DATEFROMSTRING(ZZZZZZZZZZZZZ) | Not valid(2) | |||
120 | DATEFROMSTRING(ZZZZZZZZZZZZZZ) | Not valid(2) | |||
121 | DATEFROMSTRING(ZZZZZZZZZZZZZZZ) | Not valid(2) | |||
#DATEFROMSTRING (ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ) NOT VALID(2) | |||||
123 | DATEFROMSTRING(@@@) | Not valid(2) | Illegal characters get lost so this is almost equiv. to () | ||
124 | DATEFROMSTRING(1 11 12) | 1 Nov 2012 | |||
125 | DATEFROMSTRING(1/11/12) | 1 Nov 2012 | |||
126 | DATEFROMSTRING(1\11\12) | 1 Nov 2012 | |||
127 | DATEFROMSTRING(1.11.12) | 1 Nov 2012 | |||
128 | DATEFROMSTRING(1.11/12) | 1 Nov 2012 | |||
129 | DATEFROMSTRING(1.11.12) | 1 Nov 2012 | |||
130 | DATEFROMSTRING(1'11'12) | 1 Nov 2012 | |||
131 | DATEFROMSTRING(1COMMA11COMMA12) | Not valid(2) | [A-Z] are 'valid' characters during parseclass=tags> [FromText] Unexpected alpha | ||
132 | DATEFROMSTRING(1_11_12) | 1 Nov 2012 | |||
133 | DATEFROMSTRING(1%%%%11&&&12) | 1 Nov 2012 | |||
134 | DATEFROMSTRING(99.99.99) | Not valid(2) | |||
#SETCONFIG (ALLOW_31_TO_30, 1) # allow day coercing | |||||
138 | EXPLAIN() | DM_ORDER=DMY IMPLIED_YEAR=-1 BC_INDICATOR=BC TWO_DIGIT_FIX=50 ALLOW_31_TO_30=0 ALLOW_DAY_ONLY_INT=1 error= appendix=en-gb.dax force2or4DigitYears=false Default year=2017 | |||
### Partial year conversion ### | |||||
### Two_digit_fix has three possible values ### | |||||
143 | SETCONFIG(TWO_DIGIT_FIX,0) | TWO_DIGIT_FIX set to 0 | |||
144 | DATEFROMSTRING(010199) | NOT VALID(2) | EXCEPTION: TypeError: Object # Line: Object # | ||
145 | DATEFROMSTRING(010150) | NOT VALID(2) | EXCEPTION: TypeError: Object # Line: Object # | ||
146 | SETCONFIG(TWO_DIGIT_FIX,20) | TWO_DIGIT_FIX set to 20 | |||
147 | DATEFROMSTRING(010199) | 1 Jan 2099 | |||
148 | DATEFROMSTRING(010150) | 1 Jan 2050 | 20=ok 50=ok 0=fail | ||
149 | SETCONFIG(TWO_DIGIT_FIX,50) | TWO_DIGIT_FIX set to 50 | |||
150 | DATEFROMSTRING(010199) | 1 Jan 1999 | 20=fail 50=ok 0=fail | ||
151 | DATEFROMSTRING(010150) | 1 Jan 2050 | 20=ok 50=ok 0=fail | ||
#### Partial dates #### | |||||
155 | DATEFROMSTRING(Jan 2007) | Jan 2007 | |||
156 | DATEFROMSTRING(2007) | 2007 | |||
157 | DATEFROMSTRING(07) | 2007 | |||
158 | DATEFROMSTRING(00) | 2000 | Not valid(2) | ||
160 | DATEFROMSTRING(JAN) | Jan | |||
161 | DATEFROMSTRING(jAN) | Jan | |||
162 | DATEFROMSTRING(jAnUaRy) | Jan | |||
163 | DATEFROMSTRING(Feb) | Feb | |||
164 | DATEFROMSTRING(F) | Feb | |||
165 | DATEFROMSTRING(Mar) | Mar | |||
166 | DATEFROMSTRING(Apr) | Apr | |||
167 | DATEFROMSTRING(May) | May | |||
168 | DATEFROMSTRING(Jun) | Jun | |||
169 | DATEFROMSTRING(Jul) | Jly | |||
170 | DATEFROMSTRING(July) | Jly | |||
171 | DATEFROMSTRING(Aug) | Aug | |||
172 | DATEFROMSTRING(Auguxxxx) | Aug | |||
173 | DATEFROMSTRING(Auguxxxx 2008) | Aug 2008 | |||
174 | DATEFROMSTRING(Sep) | Sep | |||
175 | DATEFROMSTRING(Oct) | Oct | |||
176 | DATEFROMSTRING(Nov) | Nov | |||
177 | DATEFROMSTRING(Dec) | Dec | |||
# BC | |||||
183 | DATEFROMSTRING(34 BC) | 0034 BC | |||
184 | DATEFROMSTRING(0015 BC) | 0015 BC | |||
185 | DATEFROMSTRING(Nov 0004 BC) | Nov 0004 BC | 4 Nov BC | ||
186 | DATEFROMSTRING(31 Dec 0001 BC) | 31 Dec 0001 BC | |||
187 | DATEFROMSTRING(31 Dec 01 BC) | 31 Dec 0001 BC | 31 Dec 2001 BC | ||
188 | DATEFROMSTRING(31 Dec 1 BC) | 31 Dec 0001 BC | 31 Dec 2001 BC | ||
189 | DATEFROMSTRING(30 Dec 0001 BC) | 30 Dec 0001 BC | |||
190 | DATEFROMSTRING(5 Mar 2006 BC) | 5 Mar 2006 BC | |||
191 | DATEFROMSTRING(30 Dec 0001 bc) | 30 Dec 0001 BC | |||
# Two tokens | |||||
195 | SETCONFIG(DM_ORDER,DMY) | DM_ORDER set to DMY | British D-M order | ||
196 | SETCONFIG(TWO_DIGIT_FIX,20) | TWO_DIGIT_FIX set to 20 | |||
197 | SETCONFIG(ALLOW_31_TO_30, 0) | ALLOW_31_TO_30 set to 0 | |||
198 | SETCONFIG(IMPLIED_YEAR, 0) | IMPLIED_YEAR set to 0 | no missing years allowed ... should all fail | ||
199 | EXPLAIN() | DM_ORDER=DMY IMPLIED_YEAR=0 BC_INDICATOR=BC TWO_DIGIT_FIX=20 ALLOW_31_TO_30=0 ALLOW_DAY_ONLY_INT=1 error= appendix=en-gb.dax force2or4DigitYears=false Default year=-9999999 | |||
200 | DATEFROMSTRING(7 Mar) | Not valid(2) | |||
201 | DATEFROMSTRING(22 Mar) | Not valid(2) | |||
202 | DATEFROMSTRING(Mar 7) | Not valid(2) | |||
203 | DATEFROMSTRING(Mar 22) | Not valid(2) | |||
204 | DATEFROMSTRING(Feb 28) | Not valid(2) | |||
205 | DATEFROMSTRING(Feb 29) | Not valid(2) | Feb 2029 | ||
206 | DATEFROMSTRING(Feb 30) | Not valid(2) | Feb 2030 | ||
207 | DATEFROMSTRING(Feb 31) | Not valid(2) | Feb 2031 | ||
208 | DATEFROMSTRING(Feb 32) | Not valid(2) | Feb 2032 | ||
# Two tokens - substitute current year | |||||
211 | SETCONFIG(TWO_DIGIT_FIX,0) | TWO_DIGIT_FIX set to 0 | |||
212 | SETCONFIG(ALLOW_31_TO_30, 0) | ALLOW_31_TO_30 set to 0 | |||
213 | SETCONFIG(IMPLIED_YEAR, -1) | IMPLIED_YEAR set to -1 | |||
214 | EXPLAIN() | DM_ORDER=DMY IMPLIED_YEAR=-1 BC_INDICATOR=BC TWO_DIGIT_FIX=0 ALLOW_31_TO_30=0 ALLOW_DAY_ONLY_INT=1 error= appendix=en-gb.dax force2or4DigitYears=false Default year=2017 | |||
215 | DATEFROMSTRING(2 Mar) | ? | 2 Mar 2017 | ||
216 | DATEFROMSTRING(22 Mar) | ? | 22 Mar 2017 | ||
217 | DATEFROMSTRING(Mar 2) | ? | 2 Mar 2017 | ||
218 | DATEFROMSTRING(Mar 22) | ? | 22 Mar 2017 | ||
219 | DATEFROMSTRING(Feb 28) | ? | 28 Feb 2017 | ||
220 | DATEFROMSTRING(Feb 29) | ? | Not valid(2) | ||
221 | DATEFROMSTRING(Feb 30) | ? | Not valid(2) | ||
222 | DATEFROMSTRING(Feb 31) | ? | Not valid(2) | ||
223 | DATEFROMSTRING(Feb 32) | ? | Not valid(2) | ||
# Two tokens - allow floats but not 2-digit fix | |||||
226 | SETCONFIG(TWO_DIGIT_FIX,0) | TWO_DIGIT_FIX set to 0 | |||
227 | SETCONFIG(ALLOW_31_TO_30, 0) | ALLOW_31_TO_30 set to 0 | |||
228 | SETCONFIG(IMPLIED_YEAR, -2) | IMPLIED_YEAR set to -2 | |||
229 | DATEFROMSTRING(2 Mar) | ? | 2 Mar | ||
230 | DATEFROMSTRING(22 Mar) | ? | 22 Mar | ||
231 | DATEFROMSTRING(Mar 2) | ? | 2 Mar | ||
232 | DATEFROMSTRING(Mar 22) | ? | 22 Mar | ||
233 | DATEFROMSTRING(Feb 28) | ? | 28 Feb | ||
234 | DATEFROMSTRING(Feb 29) | ? | Not valid(2) | ||
235 | DATEFROMSTRING(Feb 30) | ? | Not valid(2) | ||
236 | DATEFROMSTRING(Feb 31) | ? | Not valid(2) | ||
237 | DATEFROMSTRING(Feb 32) | ? | Not valid(2) | ||
# Two tokens - allow floats and 2-digit fix | |||||
240 | SETCONFIG(TWO_DIGIT_FIX,0) | TWO_DIGIT_FIX set to 0 | |||
241 | SETCONFIG(ALLOW_31_TO_30, 0) | ALLOW_31_TO_30 set to 0 | |||
242 | SETCONFIG(IMPLIED_YEAR, -2) | IMPLIED_YEAR set to -2 | |||
243 | DATEFROMSTRING(2 Mar) | ? | 2 Mar | ||
244 | DATEFROMSTRING(22 Mar) | ? | 22 Mar | ||
245 | DATEFROMSTRING(Mar 2) | ? | 2 Mar | ||
246 | DATEFROMSTRING(Mar 22) | ? | 22 Mar | ||
247 | DATEFROMSTRING(Feb 28) | ? | 28 Feb | ||
248 | DATEFROMSTRING(Feb 29) | ? | Not valid(2) | ||
249 | DATEFROMSTRING(Feb 30) | ? | Not valid(2) | ||
250 | DATEFROMSTRING(Feb 31) | ? | Not valid(2) | ||
251 | DATEFROMSTRING(Feb 32) | ? | Not valid(2) | ||
# Two tokens - substitute specific year | |||||
254 | SETCONFIG(TWO_DIGIT_FIX,0) | TWO_DIGIT_FIX set to 0 | |||
255 | SETCONFIG(ALLOW_31_TO_30, 0) | ALLOW_31_TO_30 set to 0 | |||
256 | SETCONFIG(IMPLIED_YEAR, 2012) | IMPLIED_YEAR set to 2012 | |||
257 | DATEFROMSTRING(2 Mar) | ? | 2 Mar 2012 | ||
258 | DATEFROMSTRING(22 Mar) | ? | 22 Mar 2012 | ||
259 | DATEFROMSTRING(Mar 2) | ? | 2 Mar 2012 | ||
260 | DATEFROMSTRING(Mar 22) | ? | 22 Mar 2012 | ||
261 | DATEFROMSTRING(Feb 28) | ? | 28 Feb 2012 | ||
262 | DATEFROMSTRING(Feb 29) | ? | Not valid(2) | ||
263 | DATEFROMSTRING(Feb 30) | ? | Not valid(2) | ||
264 | DATEFROMSTRING(Feb 31) | ? | Not valid(2) | ||
265 | DATEFROMSTRING(Feb 32) | ? | Not valid(2) |