~ubuntu-branches/ubuntu/utopic/pgadmin3/utopic-proposed

« back to all changes in this revision

Viewing changes to xtra/pgscript/file/test/source/generators.sql.pgs

  • Committer: Package Import Robot
  • Author(s): Christoph Berg
  • Date: 2013-09-10 16:16:38 UTC
  • mfrom: (1.3.4)
  • Revision ID: package-import@ubuntu.com-20130910161638-wwup1q553ylww7dr
Tags: 1.18.0-1
* New upstream release.
* Don't install /usr/bin/png2c anymore.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
PRINT 'Testing generators' ;
2
 
 
3
 
SET @iterations = 1000;
4
 
SET @error = 20;
5
 
SET @path = 'dictionary/';
6
 
SET @unicode = 1;
7
 
 
8
 
SET @t_init = @NOW;
9
 
 
10
 
PRINT '  Testing integer generator' ;
11
 
 
12
 
/* PGS_INTEGER '(' expression ',' expression ')'  */
13
 
SET @min = -50; SET @max = -@min; SET @mean = (@max + @min) / 2;
14
 
SET @delta = (@max - @min) * @error / 100;
15
 
SET @g = integer(@min, @max);
16
 
SET @sum = 0;
17
 
SET @i = 0;
18
 
WHILE @i < @iterations
19
 
BEGIN
20
 
        SET @sum = @sum + @g;
21
 
        
22
 
        SET @i = @i + 1;
23
 
END
24
 
 
25
 
SET @avg = @sum / @iterations;
26
 
ASSERT @avg >= @mean - @delta AND @avg <= @mean + @delta;
27
 
 
28
 
/* PGS_INTEGER '(' expression ',' expression ')'  */
29
 
SET @min = -1234567898765432123456789; SET @max = -1234567898765432123456781;
30
 
SET @mean = (@max + @min) / 2; SET @delta = (@max - @min) * @error / 100;
31
 
SET @g = integer(@min, @max);
32
 
SET @sum = 0;
33
 
SET @i = 0;
34
 
WHILE @i < @iterations
35
 
BEGIN 
36
 
        SET @sum = @sum + @g;
37
 
        
38
 
        SET @i = @i + 1;
39
 
END
40
 
SET @avg = @sum / @iterations;
41
 
ASSERT @avg >= @mean - @delta AND @avg <= @mean + @delta;
42
 
 
43
 
/* PGS_INTEGER '(' expression ',' expression ')'  */
44
 
SET @min = 0; SET @max = 1234567890;
45
 
SET @mean = (@max + @min) / 2; SET @delta = (@max - @min) * @error / 100;
46
 
SET @g = integer(@min, @max);
47
 
SET @sum = 0;
48
 
SET @i = 0;
49
 
WHILE @i < @iterations
50
 
BEGIN 
51
 
        SET @sum = @sum + @g;
52
 
        
53
 
        SET @i = @i + 1;
54
 
END
55
 
SET @avg = @sum / @iterations;
56
 
ASSERT @avg >= @mean - @delta AND @avg <= @mean + @delta;
57
 
 
58
 
/* PGS_INTEGER '(' expression ',' expression ')'  */
59
 
SET @min = 1234567890; SET @max = 0;
60
 
SET @mean = (@max + @min) / 2; SET @delta = (-@max + @min) * @error / 100;
61
 
SET @g = integer(@min, @max);
62
 
SET @sum = 0;
63
 
SET @i = 0;
64
 
WHILE @i < @iterations
65
 
BEGIN 
66
 
        SET @sum = @sum + @g;
67
 
        
68
 
        SET @i = @i + 1;
69
 
END
70
 
SET @avg = @sum / @iterations;
71
 
ASSERT @avg >= @mean - @delta AND @avg <= @mean + @delta;
72
 
 
73
 
/* PGS_INTEGER '(' expression ',' expression ',' expression ',' expression ')' */
74
 
SET @g = integer(-50, -(-50), 0, 0);
75
 
ASSERT @g = -12;
76
 
ASSERT @g = 2;
77
 
ASSERT @g = 33;
78
 
ASSERT @g = -47;
79
 
ASSERT @g = -45;
80
 
 
81
 
/* PGS_INTEGER '(' expression ',' expression ',' expression ')'  */
82
 
SET @local_iterations = 100;
83
 
