Project

General

Profile

date_literals_vs_dec_literals.p

Greg Shah, 03/08/2013 10:48 AM

Download (13.1 KB)

 
1
/* date literals can use a . (and -) as a separator; this can occur in ways that */
2
/* overlap with decimal usage (the same literal input can be both a date and a */
3
/* decimal; this testcase explores the limits of this behavior */
4

    
5
/* Months: */
6
/* can't just specify the month */
7
/* have to be between 1 and 12 inclusive */
8
/* can be zero padded, there seems to be no practical limit so this is probably dropped */
9
/* for literals, is always in the first (leftmost) position, no matter what the SESSION:DATE-FORMAT */
10

    
11
/* Days: */
12
/* have to be between 1 and the highest day of the corresponding month inclusive */
13
/* can be zero padded, there seems to be no practical limit so this is probably dropped */
14
/* for literals, is always in the second (middle if there is a year) position, no matter what the SESSION:DATE-FORMAT */
15

    
16
/* Year: */
17
/* this is optional */
18
/* for literals, is always in the third (last) position, no matter what the SESSION:DATE-FORMAT */
19
/* if present, then the date cannot be confused with a decimal literal, so we aren't testing those cases here */
20

    
21
/* most importantly: these "special" date forms can only be used inside a variable */
22
/* definition initializer!  when encountered in regular code, they are exclusively */
23
/* treated as decimal literals */
24

    
25
def var dt1   as date init 1.1.
26
def var dt2   as date init 01.1.
27
def var dt3   as date init 001.1.
28
def var dt4   as date init 0001.1.
29
def var dt5   as date init 0000000001.1.
30
def var dt6   as date init 0000000000000000000000000000000000000000000000000000000000000000000000000000001.1.
31
def var dt7   as date init 1.01.
32
def var dt8   as date init 1.001.
33
def var dt9   as date init 1.0001.
34
def var dt10  as date init 1.0000000001.
35
def var dt11  as date init 1.0000000000000000000000000000000000000000000000000000000000000000000000000000001.
36
def var dt12  as date init 01.01.
37
def var dt13  as date init 001.001.
38
def var dt14  as date init 0001.0001.
39
def var dt15  as date init 0000000001.0000000001.
40
def var dt16  as date init 0000000000000000000000000000000000000000000000000000000000000000000000000000001.0000000000000000000000000000000000000000000000000000000000000000000000000000001.
41
def var dt17  as date init 2.28.
42
def var dt18  as date init 02.28.
43
def var dt19  as date init 002.28.
44
def var dt20  as date init 0002.28.
45
def var dt21  as date init 0000000002.28.
46
def var dt22  as date init 0000000000000000000000000000000000000000000000000000000000000000000000000000002.28.
47
def var dt23  as date init 2.028.
48
def var dt24  as date init 2.0028.
49
def var dt25  as date init 2.00028.
50
def var dt26  as date init 2.00000000028.
51
def var dt27  as date init 2.00000000000000000000000000000000000000000000000000000000000000000000000000000028.
52
def var dt28  as date init 02.028.
53
def var dt29  as date init 002.0028.
54
def var dt30  as date init 0002.00028.
55
def var dt31  as date init 0000000002.00000000028.
56
def var dt32  as date init 0000000000000000000000000000000000000000000000000000000000000000000000000000002.00000000000000000000000000000000000000000000000000000000000000000000000000000028.
57
def var dt33  as date init 12.31.
58
def var dt34  as date init 012.31.
59
def var dt35  as date init 0012.31.
60
def var dt36  as date init 00012.31.
61
def var dt37  as date init 00000000012.31.
62
def var dt38  as date init 00000000000000000000000000000000000000000000000000000000000000000000000000000012.31.
63
def var dt39  as date init 12.031.
64
def var dt40  as date init 12.0031.
65
def var dt41  as date init 12.00031.
66
def var dt42  as date init 12.00000000031.
67
def var dt43  as date init 12.00000000000000000000000000000000000000000000000000000000000000000000000000000031.
68
def var dt44  as date init 012.031.
69
def var dt45  as date init 0012.0031.
70
def var dt46  as date init 00012.00031.
71
def var dt47  as date init 00000000012.00000000031.
72
def var dt48  as date init 00000000000000000000000000000000000000000000000000000000000000000000000000000012.00000000000000000000000000000000000000000000000000000000000000000000000000000031.
73
def var dt49  as date init 1.1-.
74
def var dt50  as date init 01.1-.
75
def var dt51  as date init 001.1-.
76
def var dt52  as date init 0001.1-.
77
def var dt53  as date init 0000000001.1-.
78
def var dt54  as date init 0000000000000000000000000000000000000000000000000000000000000000000000000000001.1-.
79
def var dt55  as date init 1.01-.
80
def var dt56  as date init 1.001-.
81
def var dt57  as date init 1.0001-.
82
def var dt58  as date init 1.0000000001-.
83
def var dt59  as date init 1.0000000000000000000000000000000000000000000000000000000000000000000000000000001-.
84
def var dt60  as date init 01.01-.
85
def var dt61  as date init 001.001-.
86
def var dt62  as date init 0001.0001-.
87
def var dt63  as date init 0000000001.0000000001-.
88
def var dt64  as date init 0000000000000000000000000000000000000000000000000000000000000000000000000000001.0000000000000000000000000000000000000000000000000000000000000000000000000000001-.
89
def var dt65  as date init 2.28-.
90
def var dt66  as date init 02.28-.
91
def var dt67  as date init 002.28-.
92
def var dt68  as date init 0002.28-.
93
def var dt69  as date init 0000000002.28-.
94
def var dt70  as date init 0000000000000000000000000000000000000000000000000000000000000000000000000000002.28-.
95
def var dt71  as date init 2.028-.
96
def var dt72  as date init 2.0028-.
97
def var dt73  as date init 2.00028-.
98
def var dt74  as date init 2.00000000028-.
99
def var dt75  as date init 2.00000000000000000000000000000000000000000000000000000000000000000000000000000028-.
100
def var dt76  as date init 02.028-.
101
def var dt77  as date init 002.0028-.
102
def var dt78  as date init 0002.00028-.
103
def var dt79  as date init 0000000002.00000000028-.
104
def var dt80  as date init 0000000000000000000000000000000000000000000000000000000000000000000000000000002.00000000000000000000000000000000000000000000000000000000000000000000000000000028-.
105
def var dt81  as date init 12.31-.
106
def var dt82  as date init 012.31-.
107
def var dt83  as date init 0012.31-.
108
def var dt84  as date init 00012.31-.
109
def var dt85  as date init 00000000012.31-.
110
def var dt86  as date init 00000000000000000000000000000000000000000000000000000000000000000000000000000012.31-.
111
def var dt87  as date init 12.031-.
112
def var dt88  as date init 12.0031-.
113
def var dt89  as date init 12.00031-.
114
def var dt90  as date init 12.00000000031-.
115
def var dt91  as date init 12.00000000000000000000000000000000000000000000000000000000000000000000000000000031-.
116
def var dt92  as date init 012.031-.
117
def var dt93  as date init 0012.0031-.
118
def var dt94  as date init 00012.00031-.
119
def var dt95  as date init 00000000012.00000000031-.
120
def var dt96  as date init 00000000000000000000000000000000000000000000000000000000000000000000000000000012.00000000000000000000000000000000000000000000000000000000000000000000000000000031-.
121

    
122
def var dc1   as dec  init 1.1.
123
def var dc2   as dec  init 01.1.
124
def var dc3   as dec  init 001.1.
125
def var dc4   as dec  init 0001.1.
126
def var dc5   as dec  init 0000000001.1.
127
def var dc6   as dec  init 0000000000000000000000000000000000000000000000000000000000000000000000000000001.1.
128
def var dc7   as dec  init 1.01.
129
def var dc8   as dec  init 1.001.
130
def var dc9   as dec  init 1.0001.
131
def var dc10  as dec  init 1.0000000001.
132
def var dc11  as dec  init 1.0000000000000000000000000000000000000000000000000000000000000000000000000000001.
133
def var dc12  as dec  init 01.01.
134
def var dc13  as dec  init 001.001.
135
def var dc14  as dec  init 0001.0001.
136
def var dc15  as dec  init 0000000001.0000000001.
137
def var dc16  as dec  init 0000000000000000000000000000000000000000000000000000000000000000000000000000001.0000000000000000000000000000000000000000000000000000000000000000000000000000001.
138
def var dc17  as dec  init 2.28.
139
def var dc18  as dec  init 02.28.
140
def var dc19  as dec  init 002.28.
141
def var dc20  as dec  init 0002.28.
142
def var dc21  as dec  init 0000000002.28.
143
def var dc22  as dec  init 0000000000000000000000000000000000000000000000000000000000000000000000000000002.28.
144
def var dc23  as dec  init 2.028.
145
def var dc24  as dec  init 2.0028.
146
def var dc25  as dec  init 2.00028.
147
def var dc26  as dec  init 2.00000000028.
148
def var dc27  as dec  init 2.00000000000000000000000000000000000000000000000000000000000000000000000000000028.
149
def var dc28  as dec  init 02.028.
150
def var dc29  as dec  init 002.0028.
151
def var dc30  as dec  init 0002.00028.
152
def var dc31  as dec  init 0000000002.00000000028.
153
def var dc32  as dec  init 0000000000000000000000000000000000000000000000000000000000000000000000000000002.00000000000000000000000000000000000000000000000000000000000000000000000000000028.
154
def var dc33  as dec  init 12.31.
155
def var dc34  as dec  init 012.31.
156
def var dc35  as dec  init 0012.31.
157
def var dc36  as dec  init 00012.31.
158
def var dc37  as dec  init 00000000012.31.
159
def var dc38  as dec  init 00000000000000000000000000000000000000000000000000000000000000000000000000000012.31.
160
def var dc39  as dec  init 12.031.
161
def var dc40  as dec  init 12.0031.
162
def var dc41  as dec  init 12.00031.
163
def var dc42  as dec  init 12.00000000031.
164
def var dc43  as dec  init 12.00000000000000000000000000000000000000000000000000000000000000000000000000000031.
165
def var dc44  as dec  init 012.031.
166
def var dc45  as dec  init 0012.0031.
167
def var dc46  as dec  init 00012.00031.
168
def var dc47  as dec  init 00000000012.00000000031.
169
def var dc48  as dec  init 00000000000000000000000000000000000000000000000000000000000000000000000000000012.00000000000000000000000000000000000000000000000000000000000000000000000000000031.
170
def var dc49  as dec  init 1.1-.
171
def var dc50  as dec  init 01.1-.
172
def var dc51  as dec  init 001.1-.
173
def var dc52  as dec  init 0001.1-.
174
def var dc53  as dec  init 0000000001.1-.
175
def var dc54  as dec  init 0000000000000000000000000000000000000000000000000000000000000000000000000000001.1-.
176
def var dc55  as dec  init 1.01-.
177
def var dc56  as dec  init 1.001-.
178
def var dc57  as dec  init 1.0001-.
179
def var dc58  as dec  init 1.0000000001-.
180
def var dc59  as dec  init 1.0000000000000000000000000000000000000000000000000000000000000000000000000000001-.
181
def var dc60  as dec  init 01.01-.
182
def var dc61  as dec  init 001.001-.
183
def var dc62  as dec  init 0001.0001-.
184
def var dc63  as dec  init 0000000001.0000000001-.
185
def var dc64  as dec  init 0000000000000000000000000000000000000000000000000000000000000000000000000000001.0000000000000000000000000000000000000000000000000000000000000000000000000000001-.
186
def var dc65  as dec  init 2.28-.
187
def var dc66  as dec  init 02.28-.
188
def var dc67  as dec  init 002.28-.
189
def var dc68  as dec  init 0002.28-.
190
def var dc69  as dec  init 0000000002.28-.
191
def var dc70  as dec  init 0000000000000000000000000000000000000000000000000000000000000000000000000000002.28-.
192
def var dc71  as dec  init 2.028-.
193
def var dc72  as dec  init 2.0028-.
194
def var dc73  as dec  init 2.00028-.
195
def var dc74  as dec  init 2.00000000028-.
196
def var dc75  as dec  init 2.00000000000000000000000000000000000000000000000000000000000000000000000000000028-.
197
def var dc76  as dec  init 02.028-.
198
def var dc77  as dec  init 002.0028-.
199
def var dc78  as dec  init 0002.00028-.
200
def var dc79  as dec  init 0000000002.00000000028-.
201
def var dc80  as dec  init 0000000000000000000000000000000000000000000000000000000000000000000000000000002.00000000000000000000000000000000000000000000000000000000000000000000000000000028-.
202
def var dc81  as dec  init 12.31-.
203
def var dc82  as dec  init 012.31-. 
204
def var dc83  as dec  init 0012.31-.
205
def var dc84  as dec  init 00012.31-.
206
def var dc85  as dec  init 00000000012.31-.
207
def var dc86  as dec  init 00000000000000000000000000000000000000000000000000000000000000000000000000000012.31-.
208
def var dc87  as dec  init 12.031-.
209
def var dc88  as dec  init 12.0031-.
210
def var dc89  as dec  init 12.00031-.
211
def var dc90  as dec  init 12.00000000031-.
212
def var dc91  as dec  init 12.00000000000000000000000000000000000000000000000000000000000000000000000000000031-.
213
def var dc92  as dec  init 012.031-.
214
def var dc93  as dec  init 0012.0031-.
215
def var dc94  as dec  init 00012.00031-.
216
def var dc95  as dec  init 00000000012.00000000031-.
217
def var dc96  as dec  init 00000000000000000000000000000000000000000000000000000000000000000000000000000012.00000000000000000000000000000000000000000000000000000000000000000000000000000031-.
218

    
219
message dt1 dt2 dt3 dt4 dt5 dt6 dt7 dt8 dt9 dt10 dt11 dt12 dt13 dt14 dt15 dt16 dt17 dt18 dt19 dt20.
220
message dt21 dt22 dt23 dt24 dt25 dt26 dt27 dt28 dt29 dt30 dt31 dt32 dt33 dt34 dt35 dt36 dt37 dt38 dt39 dt40.
221
message dt41 dt42 dt43 dt44 dt45 dt46 dt47 dt48 dt49 dt50 dt51 dt52 dt53 dt54 dt55 dt56 dt57 dt58 dt59 dt60.
222
message dt61 dt62 dt63 dt64 dt65 dt66 dt67 dt68 dt69 dt70 dt71 dt72 dt73 dt74 dt75 dt76 dt77 dt78 dt79 dt80.
223
message dt81 dt82 dt83 dt84 dt85 dt86 dt87 dt88 dt89 dt90 dt91 dt92 dt93 dt94 dt95 dt96.
224
message dc1 dc2 dc3 dc4 dc5 dc6 dc7 dc8 dc9 dc10 dc11 dc12 dc13 dc14 dc15 dc16 dc17 dc18 dc19 dc20.
225
message dc21 dc22 dc23 dc24 dc25 dc26 dc27 dc28 dc29 dc30 dc31 dc32 dc33 dc34 dc35 dc36 dc37 dc38 dc39 dc40.
226
message dc41 dc42 dc43 dc44 dc45 dc46 dc47 dc48 dc49 dc50 dc51 dc52 dc53 dc54 dc55 dc56 dc57 dc58 dc59 dc60.
227
message dc61 dc62 dc63 dc64 dc65 dc66 dc67 dc68 dc69 dc70 dc71 dc72 dc73 dc74 dc75 dc76 dc77 dc78 dc79 dc80.
228
message dc81 dc82 dc83 dc84 dc85 dc86 dc87 dc88 dc89 dc90 dc91 dc92 dc93 dc94 dc95 dc96.
229

    
230
/* non-initializer cases */
231

    
232
def var i as int.
233
def var i64 as int64.
234
def var d as dec.
235

    
236
i = 9-.
237
i = 99-.
238
i64 = 999999999999999-.
239
d = 1.99992-.
240
d = 1.2-.
241
d = 999.99-.
242

    
243
message i i64 d.