/[gcl]/gcl/ansi-tests/format-r.lsp
ViewVC logotype

Diff of /gcl/ansi-tests/format-r.lsp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by pfdietz, Sat Nov 27 21:55:26 2004 UTC revision 1.4 by pfdietz, Mon Dec 6 14:04:21 2004 UTC
# Line 24  Line 24 
24           collect (list i x s1 s2)))           collect (list i x s1 s2)))
25    nil)    nil)
26    
27    (deftest formatter.r.1
28      (loop
29       for i from 2 to 36
30       for s = (format nil "~~~dR" i)
31       for fn = (eval `(formatter ,s))
32       nconc
33       (loop for x = (let ((bound (ash 1 (+ 2 (random 40)))))
34                       (- (random (* bound 2)) bound))
35             for s1 = (formatter-call-to-string fn x)
36             for s2 = (with-standard-io-syntax
37                       (write-to-string x :base i :readably nil))
38             repeat 100
39             unless (string= s1 s2)
40             collect (list i x s1 s2)))
41      nil)
42    
43  (def-format-test format.r.2  (def-format-test format.r.2
44    "~2r" (14) "1110")    "~2r" (14) "1110")
45    
# Line 47  Line 63 
63                collect (list base mincol s)))                collect (list base mincol s)))
64    nil)    nil)
65    
66    (deftest formatter.r.4
67      (loop for base from 2 to 36
68            nconc
69            (loop for mincol from 0 to 20
70                  for fmt = (format nil "~~~D,~DR" base mincol)
71                  for fn = (eval `(formatter ,fmt))
72                  for s = (formatter-call-to-string fn base)
73                  unless (if (<= mincol 2)
74                             (string= s "10")
75                           (string= (concatenate
76                                     'string
77                                     (make-string (- mincol 2)
78                                                  :initial-element #\Space)
79                                     "10")
80                                    s))
81                  collect (list base mincol s)))
82      nil)
83    
84  (deftest format.r.5  (deftest format.r.5
85    (loop for base from 2 to 36    (loop for base from 2 to 36
86          nconc          nconc
# Line 64  Line 98 
98                collect (list base mincol s)))                collect (list base mincol s)))
99    nil)    nil)
100    
101    (deftest formatter.r.5
102      (loop for base from 2 to 36
103            nconc
104            (loop for mincol from 0 to 20
105                  for fmt = (format nil "~~~D,~D,'*r" base mincol)
106                  for fn = (eval `(formatter ,fmt))
107                  for s = (formatter-call-to-string fn base)
108                  unless (if (<= mincol 2)
109                             (string= s "10")
110                           (string= (concatenate
111                                     'string
112                                     (make-string (- mincol 2)
113                                                  :initial-element #\*)
114                                     "10")
115                                    s))
116                  collect (list base mincol s)))
117      nil)
118    
119  (deftest format.r.6  (deftest format.r.6
120    (loop for base from 2 to 36    (loop for base from 2 to 36
121          for s = (format nil "~vr" base (1+ base))          for s = (format nil "~vr" base (1+ base))
# Line 71  Line 123 
123          collect (list base s))          collect (list base s))
124    nil)    nil)
125    
126    (deftest formatter.r.6
127      (let ((fn (formatter "~vr")))
128        (loop for base from 2 to 36
129              for s = (formatter-call-to-string fn base (1+ base))
130              unless (string= s "11")
131              collect (list base s)))
132      nil)
133    
134  (defparameter *english-number-names*  (defparameter *english-number-names*
135    '("zero"    '("zero"
136     "one" "two" "three" "four" "five" "six" "seven" "eight" "nine" "ten"     "one" "two" "three" "four" "five" "six" "seven" "eight" "nine" "ten"
# Line 101  Line 161 
161          collect (list i s1 s2))          collect (list i s1 s2))
162    nil)    nil)
163    
164    (deftest formatter.r.7
165      (let ((fn (formatter "~r")))
166        (loop for i from 0 to 100
167              for s1 = (formatter-call-to-string fn i)
168              for s2 in *english-number-names*
169              unless (string= s1 s2)
170              collect (list i s1 s2)))
171      nil)
172    
173  (deftest format.r.7a  (deftest format.r.7a
174    (loop for i from 1 to 100    (loop for i from 1 to 100
175          for s1 = (format nil "~r" (- i))          for s1 = (format nil "~r" (- i))
# Line 123  Line 192 
192       (format nil "~10r" 123)))       (format nil "~10r" 123)))
193    "123")    "123")
194    
195    (deftest formatter.r.10
196      (let ((fn (formatter "~10r")))
197        (with-standard-io-syntax
198         (let ((*print-radix* t))
199           (values
200            (format nil fn 123)
201            (formatter-call-to-string fn 123)))))
202      "123"
203      "123")
204    
205  (def-format-test format.r.11  (def-format-test format.r.11
206    "~8@R" (65) "+101")    "~8@R" (65) "+101")
207    
# Line 200  Line 279 
279          collect (list i s1 s2))          collect (list i s1 s2))
280    nil)    nil)
281    
282    (deftest formatter.r.18
283      (let ((fn (formatter "~:r")))
284        (loop for i from 0 to 100
285              for s1 = (formatter-call-to-string fn i)
286              for s2 in *english-ordinal-names*
287              unless (string= s1 s2)
288              collect (list i s1 s2)))
289      nil)
290    
291  (deftest format.r.18a  (deftest format.r.18a
292    (loop for i from 1 to 100    (loop for i from 1 to 100
293          for s1 = (format nil "~:r" (- i))          for s1 = (format nil "~:r" (- i))
# Line 218  Line 306 
306          collect (list i s1 s2))          collect (list i s1 s2))
307    nil)    nil)
308    
309    (deftest formatter.r.19
310      (let ((fn (formatter "~@r")))
311        (loop for i from 1
312              for s1 in *roman-numerals*
313              for s2 = (formatter-call-to-string fn i)
314              unless (string= s1 s2)
315              collect (list i s1 s2)))
316      nil)
317    
318  ;;; Old roman numerals  ;;; Old roman numerals
319    
320  (defun old-roman-numeral (x)  (defun old-roman-numeral (x)
# Line 252  Line 349 
349          collect (list i s1 s2))          collect (list i s1 s2))
350    nil)    nil)
351    
352    (deftest formatter.r.20
353      (let ((fn (formatter "~@:R")))
354        (loop for i from 1 to 4999
355              for s1 = (formatter-call-to-string fn i)
356              for s2 = (old-roman-numeral i)
357              unless (string= s1 s2)
358              collect (list i s1 s2)))
359      nil)
360    
361  (deftest format.r.21  (deftest format.r.21
362    (loop for i from 1 to 4999    (loop for i from 1 to 4999
363          for s1 = (format nil "~:@r" i)          for s1 = (format nil "~:@r" i)
# Line 280  Line 386 
386          collect (list i s))          collect (list i s))
387    nil)    nil)
388    
389    (deftest formatter.r.25
390      (let ((fn (formatter "~10,vr")))
391        (loop for i from 0 to 5
392              for s = (formatter-call-to-string fn i 12345)
393              unless (string= s "12345")
394              collect (list i s)))
395      nil)
396    
397  (def-format-test format.r.26  (def-format-test format.r.26
398    "~10,#r" (12345 nil nil nil nil nil) " 12345" 5)    "~10,#r" (12345 nil nil nil nil nil) " 12345" 5)
399    
# Line 324  Line 438 
438  ;;; Randomized test  ;;; Randomized test
439    
440  (deftest format.r.39  (deftest format.r.39
441    (loop    (let ((fn (formatter "~v,v,v,v,vr")))
442     for radix = (+ 2 (random 35))      (loop
443     for mincol = (and (coin) (random 50))       for radix = (+ 2 (random 35))
444     for padchar = (and (coin)       for mincol = (and (coin) (random 50))
445                        (random-from-seq +standard-chars+))       for padchar = (and (coin)
    for commachar = (and (coin)  
446                          (random-from-seq +standard-chars+))                          (random-from-seq +standard-chars+))
447     for commaint = (and (coin) (1+ (random 10)))       for commachar = (and (coin)
448     for k = (ash 1 (+ 2 (random 30)))                            (random-from-seq +standard-chars+))
449     for x = (- (random (+ k k)) k)       for commaint = (and (coin) (1+ (random 10)))
450     for fmt = (concatenate       for k = (ash 1 (+ 2 (random 30)))
451                'string       for x = (- (random (+ k k)) k)
452                (format nil "~~~d," radix)       for fmt = (concatenate
453                (if mincol (format nil "~d," mincol) ",")                  'string
454                (if padchar (format nil "'~c," padchar) ",")                  (format nil "~~~d," radix)
455                (if commachar (format nil "'~c," commachar) ",")                  (if mincol (format nil "~d," mincol) ",")
456                (if commaint (format nil "~dr" commaint) "r"))                  (if padchar (format nil "'~c," padchar) ",")
457     for s1 = (format nil fmt x)                  (if commachar (format nil "'~c," commachar) ",")
458     for s2 = (format nil "~v,v,v,v,vr" radix mincol padchar commachar commaint x)                  (if commaint (format nil "~dr" commaint) "r"))
459     repeat 2000       for s1 = (format nil fmt x)
460     unless (string= s1 s2)       for s2 = (format nil "~v,v,v,v,vr" radix mincol padchar commachar commaint x)
461     collect (list radix mincol padchar commachar commaint fmt x s1 s2))       for s3 = (formatter-call-to-string fn radix mincol padchar commachar commaint x)
462         repeat 2000
463         unless (and (string= s1 s2)
464                     (string= s1 s3))
465         collect (list radix mincol padchar commachar commaint fmt x s1 s2 s3)))
466    nil)    nil)

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26