SET @min = 1; SET @max = @local_iterations;
84
 
SET @mean = (@max + @min) / 2; SET @delta = (-@max + @min) * @error / 100;
85
 
SET @g = integer(@min, @max, 1);
86
 
SET @sum = 0;
87
 
DECLARE @save { @a };
88
 
SET @i = 0;
89
 
WHILE @i < @local_iterations
90
 
BEGIN
91
 
        SET @result = CAST (@g AS INTEGER);
92
 
        SET @j = 0;
93
 
        WHILE @j < LINES(@save)
94
 
        BEGIN
95
 
                ASSERT @save[@j][0] <> @result;
96
 
                
97
 
                SET @j = @j + 1;
98
 
        END
99
 
        SET @save[@i][0] = @result;
100
 
        SET @sum = @sum + @result;
101
 
        
102
 
        SET @i = @i + 1;
103
 
END
104
 
SET @avg = @sum / @local_iterations;
105
 
ASSERT @avg = @mean;
106
 
 
107
 
PRINT '  Testing real generator';
108
 
 
109
 
/* PGS_REAL '(' expression ',' expression ',' expression ')'  */
110
 
SET @min = -50; SET @max = -@min; SET @mean = (@max + @min) / 2;
111
 
SET @delta = (@max - @min) * @error / 100;
112
 
SET @g = real(@min, @max, 10);
113
 
SET @sum = 0;
114
 
SET @i = 0;
115
 
WHILE @i < @iterations
116
 
BEGIN 
117
 
        SET @sum = @sum + @g;
118
 
        
119
 
        SET @i = @i + 1;
120
 
END
121
 
SET @avg = @sum / @iterations;
122
 
ASSERT @avg >= @mean - @delta AND @avg <= @mean + @delta;
123
 
 
124
 
/* PGS_REAL '(' expression ',' expression ',' expression ')'  */
125
 
SET @min = -1234567898765432123456789; SET @max = -1234567898765432123456781;
126
 
SET @mean = (@max + @min) / 2; SET @delta = (@max - @min) * @error / 100;
127
 
SET @g = real(@min, @max, 1);
128
 
SET @sum = 0;
129
 
SET @i = 0;
130
 
WHILE @i < @iterations
131
 
BEGIN
132
 
        SET @sum = @sum + @g;
133
 
        
134
 
        SET @i = @i + 1;
135
 
END
136
 
SET @avg = @sum / @iterations;
137
 
ASSERT @avg >= @mean - @delta AND @avg <= @mean + @delta;
138
 
 
139
 
/* PGS_REAL '(' expression ',' expression ',' expression ')'  */
140
 
SET @min = 0; SET @max = 1234567890;
141
 
SET @mean = (@max + @min) / 2; SET @delta = (@max - @min) * @error / 100;
142
 
SET @g = real(@min, @max, 0);
143
 
SET @sum = 0;
144
 
SET @i = 0;
145
 
WHILE @i < @iterations
146
 
BEGIN
147
 
        SET @sum = @sum + @g;
148
 
        
149
 
        SET @i = @i + 1;
150
 
END
151
 
SET @avg = @sum / @iterations;
152
 
ASSERT @avg >= @mean - @delta AND @avg <= @mean + @delta;
153
 
 
154
 
/* PGS_REAL '(' expression ',' expression ',' expression ')'  */
155
 
SET @min = 1234567890.123456789; SET @max = 0.123456789;
156
 
SET @mean = (@max + @min) / 2; SET @delta = (-@max + @min) * @error / 100;
157
 
SET @g = real(@min, @max, 30);
158
 
SET @sum = 0;
159
 
SET @i = 0;
160
 
WHILE @i < @iterations
161
 
BEGIN
162
 
        SET @sum = @sum + @g;
163
 
        
164
 
        SET @i = @i + 1;
165
 
END
166
 
SET @avg = @sum / @iterations;
167
 
ASSERT @avg >= @mean - @delta AND @avg <= @mean + @delta;
168
 
 
169
 
/* PGS_REAL '(' expression ',' expression ',' expression ',' expression ',' expression ')' */
170
 
SET @g = real(-50, -(-50), 2, 0, 50);
171
 
ASSERT @g = -3.249E+1;
172
 
ASSERT @g = 4.709e+1;
173
 
ASSERT @g = 4.83e+0;
174
 
ASSERT @g = 2.286E+1;
175
 
ASSERT @g = 1.731E+1;
176
 
 
177
 
/* PGS_REAL '(' expression ',' expression ',' expression ',' expression ')'  */
178
 
SET @local_iterations = 100;
179
 
SET @min = 0.1; SET @max = @local_iterations / 10;
180
 
SET @mean = (@max + @min) / 2; SET @delta = (-@max + @min) * @error / 100;
181
 
SET @g = real(@min, @max, 1, 1);
182
 
SET @sum = 0;
183
 
DECLARE @save { @a };
184
 
SET @i = 0;
185
 
WHILE @i < @local_iterations
186
 
BEGIN
187
 
        SET @result = CAST (@g AS REAL);
188
 
        SET @j = 0;
189
 
        WHILE @j < LINES(@save)
190
 
        BEGIN
191
 
                ASSERT @save[@j][0] <> @result;
192
 
                
193
 
                SET @j = @j + 1;
194
 
        END
195
 
        SET @save[@i][0] = @result;
196
 
        SET @sum = @sum + @result;
197
 
        
198
 
        SET @i = @i + 1;
199
 
END
200
 
SET @avg = @sum / @local_iterations;
201
 
ASSERT @avg = @mean;
202
 
 
203
 
PRINT '  Testing string generator';
204
 
 
205
 
SET @iteration_save = @iterations;
206
 
SET @iterations = @iterations / 10;
207
 
 
208
 
/* PGS_STRING '(' expression ',' expression ')'  */
209
 
SET @min = 0; SET @max = 0;
210
 
SET @g = string(@min, @max);
211
 
SET @i = 0;
212
 
WHILE @i < @iterations
213
 
BEGIN
214
 
        SET @result = CAST (@g AS STRING);
215
 
        ASSERT @result = '';
216
 
        ASSERT NOT @result;
217
 
        
218
 
        SET @i = @i + 1;
219
 
END
220
 
 
221
 
/* PGS_STRING '(' expression ',' expression ')'  */
222
 
SET @min = 10; SET @max = 5;
223
 
SET @g = string(@min, @max);
224
 
SET @i = 0;
225
 
WHILE @i < @iterations
226
 
BEGIN
227
 
        SET @result = CAST (@g AS STRING);
228
 
        ASSERT @result <> '';
229
 
        ASSERT @result;
230
 
        
231
 
        SET @i = @i + 1;
232
 
END
233
 
 
234
 
/* PGS_STRING '(' expression ',' expression ',' expression ')'  */
235
 
SET @min = 10; SET @max = 20;
236
 
SET @g = string(@min, @max, 3);
237
 
SET @i = 0;
238
 
WHILE @i < @iterations
239
 
BEGIN
240
 
        SET @result = CAST (@g AS STRING);
241
 
        ASSERT @result <> '';
242
 
        ASSERT @result;
243
 
        
244
 
        SET @i = @i + 1;
245
 
END
246
 
 
247
 
/* PGS_STRING '(' expression ',' expression ',' expression ')'  */
248
 
SET @min = 10; SET @max = 20;
249
 
SET @g = string(@min, @max, 0);
250
 
SET @i = 0;
251
 
WHILE @i < @iterations
252
 
BEGIN
253
 
        SET @result = CAST (@g AS STRING);
254
 
        ASSERT @result = '';
255
 
        ASSERT NOT @result;
256
 
        
257
 
        SET @i = @i + 1;
258
 
END
259
 
 
260
 
/* PGS_STRING '(' expression ',' expression ',' expression ',' expression ')' */
261
 
SET @min = 3; SET @max = 4;
262
 
SET @g = string(@min, @max, 1, 500);
263
 
ASSERT @g = 'khTH';
264
 
ASSERT @g = 'jqZq';
265
 
ASSERT @g = 'hQk';
266
 
ASSERT @g = 'NUD';
267
 
ASSERT @g = '5Syx';
268
 
 
269
 
SET @iterations = @iteration_save;
270
 
 
271
 
PRINT '  Testing regex generator';
272
 
 
273
 
SET @iteration_save = @iterations;
274
 
SET @iterations = @iterations / 10;
275
 
 
276
 
/* PGS_REGEX '(' expression ')'  */
277
 
SET @g = regex('login@domain.com');
278
 
SET @i = 0;
279
 
WHILE @i < @iterations
280
 
BEGIN
281
 
        SET @result = CAST (@g AS STRING);
282
 
        ASSERT @result = 'login@domain.com';
283
 
        
284
 
        SET @i = @i + 1;
285
 
END
286
 
 
287
 
/* PGS_REGEX '(' expression ')'  */
288
 
SET @g = regex('http://localhost[12]');
289
 
SET @i = 0;
290
 
WHILE @i < @iterations
291
 
BEGIN
292
 
        SET @result = CAST (@g AS STRING);
293
 
        ASSERT (@result = 'http://localhost1'
294
 
                        OR @result = 'http://localhost2');
295
 
        
296
 
        SET @i = @i + 1;
297
 
END
298
 
 
299
 
/* PGS_REGEX '(' expression ')'  */
300
 
SET @g = regex('[8-2]');
301
 
SET @i = 0;
302
 
WHILE @i < @iterations
303
 
BEGIN
304
 
        SET @result = CAST (@g AS INTEGER);
305
 
        ASSERT @result >= 2 AND @result <= 8;
306
 
        
307
 
        SET @i = @i + 1;
308
 
END
309
 
 
310
 
/* PGS_REGEX '(' expression ')'  */
311
 
SET @g = regex('[0-9]{2}\\.[0-9]{2}');
312
 
SET @i = 0;
313
 
WHILE @i < @iterations
314
 
BEGIN
315
 
        SET @result = CAST (@g AS REAL);
316
 
        ASSERT @result >= 0 AND @result <= 99.99;
317
 
        
318
 
        SET @i = @i + 1;
319
 
END
320
 
 
321
 
/* PGS_REGEX '(' expression ')'  */
322
 
SET @g = regex('[\\]\\[]');
323
 
SET @i = 0;
324
 
WHILE @i < @iterations
325
 
BEGIN
326
 
        SET @result = CAST (@g AS STRING);
327
 
        ASSERT @result = '[' OR @result = ']';
328
 
        
329
 
        SET @i = @i + 1;
330
 
END
331
 
 
332
 
/* PGS_REGEX '(' expression ')'  */
333
 
SET @g = regex('[\\}\\{]');
334
 
SET @i = 0;
335
 
WHILE @i < @iterations
336
 
BEGIN
337
 
        SET @result = CAST (@g AS STRING);
338
 
        ASSERT @result = '{' OR @result = '}';
339
 
        
340
 
        SET @i = @i + 1;
341
 
END
342
 
 
343
 
/* PGS_REGEX '(' expression ')'  */
344
 
SET @g = regex('[a]{1,2}');
345
 
SET @i = 0;
346
 
WHILE @i < @iterations
347
 
BEGIN
348
 
        SET @result = CAST (@g AS STRING);
349
 
        ASSERT @result = 'a' OR @result = 'aa';
350
 
        
351
 
        SET @i = @i + 1;
352
 
END
353
 
 
354
 
/* PGS_REGEX '(' expression ')'  */
355
 
SET @g = regex('[a]{3}');
356
 
SET @i = 0;
357
 
WHILE @i < @iterations
358
 
BEGIN
359
 
        SET @result = CAST (@g AS STRING);
360
 
        ASSERT @result = 'aaa';
361
 
        
362
 
        SET @i = @i + 1;
363
 
END
364
 
 
365
 
/* PGS_REGEX '(' expression ')'  */
366
 
SET @g = regex('[a]{-5}');
367
 
SET @i = 0;
368
 
WHILE @i < @iterations
369
 
BEGIN
370
 
        SET @result = CAST (@g AS STRING);
371
 
        ASSERT @result = 'a';
372
 
        
373
 
        SET @i = @i + 1;
374
 
END
375
 
 
376
 
/* PGS_REGEX '(' expression ')'  */
377
 
SET @g = regex('a{-5, -1}');
378
 
SET @i = 0;
379
 
WHILE @i < @iterations
380
 
BEGIN
381
 
        SET @result = CAST (@g AS STRING);
382
 
        ASSERT @result = 'a';
383
 
        
384
 
        SET @i = @i + 1;
385
 
END
386
 
 
387
 
/* PGS_REGEX '(' expression ')'  */
388
 
SET @g = regex(' a{3}[ab]');
389
 
SET @i = 0;
390
 
WHILE @i < @iterations
391
 
BEGIN
392
 
        SET @result = CAST (@g AS STRING);
393
 
        ASSERT @result = ' aaaa' OR @result = ' aaab';
394
 
        
395
 
        SET @i = @i + 1;
396
 
END
397
 
 
398
 
/* PGS_REGEX '(' expression ')'  */
399
 
SET @g = regex('');
400
 
SET @i = 0;
401
 
WHILE @i < @iterations
402
 
BEGIN
403
 
        SET @result = CAST (@g AS STRING);
404
 
        ASSERT @result = '';
405
 
        
406
 
        SET @i = @i + 1;
407
 
END
408
 
 
409
 
/* PGS_REGEX '(' expression ')'  */
410
 
SET @g = regex('\\[\\]\\{\\}');
411
 
SET @i = 0;
412
 
WHILE @i < @iterations
413
 
BEGIN
414
 
        SET @result = CAST (@g AS STRING);
415
 
        ASSERT @result = '[]{}';
416
 
        
417
 
        SET @i = @i + 1;
418
 
END
419
 
 
420
 
/* PGS_REGEX '(' expression ',' expression ')' */
421
 
SET @g = regex('[A-Za-z0-9][_\\.\\-]{1}[a-zA-Z0-9]{1,10}@[A-Za-z0-9]{1,10}', 0);
422
 
ASSERT @g = 'X.xGZc@XgzC';
423
 
ASSERT @g = 'g.dGPaxe@DgpAXE';
424
 
ASSERT @g = 'z-zQK50GfOz@Zqk50gFoZ';
425
 
ASSERT @g = 'C_R@r';
426
 
ASSERT @g = 'D_4@4';
427
 
 
428
 
/* PGS_REGEX '(' expression ',' expression ')' */
429
 
SET @g = regex('[A-Za-z0-9][_\\.\\-]{1}[a-zA-Z0-9]{1,10}@[A-Za-z0-9]{1,10}', 50);
430
 
ASSERT @g = 'K_k8@K8';
431
 
ASSERT @g = '8-HTPEIxkv2u@htpeiXKV2U';
432
 
ASSERT @g = 'h.BGtvLR@bgTVlr';
433
 
ASSERT @g = 't-XdFghxXz@xDfGHXxZ';
434
 
ASSERT @g = 'p-NYIqvhi@nyiQVHI';
435
 
 
436
 
SET @iterations = @iteration_save;
437
 
 
438
 
PRINT '  Testing dictionary generator';
439
 
 
440
 
SET @iteration_save = @iterations;
441
 
SET @iterations = @iterations / 10;
442
 
 
443
 
/* PGS_FILE '(' expression ',' expression ',' expression ',' expression ')'  */
444
 
IF (@unicode)
445
 
BEGIN
446
 
        SET @g = file(@path + 'dict_utf8.txt', 0, @NOW, 'utf-8');
447
 
        SET @i = 0;
448
 
        WHILE @i < @iterations
449
 
        BEGIN
450
 
                SET @result = CAST (@g AS STRING);
451
 
                ASSERT (@result = 'abc' OR @result = 'def'
452
 
                                OR @result = 'ghi' OR @result = '���');
453
 
                
454
 
                SET @i = @i + 1;
455
 
        END
456
 
END
457
 
 
458
 
/* PGS_FILE '(' expression ',' expression ',' expression ',' expression ')'  */
459
 
SET @g = file(@path + 'dict_iso8859.txt', 0, @NOW, 'iso8859-1');
460
 
SET @i = 0;
461
 
WHILE @i < @iterations
462
 
BEGIN
463
 
        SET @result = CAST (@g AS STRING);
464
 
        ASSERT (@result = 'abc' OR @result = 'def'
465
 
                        OR @result = 'ghi' OR @result = '���');
466
 
        
467
 
        SET @i = @i + 1;
468
 
END
469
 
 
470
 
/* PGS_FILE '(' expression ',' expression ',' expression ',' expression ')'  */
471
 
SET @g = file(@path + 'dict_iso8859.txt', 1, 12345, 'iso8859-1');
472
 
ASSERT @g = 'ghi';
473
 
ASSERT @g = 'def';
474
 
ASSERT @g = 'abc';
475
 
ASSERT @g = '���';
476
 
ASSERT @g = 'ghi';
477
 
ASSERT @g = 'def';
478
 
ASSERT @g = 'abc';
479
 
ASSERT @g = '���';
480
 
ASSERT @g = 'ghi';
481
 
 
482
 
SET @iterations = @iteration_save;
483
 
 
484
 
PRINT '  Testing date generator';
485
 
 
486
 
/* PGS_DATE '(' expression ',' expression ')'  */
487
 
SET @min = '2008-05-01'; SET @max = '2008-05-02';
488
 
SET @g = date(@min, @max);
489
 
SET @i = 0;
490
 
WHILE @i < @iterations
491
 
BEGIN
492
 
        SET @result = CAST (@g AS STRING);
493
 
        ASSERT @result = '2008-05-01' OR @result = '2008-05-02';
494
 
        
495
 
        SET @i = @i + 1;
496
 
END
497
 
 
498
 
/* PGS_DATE '(' expression ',' expression ')'  */
499
 
SET @min = '2008/05/02'; SET @max = '2008/05/01';
500
 
SET @g = date(@min, @max);
501
 
SET @i = 0;
502
 
WHILE @i < @iterations
503
 
BEGIN
504
 
        SET @result = CAST (@g AS STRING);
505
 
        ASSERT @result = '2008-05-01' OR @result = '2008-05-02';
506
 
        
507
 
        SET @i = @i + 1;
508
 
END
509
 
 
510
 
/* PGS_DATE '(' expression ',' expression ',' expression ',' expression ')' */
511
 
SET @min = '1000-05-01'; SET @max = '2000-05-01';
512
 
SET @g = date(@min, @max, 0, 100);
513
 
ASSERT @g = '1171-02-08';
514
 
ASSERT @g = '1044-10-23';
515
 
ASSERT @g = '1096-11-11';
516
 
ASSERT @g = '1098-09-05';
517
 
ASSERT @g = '1167-01-23';
518
 
ASSERT @g = '1073-03-11';
519
 
ASSERT @g = '1115-04-09';
520
 
 
521
 
/* PGS_DATE '(' expression ',' expression ',' expression ')'  */
522
 
SET @local_iterations = 31;
523
 
SET @min = '2008-05-01'; SET @max = '2008-05-31';
524
 
SET @g = date(@min, @max, 1);
525
 
DECLARE @save { @a };
526
 
SET @i = 0;
527
 
WHILE @i < @local_iterations
528
 
BEGIN
529
 
        SET @result = CAST (@g AS STRING);
530
 
        SET @j = 0;
531
 
        WHILE @j < LINES(@save)
532
 
        BEGIN
533
 
                ASSERT @save[@j][0] <> @result;
534
 
                
535
 
                SET @j = @j + 1;
536
 
        END
537
 
        SET @save[@i][0] = @result;
538
 
        
539
 
        SET @i = @i + 1;
540
 
END
541
 
 
542
 
PRINT '  Testing time generator';
543
 
 
544
 
/* PGS_TIME '(' expression ',' expression ')'  */
545
 
SET @min = '00:00:00'; SET @max = '00:00:01';
546
 
SET @g = time(@min, @max);
547
 
SET @i = 0;
548
 
WHILE @i < @iterations
549
 
BEGIN
550
 
        SET @result = CAST (@g AS STRING);
551
 
        ASSERT @result = '00:00:00' OR @result = '00:00:01';
552
 
        
553
 
        SET @i = @i + 1;
554
 
END
555
 
 
556
 
/* PGS_TIME '(' expression ',' expression ')'  */
557
 
SET @min = '14:34:07'; SET @max = '14:34:05';
558
 
SET @g = time(@min, @max);
559
 
SET @i = 0;
560
 
WHILE @i < @iterations
561
 
BEGIN
562
 
        SET @result = CAST (@g AS STRING);
563
 
        ASSERT (@result = '14:34:05' OR @result = '14:34:06'
564
 
                         OR @result = '14:34:07');
565
 
        
566
 
        SET @i = @i + 1;
567
 
END
568
 
 
569
 
/* PGS_TIME '(' expression ',' expression ',' expression ',' expression ')' */
570
 
SET @min = '01:00:00'; SET @max = '12:00:00';
571
 
SET @g = time(@min, @max, 0, 100);
572
 
ASSERT @g = '04:51:08';
573
 
ASSERT @g = '11:21:29';
574
 
ASSERT @g = '02:03:42';
575
 
ASSERT @g = '06:01:46';
576
 
ASSERT @g = '04:48:28';
577
 
ASSERT @g = '11:40:13';
578
 
ASSERT @g = '02:15:51';
579
 
ASSERT @g = '09:28:05';
580
 
 
581
 
/* PGS_TIME '(' expression ',' expression ',' expression ')'  */
582
 
SET @local_iterations = 120;
583
 
SET @min = '01:00:01'; SET @max = '01:02:00';
584
 
SET @g = time(@min, @max, 1);
585
 
DECLARE @save { @a };
586
 
SET @i = 0;
587
 
WHILE @i < @local_iterations
588
 
BEGIN
589
 
        SET @result = CAST (@g AS STRING);
590
 
        SET @j = 0;
591
 
        WHILE @j < LINES(@save)
592
 
        BEGIN
593
 
                ASSERT @save[@j][0] <> @result;
594
 
                
595
 
                SET @j = @j + 1;
596
 
        END
597
 
        SET @save[@i][0] = @result;
598
 
        
599
 
        SET @i = @i + 1;
600
 
END
601
 
 
602
 
PRINT '  Testing date/time generator';
603
 
 
604
 
/* PGS_DATE_TIME '(' expression ',' expression ')'  */
605
 
SET @min = '2008-05-01 00:00:00'; SET @max = '2008-05-01 00:00:01';
606
 
SET @g = datetime(@min, @max);
607
 
SET @i = 0;
608
 
WHILE @i < @iterations
609
 
BEGIN
610
 
        SET @result = CAST (@g AS STRING);
611
 
        ASSERT (@result = '2008-05-01 00:00:00'
612
 
                        OR @result = '2008-05-01 00:00:01');
613
 
        
614
 
        SET @i = @i + 1;
615
 
END
616
 
 
617
 
/* PGS_DATE_TIME '(' expression ',' expression ')'  */
618
 
SET @min = '2008-05-01 14:34:07'; SET @max = '2008-05-01 14:34:05';
619
 
SET @g = datetime(@min, @max);
620
 
SET @i = 0;
621
 
WHILE @i < @iterations
622
 
BEGIN
623
 
        SET @result = CAST (@g AS STRING);
624
 
        ASSERT (@result = '2008-05-01 14:34:05' OR @result = '2008-05-01 14:34:06'
625
 
                         OR @result = '2008-05-01 14:34:07');
626
 
        
627
 
        SET @i = @i + 1;
628
 
END
629
 
 
630
 
/* PGS_DATE_TIME '(' expression ',' expression ',' expression ',' expression ')' */
631
 
SET @min = '2000-05-01 01:00:00'; SET @max = '2008-05-01 12:00:00';
632
 
SET @g = datetime(@min, @max, 0, 100);
633
 
/* ASSERT @g = '2003-02-18 11:13:17';
634
 
ASSERT @g = '2007-11-12 21:29:32';
635
 
ASSERT @g = '2001-02-07 02:50:28';
636
 
ASSERT @g = '2003-12-28 04:19:34';
637
 
ASSERT @g = '2003-02-06 15:33:43';
638
 
ASSERT @g = '2008-02-03 20:11:10'; */
639
 
 
640
 
/* PGS_DATE_TIME '(' expression ',' expression ',' expression ')'  */
641
 
SET @local_iterations = 120;
642
 
SET @min = '2008-05-01 23:59:01'; SET @max = '2008-05-02 00:01:00';
643
 
SET @g = datetime(@min, @max, 1);
644
 
DECLARE @save { @a };
645
 
SET @i = 0;
646
 
WHILE @i < @local_iterations
647
 
BEGIN
648
 
        SET @result = CAST (@g AS STRING);
649
 
        SET @j = 0;
650
 
        WHILE @j < LINES(@save)
651
 
        BEGIN
652
 
                ASSERT @save[@j][0] <> @result;
653
 
                
654
 
                SET @j = @j + 1;
655
 
        END
656
 
        SET @save[@i][0] = @result;
657
 
        
658
 
        SET @i = @i + 1;
659
 
END
660
 
                                                                
661
 
SET @t_end = @NOW;