Whitespace cleanup in tests
authorSteve Youngs <steve@sxemacs.org>
Sat, 28 Jan 2012 04:35:02 +0000 (14:35 +1000)
committerSteve Youngs <steve@sxemacs.org>
Sat, 28 Jan 2012 04:35:02 +0000 (14:35 +1000)
Signed-off-by: Steve Youngs <steve@sxemacs.org>
37 files changed:
tests/Makefile.am
tests/automated/ase-interval-tests.el
tests/automated/base64-tests.el
tests/automated/bloom-tests.el
tests/automated/byte-compiler-tests.el
tests/automated/c-tests.el
tests/automated/case-tests.el
tests/automated/ccl-tests.el
tests/automated/cl-loop-tests.el
tests/automated/database-tests.el
tests/automated/ent-tests.el
tests/automated/extent-tests.el
tests/automated/format-tests.el
tests/automated/hash-table-tests.el
tests/automated/inplace-tests.el
tests/automated/lisp-reader-tests.el
tests/automated/lisp-tests.el
tests/automated/map-tests.el
tests/automated/md5-tests.el
tests/automated/mule-tests.el
tests/automated/openssl-tests.el
tests/automated/os-tests.el
tests/automated/regexp-tests.el
tests/automated/region-tests.el
tests/automated/skiplist-tests.el
tests/automated/symbol-tests.el
tests/automated/syntax-tests.el
tests/automated/tag-tests.el
tests/automated/test-harness.el
tests/automated/weak-tests.el
tests/benchmark/benchmark.el
tests/frame.el
tests/glyph-test.el
tests/gutter-test.el
tests/mule/match.el
tests/redisplay-tests.el
tests/reproduce-bugs.el

index 4edf25d..976b3e0 100644 (file)
@@ -49,9 +49,9 @@ automated_tests = automated/ase-cartesian-tests.el                      \
        automated/ase-interval-tests.el automated/ase-metric-tests.el   \
        automated/ase-neighbourhood-tests.el                            \
        automated/ase-permutation-tests.el                              \
-       automated/ase-reclass-tests.el automated/base64-tests.el        \
+       automated/ase-reclass-tests.el automated/base64-tests.el        \
        automated/bloom-tests.el automated/byte-compiler-tests.el       \
-       automated/case-tests.el automated/ccl-tests.el                  \
+       automated/case-tests.el automated/ccl-tests.el                  \
        automated/cl-loop-tests.el automated/c-tests.el                 \
        automated/database-tests.el automated/ent-tests.el              \
        automated/extent-tests.el automated/hash-table-tests.el         \
@@ -119,4 +119,3 @@ stage2: stage1
 
 ### dont use staged build
 ##all: stage1 stage2
-
index 5519eaa..5ba0d17 100644 (file)
   (Assert (= (ase-interval-lebesgue-measure tiny) 3))
   (Assert
    (almost= (ase-interval-lebesgue-measure (ase-interval 0.1 1.2)) 1.1 1e-4))
-  (Assert 
+  (Assert
    (almost= (ase-interval-lebesgue-measure (ase-interval -0.1 0.2)) 0.3 1e-4))
   (Assert
    (almost= (ase-interval-lebesgue-measure (ase-interval -1.2 -1.1)) 0.1 1e-4))
index fcd8242..7872448 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
index 29c5445..6ae4d25 100644 (file)
@@ -5,7 +5,7 @@
 ;; Keywords: tests
 ;;
 ;; This file is part of SXEmacs.
-;; 
+;;
 ;; SXEmacs is free software: you can redistribute it and/or modify it
 ;; under the terms of the GNU General Public License as published by the
 ;; Free Software Foundation, either version 3 of the License, or (at your
@@ -17,7 +17,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ;;
 ;;; Synched up with: Not in FSF.
 ;;
       (b3 (make-bloom 512))
       (b4 (make-bloom 512 26)))
   (eval `(Assert (eq (bloom-order ,b1)
-                     (bloom-order ,b2))))
+                    (bloom-order ,b2))))
   (eval `(Assert (eq (bloom-order ,b3) 512)))
   (eval `(Assert (eq (bloom-order ,b4) 512)))
   (eval `(Assert (eq (bloom-degree ,b1)
-                     (bloom-degree ,b2))))
+                    (bloom-degree ,b2))))
   (eval `(Assert (eq (bloom-degree ,b4) 26)))
   (eval `(Assert (eq (bloom-size ,b1) 0)))
   (eval `(Assert (eq (bloom-size ,b2) 0)))
 ;;; moved to man/lispref/lists.texi -hroptatyr
 ;;   ;; when we add 8-times-degree-times more elements than the order
 ;;   ;; of the bloom we expect it to turn into a universe
-;; 
+;;
 ;;   (dotimes (i (* 8 (bloom-degree b4) (bloom-order b4)))
 ;;     (bloom-add b4 i))
-;; 
+;;
 ;;   (eval `(Assert (bloom-owns-p ,b4 'a-symbol-i-never-added)))
 ;;   (eval `(Assert (bloom-owns-p ,b4 "a-string-i-never-added")))
 ;;   (eval `(Assert (bloom-owns-p ,b4 [a vector i never added])))
       (b3 (make-bloom-universe 512))
       (b4 (make-bloom-universe 512 26)))
   (eval `(Assert (eq (bloom-order ,b1)
-                     (bloom-order ,b2))))
+                    (bloom-order ,b2))))
   (eval `(Assert (eq (bloom-order ,b3) 512)))
   (eval `(Assert (eq (bloom-order ,b4) 512)))
   (eval `(Assert (eq (bloom-degree ,b1)
-                     (bloom-degree ,b2))))
+                    (bloom-degree ,b2))))
   (eval `(Assert (eq (bloom-degree ,b4) 26)))
   (eval `(Assert (eq (bloom-size ,b1)
-                     (bloom-size ,b2))))
+                    (bloom-size ,b2))))
   (eval `(Assert (eq (bloom-size ,b3)
-                     (bloom-size ,b4))))
+                    (bloom-size ,b4))))
 
   (eval `(Assert (bloom-owns-p ,b1 21)))
   (eval `(Assert (bloom-owns-p ,b1 'a-symbol)))
index 152df84..1e9dd7f 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
index d350c0b..4832cf6 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
index 9aac263..c13c64e 100644 (file)
@@ -20,7 +20,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
       (Assert (eq 1 (search-backward string nil t 5)))
       (goto-char (point-max))
       (Assert (not (search-backward string nil t 6))))))
-
index 7beb21e..2efb9a3 100644 (file)
@@ -15,7 +15,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Section 0.  Useful functions to construct test suites.
 
@@ -56,7 +56,7 @@
          ccl-test-last-register-state
          string)))
     (if (not not-check-coding-system)
-       (Assert (string= 
+       (Assert (string=
                 str2
                 (decode-coding-string
                  string 'ccl-test-coding-system))))
     '(1 (read r0)
        (loop
          (write-read-repeat r0))))
-  (make-coding-system 
+  (make-coding-system
    'ccl-test-coding-system
    'ccl
    "CCL TEST temprary coding-system."
      (string= (ccl-test-on-stream `(1 ((read r0)
                                       (loop
                                         (r0 += 3)
-                                        (write-read-repeat r0))))
+                                        (write-read-repeat r0))))
                                  str)
              str2)))
 
                      "...")))
     (Assert
      (string=
-      (ccl-test-on-stream 
+      (ccl-test-on-stream
        `(1 ((loop
              (read-multibyte-character r0 r1)
              (write-multibyte-character r0 r1)
             (10000 . -1) (10001 . -1) (10002 . -1) (10003 . -1)
             (10004 . -1) (19999 . -1) (20000 . 5) (20001 . 5)
             (20002 . 5) (30000 . 6) (20004 . 5) (20005 . 5) (20006 . 5)))
-          
+
       (Assert-Equal
               (mapcar
                (lambda (val)
                      [72 lambda]
                      [20000 20000 20001 20002 nil 20004 20005 20006]
                      [1006 2006 2007 2008 2009 2010]
-                     ([20003 30000 30010 ccl-test-arith-1 30030 30040 
+                     ([20003 30000 30010 ccl-test-arith-1 30030 30040
                              ccl-test-arith-1 30060]
                       [1001010 50 51 52 53 54 55]))
                     [t t 0 1000000]
index ffcf05b..51f4cdf 100644 (file)
   ;; multi-for
   (Assert
    (equal
-    (cl:loop for x from 1 to 10 
-            for y = nil then x 
+    (cl:loop for x from 1 to 10
+            for y = nil then x
             collect (list x y))
     '((1 nil) (2 2) (3 3) (4 4) (5 5) (6 6) (7 7) (8 8) (9 9) (10 10))))
 
   (Assert
    (equal
-    (cl:loop for x from 1 to 10 
-            and y = nil then x 
+    (cl:loop for x from 1 to 10
+            and y = nil then x
             collect (list x y))
     '((1 nil) (2 1) (3 2) (4 3) (5 4) (6 5) (7 6) (8 7) (9 8) (10 9))))
 
 
   (Assert
    (= (let* ((series '(1.25 4.5 5.5)))
-       (cl:loop for v in series 
+       (cl:loop for v in series
                 sum (* 2.0 v)))
       22.5))
 
index 25f19ee..c848697 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
index 3f2dd52..753cee6 100644 (file)
@@ -17,7 +17,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ;;
 ;;; Synched up with: Not in FSF.
 ;;
   (Assert (bigzp (coerce-number 0 'bigz)))
   (Assert (bigzp (coerce-number 1 'bigz)))
   (Assert (and (bigzp (factorial 100))
-               (bigzp (coerce-number (factorial 100) 'bigz))))
+              (bigzp (coerce-number (factorial 100) 'bigz))))
   (Assert (bigzp (coerce-number 1.0 'bigz)))
   (Assert (intp (coerce-number (factorial 100) 'int)))
   (Assert (zerop (coerce-number (factorial 100) 'int)))
   (Assert (let ((more-than-mpf (1+ most-positive-fixnum)))
-            (equal (coerce-number more-than-mpf 'float)
-                   (1+ (coerce-number most-positive-fixnum 'float))))))
+           (equal (coerce-number more-than-mpf 'float)
+                  (1+ (coerce-number most-positive-fixnum 'float))))))
 
 (when (featurep 'bigq)
   (Assert (bigqp (coerce-number 0 'bigq)))
   (Assert (bigqp (coerce-number 1 'bigq)))
   (Assert (and (bigqp 3/2)
-               (bigqp (coerce-number 3/2 'bigq))))
+              (bigqp (coerce-number 3/2 'bigq))))
   (Assert (bigqp (coerce-number 1.5 'bigq)))
   (Assert (intp (coerce-number 3/2 'int)))
   (Assert (bigzp (coerce-number 3/2 'bigz)))
     (Assert (bigzp (denominator 3/2)))))
 
 (when (and (featurep 'bigg)
-           (featurep 'bigc))
+          (featurep 'bigc))
   (Assert (biggp (coerce-number 1.0+2.0i 'bigg)))
   (Assert (bigcp (coerce-number 1+2i 'bigc))))
 
 ;;-----------------------------------------------------
 (when (featurep 'bigz)
   (let ((num1 2)
-        (num2 2.0))
+       (num2 2.0))
     ;; this test should reveal re-canonicalisation
     (eval `(Assert (intp (+ ,num1 (coerce-number ,num1 'bigz)))))
     (eval `(Assert (intp (* ,num1 (coerce-number ,num1 'bigz)))))
 ;;-----------------------------------------------------
 (when (featurep 'bigg)
   (let ((read-real-as 'bigfr)
-        (default-real-precision 128))
+       (default-real-precision 128))
 
     ;; testing bigg selector
     (Assert-Not-Equal (real-part (read "2+3i")) 2)
     (Assert-Equal (make-bigg 1.0 2.0) (read "1+2i"))
     (Assert-Equal (make-bigg 1 2) (read "1+2i"))
     (Assert (and (= (real-part (make-bigg 1.0 2.0))
-                    (real-part (read "1+2i")))
-                 (= (imaginary-part (make-bigg 1.0 2.0))
-                    (imaginary-part (read "1+2i")))))
+                   (real-part (read "1+2i")))
+                (= (imaginary-part (make-bigg 1.0 2.0))
+                   (imaginary-part (read "1+2i")))))
     (Assert (and (= (real-part (make-bigg 1 2))
-                    (real-part (read "1+2i")))
-                 (= (imaginary-part (make-bigg 1 2))
-                    (imaginary-part (read "1+2i")))))))
+                   (real-part (read "1+2i")))
+                (= (imaginary-part (make-bigg 1 2))
+                   (imaginary-part (read "1+2i")))))))
 
 (when (featurep 'bigc)
   (let ((read-real-as 'bigfr)
-        (default-real-precision 128))
+       (default-real-precision 128))
 
     ;; testing bigc selector
     (Assert-Equal (real-part (read "2.3+3.2i"))
-                   (read "2.3"))
+                  (read "2.3"))
     (Assert-Equal (imaginary-part (read "2.3+3.2i"))
-                   (read "3.2"))
+                  (read "3.2"))
     ;; use numerical equality
     (Assert (= (real-part (read "2.3+3.2i"))
-               (read "2.3")))
+              (read "2.3")))
     (Assert (= (imaginary-part (read "2.3+3.2i"))
-               (read "3.2")))
+              (read "3.2")))
 
     ;; testing bigc constructor
     (Assert-Not-Equal (real-part (make-bigc 1 2)) 1)
     (Assert-Equal (make-bigc 1.0 2.0) (read "1.0+2.0i"))
     (Assert-Equal (make-bigc 1 2) (read "1.0+2.0i"))
     (Assert (and (= (real-part (make-bigc 1.0 2.0))
-                    (real-part (read "1.0+2.0i")))
-                 (= (imaginary-part (make-bigc 1.0 2.0))
-                    (imaginary-part (read "1.0+2.0i")))))
+                   (real-part (read "1.0+2.0i")))
+                (= (imaginary-part (make-bigc 1.0 2.0))
+                   (imaginary-part (read "1.0+2.0i")))))
     (Assert (and (= (real-part (make-bigc 1 2))
-                    (real-part (read "1.0+2.0i")))
-                 (= (imaginary-part (make-bigc 1 2))
-                    (imaginary-part (read "1.0+2.0i")))))))
+                   (real-part (read "1.0+2.0i")))
+                (= (imaginary-part (make-bigc 1 2))
+                   (imaginary-part (read "1.0+2.0i")))))))
 
 
 
 ;; floats
 (let ((forms
        '(1.0 1.00000 0.5 0.005 5.000005 4.0625 8.03125
-             9876.54321 10000.00001 12004.40021
-             1.5e+10 1.125e+11 1.0703125e+12
-             1.1e+15 1.2e+16 1.4e+20 1.45e+24
-             1.52e+28 1.55e+30 1.52105432e+31 1.5445633221e+32
-             1.7777777777777e+33 1.7777777777777776e+33
-             1.8999999999999e+33 1.999989999999999e+33
-             1.99999999e+35 1.9999999999e+36 1.999999999999e+37
-             1.99999999999999e+38 1.999999999999999e+39
-             1.9999999999999999e+40 2.000000000000000000e+40
-             2.000000000000001e+42 2.000000000000009e+44
-             2.002000200002000002000000e+48
-             2.000000200000200002000200e+50
-             200000020000020000200020.0e+50
-             12345555555555555555.999999999e+60
-             12344444444444444444.999999999e+60
-             1234545454545454545454545454545.000
-             123454545454545454545454545454545454545454545.000
-             4444444444444.55555555555e+100
-             5555555555555.55555555555e+102
-             5555555555555.44444444444e+104
-             5555555555555.99999999998e+106
-             50505050505050505050505.0e+200
-             1e+300 1e+301 1e+302 -1e+300 -1e+301 -1e+302
-             1e+304 -1e+304 1e+305 -1e+305 1e+306 -1e+306
-             1e+307 2e+307 8e+307 -8e+307
-             1e+308 -1e+308 8e+308 -8e+308
-             1e+309 -1e+309 -8e+309 8e+309
-             ;; we should be outta range of double floats
-             1.00e+310 2.50e+310 2.55e+310
-             2.125e+312 2.0004500045e+313 1.2e+314 1.2e+320
-             1.22229e+320 100e+320 101e+321 102e+322
-             ;; we're still alive?
-             most-positive-float most-negative-float
-             ;; the following two may not work correctly if the number
-             ;; distribution has many subnormal numbers
-             ;;(1+ most-positive-float) (1- most-negative-float)
-             ;;(1- most-positive-float) (1+ most-negative-float)
-             1.0e+340 1.0e+350 1.0e+380 1.0e+400
-             1.2e+300 1.2e+310 1.2e+320 1.2e+400
-             1.2e+2000 1.2e+3000 1.2e+4000 1.2e+5000))
+            9876.54321 10000.00001 12004.40021
+            1.5e+10 1.125e+11 1.0703125e+12
+            1.1e+15 1.2e+16 1.4e+20 1.45e+24
+            1.52e+28 1.55e+30 1.52105432e+31 1.5445633221e+32
+            1.7777777777777e+33 1.7777777777777776e+33
+            1.8999999999999e+33 1.999989999999999e+33
+            1.99999999e+35 1.9999999999e+36 1.999999999999e+37
+            1.99999999999999e+38 1.999999999999999e+39
+            1.9999999999999999e+40 2.000000000000000000e+40
+            2.000000000000001e+42 2.000000000000009e+44
+            2.002000200002000002000000e+48
+            2.000000200000200002000200e+50
+            200000020000020000200020.0e+50
+            12345555555555555555.999999999e+60
+            12344444444444444444.999999999e+60
+            1234545454545454545454545454545.000
+            123454545454545454545454545454545454545454545.000
+            4444444444444.55555555555e+100
+            5555555555555.55555555555e+102
+            5555555555555.44444444444e+104
+            5555555555555.99999999998e+106
+            50505050505050505050505.0e+200
+            1e+300 1e+301 1e+302 -1e+300 -1e+301 -1e+302
+            1e+304 -1e+304 1e+305 -1e+305 1e+306 -1e+306
+            1e+307 2e+307 8e+307 -8e+307
+            1e+308 -1e+308 8e+308 -8e+308
+            1e+309 -1e+309 -8e+309 8e+309
+            ;; we should be outta range of double floats
+            1.00e+310 2.50e+310 2.55e+310
+            2.125e+312 2.0004500045e+313 1.2e+314 1.2e+320
+            1.22229e+320 100e+320 101e+321 102e+322
+            ;; we're still alive?
+            most-positive-float most-negative-float
+            ;; the following two may not work correctly if the number
+            ;; distribution has many subnormal numbers
+            ;;(1+ most-positive-float) (1- most-negative-float)
+            ;;(1- most-positive-float) (1+ most-negative-float)
+            1.0e+340 1.0e+350 1.0e+380 1.0e+400
+            1.2e+300 1.2e+310 1.2e+320 1.2e+400
+            1.2e+2000 1.2e+3000 1.2e+4000 1.2e+5000))
        (failures
-        ;; known errors (due to precision issues, not SXE's fault)
-        '(1e-300 1e-301 1e-302 1e-303 1e-304 1e-305 1e-306
-                 1e-307 1e-308 1e-309
-                 2.5e-310 2.55e-311 2.55e-312
-                 1.2e-320 1.201e-320 1.25e-320
-                 1.22229e-320 100e-306 100e-307 100e-308 100e-309
-                 100e-310 100e-311 100e-312 100e-313 100e-314 100e-315
-                 100e-316 100e-317 100e-318 100e-319 100e-320 100e-321
-                 100e-322 100e-323 100e-324 100e-325 100e-326 100e-327
-                 100e-328 100e-329 100e-330 1.2e-330 1.25e-330
-                 0.5e-306 0.5e-307 0.5e-308 0.5e-309 0.5e-310 0.5e-311
-                 0.5e-312 0.5e-313 0.5e-314 0.5e-315 0.5e-316 0.5e-317
-                 0.5e-318 0.5e-319 0.5e-320 0.5e-321 0.5e-322 0.5e-323)))
+       ;; known errors (due to precision issues, not SXE's fault)
+       '(1e-300 1e-301 1e-302 1e-303 1e-304 1e-305 1e-306
+                1e-307 1e-308 1e-309
+                2.5e-310 2.55e-311 2.55e-312
+                1.2e-320 1.201e-320 1.25e-320
+                1.22229e-320 100e-306 100e-307 100e-308 100e-309
+                100e-310 100e-311 100e-312 100e-313 100e-314 100e-315
+                100e-316 100e-317 100e-318 100e-319 100e-320 100e-321
+                100e-322 100e-323 100e-324 100e-325 100e-326 100e-327
+                100e-328 100e-329 100e-330 1.2e-330 1.25e-330
+                0.5e-306 0.5e-307 0.5e-308 0.5e-309 0.5e-310 0.5e-311
+                0.5e-312 0.5e-313 0.5e-314 0.5e-315 0.5e-316 0.5e-317
+                0.5e-318 0.5e-319 0.5e-320 0.5e-321 0.5e-322 0.5e-323)))
   (mapc-internal
    #'(lambda (str)
        (unless (or (infinityp (eval str)) (zerop (eval str)))
-         (eval `(Assert (= (read (format "%f" ,str)) ,str)))
-         (eval `(Assert (eql (read (format "%f" ,str)) ,str)))))
+        (eval `(Assert (= (read (format "%f" ,str)) ,str)))
+        (eval `(Assert (eql (read (format "%f" ,str)) ,str)))))
    forms)
   (mapc-internal
    #'(lambda (str)
        (unless (or (infinityp (eval str)) (zerop (eval str)))
-         (eval `(Assert (not (= (read (format "%f" ,str)) ,str))))
-         (eval `(Assert (not (eql (read (format "%f" ,str)) ,str))))))
+        (eval `(Assert (not (= (read (format "%f" ,str)) ,str))))
+        (eval `(Assert (not (eql (read (format "%f" ,str)) ,str))))))
    failures))
 
 ;; now testing bigz formatting
 (when (featurep 'bigz)
   (let ((forms
-         '((("%Z" 2) . "2")
-           (("%2Z" 2) . " 2")
-           (("%2Z" 200) . "200")
-           (("%+Z" 2) . "+2")
-           (("%+4Z" 2) . "  +2")
-           (("% Z" 2) . " 2")
-           (("%Z" -2) . "-2")
-           (("% Z" -2) . "-2")
-           (("%+Z" -2) . "-2")
-           (("%-4Z" 2) . "2   ")
-           (("%.2Z" 2) . "02")
-           (("%4.2Z" 2) . "  02")
-           (("%04.2Z" 2) . "  02")
-           (("%-4.2Z" 2) . "02  ")
-           (("%0-4.2Z" 2) . "02  ")
-           (("%Z" (factorial 20)) .
-            "2432902008176640000")
-           (("%40Z" (factorial 20)) .
-            "                     2432902008176640000")
-           (("%-40Z" (factorial 20)) .
-            "2432902008176640000                     ")
-           (("%.40Z" (factorial 20)) .
-            "0000000000000000000002432902008176640000")
-           (("%040Z" (factorial 20)) .
-            "0000000000000000000002432902008176640000")
-           (("%.8Z" (factorial 20)) .
-            "2432902008176640000")
-           (("%08Z" (factorial 20)) .
-            "2432902008176640000")
-           (("%24.8Z" (factorial 20)) .
-            "     2432902008176640000")
-           (("%36.28Z" (factorial 20)) .
-            "        0000000002432902008176640000")
-           (("%036.28d" (factorial 20)) .
-            "        0000000002432902008176640000")
-           (("%0-36.28d" (factorial 20)) .
-            "0000000002432902008176640000        ")
-
-           ;; now the same with the %d specifier
-           (("%d" 2) . "2")
-           (("%2d" 2) . " 2")
-           (("%2d" 200) . "200")
-           (("%+d" 2) . "+2")
-           (("%+4d" 2) . "  +2")
-           (("% d" 2) . " 2")
-           (("%d" -2) . "-2")
-           (("% d" -2) . "-2")
-           (("%+d" -2) . "-2")
-           (("%-4d" 2) . "2   ")
-           (("%.2d" 2) . "02")
-           (("%4.2d" 2) . "  02")
-           (("%04.2d" 2) . "  02")
-           (("%-4.2d" 2) . "02  ")
-           (("%0-4.2d" 2) . "02  ")
-           (("%d" (factorial 20)) . "2432902008176640000")
-           (("%40d" (factorial 20)) .
-            "                     2432902008176640000")
-           (("%-40d" (factorial 20)) .
-            "2432902008176640000                     ")
-           (("%.40d" (factorial 20)) .
-            "0000000000000000000002432902008176640000")
-           (("%040d" (factorial 20)) .
-            "0000000000000000000002432902008176640000")
-           (("%.8d" (factorial 20)) . "2432902008176640000")
-           (("%24.8d" (factorial 20)) . "     2432902008176640000")
-           (("%36.28d" (factorial 20)) .
-            "        0000000002432902008176640000")
-           (("%036.28d" (factorial 20)) .
-            "        0000000002432902008176640000")
-           (("%0-36.28d" (factorial 20)) .
-            "0000000002432902008176640000        ")
-
-           ;; testing base converters on big ints
-           ;; moved to format-tests
+        '((("%Z" 2) . "2")
+          (("%2Z" 2) . " 2")
+          (("%2Z" 200) . "200")
+          (("%+Z" 2) . "+2")
+          (("%+4Z" 2) . "  +2")
+          (("% Z" 2) . " 2")
+          (("%Z" -2) . "-2")
+          (("% Z" -2) . "-2")
+          (("%+Z" -2) . "-2")
+          (("%-4Z" 2) . "2   ")
+          (("%.2Z" 2) . "02")
+          (("%4.2Z" 2) . "  02")
+          (("%04.2Z" 2) . "  02")
+          (("%-4.2Z" 2) . "02  ")
+          (("%0-4.2Z" 2) . "02  ")
+          (("%Z" (factorial 20)) .
+           "2432902008176640000")
+          (("%40Z" (factorial 20)) .
+           "                     2432902008176640000")
+          (("%-40Z" (factorial 20)) .
+           "2432902008176640000                     ")
+          (("%.40Z" (factorial 20)) .
+           "0000000000000000000002432902008176640000")
+          (("%040Z" (factorial 20)) .
+           "0000000000000000000002432902008176640000")
+          (("%.8Z" (factorial 20)) .
+           "2432902008176640000")
+          (("%08Z" (factorial 20)) .
+           "2432902008176640000")
+          (("%24.8Z" (factorial 20)) .
+           "     2432902008176640000")
+          (("%36.28Z" (factorial 20)) .
+           "        0000000002432902008176640000")
+          (("%036.28d" (factorial 20)) .
+           "        0000000002432902008176640000")
+          (("%0-36.28d" (factorial 20)) .
+           "0000000002432902008176640000        ")
+
+          ;; now the same with the %d specifier
+          (("%d" 2) . "2")
+          (("%2d" 2) . " 2")
+          (("%2d" 200) . "200")
+          (("%+d" 2) . "+2")
+          (("%+4d" 2) . "  +2")
+          (("% d" 2) . " 2")
+          (("%d" -2) . "-2")
+          (("% d" -2) . "-2")
+          (("%+d" -2) . "-2")
+          (("%-4d" 2) . "2   ")
+          (("%.2d" 2) . "02")
+          (("%4.2d" 2) . "  02")
+          (("%04.2d" 2) . "  02")
+          (("%-4.2d" 2) . "02  ")
+          (("%0-4.2d" 2) . "02  ")
+          (("%d" (factorial 20)) . "2432902008176640000")
+          (("%40d" (factorial 20)) .
+           "                     2432902008176640000")
+          (("%-40d" (factorial 20)) .
+           "2432902008176640000                     ")
+          (("%.40d" (factorial 20)) .
+           "0000000000000000000002432902008176640000")
+          (("%040d" (factorial 20)) .
+           "0000000000000000000002432902008176640000")
+          (("%.8d" (factorial 20)) . "2432902008176640000")
+          (("%24.8d" (factorial 20)) . "     2432902008176640000")
+          (("%36.28d" (factorial 20)) .
+           "        0000000002432902008176640000")
+          (("%036.28d" (factorial 20)) .
+           "        0000000002432902008176640000")
+          (("%0-36.28d" (factorial 20)) .
+           "0000000002432902008176640000        ")
+
+          ;; testing base converters on big ints
+          ;; moved to format-tests
           )))
 
     (mapc #'(lambda (f)
-              (let ((format (cons 'format (car f)))
-                    (expected (cdr f)))
-                (eval `(Assert (string= ,format ,expected)))))
-          forms)))
+             (let ((format (cons 'format (car f)))
+                   (expected (cdr f)))
+               (eval `(Assert (string= ,format ,expected)))))
+         forms)))
 
 
 ;; now testing bigq formatting
 (when (featurep 'bigq)
   (let ((forms
-         '((("%Q" 2) . "2")
-           (("%2Q" 2) . " 2")
-           (("%2Q" 200) . "200")
-           (("%+Q" 2) . "+2")
-           (("% Q" 2) . " 2")
-           (("% +Q" 2) . "+2")
-           (("%+ Q" 2) . "+2")
-           (("%Q" -2) . "-2")
-           (("% Q" -2) . "-2")
-           (("%+Q" -2) . "-2")
-           (("% +Q" -2) . "-2")
-           (("%+ Q" -2) . "-2")
-           (("%-4Q" 2) . "2   ")
-           (("%.2Q" 2) . "2")
-           (("%4.2Q" 2) . "   2")
-           (("%-4.2Q" 2) . "2   ")
-
-           ;; testing with proper fractions
-           (("%Q" 2/3) . "2/3")
-           (("%5Q" 2/3) . "  2/3")
-           (("%5.5Q" 2/3) . "  2/3")
-           (("%+Q" 2/3) . "+2/3")
-           (("% Q" 2/3) . " 2/3")
-           (("% +Q" 2/3) . "+2/3")
-           (("%+ Q" 2/3) . "+2/3")
-           (("%Q" (float 1.5)) . "3/2")
-           (("%Q" (float 0.66666)) . "3002369727582815/4503599627370496")
-           (("%-10Q" 2/3) . "2/3       ")
-
-           ;; testing coercion to Z
-           (("%d" 4/3) . "1")
-           (("%Z" 2/3) . "0"))))
+        '((("%Q" 2) . "2")
+          (("%2Q" 2) . " 2")
+          (("%2Q" 200) . "200")
+          (("%+Q" 2) . "+2")
+          (("% Q" 2) . " 2")
+          (("% +Q" 2) . "+2")
+          (("%+ Q" 2) . "+2")
+          (("%Q" -2) . "-2")
+          (("% Q" -2) . "-2")
+          (("%+Q" -2) . "-2")
+          (("% +Q" -2) . "-2")
+          (("%+ Q" -2) . "-2")
+          (("%-4Q" 2) . "2   ")
+          (("%.2Q" 2) . "2")
+          (("%4.2Q" 2) . "   2")
+          (("%-4.2Q" 2) . "2   ")
+
+          ;; testing with proper fractions
+          (("%Q" 2/3) . "2/3")
+          (("%5Q" 2/3) . "  2/3")
+          (("%5.5Q" 2/3) . "  2/3")
+          (("%+Q" 2/3) . "+2/3")
+          (("% Q" 2/3) . " 2/3")
+          (("% +Q" 2/3) . "+2/3")
+          (("%+ Q" 2/3) . "+2/3")
+          (("%Q" (float 1.5)) . "3/2")
+          (("%Q" (float 0.66666)) . "3002369727582815/4503599627370496")
+          (("%-10Q" 2/3) . "2/3       ")
+
+          ;; testing coercion to Z
+          (("%d" 4/3) . "1")
+          (("%Z" 2/3) . "0"))))
 
     (mapc #'(lambda (f)
-              (let ((format (cons 'format (car f)))
-                    (expected (cdr f)))
-                (eval `(Assert (string= ,format ,expected)))))
-          forms)))
+             (let ((format (cons 'format (car f)))
+                   (expected (cdr f)))
+               (eval `(Assert (string= ,format ,expected)))))
+         forms)))
 
 
 (when (featurep 'bigfr)
   (let ((forms
-         '((("%f" (exp 1)) . "2.718282")
-           (("%2.2f" (exp 1)) . "2.72")
-           ;; this test uses a wrong output string deliberately
-           ;; it's wrong because the precision of IEEE-754 doubles is
-           ;; not enough to have 20 correct digits in the fractional part
-           ;; however, since we _can_ have long doubles now, this test
-           ;; is no longer feasible since lisp should know a shit about
-           ;; the internal representation of fpfloats. -hroptatyr
-           ;;(("%2.20f" (exp 1)) . "2.71828182845904509080")
-
-           ;; now testing with %F
-           (("%F" (exp 1)) . "2.718281828459045235360287471352662497759")
-           (("%2.2F" (exp 1)) . "2.71")
-           (("%+2.2F" (exp 1)) . "+2.71")
-           (("%10.0F" (exp 1)) . "         2")
-           (("%10.1F" (exp 1)) . "       2.7")
-           (("%12.12F" (exp 1)) . "2.718281828459")
-           (("%30.12F" (exp 1)) . "                2.718281828459")
-           (("%5.5F" (exp 13)) . "442413.39200")
-           (("%F" (/ (exp 1))) .
-            "0.3678794411714423215955237701614608674462")
-           (("%2.2F" (/ (exp 1))) . "0.36")
-           (("%3.3F" (/ (exp 1))) . "0.367")
-           (("%.5F" (bigfr 1)) . "1.00000")
-
-           (("%.4F" (bigfr 23213231 25)) . "23213231.0000")
-           ;; stupid assumption
-           ;;(("%.4F" (bigfr 23213231 8)) . "23200000.0000")
-           (("%Z" (bigfr 23213231 25)) . "23213231")
-           (("%Z" (bigfr 23213231 8)) . "23199744")
-
-           (("%+.4f" 2) . "+2.0000")
-           (("%+.4F" 2) . "+2.0000")
-           (("% .4F" 2) . " 2.0000")
-           (("%+10.4F" 2) . "   +2.0000")))
-        (default-real-precision 128))
+        '((("%f" (exp 1)) . "2.718282")
+          (("%2.2f" (exp 1)) . "2.72")
+          ;; this test uses a wrong output string deliberately
+          ;; it's wrong because the precision of IEEE-754 doubles is
+          ;; not enough to have 20 correct digits in the fractional part
+          ;; however, since we _can_ have long doubles now, this test
+          ;; is no longer feasible since lisp should know a shit about
+          ;; the internal representation of fpfloats. -hroptatyr
+          ;;(("%2.20f" (exp 1)) . "2.71828182845904509080")
+
+          ;; now testing with %F
+          (("%F" (exp 1)) . "2.718281828459045235360287471352662497759")
+          (("%2.2F" (exp 1)) . "2.71")
+          (("%+2.2F" (exp 1)) . "+2.71")
+          (("%10.0F" (exp 1)) . "         2")
+          (("%10.1F" (exp 1)) . "       2.7")
+          (("%12.12F" (exp 1)) . "2.718281828459")
+          (("%30.12F" (exp 1)) . "                2.718281828459")
+          (("%5.5F" (exp 13)) . "442413.39200")
+          (("%F" (/ (exp 1))) .
+           "0.3678794411714423215955237701614608674462")
+          (("%2.2F" (/ (exp 1))) . "0.36")
+          (("%3.3F" (/ (exp 1))) . "0.367")
+          (("%.5F" (bigfr 1)) . "1.00000")
+
+          (("%.4F" (bigfr 23213231 25)) . "23213231.0000")
+          ;; stupid assumption
+          ;;(("%.4F" (bigfr 23213231 8)) . "23200000.0000")
+          (("%Z" (bigfr 23213231 25)) . "23213231")
+          (("%Z" (bigfr 23213231 8)) . "23199744")
+
+          (("%+.4f" 2) . "+2.0000")
+          (("%+.4F" 2) . "+2.0000")
+          (("% .4F" 2) . " 2.0000")
+          (("%+10.4F" 2) . "   +2.0000")))
+       (default-real-precision 128))
 
     (mapc #'(lambda (f)
-              (let ((format (cons 'format (car f)))
-                    (expected (cdr f)))
-                (eval `(Assert (string= ,format ,expected)))))
-          forms)))
+             (let ((format (cons 'format (car f)))
+                   (expected (cdr f)))
+               (eval `(Assert (string= ,format ,expected)))))
+         forms)))
 
 (when (featurep 'bigg)
   (let ((forms
-         '((("%B" 2+i) . "2+1i")
-           (("%+B" 2+i) . "+2+1i")
-           (("% B" 2+i) . " 2+1i")
-           (("%B" 2+i) .
-            (format "%Z%+Zi" (real-part 2+i) (imaginary-part 2+i)))
-           (("%B" 1) . "1+0i")
-           (("%+10.4B" 1.2) . "     +0001     +0000i")
-           (("%-10.4B" 0+2i) . "0000      +0002     i"))))
+        '((("%B" 2+i) . "2+1i")
+          (("%+B" 2+i) . "+2+1i")
+          (("% B" 2+i) . " 2+1i")
+          (("%B" 2+i) .
+           (format "%Z%+Zi" (real-part 2+i) (imaginary-part 2+i)))
+          (("%B" 1) . "1+0i")
+          (("%+10.4B" 1.2) . "     +0001     +0000i")
+          (("%-10.4B" 0+2i) . "0000      +0002     i"))))
 
     (mapc #'(lambda (f)
-              (let ((format (cons 'format (car f)))
-                    (expected (cdr f)))
-                (eval `(Assert (string= ,format ,expected)))))
-          forms))
+             (let ((format (cons 'format (car f)))
+                   (expected (cdr f)))
+               (eval `(Assert (string= ,format ,expected)))))
+         forms))
 
   ;; Gaussian numbers shall not be coerced to comparables
   (Check-Error domain-error (format "%d" 1+i))
 
 (when (featurep 'bigc)
   (let ((forms
-         '((("%.2C" 2+i) . "2.00+1.00i")
-           (("%+.2C" 2+i) . "+2.00+1.00i")
-           (("% .2C" 2+i) . " 2.00+1.00i")
-           (("%.2C" 2+i) .
-            (format "%.2F%+.2Fi" (real-part 2+i) (imaginary-part 2+i)))
-           (("%.2C" 1) . "1.00+0.00i")
-           (("%+10.4C" 1.5) . "   +1.5000   +0.0000i")
-           (("%-10.4C" 0+2i) . "0.0000    +2.0000   i"))))
+        '((("%.2C" 2+i) . "2.00+1.00i")
+          (("%+.2C" 2+i) . "+2.00+1.00i")
+          (("% .2C" 2+i) . " 2.00+1.00i")
+          (("%.2C" 2+i) .
+           (format "%.2F%+.2Fi" (real-part 2+i) (imaginary-part 2+i)))
+          (("%.2C" 1) . "1.00+0.00i")
+          (("%+10.4C" 1.5) . "   +1.5000   +0.0000i")
+          (("%-10.4C" 0+2i) . "0.0000    +2.0000   i"))))
 
     (mapc #'(lambda (f)
-              (let ((format (cons 'format (car f)))
-                    (expected (cdr f)))
-                (eval `(Assert (string= ,format ,expected)))))
-          forms))
+             (let ((format (cons 'format (car f)))
+                   (expected (cdr f)))
+               (eval `(Assert (string= ,format ,expected)))))
+         forms))
 
   ;; complex numbers shall not be coerced to comparables
   (Check-Error domain-error (format "%d" (sqrt -2)))
 (when (featurep 'bigz)
   ;;; addition
   (let ((sums '((1 2 3)
-                (12332112344321 10000000000000 22332112344321)
-                (12332112344321 1 12332112344322)
-                (1 12332112344321 12332112344322)
-                (10101010101010 1010101010101 11111111111111)
+               (12332112344321 10000000000000 22332112344321)
+               (12332112344321 1 12332112344322)
+               (1 12332112344321 12332112344322)
+               (10101010101010 1010101010101 11111111111111)
                (-10101010101010 10101010101010 0)))
-        (prods '((2 3 6)
-                 (1002004002001 402010204 402815833253238418204)
+       (prods '((2 3 6)
+                (1002004002001 402010204 402815833253238418204)
                 (-1002004002001 402010204 -402815833253238418204)))
        (pows-!clslash
         '((2 2 4)
             (32 32 1461501637330902918203684832716283019655932542976)
             (32 -32 1/1461501637330902918203684832716283019655932542976)))))
     (mapc #'(lambda (sum)
-              (eval `(Assert (= (+ ,(car sum) ,(cadr sum)) ,(caddr sum))))
-              (eval `(Assert (= (- ,(caddr sum) ,(cadr sum)) ,(car sum))))
+             (eval `(Assert (= (+ ,(car sum) ,(cadr sum)) ,(caddr sum))))
+             (eval `(Assert (= (- ,(caddr sum) ,(cadr sum)) ,(car sum))))
              (unless (bigzp (caddr sum))
                (eval `(Assert (= (bigz (+ (bigz ,(car sum))
                                           (bigz ,(cadr sum))))
                ;; | a + b | <= |a| + |b|
                (eval `(Assert (<= (abs (+ ,(car sum) ,(cadr sum)))
                                   (+ (abs ,(car sum)) (abs ,(cadr sum))))))))
-          sums)
+         sums)
     (mapc #'(lambda (prod)
-              (eval `(Assert (= (* ,(car prod) ,(cadr prod)) ,(caddr prod))))
-              (eval `(Assert (= (/ ,(caddr prod) ,(cadr prod)) ,(car prod))))
+             (eval `(Assert (= (* ,(car prod) ,(cadr prod)) ,(caddr prod))))
+             (eval `(Assert (= (/ ,(caddr prod) ,(cadr prod)) ,(car prod))))
              (unless (bigzp (caddr prod))
                (eval `(Assert (= (bigz (* (bigz ,(car prod))
                                           (bigz ,(cadr prod))))
                ;; | a b | = |a| |b|
                (eval `(Assert (= (abs (* ,(car prod) ,(cadr prod)))
                                  (* (abs ,(car prod)) (abs ,(cadr prod))))))))
-          prods)
+         prods)
     (let ((common-lisp-slash nil))
       (mapc #'(lambda (pow)
                (eval `(Assert (= (^ ,(car pow) ,(cadr pow)) ,(caddr pow))))
   (Assert (= 16 (% (coerce -1 'bigz) 17)))
   (dotimes (j 30)
     (let ((x (random))
-          (y (- (random))))
+         (y (- (random))))
       (eval `(Assert (= ,x (+ (% ,x 17) (* (/ ,x 17) 17)))))
       (eval `(Assert (= (- ,x) (+ (% (- ,x) 17) (* (/ (- ,x) 17) 17)))))
       (let ((z (+ (% y 17) (* (/ y 17) 17))))
-        (if (bigzp y)
-            (eval `(Assert (= ,y (- ,z 17))))
-          (eval `(Assert (= ,y z)))))
+       (if (bigzp y)
+           (eval `(Assert (= ,y (- ,z 17))))
+         (eval `(Assert (= ,y z)))))
       ))
 
   ;;; remove-factor
                   (rf-1 `(factorial ,(1- i))))
                ;; check if  (factorial i) == 1*2*...*i
                (eval `(Assert (= ,rf (* ,i ,rf-1))))
-                (if (featurep 'mpfr)
-                    (eval `(Assert (> (log ,rf) (- (* ,i (log ,i)) ,i))))
-                  (eval `(Assert (or (> (log ,rf) (- (* ,i (log ,i)) ,i))
-                                     (eq +infinity (log ,rf))))))))
+               (if (featurep 'mpfr)
+                   (eval `(Assert (> (log ,rf) (- (* ,i (log ,i)) ,i))))
+                 (eval `(Assert (or (> (log ,rf) (- (* ,i (log ,i)) ,i))
+                                    (eq +infinity (log ,rf))))))))
        '(60 100 120 150 200 300 500 1000))
   (mapc #'(lambda (i)
            (eval `(Check-Error wrong-type-argument (factorial ,i))))
 (when (featurep 'bigq)
   ;;; addition
   (let ((sums '((1/2 2/3 7/6)
-                (1233211/2344321 10000/125897 25528682181/42163282991)
-                (12332112344321/2 1 12332112344323/2)
-                (1/3 12332112344321 36996337032964/3)
-                (10101/10101 101589/101589 2/1)
+               (1233211/2344321 10000/125897 25528682181/42163282991)
+               (12332112344321/2 1 12332112344323/2)
+               (1/3 12332112344321 36996337032964/3)
+               (10101/10101 101589/101589 2/1)
                (-100/99 -50/51 -3350/1683)))
-        (prods '((2/3 3/4 1/2)
-                 (1002004/2001 5/2 2505010/2001)
+       (prods '((2/3 3/4 1/2)
+                (1002004/2001 5/2 2505010/2001)
                 (-1002004/2001 5/2 -2505010/2001)))
        (pows '((2/3 2 4/9)
                (-4/10 4 256/10000)
                (7/3 -16 43046721/33232930569601))))
     (mapc #'(lambda (sum)
-              (eval `(Assert (= (+ ,(car sum) ,(cadr sum)) ,(caddr sum))))
-              (eval `(Assert (= (- ,(caddr sum) ,(cadr sum)) ,(car sum))))
+             (eval `(Assert (= (+ ,(car sum) ,(cadr sum)) ,(caddr sum))))
+             (eval `(Assert (= (- ,(caddr sum) ,(cadr sum)) ,(car sum))))
              (unless (bigqp (caddr sum))
                (eval `(Assert (= (bigq (+ (bigq ,(car sum))
                                           (bigq ,(cadr sum))))
                ;; | a + b | <= |a| + |b|
                (eval `(Assert (<= (abs (+ ,(car sum) ,(cadr sum)))
                                   (+ (abs ,(car sum)) (abs ,(cadr sum))))))))
-          sums)
+         sums)
     (mapc #'(lambda (prod)
-              (eval `(Assert (= (* ,(car prod) ,(cadr prod)) ,(caddr prod))))
-              (eval `(Assert (= (/ ,(caddr prod) ,(cadr prod)) ,(car prod))))
+             (eval `(Assert (= (* ,(car prod) ,(cadr prod)) ,(caddr prod))))
+             (eval `(Assert (= (/ ,(caddr prod) ,(cadr prod)) ,(car prod))))
              (unless (bigqp (caddr prod))
                (eval `(Assert (= (bigq (* (bigq ,(car prod))
                                           (bigq ,(cadr prod))))
                ;; | a b | = |a| |b|
                (eval `(Assert (= (abs (* ,(car prod) ,(cadr prod)))
                                  (* (abs ,(car prod)) (abs ,(cadr prod))))))))
-          prods)
+         prods)
     (mapc #'(lambda (pow)
-              (eval `(Assert (= (^ ,(car pow) ,(cadr pow)) ,(caddr pow))))
+             (eval `(Assert (= (^ ,(car pow) ,(cadr pow)) ,(caddr pow))))
              (eval `(Assert (= (bigq (^ (bigq ,(car pow))
                                         ,(cadr pow)))
                                (bigq ,(caddr pow))))))
-          pows)))
+         pows)))
 
 
 ;; ceil/floor stuff
 (let ((one-arg-floor-list `((0 0)
-                            (1 1)
-                            (-1 -1)
-                            (7.4 7)
-                            (-7.4 -8))))
+                           (1 1)
+                           (-1 -1)
+                           (7.4 7)
+                           (-7.4 -8))))
   (when (featurep 'bigz)
     (setq one-arg-floor-list
-          (append one-arg-floor-list
-                  `((,(factorial 20) ,(factorial 20))
-                    (,(- (factorial 20)) ,(- (factorial 20)))))))
+         (append one-arg-floor-list
+                 `((,(factorial 20) ,(factorial 20))
+                   (,(- (factorial 20)) ,(- (factorial 20)))))))
   (when (featurep 'bigq)
     (setq one-arg-floor-list
-          (append one-arg-floor-list
-                  `((1/2 0)
-                    (-1/2 -1)
-                    (40/3 13)
-                    (-40/3 -14)))))
+         (append one-arg-floor-list
+                 `((1/2 0)
+                   (-1/2 -1)
+                   (40/3 13)
+                   (-40/3 -14)))))
   (when (featurep 'bigf)
     (setq one-arg-floor-list
-          (append one-arg-floor-list
-                  `((,(bigf 7.4) 7)
-                    (,(bigf -7.4) -8)))))
+         (append one-arg-floor-list
+                 `((,(bigf 7.4) 7)
+                   (,(bigf -7.4) -8)))))
   (when (featurep 'bigfr)
     (setq one-arg-floor-list
-          (append one-arg-floor-list
-                  `((,(bigfr 7.4) 7)
-                    (,(bigfr -7.4) -8)
-                    (,(sqrt 2) 1)
-                    (,(log 2) 0)
-                    (,(log 0.1) -3)))))
+         (append one-arg-floor-list
+                 `((,(bigfr 7.4) 7)
+                   (,(bigfr -7.4) -8)
+                   (,(sqrt 2) 1)
+                   (,(log 2) 0)
+                   (,(log 0.1) -3)))))
   (mapc #'(lambda (arg-list)
-            (eval `(Assert (= (floor ,(car arg-list))
-                              ,(cadr arg-list)))))
-        one-arg-floor-list))
+           (eval `(Assert (= (floor ,(car arg-list))
+                             ,(cadr arg-list)))))
+       one-arg-floor-list))
 
 (let ((two-arg-floor-list `((0 1 0)
-                            (1 2 0)
-                            (-1 2 -1)
-                            (7.4 2 3)
-                            (-7.4 2 -4))))
+                           (1 2 0)
+                           (-1 2 -1)
+                           (7.4 2 3)
+                           (-7.4 2 -4))))
   (when (featurep 'bigz)
     (setq two-arg-floor-list
-          (append two-arg-floor-list
-                  `((,(factorial 20) 100001 24328776793998)
-                    (,(- (factorial 20)) 100001 -24328776793999)))))
+         (append two-arg-floor-list
+                 `((,(factorial 20) 100001 24328776793998)
+                   (,(- (factorial 20)) 100001 -24328776793999)))))
   (when (featurep 'bigq)
     (setq two-arg-floor-list
-          (append two-arg-floor-list
-                  `((1/2 2 0)
-                    (1/2 1/2 1)
-                    (2 -1/2 -4)
-                    (3/2 -1/3 -5)
-                    (40/3 1/5 66)
-                    (40/3 -1/5 -67)))))
+         (append two-arg-floor-list
+                 `((1/2 2 0)
+                   (1/2 1/2 1)
+                   (2 -1/2 -4)
+                   (3/2 -1/3 -5)
+                   (40/3 1/5 66)
+                   (40/3 -1/5 -67)))))
   (when (featurep 'bigf)
     (setq two-arg-floor-list
-          (append two-arg-floor-list
-                  `((,(bigf 1) 2 0)
-                    (2 ,(bigf 0.5) 4)
-                    (,(bigf 3880.5) 2 1940)
-                    (,(bigf -3880.5) 2 -1941)))))
+         (append two-arg-floor-list
+                 `((,(bigf 1) 2 0)
+                   (2 ,(bigf 0.5) 4)
+                   (,(bigf 3880.5) 2 1940)
+                   (,(bigf -3880.5) 2 -1941)))))
   (when (featurep 'bigfr)
     (setq two-arg-floor-list
-          (append two-arg-floor-list
-                  `((,(bigfr 1) 2 0)
-                    (2 ,(bigfr 0.5) 4)
-                    (,(sqrt 12) 2 1)
-                    (1 (log 1.2) 5)
-                    (,(exp 37) 37 316733577643313)))))
+         (append two-arg-floor-list
+                 `((,(bigfr 1) 2 0)
+                   (2 ,(bigfr 0.5) 4)
+                   (,(sqrt 12) 2 1)
+                   (1 (log 1.2) 5)
+                   (,(exp 37) 37 316733577643313)))))
 
   (mapc #'(lambda (arg-list)
-            (eval `(Assert (= (floor ,(car arg-list) ,(cadr arg-list))
-                              ,(caddr arg-list)))))
-        two-arg-floor-list))
+           (eval `(Assert (= (floor ,(car arg-list) ,(cadr arg-list))
+                             ,(caddr arg-list)))))
+       two-arg-floor-list))
 
 
 ;;-----------------------------------------------------
-;; Testing relations 
+;; Testing relations
 ;;-----------------------------------------------------
 (when (featurep 'ent)
   (let ((ones)
-        (twos))
+       (twos))
     (and (featurep 'bigz)
-         (add-to-list 'ones (coerce 1 'bigz))
-         (add-to-list 'twos (coerce 2 'bigz)))
+        (add-to-list 'ones (coerce 1 'bigz))
+        (add-to-list 'twos (coerce 2 'bigz)))
     (and (featurep 'bigq)
-         (add-to-list 'ones 101/100)
-         (add-to-list 'twos 202/100))
+        (add-to-list 'ones 101/100)
+        (add-to-list 'twos 202/100))
     (and (featurep 'bigf)
-         (add-to-list 'ones (coerce 1.01 'bigf))
-         (add-to-list 'twos (coerce 2.02 'bigf)))
+        (add-to-list 'ones (coerce 1.01 'bigf))
+        (add-to-list 'twos (coerce 2.02 'bigf)))
     (and (featurep 'bigfr)
-         (add-to-list 'ones (coerce 1.01 'bigfr))
-         (add-to-list 'twos (coerce 2.02 'bigfr)))
+        (add-to-list 'ones (coerce 1.01 'bigfr))
+        (add-to-list 'twos (coerce 2.02 'bigfr)))
     (dolist (one ones)
       (dolist (two twos)
-        (eval `(Assert (< ,one ,two)))
-        (eval `(Assert (<= ,one ,two)))
-        (eval `(Assert (<= ,two ,two)))
-        (eval `(Assert (>  ,two ,one)))
-        (eval `(Assert (>= ,two ,one)))
-        (eval `(Assert (>= ,two ,two)))
-        (eval `(Assert (/= ,one ,two)))
-        (eval `(Assert (not (/= ,two ,two))))
-        (eval `(Assert (not (< ,one ,one))))
-        (eval `(Assert (not (> ,one ,one))))
-        (eval `(Assert (<= ,one ,one ,two ,two)))
-        (eval `(Assert (not (< ,one ,one ,two ,two))))
-        (eval `(Assert (>= ,two ,two ,one ,one)))
-        (eval `(Assert (not (> ,two ,two ,one ,one))))
-        (eval `(Assert (= ,one ,one ,one)))
-        (eval `(Assert (not (= ,one ,one ,one ,two))))
-        (eval `(Assert (not (/= ,one ,two ,one))))
-        ))
+       (eval `(Assert (< ,one ,two)))
+       (eval `(Assert (<= ,one ,two)))
+       (eval `(Assert (<= ,two ,two)))
+       (eval `(Assert (>  ,two ,one)))
+       (eval `(Assert (>= ,two ,one)))
+       (eval `(Assert (>= ,two ,two)))
+       (eval `(Assert (/= ,one ,two)))
+       (eval `(Assert (not (/= ,two ,two))))
+       (eval `(Assert (not (< ,one ,one))))
+       (eval `(Assert (not (> ,one ,one))))
+       (eval `(Assert (<= ,one ,one ,two ,two)))
+       (eval `(Assert (not (< ,one ,one ,two ,two))))
+       (eval `(Assert (>= ,two ,two ,one ,one)))
+       (eval `(Assert (not (> ,two ,two ,one ,one))))
+       (eval `(Assert (= ,one ,one ,one)))
+       (eval `(Assert (not (= ,one ,one ,one ,two))))
+       (eval `(Assert (not (/= ,one ,two ,one))))
+       ))
     (when (featurep 'bigc)
       ;; now check complexes, these are not comparable
       (dolist (one ones)
-        (eval `(Check-Error relation-error (< ,one 1+i)))
-        (eval `(Check-Error relation-error (<= ,one 1+i)))
-        (eval `(Check-Error relation-error (<= 1+i 1+i)))
-        (eval `(Check-Error relation-error (> ,one 1+i)))
-        (eval `(Check-Error relation-error (>= ,one 1+i)))
-        (eval `(Check-Error relation-error (>= 1+i 1+i)))
-        (eval `(Check-Error relation-error (not (/= ,one 1+i))))
-        (eval `(Check-Error relation-error (= ,one 1+i)))
-        ))))
+       (eval `(Check-Error relation-error (< ,one 1+i)))
+       (eval `(Check-Error relation-error (<= ,one 1+i)))
+       (eval `(Check-Error relation-error (<= 1+i 1+i)))
+       (eval `(Check-Error relation-error (> ,one 1+i)))
+       (eval `(Check-Error relation-error (>= ,one 1+i)))
+       (eval `(Check-Error relation-error (>= 1+i 1+i)))
+       (eval `(Check-Error relation-error (not (/= ,one 1+i))))
+       (eval `(Check-Error relation-error (= ,one 1+i)))
+       ))))
 
 ;;-----------------------------------------------------
 ;; Testing infinities
   (funcall ASSERT-EQUAL+=-nc '(+ +infinity complex-infinity) 'not-a-number)
   (funcall ASSERT-EQUAL+=-nc '(+ -infinity complex-infinity) 'not-a-number)
   (funcall ASSERT-EQUAL+=
-           '(+ complex-infinity complex-infinity) complex-infinity)
+          '(+ complex-infinity complex-infinity) complex-infinity)
 
   (funcall ASSERT-EQUAL+=-nc '(+ 0 not-a-number) 'not-a-number)
   (funcall ASSERT-EQUAL+=-nc '(+ 1 not-a-number) 'not-a-number)
   (funcall ASSERT-EQUAL+=-nc '(^ +infinity -infinity) 'not-a-number)
   (funcall ASSERT-EQUAL+=-nc '(^ -infinity -infinity) 'not-a-number)
   (funcall ASSERT-EQUAL+= '(^ complex-infinity -infinity) 'complex-infinity)
+
   (funcall ASSERT-EQUAL+= '(^ 0 complex-infinity) 'complex-infinity)
   (funcall ASSERT-EQUAL+= '(^ 1 complex-infinity) 'complex-infinity)
   (funcall ASSERT-EQUAL+= '(^ -1 complex-infinity) 'complex-infinity)
 ;; testing lifts
 (let ((lift-types
        (remove-if-not
-        #'(lambda (type)
-            (condition-case nil
-                (coerce-number 0 type)
-              (error nil)))
-        '(int bigz integer bigq rational bigf bigfr float real
-              bigc quatern))))
+       #'(lambda (type)
+           (condition-case nil
+               (coerce-number 0 type)
+             (error nil)))
+       '(int bigz integer bigq rational bigf bigfr float real
+             bigc quatern))))
   (mapc-internal
    #'(lambda (type)
        (eval `(Assert (zerop (coerce-number 0 ',type))))
 
        ;; lifts are idempotent
        (eval `(Assert-Equal
-                       (coerce-number 0 ',type)
-                       (coerce-number (coerce-number 0 ',type) ',type)))
+                      (coerce-number 0 ',type)
+                      (coerce-number (coerce-number 0 ',type) ',type)))
        (eval `(Assert-Equal
-                       (coerce-number 1 ',type)
-                       (coerce-number (coerce-number 1 ',type) ',type)))
+                      (coerce-number 1 ',type)
+                      (coerce-number (coerce-number 1 ',type) ',type)))
        (eval `(Assert (= (coerce-number 0 ',type)
-                         (coerce-number (coerce-number 0 ',type) ',type))))
+                        (coerce-number (coerce-number 0 ',type) ',type))))
        (eval `(Assert (= (coerce-number 1 ',type)
-                         (coerce-number (coerce-number 1 ',type) ',type))))
+                        (coerce-number (coerce-number 1 ',type) ',type))))
        ;; lifts are homomorphic wrt negation (equal'ity needs not hold)
        (eval `(Assert (= (coerce-number -1 ',type)
-                         (- (coerce-number 1 ',type)))))
+                        (- (coerce-number 1 ',type)))))
 
        ;; infinity lifts
        (eval `(Assert (indefinitep (coerce-number +infinity ',type))))
        (eval `(Assert (= +infinity (coerce-number +infinity ',type))))
        (eval `(Assert (= -infinity (coerce-number -infinity ',type))))
        (if (comparablep (coerce-number 0 type))
-           (eval `(Check-Error domain-error
-                               (coerce-number complex-infinity ',type)))
-         (eval `(Assert (infinityp
-                         (coerce-number complex-infinity ',type))))
-         (eval `(Assert (= complex-infinity
-                           (coerce-number complex-infinity ',type)))))
+          (eval `(Check-Error domain-error
+                              (coerce-number complex-infinity ',type)))
+        (eval `(Assert (infinityp
+                        (coerce-number complex-infinity ',type))))
+        (eval `(Assert (= complex-infinity
+                          (coerce-number complex-infinity ',type)))))
        (eval `(Check-Error domain-error
-                           (coerce-number not-a-number ',type))))
+                          (coerce-number not-a-number ',type))))
    lift-types))
 
 ;; testing string conversion
                       cosh sinh tanh sech csch coth
                       acosh asinh atanh
                       erf erfc log-gamma))
-      (more-funs '(abs sqrt cbrt log log10 log2 
+      (more-funs '(abs sqrt cbrt log log10 log2
                       ceiling truncate round
                       ffloor fceiling ftruncate fround
                       next-prime
                      (eval `(Check-Error wrong-type-argument (,fun ,val))))
                  vals))
        '(;;logb
-          logand logior logxor lognot)))
+         logand logior logxor lognot)))
 
 
 (when (featurep 'bigz)
       (bigcs (when (featurep 'bigc)
               (list 2.3+1.22i (make-bigc (exp 1) (exp 1)) (bigc 0)))))
   (mapc #'(lambda (cat)
-            (mapc #'(lambda (num)
+           (mapc #'(lambda (num)
                      ;; zeroes
-                      (eval `(Assert (zerop (zero ,num))))
+                     (eval `(Assert (zerop (zero ,num))))
                      (when (comparablep num)
                        (eval `(Assert (= (+ (zero ,num) ,num) ,num)))
                        (eval `(Assert (= (* (zero ,num) ,num) (zero ,num)))))
                        (eval `(Assert
                                (equal (* (zero ,num) ,num) (zero ,num)))))
                      ;; ones
-                      (eval `(Assert (onep (one ,num))))
-                      (eval `(Assert (zerop (1- (one ,num)))))
-                      (eval `(Assert (onep (1+ (zero ,num)))))
+                     (eval `(Assert (onep (one ,num))))
+                     (eval `(Assert (zerop (1- (one ,num)))))
+                     (eval `(Assert (onep (1+ (zero ,num)))))
                      (when (comparablep num)
                        (eval `(Assert (= (* (one ,num) ,num) ,num)))
                        (eval `(Assert (= (zero ,num) (1- (one ,num))))))
                      (unless (comparablep num)
                        (eval `(Assert-Equal (* (one ,num) ,num) ,num))
                        (eval `(Assert-Equal (zero ,num) (1- (one ,num))))))
-                  (symbol-value cat)))
-        '(ints bigzs bigqs floats bigfs bigfrs biggs bigcs)))
+                 (symbol-value cat)))
+       '(ints bigzs bigqs floats bigfs bigfrs biggs bigcs)))
 
 
 ;;-----------------------------------------------------
            (dotimes (i 1000 some)
              (setq some
                    (or some (bigzp (random (factorial 20)))))))))
-
index 6c1df6d..3985da3 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
       (set-extent-properties e props)
       (put e 'detachable nil)
       (Assert (not (get e 'detachable)))
-    
+
       (Assert (not (extent-detached-p e)))
 
       (delete-region 4 5)
index 6bea45b..facaded 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ;;
 ;;; Synched up with: Not in FSF.
 ;;
 ;; floats
 (let ((forms
        '(1.0 1.00000 0.5 0.005 5.000005 4.0625 8.03125
-             9876.54321 10000.00001 12004.40021
-             1.5e+10 1.125e+11 1.0703125e+12
-             1.1e+15 1.2e+16 1.4e+20 1.45e+24
-             1.52e+28 1.55e+30 1.52105432e+31 1.5445633221e+32
-             1.7777777777777e+33 1.7777777777777776e+33
-             1.8999999999999e+33 1.999989999999999e+33
-             1.99999999e+35 1.9999999999e+36 1.999999999999e+37
-             1.99999999999999e+38 1.999999999999999e+39
-             1.9999999999999999e+40 2.000000000000000000e+40
-             2.000000000000001e+42 2.000000000000009e+44
-             2.002000200002000002000000e+48
-             2.000000200000200002000200e+50
-             200000020000020000200020.0e+50
-             12345555555555555555.999999999e+60
-             12344444444444444444.999999999e+60
-             1234545454545454545454545454545.000
-             123454545454545454545454545454545454545454545.000
-             4444444444444.55555555555e+100
-             5555555555555.55555555555e+102
-             5555555555555.44444444444e+104
-             5555555555555.99999999998e+106
-             50505050505050505050505.0e+200
-             1e+300 1e+301 1e+302 -1e+300 -1e+301 -1e+302
-             1e+304 -1e+304 1e+305 -1e+305 1e+306 -1e+306
-             1e+307 2e+307 8e+307 -8e+307
-             1e+308 -1e+308 8e+308 -8e+308
-             1e+309 -1e+309 -8e+309 8e+309
-             ;; we should be outta range of double floats
-             1.00e+310 2.50e+310 2.55e+310
-             2.125e+312 2.0004500045e+313 1.2e+314 1.2e+320
-             1.22229e+320 100e+320 101e+321 102e+322
-             ;; we're still alive?
-             most-positive-float most-negative-float
-             ;; the following two may not work correctly if the number
-             ;; distribution has many subnormal numbers
-             ;;(1+ most-positive-float) (1- most-negative-float)
-             ;;(1- most-positive-float) (1+ most-negative-float)
-             1.0e+340 1.0e+350 1.0e+380 1.0e+400
-             1.2e+300 1.2e+310 1.2e+320 1.2e+400
-             1.2e+2000 1.2e+3000 1.2e+4000 1.2e+5000))
+            9876.54321 10000.00001 12004.40021
+            1.5e+10 1.125e+11 1.0703125e+12
+            1.1e+15 1.2e+16 1.4e+20 1.45e+24
+            1.52e+28 1.55e+30 1.52105432e+31 1.5445633221e+32
+            1.7777777777777e+33 1.7777777777777776e+33
+            1.8999999999999e+33 1.999989999999999e+33
+            1.99999999e+35 1.9999999999e+36 1.999999999999e+37
+            1.99999999999999e+38 1.999999999999999e+39
+            1.9999999999999999e+40 2.000000000000000000e+40
+            2.000000000000001e+42 2.000000000000009e+44
+            2.002000200002000002000000e+48
+            2.000000200000200002000200e+50
+            200000020000020000200020.0e+50
+            12345555555555555555.999999999e+60
+            12344444444444444444.999999999e+60
+            1234545454545454545454545454545.000
+            123454545454545454545454545454545454545454545.000
+            4444444444444.55555555555e+100
+            5555555555555.55555555555e+102
+            5555555555555.44444444444e+104
+            5555555555555.99999999998e+106
+            50505050505050505050505.0e+200
+            1e+300 1e+301 1e+302 -1e+300 -1e+301 -1e+302
+            1e+304 -1e+304 1e+305 -1e+305 1e+306 -1e+306
+            1e+307 2e+307 8e+307 -8e+307
+            1e+308 -1e+308 8e+308 -8e+308
+            1e+309 -1e+309 -8e+309 8e+309
+            ;; we should be outta range of double floats
+            1.00e+310 2.50e+310 2.55e+310
+            2.125e+312 2.0004500045e+313 1.2e+314 1.2e+320
+            1.22229e+320 100e+320 101e+321 102e+322
+            ;; we're still alive?
+            most-positive-float most-negative-float
+            ;; the following two may not work correctly if the number
+            ;; distribution has many subnormal numbers
+            ;;(1+ most-positive-float) (1- most-negative-float)
+            ;;(1- most-positive-float) (1+ most-negative-float)
+            1.0e+340 1.0e+350 1.0e+380 1.0e+400
+            1.2e+300 1.2e+310 1.2e+320 1.2e+400
+            1.2e+2000 1.2e+3000 1.2e+4000 1.2e+5000))
        (failures
-        ;; known errors (due to precision issues, not SXE's fault)
-        '(1e-300 1e-301 1e-302 1e-303 1e-304 1e-305 1e-306
-                 1e-307 1e-308 1e-309
-                 2.5e-310 2.55e-311 2.55e-312
-                 1.2e-320 1.201e-320 1.25e-320
-                 1.22229e-320 100e-306 100e-307 100e-308 100e-309
-                 100e-310 100e-311 100e-312 100e-313 100e-314 100e-315
-                 100e-316 100e-317 100e-318 100e-319 100e-320 100e-321
-                 100e-322 100e-323 100e-324 100e-325 100e-326 100e-327
-                 100e-328 100e-329 100e-330 1.2e-330 1.25e-330
-                 0.5e-306 0.5e-307 0.5e-308 0.5e-309 0.5e-310 0.5e-311
-                 0.5e-312 0.5e-313 0.5e-314 0.5e-315 0.5e-316 0.5e-317
-                 0.5e-318 0.5e-319 0.5e-320 0.5e-321 0.5e-322 0.5e-323)))
+       ;; known errors (due to precision issues, not SXE's fault)
+       '(1e-300 1e-301 1e-302 1e-303 1e-304 1e-305 1e-306
+                1e-307 1e-308 1e-309
+                2.5e-310 2.55e-311 2.55e-312
+                1.2e-320 1.201e-320 1.25e-320
+                1.22229e-320 100e-306 100e-307 100e-308 100e-309
+                100e-310 100e-311 100e-312 100e-313 100e-314 100e-315
+                100e-316 100e-317 100e-318 100e-319 100e-320 100e-321
+                100e-322 100e-323 100e-324 100e-325 100e-326 100e-327
+                100e-328 100e-329 100e-330 1.2e-330 1.25e-330
+                0.5e-306 0.5e-307 0.5e-308 0.5e-309 0.5e-310 0.5e-311
+                0.5e-312 0.5e-313 0.5e-314 0.5e-315 0.5e-316 0.5e-317
+                0.5e-318 0.5e-319 0.5e-320 0.5e-321 0.5e-322 0.5e-323)))
   (mapc-internal
    #'(lambda (str)
        (unless (or (infinityp (eval str)) (zerop (eval str)))
-         (eval `(Assert (= (read (format "%f" ,str)) ,str)))
-         (eval `(Assert (eql (read (format "%f" ,str)) ,str)))))
+        (eval `(Assert (= (read (format "%f" ,str)) ,str)))
+        (eval `(Assert (eql (read (format "%f" ,str)) ,str)))))
    forms)
   (mapc-internal
    #'(lambda (str)
        (unless (or (infinityp (eval str)) (zerop (eval str)))
-         (eval `(Assert (not (= (read (format "%f" ,str)) ,str))))
-         (eval `(Assert (not (eql (read (format "%f" ,str)) ,str))))))
+        (eval `(Assert (not (= (read (format "%f" ,str)) ,str))))
+        (eval `(Assert (not (eql (read (format "%f" ,str)) ,str))))))
    failures))
 
 ;; now testing bigz formatting
 (when (featurep 'bigz)
   (let ((forms
-         '((("%Z" 2) . "2")
-           (("%2Z" 2) . " 2")
-           (("%2Z" 200) . "200")
-           (("%+Z" 2) . "+2")
-           (("%+4Z" 2) . "  +2")
-           (("% Z" 2) . " 2")
-           (("%Z" -2) . "-2")
-           (("% Z" -2) . "-2")
-           (("%+Z" -2) . "-2")
-           (("%-4Z" 2) . "2   ")
-           (("%.2Z" 2) . "02")
-           (("%4.2Z" 2) . "  02")
-           (("%04.2Z" 2) . "  02")
-           (("%-4.2Z" 2) . "02  ")
-           (("%0-4.2Z" 2) . "02  ")
-           (("%Z" (factorial 20)) .
-            "2432902008176640000")
-           (("%40Z" (factorial 20)) .
-            "                     2432902008176640000")
-           (("%-40Z" (factorial 20)) .
-            "2432902008176640000                     ")
-           (("%.40Z" (factorial 20)) .
-            "0000000000000000000002432902008176640000")
-           (("%040Z" (factorial 20)) .
-            "0000000000000000000002432902008176640000")
-           (("%.8Z" (factorial 20)) .
-            "2432902008176640000")
-           (("%08Z" (factorial 20)) .
-            "2432902008176640000")
-           (("%24.8Z" (factorial 20)) .
-            "     2432902008176640000")
-           (("%36.28Z" (factorial 20)) .
-            "        0000000002432902008176640000")
-           (("%036.28d" (factorial 20)) .
-            "        0000000002432902008176640000")
-           (("%0-36.28d" (factorial 20)) .
-            "0000000002432902008176640000        ")
-
-           ;; now the same with the %d specifier
-           (("%d" 2) . "2")
-           (("%2d" 2) . " 2")
-           (("%2d" 200) . "200")
-           (("%+d" 2) . "+2")
-           (("%+4d" 2) . "  +2")
-           (("% d" 2) . " 2")
-           (("%d" -2) . "-2")
-           (("% d" -2) . "-2")
-           (("%+d" -2) . "-2")
-           (("%-4d" 2) . "2   ")
-           (("%.2d" 2) . "02")
-           (("%4.2d" 2) . "  02")
-           (("%04.2d" 2) . "  02")
-           (("%-4.2d" 2) . "02  ")
-           (("%0-4.2d" 2) . "02  ")
-           (("%d" (factorial 20)) . "2432902008176640000")
-           (("%40d" (factorial 20)) .
-            "                     2432902008176640000")
-           (("%-40d" (factorial 20)) .
-            "2432902008176640000                     ")
-           (("%.40d" (factorial 20)) .
-            "0000000000000000000002432902008176640000")
-           (("%040d" (factorial 20)) .
-            "0000000000000000000002432902008176640000")
-           (("%.8d" (factorial 20)) . "2432902008176640000")
-           (("%24.8d" (factorial 20)) . "     2432902008176640000")
-           (("%36.28d" (factorial 20)) .
-            "        0000000002432902008176640000")
-           (("%036.28d" (factorial 20)) .
-            "        0000000002432902008176640000")
-           (("%0-36.28d" (factorial 20)) .
-            "0000000002432902008176640000        ")
-
-           ;; testing base converters on big ints
+        '((("%Z" 2) . "2")
+          (("%2Z" 2) . " 2")
+          (("%2Z" 200) . "200")
+          (("%+Z" 2) . "+2")
+          (("%+4Z" 2) . "  +2")
+          (("% Z" 2) . " 2")
+          (("%Z" -2) . "-2")
+          (("% Z" -2) . "-2")
+          (("%+Z" -2) . "-2")
+          (("%-4Z" 2) . "2   ")
+          (("%.2Z" 2) . "02")
+          (("%4.2Z" 2) . "  02")
+          (("%04.2Z" 2) . "  02")
+          (("%-4.2Z" 2) . "02  ")
+          (("%0-4.2Z" 2) . "02  ")
+          (("%Z" (factorial 20)) .
+           "2432902008176640000")
+          (("%40Z" (factorial 20)) .
+           "                     2432902008176640000")
+          (("%-40Z" (factorial 20)) .
+           "2432902008176640000                     ")
+          (("%.40Z" (factorial 20)) .
+           "0000000000000000000002432902008176640000")
+          (("%040Z" (factorial 20)) .
+           "0000000000000000000002432902008176640000")
+          (("%.8Z" (factorial 20)) .
+           "2432902008176640000")
+          (("%08Z" (factorial 20)) .
+           "2432902008176640000")
+          (("%24.8Z" (factorial 20)) .
+           "     2432902008176640000")
+          (("%36.28Z" (factorial 20)) .
+           "        0000000002432902008176640000")
+          (("%036.28d" (factorial 20)) .
+           "        0000000002432902008176640000")
+          (("%0-36.28d" (factorial 20)) .
+           "0000000002432902008176640000        ")
+
+          ;; now the same with the %d specifier
+          (("%d" 2) . "2")
+          (("%2d" 2) . " 2")
+          (("%2d" 200) . "200")
+          (("%+d" 2) . "+2")
+          (("%+4d" 2) . "  +2")
+          (("% d" 2) . " 2")
+          (("%d" -2) . "-2")
+          (("% d" -2) . "-2")
+          (("%+d" -2) . "-2")
+          (("%-4d" 2) . "2   ")
+          (("%.2d" 2) . "02")
+          (("%4.2d" 2) . "  02")
+          (("%04.2d" 2) . "  02")
+          (("%-4.2d" 2) . "02  ")
+          (("%0-4.2d" 2) . "02  ")
+          (("%d" (factorial 20)) . "2432902008176640000")
+          (("%40d" (factorial 20)) .
+           "                     2432902008176640000")
+          (("%-40d" (factorial 20)) .
+           "2432902008176640000                     ")
+          (("%.40d" (factorial 20)) .
+           "0000000000000000000002432902008176640000")
+          (("%040d" (factorial 20)) .
+           "0000000000000000000002432902008176640000")
+          (("%.8d" (factorial 20)) . "2432902008176640000")
+          (("%24.8d" (factorial 20)) . "     2432902008176640000")
+          (("%36.28d" (factorial 20)) .
+           "        0000000002432902008176640000")
+          (("%036.28d" (factorial 20)) .
+           "        0000000002432902008176640000")
+          (("%0-36.28d" (factorial 20)) .
+           "0000000002432902008176640000        ")
+
+          ;; testing base converters on big ints
           ;; oct
-           (("%o" (factorial 20)) . "207033167620255000000")
-           (("%+o" (factorial 20)) . "+207033167620255000000")
-           (("% o" (factorial 20)) . " 207033167620255000000")
-           (("% +o" (factorial 20)) . "+207033167620255000000")
-           (("%+ o" (factorial 20)) . "+207033167620255000000")
-           (("%#o" (factorial 20)) . "0o207033167620255000000")
-           (("%#+o" (factorial 20)) . "+0o207033167620255000000")
-           (("%# o" (factorial 20)) . " 0o207033167620255000000")
-           (("%# +o" (factorial 20)) . "+0o207033167620255000000")
-           (("%#+ o" (factorial 20)) . "+0o207033167620255000000")
-           (("%o" (- (factorial 20))) . "-207033167620255000000")
-           (("%+o" (- (factorial 20))) . "-207033167620255000000")
-           (("% o" (- (factorial 20))) . "-207033167620255000000")
-           (("% +o" (- (factorial 20))) . "-207033167620255000000")
-           (("%+ o" (- (factorial 20))) . "-207033167620255000000")
-           (("%#o" (- (factorial 20))) . "-0o207033167620255000000")
-           (("%#+o" (- (factorial 20))) . "-0o207033167620255000000")
-           (("%# o" (- (factorial 20))) . "-0o207033167620255000000")
-           (("%# +o" (- (factorial 20))) . "-0o207033167620255000000")
-           (("%#+ o" (- (factorial 20))) . "-0o207033167620255000000")
+          (("%o" (factorial 20)) . "207033167620255000000")
+          (("%+o" (factorial 20)) . "+207033167620255000000")
+          (("% o" (factorial 20)) . " 207033167620255000000")
+          (("% +o" (factorial 20)) . "+207033167620255000000")
+          (("%+ o" (factorial 20)) . "+207033167620255000000")
+          (("%#o" (factorial 20)) . "0o207033167620255000000")
+          (("%#+o" (factorial 20)) . "+0o207033167620255000000")
+          (("%# o" (factorial 20)) . " 0o207033167620255000000")
+          (("%# +o" (factorial 20)) . "+0o207033167620255000000")
+          (("%#+ o" (factorial 20)) . "+0o207033167620255000000")
+          (("%o" (- (factorial 20))) . "-207033167620255000000")
+          (("%+o" (- (factorial 20))) . "-207033167620255000000")
+          (("% o" (- (factorial 20))) . "-207033167620255000000")
+          (("% +o" (- (factorial 20))) . "-207033167620255000000")
+          (("%+ o" (- (factorial 20))) . "-207033167620255000000")
+          (("%#o" (- (factorial 20))) . "-0o207033167620255000000")
+          (("%#+o" (- (factorial 20))) . "-0o207033167620255000000")
+          (("%# o" (- (factorial 20))) . "-0o207033167620255000000")
+          (("%# +o" (- (factorial 20))) . "-0o207033167620255000000")
+          (("%#+ o" (- (factorial 20))) . "-0o207033167620255000000")
           ;; hex
-           (("%x" (factorial 20)) . "21c3677c82b40000")
-           (("%+x" (factorial 20)) . "+21c3677c82b40000")
-           (("% x" (factorial 20)) . " 21c3677c82b40000")
-           (("% +x" (factorial 20)) . "+21c3677c82b40000")
-           (("%+ x" (factorial 20)) . "+21c3677c82b40000")
-           (("%#x" (factorial 20)) . "0x21c3677c82b40000")
-           (("%#+x" (factorial 20)) . "+0x21c3677c82b40000")
-           (("%# x" (factorial 20)) . " 0x21c3677c82b40000")
-           (("%# +x" (factorial 20)) . "+0x21c3677c82b40000")
-           (("%#+ x" (factorial 20)) . "+0x21c3677c82b40000")
-           (("%x" (- (factorial 20))) . "-21c3677c82b40000")
-           (("%+x" (- (factorial 20))) . "-21c3677c82b40000")
-           (("% x" (- (factorial 20))) . "-21c3677c82b40000")
-           (("% +x" (- (factorial 20))) . "-21c3677c82b40000")
-           (("%+ x" (- (factorial 20))) . "-21c3677c82b40000")
-           (("%#x" (- (factorial 20))) . "-0x21c3677c82b40000")
-           (("%#+x" (- (factorial 20))) . "-0x21c3677c82b40000")
-           (("%# x" (- (factorial 20))) . "-0x21c3677c82b40000")
-           (("%# +x" (- (factorial 20))) . "-0x21c3677c82b40000")
-           (("%#+ x" (- (factorial 20))) . "-0x21c3677c82b40000")
-           ;; test overflow
-           (("%Z" (factorial 120)) . "6689502913449127057588118054090372586752746333138029810295671352301633557244962989366874165271984981308157637893214090552534408589408121859898481114389650005964960521256960000000000000000000000000000")
-           (("%Z" (factorial 4000)) . "18288019515140650133147431755739190442173777107304392197064526954208959797973177364850370286870484107336443041569285571754672461861543557333942615617956996716745284831597317498818760937482804980419576512948720610558928129788097800620593429537705326740624453884285091743951756746144447362378722469436194575929579900114212973360658998073977714697261205048663725936337490404066097966637170254021348800944280342285355946649681316260163459743803577175903394733170076841764779082166891184529324230033414145497801832598218518406552257097392530024582738982919104406782168708871495603501905867399966298798534877747923179195791416504408054878974770308650707120878837624986576073340449414854578367383301715706358194127400849855604080473305196833482408079420964275187538889115296655522397723924887154624810659788321005620558369604778657904771918388054319251513981954296741688447246185021250402225010116433016818588036690180177691461779713104301640395708274734701186772756966064611023656528765138735704190876200697145804692125236821066805337175220605745377557452592208653939853278523841448314026548802309860391087939783218946129582647928430739985554883806198749831633640196211202756086016039171607744078776876219661603702759454887945247605749205543464095883664514960293873244842409803801480566600124415293789831496309554117113888561569494314926134470477513516416560102984058751906208865570183683850791317395702861350821464653600469443279077733978568711404244774089509216727922510660941411716412467443445414001188915966547283773988670739792818897314762082568914041952211779194055311405259158538932388745292324386826830135904886472292289993848482289254307628467614523292519222687689180219788377184005246290896703260524910362136627321135976515358528150143796798116836263053229733971612275184896139539613129329008449214723196703789119820971205922195513915546814704778682373487718946560822811623038853887054357316290622378472322045316639418491798517077275839637525427601452961835674484434498885698840692468550825765131610925966585339561854456154229048295742274725126218799745448031391826295221114381890600683208441558088271228618006589059444108806652992787854634497487158675770983422610936590600627170500972481399444145398522756870626097250230229195799277299921844954715690883242553569256657132515663544931830393317518828986443942138971609142621397646808351809694603734872977984148002699965137870448199866167162949256435040416146886823942144459105175033488395869910405207521329016842673168563837531518918339627724066152933627236730561155418227888673513937454508103826102827706121560330906016404162420051373313654570111102003319577878502216919170112074608722852376799943191590480651623958062982829452035227119036502426583752512199824089725611711059153935434418985109241404135069047109527514730648502064630431371185922523036941621026392783813435540195800531988645430344745298845640017082732623248838473771603478336326662579219137601422632057648758807935233915527562817942378675243919886800056209434731407685691942327092464101136254795499159351103542747723434544436366313104996373661654989465498180892716462805042227038222104784062626027480151567377841821316292095295686368619300417863327530764301323081902435971165925163513225511176258919471673437553320934916910573999020966087207663133871516530391787535755420348174519954013015999193335205032571176460105005716115305748669364682675265014310223271762807620242805617435594927890676408953057384890719681225840400396698155624793888816156585043604782961704971397764959404751358445856914581957186533573207690355894150776647727994156425641953755517727965486096675384222232344185537279888780570854092084221993660761154788359777439798490851148031275123759286793224660188593768897291749180357297185650430735063126035278321749629995702200115722386600046772883018963166273463715186812543356173550341233310175600817771447170656517505385258772069067139665478506263898380526394388218036388768999161538645432932116471146392562992204259450889291928261780531925618148311151259088519869787637913607866079920830781433275298468534248595471485354420794089854693167644320115900404444471266030942746376074187982809857292874382829734306879420308783010740784767155894363033186129183748698373599293267795620690003900348542140553208244771165593739117369452474295075445169488356550100854423929030967163401348223503674045821834526710830392520955478859202303175309815706259592416130388770535449570146586161954289529234209342432075461261173246383180702862172009624828852517861214008242944903162464816939278645210656431141653019224783906038062818006434258491952705341708781231767324026544165240012431457995565227331912056216396141277926932316783631899833106810492890045890947294731794016389385348294079360921757589715698098491612254898203787546124091057862387229987442131738499764391062422228395736099751277880661280909246369674792326056952220508861243875642482808175793303703933394191224832165950388337931626643339913192088808753619030386928808349931733881036690498513779587801764477865791351420222949860738228995728065763459283625096944678593378349990211317403358327367677358882377095918185840441346045760435580063918587956888086127034558064154832456098224664532422114583653763989534559801683261113731162039500068729224661509382267286483841867542303955164213391663536072749966590737898408144092699675796793165775891429992491955485860639629542416955757565163223827874193321274119938618709482020627749094917473754346320653165690129809741806883246764053966717253521140010801409998318494470531219051920354752556183478378238398583402765337923843167749738355049636714529840534145950376598809459294819192486096200503652538835417613002983933634477053826438814791235363934440952835213240806543802505241445900981152753843778634021300832293332432473400040109754281828950625464331409151961292319287863535740382445771128522343533054993071872524564127962306298218521662304206610010638488461150361786151832595182055013210238035059473479841417644445066550217093994746959565730463201996845756999575031950401331385688683576883429289274419202816101239071817771853612534620088858074904095239406471009098851796038360101243053736361346640211872570375441319261567131238168652234864182359667285536913841122976956009892970909409178865928472056691904571596961458646895132972589012090613887584436018692038947475932753085268106507554394567201654757930957224629573401948677157237825005540282635839895509019254240256916422227590032685003087320017232658420681209681389364174854034319152111706246564733896551636271748411627920466475472421243033805492052542237647091252577811952376244836844025673570936216945539206875730684120187779664758451508678786539887154966732995692212544207529457534936853900663520665102592278581210192104846016594846265525000394264201946315492667174670489454576610993722063668720936949698308641684437046485292906040368218708947194882991333823400676584552108673913669306118549159369734833071319506680872661886898225398171896329288732499509337836463164384614967690283284184136334006184670970038275153458133098776493171693249836721707632973537518273692928527497068121779606865163943692606596848941143683627629169873171114739189794632775706536177409526869936538136348369630762610163490694986911903178859927739423796596582439105912599204583810744740479342404550513976713360591833475711496976836332005885151231030818986389033126325119226309584818058301429763149472903925739659774337307109687940297813700796873400566095281249251559137923743113469044584820584542770746490047535898370961450995287930441328833542933636539386097851378739174078158132593877463567524868470795313740375647059352650583871001646082364842709333314532933141725314262510333047099681128329792983694287727106008519184538377065089964546579000542260452715147077137452076302879112802094308224402060706282308208678850263037733351444756065285721900833083634023860920356321356382318484421995141074387149942542550133039926139155010190614633196727199469768170121209097613598302048321148497175007150184555423280152476407230065108963493864309805262458731715886593175689747530567359088332598961192319881186961400055356294945140450806114214490420494488195417136403967132286869444062615622815233336396279517485469862880809956041938378161336156979526713793454354319018535526139196959277008828634440008764782171726908279132449346924807112458895951881542382952497102061566169481361027449429416228859029591798532192088531772405831332410104172391828682208239266557146168642210154401086974397003647170356217905465594944933170065175291981240572835024374361017977695084363373226470846255498368067535698751768103817520605779489720985090002595078926475029239124403277040719184010486962844211160986922952144938430963756963408787147933184107904312838985994963982784496688190643908936394858404598837762653245968848299901455260080572627872653099337092686312650606546084656202210845053932679131706841390889951865628810708670194485207654079244417321332232196041180225814997707988397637369268804955010409293139079608620689856756139863786355461818276369292665568749282154818479663283704713663666842236273009790537968973379093662517795316051746410279831975339791651704861188979834156418998505732384020730350075052669695594594753081616632885311572351609352631187129393729557398993321794518158269658073683417584260274184235030846683698193879109933863561435059993549597333514217973995915742796206889856584584493875193805504685107321011420502217815128118404137521250590361329385146997427292035829509205811367395885622247504950811752188165627552137681095618860955664505372763469788466067973748736658759105548049054658237200096293754479296344115915560231138432518248450383276234795400180535655551222536669390799317067896797756236783441752907948891802488298281245615590113512482344591092230909649423933991714557108941323849548468680509335203770970493785006636718394242326057416155509029270066096293813080877339787718442773014833232754755736783313789547145535129557193581885962158684756484475219230828423777756012721234731368785218564362953263092286535139160440838713013861328416662947756104857391740722209360021068158824717926850831589591367302143596625426553706038593255843919505223140871543995210720444637571268651195165483531243799087083070940544241515809139594158704843980567202482856647644447362604252961907705738740354460336586792214638225365973993001974668174157206242597452556046629209551599663117912609702944345176608757619561247872050409609062772362769045711709729061066411540898769707847042980034982033351136308779676287974627667703893888026848748953201438481632037717854462054861859986684636917120883602793194058658599425778515519713798214407689849211487929150179918547200558584524139792439377469676039518101451697712860634235352474290575260172151562129240720796835619967878383018961055921622371480562682714603085506932806187937976625431071742833007749235636990700120567425836156233607547500827789537909071263596294926763891075439575973972560478399510790078797663071024149826759934524980569432847819403219226207098701759952415628476519584752248050578584198211799092030838909208236225141975964892778944163008811179723219354847713753084628828883321692575327835658786892010648865205021985527642612795652759365359359048052205587306960853879351302215329380382709288672566169552660197788055450054177652374955319992805345989662399494012874012278677451052584166987084866267245492968785684175508510910492913793478551456991152291522750377308973310200505007906906671435839262115546753934391579860133029544403932422271218975046896384482252108820546415274174791693426071019927278518520520164621127271231748277979659289204850823018535192067323372368224831050642902153626845618478009622824733150764188329304815843651352730897836727021023023627320228373645802602496000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
-           (("%b" (factorial 4000)) . "1100101100001011001001011100101011011110010001011001110111110101011001010010110110101010111000000111101100010000100001101111110011100001111110100000010100011101111011001100001010001000111111111110110001111011000000010110101110111001000000010100111110010000010110110011011101011000111000111000111000111111001100110100011110101101011000110000100011000001000001100000000110100110000100111101011011111011101101010100100010010010101000011101100001101101100000101111110100011101101111100100101101000111000001001101011110111110110101111001111000001011010000110001001101101100000001100101011000010100110101011111011110110111111000000010100011111111111001010001010001000101001001111011001100001000110011010011101000101110110000000001111000010111101000010001000110000111111111101100110001100110100100110101111011110011001011011000111010010010111111001000010110010001001010111000110101111110101110010101100100101101000111010011100100001011101000100111001110000110001111101101110101111001101100100010101000100001110010011000101001100011001011001000111101110001010001000000000011100100111001001100111110001110000110110000110111111101000110100111111000111001001111011111011111010101100011110000010110010101110110010101111011101000000010110001100001001000101010000101110010011011010010000111100001010100111011011010011110001011110001010111000110110010100110011000001101111100001011110010011000110011010001011000100111001000101011000110101100000000101100110000011010100111011011101110101100100111110100001101100100001000101100100100101111001001101101110010100111001111101111010001110001101010111010011000000110001111011100110000001000010111110100011011111010000100100100110111101001011100100101100111101010011100010111001110000101110111001010000001010110010011001111010110100010111100000111010010110000001111000110000100011111110010000101100010100110010101100110111001101000000110101101001100111101111111111111100010110001100001000001100110000011101000110101100000010001010000010001001000001011111000101011001000100000000000001000111000010010100100010110011110010110101011001110001110001101011001001101101110101110000101110011100101001011001000011011001010010010100101110111111000100110111000101101100000011101011111010010110100110100100001110100000001100010101000110011100101000000000111101011000000011100100101010011111110010000101000100011101011001011100000101001111001011011110110110101010101011100101010000011010011010100100111111001000101111111111101000000011001110000011110101010010100111111101111101011101100100111011010110011001001100111101011111000011010111111010011110100010011011101000100110011001111101100010011010001010001101111110011110111011111111100011100111010001010001010010000101100110001011111011001110010010111000110010010100000100000000011100110001111001011101111001110101010000100001100010001010100010000100000101111001001100011001100001110010010000110001101011101110100110101101000110011000000110010101100010100001010110011101100000101100110010100011100001101001111001001101000110010001110010000001100010110111011011011100010100100111001101000010101000000000110101100101111010011010100110001011000101000101100111100001011101110101001100001110011111100000111000100010101100010100000011001110100001011111011101100000110001110011001010011101110001111011110001100011110100010100101111101001000101000101100011110111100101001101010011001110101100001100100001110111010101011111011110111000000000001111101010010011001000100010010110100111001100101110001100010011101110001111111001101000101000001011111011000110111111100111110110101001011011101111010111010100111110100101001011101010110010010011100101011010101011111001000110110001110101001100010100010011110011100100101010011011110110011010111000111011100110011000001001100100101010010100001111110010001000111001110010100100110101011111001001100001001000011000010011110101000110000000110010010101100000000010010111110000000101101000110100000111001010011110001101100101010010011010010100110001111000011100110110101101001001000101001001010110110110010100011110001111100011010000111001101010001001010010110110101101000000101100101111000000110100000001001100100100101101111001111011001000000110101010101100010000000001000000001001111111000010111010010000101100001101100110010010101101000111110010100101011110011101101010100010100000111100100100111100100111001010011000010010011100101001110010110100001001010010010010100001111010010110000110111110001110001000000011011010100111000011101101000011100111000011000100100001110110100111001111010100000000111010100010101101101010110010000110101111000100110000101101000101010001110101010001101000011000111010111001111100101000010100000110101101000101010111110101001110100001101110100111100010011100011010100011111000010000000111100110010001111000110100011110001100010000110110011111010100001001010000001010110010110111010011000110011000101001001110011110011110001101010011000000001101111010011110111110100010000010111011111111111000111101001110011111010010111110001010101110110010001001100011001010110000100011010100101110101011111110010101000111010001100011100100101111011111101011101100001101010010011111001001001111100101011101110000110110011010010101000000011111101000111000011010110101111110010111101010000001010111110000010011000011011100010010000110000100010001111011100110101111101100010001111011110100110111111110010110000001110111110010010000001101011010101010010010100100000110010011101000111010110110001110001101011010000001101000110000000101010011111110111111001110101011000101000110110000111111000010100011001001001110101001000011111000011100000001001111001000110100101100111010110110011110011101010111100100001111100000110110111111111000101011110111010001000011101100101111001001100100111000111010111100000110100001010101010000000111111100100011011111011000110101101110001001010100111000001011011001001011100101010111001101001101000100111000001011110111000010110111100101111010111100011110000001110100111100000010011001111011010000100000110001100101010100000101001111001100110101110111110001111011100100100000110000000101101011010011000011011100011101110000110000111101011100010010011000111110111101000101010101000011011101010111011010100000110000001101110000100001001010110100101011010111010101010010000110100001111101011111010010011011010011001100101110110001100101100101011101110001100001110100000010000111101011011110100100111010001011101000101011011000000011000011101011111011000011001100100100001010110010110110001110010101101001011001111110100001101011111000100100000100100111101101100001000001101111101000011011101100000011001010101000011001011100111010000110110011011011001111101000011001000001001101110111101111101100011110100011110110011111110111010110011111110100110001000110110101100011110011111001010111000111010100011110110001111011111011101000100001101000010101110011101100001101011000100100111110111101110111111010011000110101011000011100001011100100100110010101001101110101111000000101000111001110101110110110000000011001100111010011100110010000000111011100111010011110100100010101010001100000110001100101110001110011111101110000001111101100111101110000111100100001011000000101100110001001001101111111101001001111101011000001011011010011011101011010001111010010100010110011001110011101001010010011111001110000110100000110100101010010110101100011001101001011010110110001011110010011110100110100111111000111100100101101111000101100111100111100100111110010111110000111001001000000001110010011100000101000110110000111001100000111000111001100011010110100101101110011000110100110101000110101001111100101000100010001110001011001011011001110010010101101110111100101000110101101111101010001011110100100111000000100011010000110100010111100100100111111111010000111100011010001110000100010010001010101000111111101001001011011110101000110010010101111101000000100101100101101010100000111101010111011010011100111101001010011001110011000001110000011111101000001011010110101010101001111001011011110111011110100001111110111000100110101000100111001111001100011100100110101011010001110111100000111000100011101000010010000000111001010000111010110111010110011001110101011000010000001101110011001011101011100010011000001101110101000110110110000101011011011100101111110111110110010101111101101010100001101010001100001110011010010110101111100010111011001000010111101100001000010111010100100010001001110100001010110010100011110110011000111101111110100101001101011001011010100111001000110010110001010011111111000011101001011011111010011110001000000001101000001000010010100111011100000011001110001011011110001010010001100010001100001010100011111101010110111010101101100110001001001001001010100000101001110100000010100011101000111001111001100010101111000011111101100111110101010100000111100011001000101111110110110001011110000101110100011110001110000010000000101001000100010001000010110010011001011110011100111101101100010101111011101000101111010100111000100001000011010010111101100110001101000000110010001000011010000100101010100111100011010010110101100001111011001011000101000010101001011011111011110110010111000000110110111100011000100101010001100110111111001011101011111110111011001000111010000001001011110111111101010001001011001101010000010101101101110000010011110000110111010100001101000100000110010000110011000000010100100001011010010111100100111001000110001010111111011111011001101101100101101011101111001100001010111011110010110100011011111100100111010100001111011011010011111110111010000111110111001000110001100101000001111100101001111101001110101010000100010011111000101010111000101011000100000000001000000010010010010010000101001110011110101000011000000010111001111011000111111101010001111000001010101001101111000101100001100011101000011011000111100000101011011100000001011011101000010011110000101011111110100010101001011001110001101010101001001111001111110110010111111101111001001100110011101011110001101000011010110111100101100110010111001000101011000101101001100111001111101100000110011001000001001111001000100010010110111111010111110001110011011000001101100010010111000100000100100010111100111101001001111101011011110001110111101000001000001100100101000111100010001101011110010100000011010010011100100100111010010100001111111111000001101101010011101111101101011010001000110111110010011010101101011001101100001111100110101000110111100000101101000011011111110110001101110011011011100111001101001001100110110001001101001100001011111011000110010110000111110011001101001011000010111101110001010111100111101011011001001000000000001011011001101011000010100011111010110110110101000011011111010100110001110110011101010010101101010100011000000101011011000101111000011011001001110001001001101110111101011101101111010111001111110011111101100001001011110101110111011111110100001101000000110101101100011110000101010000011100010110100101010101001100000110110001100110011000001101001101001010011100010001100111011010010001110001100001001110101001000111100100001100001101000110010111011101101000001001000011110100011010111110010010001010011000110000101011110101010101001010111011100000101101001001001101101000001011000010000000111110110100000001100000101101110110001100011011100101001001000000110001100001000101011111011100011100110100111110111100101000001010100101011000111011000110100101100111110100111001101010100100101110111101000111001001111101001110000110111100101100011110101011011010001001110000110101011010001101011010011111000101100010101111111110010010000011111001111001011101111010101110111100100100011001110010111001111011011111001000010000110111100000001011110111001010010010001000011001110110010110111000000100000100000011001101010011101100101110010011100100000100110111100110011001001111010111111011001100100000011110010101111000101100100100110110000011111001100011001011100011010010001100011111100101101011110101011001111110001011111011110111110100101110001111110110101001111000000111011110110010101111110000010011010000001110100011010010010100111010100101000111110110001011100111011011000001100011101111101100010000100010011111110010111000101000011011100110100100110010000100110001010110010100010001001001001110111001010110111001101101110110011001100000101101111111110001110011110111100011111110000110100011110010010011100110001100000100110100110101010111111100111010010010110001100101011000100110001100110000010000001110001110100010010001011000010111010100011011111001110111001010011111010000101100001110000111001111100011101111011001100110101001000000110101011001101001001001110111001101011101100010101100110000100111000100001100011111110001101110011101001011101011011110101110000000010010111011111001011100111100101111010001111101000010000110001101100110001001000001100001000001010110101111110010011001111110010011100100001100000111101110001010110010110111101101010011111000000111000101001011111110010111100010101101110011100110000101100100010100001100110001111010111000010100101101110001010000001010110111110011110001100011010000001000100010101001000101101010101111000100011001000000111100000011101110111001101111100101101011100011100000111001110110101010000010000000001111111110111111000011010000011101001000010000100100111011001010100000000001101011110001011111010111101011001111100000110000000111101100010100000010110000000101010000000101100101110111011011100010000111000000010111001001101011110011100111001101111110001101011000111100000011100000000101001001001011100111000010110001010110110011010100000000100100110001101001010011111111001100011010101101010011011010100111000110100100100011100101101111100100101001110001000110010101000110110000101000001001000001011000100010111110100101110000101110100100101001001101001001011111000110101111110011001001000011100111011011100101110011000000000010110101100011001000111010111010000000101110010001101000001101001101011111110110110010011110101010010111001000010001010111100111011010001000011100000100000101111111011000010101100110000001110000011110101111111100000010111000011110000111011101001001001110100110011101000100100111100111001100000100101111110101011010101100110001000100101000001100010101011011010011111100011110001010111011000110100010101100001010101010110111101111010001011000100110111101110101001101100011000011101100100111100101000011011111111110010111111101110000100101001110011111100000001101110010110111100010000110010111001111000111001000001000000001110001101000000110111101111100111110100100111000101101001101011100011101001001011011101011010011101000101001000001111110000001111000001010001011101011110001100011100011011001110101011100010011011101000110011110011101001000101011011110010100101010011000011010011101100100011101011010111001110010001000110111010101110111110100101001111000000011110011100110001011000111111011011001011010110000110010100110001111101010000010101000100100111101111010010111011111111010101000110011011110011010000101110000010110001001100001011111000001011000111000000110100111100000011000001000111001000101010010101001111100011101100011111011011101101011001010101100110011010101101111100101110000010100011100010101010101001010010011101110111100100001010100011011000111000000010011001110101101111010111110010001001001000000011000010110001101111100001111000000001011111100000100110001011010111010101000101100110001111010011001000001111000000011110000010010001110000001110001100001011000011111000111101111000100111100010011010110110001101110111101001100001101100010100000010011100000110000111011001100100100001000011101000011011111011110010100100100010000001110110101111001100100000010011100010010010001101010110111111111001011100001100111110111011010000001001010100111111001010011010101011001010011011110111001110011111100111010000010001001000100101000010000110000011010000100001100101110111000011100011100111111010011100100010001100011001100011111111110000110100110000010001011111001111011100111010100000111100101001010100100111100000100100000101001111111110110100011110000100101100100011110000100100001001001011111011111000111001001101011110000111000000110000100110100001101000100011010110001010011010110111111001111110001011000011111100000011011010000011110101011101100000001100010010011111001101100011101000010010101111110111100000011000111000110011110101101011100110111101011111010000111011100101010110010000110001001011101011111011111011010000000001011101011000100110111000111111001110100111110110001100100011000011001001011111000100101101101001100010100010001110010110010011110111000010110011110110110011110110111000101101101100000101110111110000001110011010110011010111001101010001101111011011001110101010000000110010101010010010110010100110100001011001000110110110110111011111001101010011011110011001111011001101000111101101110101111100011010011101010110101000110010001000111100111000111110100100100011110010111111110110110101000111000001011110010110001100011011011101010100011001100101101010100111000000001100111110011010101101000101101110111011000101011111100001010111110100000101001001110011010010100110000100010000100011100110000010001110010010010101100001011110101010000010001011011001100000101100100010110101000101010110011101001011001110011000010101101010000001101110111110010000111001001110110000010001111110110101000010001000111100110101110011111011100000110000010000001000001000001010000110110010101000101110000101110000011101010100110111101101100110101000010000100110100011010101010001110110010100111011011011111110101001110101000111100101110110010110111100110101000101111010001000110111000111100010110000011001110010100001010011000110101101100000110101010111100010011011010000110010001010000100111100111111011110001110100101011011001100001011010011101010001100101100101001110110111110011010111010010001100011000111001100010010001111000110101111111111100100100011101110101011001010010000001111111000101011111001010011111111011101001101100100011011000100001100101010000000010110001010111000111101101110001110010001111001111110000110100111100001001100111011110000111001000111010111011001111111011010110011011010100111010001101111000111111110000111101101110101101011111111011011100011010100010001100100110000011100000100100000110000110000001011001011101110010000100110110101001001001111011101101010111111011110011001100101010011110001000111111000100110001111100111001000100001100010111011111101000110001001111111110111111111110010111001001010101000100110000010001000010000111101110011010111101111000010010111111100101010000111011010100011101001001000101100111111000100011001001110000110100111111101100111100001110000010011010011100000111001001101001100100010100011111101110001011010100100111100010100111111011001111000101000011010111011000010001000101110001110101011101100011010010001010101001001110110010000000011000010010000000000010000111010001101001010100010110010110100001101101101101011111111011011001001111101100100010011011101111111110001010101100111010001100000100111010100110001110001101100101110110001001001111001111010001011101100010001111111001000110010010100001100001000100111000011111111110110001111100000101110000111010000100111000100101000000110010000001111010101001010101000001111011010010011001110110111010010101110101100110010100011000100011100011001111110101001011111100100010000000110000101001101101011111100111100101011111111100000011111111010000001101100011011110101101100001110001110010110000100111010010100011110101001100001101011110110011000001100101100111110101111011001000001110111100010000101011100101110001111110010100110001000110011101010110111001000011010100010011111011110011000110111111101001100000101101111100100100000010001110011010100101010111011001111000101101000000100011110001100011000000011000110110110011001001100101000001011010110110111101001010100100010010110100111101101001001000110011100101110100100110011000110110110100101001001001101100110110011100100011110010011010001100001100101111000111111111010111011110110100111001101010100110101100001000110011010000111000000001110101111001111100100010010010100111011000101000000010100111110110000110001101100011011111111111100110000001001101100001110010101000100100100011111010101001001101000011010101100100101000110111110111101101100010000101110100001111110000010110111011111010000010001011011000011111010001001000100010001110111100111000001101111111111101101011011001001111101101111101100000010101010100101011110011101111101000100111000111000010111101100000111100000100110011011011111110100001100001011110100110000001101111001111010010001100001110001000010000100001110111011101111111101111111101110110110011101010100010000000010111011110010111010110110010110010101000000010000011000010000101001100000000010110000010000010110010010100100100111000011001100010110101000101100101110011000011010100001100010011100011111100101100010101010101001100101101110101101110110100001100110001111010000011011010100011100100011001111001010010111000110101001100110101000001010101000110011000010001100010100011101111101010011011011010010011101010000101001000010010100011110001000010111111000010101101110110111011101111001000100011101000100001100001110101000011101101001100001100011000000010000000001110000111000000010111100101010100110010010101000000011010011001111110100111100101010101111100101110000101011011011111100100101100001010110001110100001111010100000110011000111110101001100000111101011101111101010010010001111010001111101001110000001111101111010011011011111101101011101110101010111011011001110100010010111101111101001000011001001110000111110100100000000001110000001010011000110010100011000100100100101111111000100111110010000111010110110001000111111110001110011111011100010011011110011110011111110111001111101101101010101011101110111000111101010000101011000010000000111110001000001100100101110000011010010111100001101010100101100100010010100101000101001010101000001000011100100001001111101110111010111000011101011011100000100011010110110111100101001111110011100111010101111100000110010010101010111001111010110010001001010010110101010001110011001111001011001100110010010001110110100111001100110011000110101010000000110110000101111010011001111110010101000111010010011001110110110010010010000101101101100111000110001101100011011100101010010101010011011110101010100111111001010111010111101001111101001111001111110011011001111001110101000001011111010111000111101011001011101101000011000111110111110001000111011010001000110010011110001101110110101010100010110011111001010110001010010000110000110000110011111101011100101011100111101010000111011101111101011000001100001001010111110110001101111111100101101001011111010101011010111100101001011100111101100010100110000101000011000000011100010110110101000111101111001110000010010101111011001101011110100011011111110010100000111111011001101010111011101011000001001010011010001011100100111001110000000100100110001011000101100110111001010111111011101000010101011111001001111101101111011011101101011000000100110010000010111111101101101101000011000111100011000100011000011000000011111100000110101011101111001010010110010011001111011110000000001111100011110000110011100001000101011101110111110000110011100011101111100000011101100111111011000000101100011101110111101111011011101010111011001110110110011010110101111110101010100010111100110010010000000110010100101011111110101001011111011010110010001000001010011111011010110111101101101111011000100011011000100010110001011110110010011001111000110001110011010001010111000011011010111011110000011100011110110010100101001101111101110101110010111101001110110101110110011001000000110110000000001000011111010101110101111111011101101101100010000000100111000100000110110011010000010101101001111010100000101100000100100011010111101100011110111011011000010100100110100110101001010011110110011101010110000000101001010000110110111000110100100000000011000110101100000000001110010110000001010100100001110101100100111101100100110111100110100111111111000011010010011010000001111100010110100001011100010000010100110011101111000011011100001011010010010110001011000001110100001110100101101011010000101011110111001111001101001001001111100101000110011101001111110101111100110101110100101111101000111110010011001100110001001110100011100000001010000110110010011101110111001001001011101100110000111110000010110010001000100111111001100010100000011110011011110111000000000101111011110111010101110010011011011100001100001001101100011000010110011000101100001110001111100000010111100001110101100110100001100000011100110101001110110100100011110111111001001100100111010111010110110000001111010110001111101111100100010110001011001111000001101011011111101111000010010010111011100110111100100110010110111000001010100000001101010110001010001001010011010000111110010111100000110010000110110000100011101110000101111110001101001001000010011111100001011101011001010100001000110000101001100001010101100101001011000111010101000001111000111100000100001111100011000000111000101010100111111110101010011010101011000111101101010011001010101010000111011110010111001101001101010100100110001100010001111110100110001100010100110101111100011101001100001101111111110110010010110100001101001111001100101010100011010100111111101100101100000010100110111011000001001000000001110100001110111011011010000100101011011100100011100111001101101101011110001011011000111001000001000101111111100111100000111011000100111100101111010011110000110100110011101010000110110101101000011011011010110011110101110110000011110101110001110001001111101111100010110100001010101000101000101001101110011001101111000100000000010100110100110011001010001100110100011100100101010001010001010101001101010101001001100010001011000111011101001110110101111111010101000001011101011011011101101011001000101011110110010001100011111111101100101111110111011001010001001000001100111010111111110001110110110100010000010011001101001111000010001010011000011011000101101000011111101100111101010110000100101101001111000000111100010110110001001001001011111111100000010110100100110010010010101101110111101000001010111100010100011011101001100000001100110001110111101011011101011110001110101011110001011100100101011010100000101010000100100110101011001011100111110011011011100100000111011101111111001010100100111111001001000101100001001011000011110000010100110000110010111011110111010111011100100011101000100111101110000010000110011111110101010111100000101001101111100010110101000100111110000010011000100000000101010001111010100011101101000111101100001110010101100100011101011011100110011001000011110111010100101011100110100101000110001100100110001101001000101011001110011010011111110001001010101100101100000010111110001010001010100110001000101111110011101010100001011100010010011001101000101011011111101111010110010111100010011110001100001110110000000111101011000001100010100010110011010100011110000110110100001010000110111010011000100100011101000000000101110101111010110000010010111101100011101000110111010111010000101001100110011011010111111001011010011110000101001101001111000000011111001001110010010111101001010010001001000011100100101010010010001101111111011001000011010101100010111001001010001000001010010011101101111011110111010101110001100001000101001100110001010000011011001100001110101010100001100000110011100111101000000101100010101001010101010100010000000101110111001000100010110001110101010000001111100101101001011011101100110000000010001100111010111000000100110110000001010011001011100011101000001000010011110100111100010100001000000010011000010000001101010010100111110011011101110011010001111110001000001011110110001111101001011111100001101101100011111011111010110011000000101010100000111101001001010111010000100000100001100010111011110011110000110011010001100001110100101110100000010000011001110110111100001001100000000010011010011010001100110100110110001100101001000000101010011111010100011010101001101100001110110011000010011010011100100011000100011000000000100000000100110001010101111011100110010100111101111011010010000101001011110011110110000010111010011111011110001000001110100110001011110111101111110000001001110101100110010101011111101000011011000110011011010010011000011101010100011101001000111100001000011100011000101100001001001011101111011100010001101100010110001101110111111100001111011010011001111101111011010000101110101011110011110011101000101000100100001101101000100000001011110010000001111111011010011111111111011100101110000001100000011011011101101100010011110100011100101111011111101010101010000011011100011101111011000010011000001111011010101011111001010001110000100101110110000111001011000010100001010000110110111001010110010000100101101110010110010101011000010100010101111010110111001011011101100001010010000111100101111100111011110000101010000101101000011111110010011011100101101100000011011100110111000010110100000000010111011111111110100010000110010111110010011010111000001010111110101001100100001100000100001100101001010010110101000000011111110011011111111100111100011010101111110100100010010000101110100010010101010101011000101001100110101001011011001011110001000101101000111101111110010110101001001001000000001000001110101000111101100111010101110000001001111101110100001000011001011100111010011001001010011100110001111101100111100000001001000100101011011101011100100110111101011100111101001100010001111011101010100101101101100111101101010100011011111010101000111110011011111010001100000000010000100001000010010011100100111100101001110111101100110100011010101110010001011010111001001011000001100010000011000001100010000100000101110000000100100101000000100010011000110100001111011011111111000010011000110100100000100001000001110011101101100100101110101101110101111110101101111111101010011011110001011111010100001010110010101101100111001110010000111011101011100010101100110000100101000110111101101001011001001101001001011010110101011001000011111011000011001110101010000111111101100110001100101100111011111111110001111011001101111111111100111001100101011011011100000101111010001011101011100101000101110011100110100111001000000000110100101001010111010000101000010000110001111110011101110100100111101010101010101011000000001110000100010101001000011100101011111000101111100100100110100100011111111010110010101111111101000100010100110101001001110111011111000111000000101000111011011000111000000001101111100011001010000010111100001111100101100010110000110100110011000101101010101111101110001000001101010100000010000100010001100111100111010001010110101111011110001001101111101010101011101100101001011000110110110101010000001011000011001101100001010000101010110101111000011111000011101101000001111101100100001001110001111101101010000110100010100010110101101000010111010111100010111010011110000000000010000100000100001010111011000010000110101000001101010001111110110101110010101000001011000100000110010000100110001110100001011100111010111101110101101000101000000011000011101011010100100000000011100000001010110000000000000011101011110111110101001010011000110010011101011101000100000111110010001001110110100101011101001010111101100011110001011010100000101000101001100111000110111111110100101111111100000111100100100101000100010000011001000101010010110101011011110110000001010110010100101101001011010011111100101110000111101001100101001000110000000100101101110011000001000010011100010001011110110001011111010011001000101110110100000011110100111000110110101101000010011000011111010101011100011101001010010000010011001011011000110011001000100001010000000111111011100101101111011011110100100010010100001101011110010010110111100011110010011100111010011010111010000100010111101010010011000110111101100101010000000110011110100110010111111111110101001001110110100110010111010110110010010001110000110010011000011001111011111100111001110001110001110110111011100110110111001000110011000100100010100000101111010110110001001111000110000100010111101100100011110111000101001110111101000101101001110111111100001000111000010110110001100010101110001010011001100101001001110011111100010001000101111111100101101000100100101010111001110100111111000000101111011111011101100001111000111111110001101111101011011100101111011011100010110011111111110010100100000000000110110101110010100011111111101111001010110011111110111000101010011111001111011100001001011011011010111100110000110111000010101110100111101110010101000011101101010110101101110100111011001101010010110111101101101110110101101100001101001111011000000100000100010100001001001011011010101100000111101111100111000000111001111011011000010101110101010010011010101010011111111101010011101101001111101000010001111100001101110010001001010100000101000110111110001000011010011001101111100011011000110110000100101101111011000111100111110010001000100101101010001011010001011111011001101001001000000010100010011000000111000011110000110010001101110101100111001111101010000001000110001000101100110111100100011010010101011111001000110111011010000011011111101101101100101100111010001110010000110111111000101010011111110011001011001101001110011101001010111010010011000010100111101110000101101011000000111101111010101011000011000011101111100001110111000001100011000111111111111101111111101110010000001010001000010111000101011001111000011101110100010110010100101000011100001100100111010010111001101000000110000101110101001100101000110000110010001000110100101010011110001111110100111111101000101000001010000000011001111011110011011100000101011011001101010000011101111100111000000011011011010010100111001110111101011110011100001000111010100000000100011110011001010000000110110011011111001010100011000001011010100010111011001010000000010000001111011000001000011010001111011011010101011111001110111100010100100000001101111111011111000010110110101001101010001010111110000101011101110101101101001111010011011001111111001101101111111100101111011101011111000011101001110000010011111001001100001010100101101100000011111100100000010011000001010101010001110111101110001001010100110101010110001110111111011111001100011000011000110010100111111011111101011111011101111001000010111100011111001110100110100110000101000111101111110101101111111001100001001010110111100100100101000100001000010100110111101101111001001011111100110010000010001000101001001011101110010010100111100101101110010010000011001110110001101001010001010110011000111001100001011011110110101110000001001000111100111001001101001010001000011100001100010001000110101010101101100001101001110001110100100000001000100101100100001000001001111100101001001101111011110001100100111001111110001100000100110111110001010110110001000011110110111000100110110000011010111111011101111101100010110100111000011000100010101011011001000001111010110000000101111101110001010111010100110001011001110111111011100010011100111011100111110011010100001101001100100001101110110001100110111000000101100000111010111010100010000011000101011100000111111111101100000111111011110000010100110000110111111111011010110110010000111001001111000100000001110001100000001000001100000001100100111101001011001000111010010111101000110000000111111100011011110100001101001000111010101101001000000101111111000001011101010111100010110101011010101010001010001001111111000010011011111000101111110011000001010111001011001101110011100111110010010110101010111010111001010101111000111101001110011000001000101101111000110011110011011101110011000011101010101001100110001101001010101011101010100101100100110010110111100110010101101111110000101010011101110000100110010101111111000110110001110010011100110101010111010010100101011100011000011100101011001101100001100111110101000111010100000101100101010001011110101100011100111000011100001101011101101101110111011111100111100011110101101110010111001000000111100000111101011111110100001100111011110100011111100010111001101100000100100010000000001100111111001001010001010010100111111001101111011011100001110100110010110101001001110101001000100101101011000110001110010011010011101010100110111111111110001100111100010000011001010001000101100001001001011111000011101101101001111100101100000001101110101101010010110001111011101101101101101100000101100001000000111110111010100100000001100110110110001011100111000001000011001001000100000010011010011110001011010100010110110011100011001111100100001001011101010010001000100000101011100010011101110110100110110101000110110001011010110101100101010000001010111010000101011110110100000101111101111011101001011000010111010101011010011011000000100100010010001111110110110111100110000101111111001010110011001001000110000011010010000110000000110011100101110011101111100110011010101100101101111001010101011101011111000101110111110010110110010010110100101110100000011000011111001010010111101101110010100111011101001110001001000110101111001010101011110001010101111001111101001010111110010000001101100000100001001111101011101010001000000000001011000101011001010111111010011111011000010010100001000100010001011111011001010011000111000011011001011111011010111000111111100111001001100001100000100000101010101001000111010001001110100101100101011000001100100001011111111000011011111111111001010111101111001101010011111011110011000100001111101111011001110001001100000011011000011101111000100001010101001011011101010010100110111100001111101001000001000110001010000000101001010011010000111111101010100101011100001111011100010000011011101001000101011100010101000110100100101111111010110001011110010110010001010011110110011101100011111101100001001001101001101100001001101011000000000101110010011111011000100001011000001010100001000100101001010100000001010000010111011110011011000001010110001011011010111101110101010100110100100101101111100010101010110000000010110010111011001010001000011110110000100000011111111110000111001010100000000000010100110011001010000010000101111101001011011100111100001111101100101100100000010110010110011111110111010110101111101111100010111100100010111110100100001000001110011110000111111110110000100011010100001111000110001000100010010000001100100100011010101100001010010101100101111100101010001101100111011110011011010111011100000110010101100101111110100100000000100000100000111000010001111001100100000000000010101001000101000010100010100101111110000111111110100010010100011101100011100100011111001110111100100000110011011101000001011000100001111110100101100000111011110000101010010000110010110100010110000010011101101000001101101110010000110100100111011111110001000011101011000101111011000100011001100000001111110100111011000001111111101011000011100110011000111011010110010110110111010010000101100110111011100000101110011000000110101000110111110011100110100011110100001011101001001101110110010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
-
-           ;; testing base converters on small ints
+          (("%x" (factorial 20)) . "21c3677c82b40000")
+          (("%+x" (factorial 20)) . "+21c3677c82b40000")
+          (("% x" (factorial 20)) . " 21c3677c82b40000")
+          (("% +x" (factorial 20)) . "+21c3677c82b40000")
+          (("%+ x" (factorial 20)) . "+21c3677c82b40000")
+          (("%#x" (factorial 20)) . "0x21c3677c82b40000")
+          (("%#+x" (factorial 20)) . "+0x21c3677c82b40000")
+          (("%# x" (factorial 20)) . " 0x21c3677c82b40000")
+          (("%# +x" (factorial 20)) . "+0x21c3677c82b40000")
+          (("%#+ x" (factorial 20)) . "+0x21c3677c82b40000")
+          (("%x" (- (factorial 20))) . "-21c3677c82b40000")
+          (("%+x" (- (factorial 20))) . "-21c3677c82b40000")
+          (("% x" (- (factorial 20))) . "-21c3677c82b40000")
+          (("% +x" (- (factorial 20))) . "-21c3677c82b40000")
+          (("%+ x" (- (factorial 20))) . "-21c3677c82b40000")
+          (("%#x" (- (factorial 20))) . "-0x21c3677c82b40000")
+          (("%#+x" (- (factorial 20))) . "-0x21c3677c82b40000")
+          (("%# x" (- (factorial 20))) . "-0x21c3677c82b40000")
+          (("%# +x" (- (factorial 20))) . "-0x21c3677c82b40000")
+          (("%#+ x" (- (factorial 20))) . "-0x21c3677c82b40000")
+          ;; test overflow
+          (("%Z" (factorial 120)) . "6689502913449127057588118054090372586752746333138029810295671352301633557244962989366874165271984981308157637893214090552534408589408121859898481114389650005964960521256960000000000000000000000000000")
+          (("%Z" (factorial 4000)) . "18288019515140650133147431755739190442173777107304392197064526954208959797973177364850370286870484107336443041569285571754672461861543557333942615617956996716745284831597317498818760937482804980419576512948720610558928129788097800620593429537705326740624453884285091743951756746144447362378722469436194575929579900114212973360658998073977714697261205048663725936337490404066097966637170254021348800944280342285355946649681316260163459743803577175903394733170076841764779082166891184529324230033414145497801832598218518406552257097392530024582738982919104406782168708871495603501905867399966298798534877747923179195791416504408054878974770308650707120878837624986576073340449414854578367383301715706358194127400849855604080473305196833482408079420964275187538889115296655522397723924887154624810659788321005620558369604778657904771918388054319251513981954296741688447246185021250402225010116433016818588036690180177691461779713104301640395708274734701186772756966064611023656528765138735704190876200697145804692125236821066805337175220605745377557452592208653939853278523841448314026548802309860391087939783218946129582647928430739985554883806198749831633640196211202756086016039171607744078776876219661603702759454887945247605749205543464095883664514960293873244842409803801480566600124415293789831496309554117113888561569494314926134470477513516416560102984058751906208865570183683850791317395702861350821464653600469443279077733978568711404244774089509216727922510660941411716412467443445414001188915966547283773988670739792818897314762082568914041952211779194055311405259158538932388745292324386826830135904886472292289993848482289254307628467614523292519222687689180219788377184005246290896703260524910362136627321135976515358528150143796798116836263053229733971612275184896139539613129329008449214723196703789119820971205922195513915546814704778682373487718946560822811623038853887054357316290622378472322045316639418491798517077275839637525427601452961835674484434498885698840692468550825765131610925966585339561854456154229048295742274725126218799745448031391826295221114381890600683208441558088271228618006589059444108806652992787854634497487158675770983422610936590600627170500972481399444145398522756870626097250230229195799277299921844954715690883242553569256657132515663544931830393317518828986443942138971609142621397646808351809694603734872977984148002699965137870448199866167162949256435040416146886823942144459105175033488395869910405207521329016842673168563837531518918339627724066152933627236730561155418227888673513937454508103826102827706121560330906016404162420051373313654570111102003319577878502216919170112074608722852376799943191590480651623958062982829452035227119036502426583752512199824089725611711059153935434418985109241404135069047109527514730648502064630431371185922523036941621026392783813435540195800531988645430344745298845640017082732623248838473771603478336326662579219137601422632057648758807935233915527562817942378675243919886800056209434731407685691942327092464101136254795499159351103542747723434544436366313104996373661654989465498180892716462805042227038222104784062626027480151567377841821316292095295686368619300417863327530764301323081902435971165925163513225511176258919471673437553320934916910573999020966087207663133871516530391787535755420348174519954013015999193335205032571176460105005716115305748669364682675265014310223271762807620242805617435594927890676408953057384890719681225840400396698155624793888816156585043604782961704971397764959404751358445856914581957186533573207690355894150776647727994156425641953755517727965486096675384222232344185537279888780570854092084221993660761154788359777439798490851148031275123759286793224660188593768897291749180357297185650430735063126035278321749629995702200115722386600046772883018963166273463715186812543356173550341233310175600817771447170656517505385258772069067139665478506263898380526394388218036388768999161538645432932116471146392562992204259450889291928261780531925618148311151259088519869787637913607866079920830781433275298468534248595471485354420794089854693167644320115900404444471266030942746376074187982809857292874382829734306879420308783010740784767155894363033186129183748698373599293267795620690003900348542140553208244771165593739117369452474295075445169488356550100854423929030967163401348223503674045821834526710830392520955478859202303175309815706259592416130388770535449570146586161954289529234209342432075461261173246383180702862172009624828852517861214008242944903162464816939278645210656431141653019224783906038062818006434258491952705341708781231767324026544165240012431457995565227331912056216396141277926932316783631899833106810492890045890947294731794016389385348294079360921757589715698098491612254898203787546124091057862387229987442131738499764391062422228395736099751277880661280909246369674792326056952220508861243875642482808175793303703933394191224832165950388337931626643339913192088808753619030386928808349931733881036690498513779587801764477865791351420222949860738228995728065763459283625096944678593378349990211317403358327367677358882377095918185840441346045760435580063918587956888086127034558064154832456098224664532422114583653763989534559801683261113731162039500068729224661509382267286483841867542303955164213391663536072749966590737898408144092699675796793165775891429992491955485860639629542416955757565163223827874193321274119938618709482020627749094917473754346320653165690129809741806883246764053966717253521140010801409998318494470531219051920354752556183478378238398583402765337923843167749738355049636714529840534145950376598809459294819192486096200503652538835417613002983933634477053826438814791235363934440952835213240806543802505241445900981152753843778634021300832293332432473400040109754281828950625464331409151961292319287863535740382445771128522343533054993071872524564127962306298218521662304206610010638488461150361786151832595182055013210238035059473479841417644445066550217093994746959565730463201996845756999575031950401331385688683576883429289274419202816101239071817771853612534620088858074904095239406471009098851796038360101243053736361346640211872570375441319261567131238168652234864182359667285536913841122976956009892970909409178865928472056691904571596961458646895132972589012090613887584436018692038947475932753085268106507554394567201654757930957224629573401948677157237825005540282635839895509019254240256916422227590032685003087320017232658420681209681389364174854034319152111706246564733896551636271748411627920466475472421243033805492052542237647091252577811952376244836844025673570936216945539206875730684120187779664758451508678786539887154966732995692212544207529457534936853900663520665102592278581210192104846016594846265525000394264201946315492667174670489454576610993722063668720936949698308641684437046485292906040368218708947194882991333823400676584552108673913669306118549159369734833071319506680872661886898225398171896329288732499509337836463164384614967690283284184136334006184670970038275153458133098776493171693249836721707632973537518273692928527497068121779606865163943692606596848941143683627629169873171114739189794632775706536177409526869936538136348369630762610163490694986911903178859927739423796596582439105912599204583810744740479342404550513976713360591833475711496976836332005885151231030818986389033126325119226309584818058301429763149472903925739659774337307109687940297813700796873400566095281249251559137923743113469044584820584542770746490047535898370961450995287930441328833542933636539386097851378739174078158132593877463567524868470795313740375647059352650583871001646082364842709333314532933141725314262510333047099681128329792983694287727106008519184538377065089964546579000542260452715147077137452076302879112802094308224402060706282308208678850263037733351444756065285721900833083634023860920356321356382318484421995141074387149942542550133039926139155010190614633196727199469768170121209097613598302048321148497175007150184555423280152476407230065108963493864309805262458731715886593175689747530567359088332598961192319881186961400055356294945140450806114214490420494488195417136403967132286869444062615622815233336396279517485469862880809956041938378161336156979526713793454354319018535526139196959277008828634440008764782171726908279132449346924807112458895951881542382952497102061566169481361027449429416228859029591798532192088531772405831332410104172391828682208239266557146168642210154401086974397003647170356217905465594944933170065175291981240572835024374361017977695084363373226470846255498368067535698751768103817520605779489720985090002595078926475029239124403277040719184010486962844211160986922952144938430963756963408787147933184107904312838985994963982784496688190643908936394858404598837762653245968848299901455260080572627872653099337092686312650606546084656202210845053932679131706841390889951865628810708670194485207654079244417321332232196041180225814997707988397637369268804955010409293139079608620689856756139863786355461818276369292665568749282154818479663283704713663666842236273009790537968973379093662517795316051746410279831975339791651704861188979834156418998505732384020730350075052669695594594753081616632885311572351609352631187129393729557398993321794518158269658073683417584260274184235030846683698193879109933863561435059993549597333514217973995915742796206889856584584493875193805504685107321011420502217815128118404137521250590361329385146997427292035829509205811367395885622247504950811752188165627552137681095618860955664505372763469788466067973748736658759105548049054658237200096293754479296344115915560231138432518248450383276234795400180535655551222536669390799317067896797756236783441752907948891802488298281245615590113512482344591092230909649423933991714557108941323849548468680509335203770970493785006636718394242326057416155509029270066096293813080877339787718442773014833232754755736783313789547145535129557193581885962158684756484475219230828423777756012721234731368785218564362953263092286535139160440838713013861328416662947756104857391740722209360021068158824717926850831589591367302143596625426553706038593255843919505223140871543995210720444637571268651195165483531243799087083070940544241515809139594158704843980567202482856647644447362604252961907705738740354460336586792214638225365973993001974668174157206242597452556046629209551599663117912609702944345176608757619561247872050409609062772362769045711709729061066411540898769707847042980034982033351136308779676287974627667703893888026848748953201438481632037717854462054861859986684636917120883602793194058658599425778515519713798214407689849211487929150179918547200558584524139792439377469676039518101451697712860634235352474290575260172151562129240720796835619967878383018961055921622371480562682714603085506932806187937976625431071742833007749235636990700120567425836156233607547500827789537909071263596294926763891075439575973972560478399510790078797663071024149826759934524980569432847819403219226207098701759952415628476519584752248050578584198211799092030838909208236225141975964892778944163008811179723219354847713753084628828883321692575327835658786892010648865205021985527642612795652759365359359048052205587306960853879351302215329380382709288672566169552660197788055450054177652374955319992805345989662399494012874012278677451052584166987084866267245492968785684175508510910492913793478551456991152291522750377308973310200505007906906671435839262115546753934391579860133029544403932422271218975046896384482252108820546415274174791693426071019927278518520520164621127271231748277979659289204850823018535192067323372368224831050642902153626845618478009622824733150764188329304815843651352730897836727021023023627320228373645802602496000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+          (("%b" (factorial 4000)) . "1100101100001011001001011100101011011110010001011001110111110101011001010010110110101010111000000111101100010000100001101111110011100001111110100000010100011101111011001100001010001000111111111110110001111011000000010110101110111001000000010100111110010000010110110011011101011000111000111000111000111111001100110100011110101101011000110000100011000001000001100000000110100110000100111101011011111011101101010100100010010010101000011101100001101101100000101111110100011101101111100100101101000111000001001101011110111110110101111001111000001011010000110001001101101100000001100101011000010100110101011111011110110111111000000010100011111111111001010001010001000101001001111011001100001000110011010011101000101110110000000001111000010111101000010001000110000111111111101100110001100110100100110101111011110011001011011000111010010010111111001000010110010001001010111000110101111110101110010101100100101101000111010011100100001011101000100111001110000110001111101101110101111001101100100010101000100001110010011000101001100011001011001000111101110001010001000000000011100100111001001100111110001110000110110000110111111101000110100111111000111001001111011111011111010101100011110000010110010101110110010101111011101000000010110001100001001000101010000101110010011011010010000111100001010100111011011010011110001011110001010111000110110010100110011000001101111100001011110010011000110011010001011000100111001000101011000110101100000000101100110000011010100111011011101110101100100111110100001101100100001000101100100100101111001001101101110010100111001111101111010001110001101010111010011000000110001111011100110000001000010111110100011011111010000100100100110111101001011100100101100111101010011100010111001110000101110111001010000001010110010011001111010110100010111100000111010010110000001111000110000100011111110010000101100010100110010101100110111001101000000110101101001100111101111111111111100010110001100001000001100110000011101000110101100000010001010000010001001000001011111000101011001000100000000000001000111000010010100100010110011110010110101011001110001110001101011001001101101110101110000101110011100101001011001000011011001010010010100101110111111000100110111000101101100000011101011111010010110100110100100001110100000001100010101000110011100101000000000111101011000000011100100101010011111110010000101000100011101011001011100000101001111001011011110110110101010101011100101010000011010011010100100111111001000101111111111101000000011001110000011110101010010100111111101111101011101100100111011010110011001001100111101011111000011010111111010011110100010011011101000100110011001111101100010011010001010001101111110011110111011111111100011100111010001010001010010000101100110001011111011001110010010111000110010010100000100000000011100110001111001011101111001110101010000100001100010001010100010000100000101111001001100011001100001110010010000110001101011101110100110101101000110011000000110010101100010100001010110011101100000101100110010100011100001101001111001001101000110010001110010000001100010110111011011011100010100100111001101000010101000000000110101100101111010011010100110001011000101000101100111100001011101110101001100001110011111100000111000100010101100010100000011001110100001011111011101100000110001110011001010011101110001111011110001100011110100010100101111101001000101000101100011110111100101001101010011001110101100001100100001110111010101011111011110111000000000001111101010010011001000100010010110100111001100101110001100010011101110001111111001101000101000001011111011000110111111100111110110101001011011101111010111010100111110100101001011101010110010010011100101011010101011111001000110110001110101001100010100010011110011100100101010011011110110011010111000111011100110011000001001100100101010010100001111110010001000111001110010100100110101011111001001100001001000011000010011110101000110000000110010010101100000000010010111110000000101101000110100000111001010011110001101100101010010011010010100110001111000011100110110101101001001000101001001010110110110010100011110001111100011010000111001101010001001010010110110101101000000101100101111000000110100000001001100100100101101111001111011001000000110101010101100010000000001000000001001111111000010111010010000101100001101100110010010101101000111110010100101011110011101101010100010100000111100100100111100100111001010011000010010011100101001110010110100001001010010010010100001111010010110000110111110001110001000000011011010100111000011101101000011100111000011000100100001110110100111001111010100000000111010100010101101101010110010000110101111000100110000101101000101010001110101010001101000011000111010111001111100101000010100000110101101000101010111110101001110100001101110100111100010011100011010100011111000010000000111100110010001111000110100011110001100010000110110011111010100001001010000001010110010110111010011000110011000101001001110011110011110001101010011000000001101111010011110111110100010000010111011111111111000111101001110011111010010111110001010101110110010001001100011001010110000100011010100101110101011111110010101000111010001100011100100101111011111101011101100001101010010011111001001001111100101011101110000110110011010010101000000011111101000111000011010110101111110010111101010000001010111110000010011000011011100010010000110000100010001111011100110101111101100010001111011110100110111111110010110000001110111110010010000001101011010101010010010100100000110010011101000111010110110001110001101011010000001101000110000000101010011111110111111001110101011000101000110110000111111000010100011001001001110101001000011111000011100000001001111001000110100101100111010110110011110011101010111100100001111100000110110111111111000101011110111010001000011101100101111001001100100111000111010111100000110100001010101010000000111111100100011011111011000110101101110001001010100111000001011011001001011100101010111001101001101000100111000001011110111000010110111100101111010111100011110000001110100111100000010011001111011010000100000110001100101010100000101001111001100110101110111110001111011100100100000110000000101101011010011000011011100011101110000110000111101011100010010011000111110111101000101010101000011011101010111011010100000110000001101110000100001001010110100101011010111010101010010000110100001111101011111010010011011010011001100101110110001100101100101011101110001100001110100000010000111101011011110100100111010001011101000101011011000000011000011101011111011000011001100100100001010110010110110001110010101101001011001111110100001101011111000100100000100100111101101100001000001101111101000011011101100000011001010101000011001011100111010000110110011011011001111101000011001000001001101110111101111101100011110100011110110011111110111010110011111110100110001000110110101100011110011111001010111000111010100011110110001111011111011101000100001101000010101110011101100001101011000100100111110111101110111111010011000110101011000011100001011100100100110010101001101110101111000000101000111001110101110110110000000011001100111010011100110010000000111011100111010011110100100010101010001100000110001100101110001110011111101110000001111101100111101110000111100100001011000000101100110001001001101111111101001001111101011000001011011010011011101011010001111010010100010110011001110011101001010010011111001110000110100000110100101010010110101100011001101001011010110110001011110010011110100110100111111000111100100101101111000101100111100111100100111110010111110000111001001000000001110010011100000101000110110000111001100000111000111001100011010110100101101110011000110100110101000110101001111100101000100010001110001011001011011001110010010101101110111100101000110101101111101010001011110100100111000000100011010000110100010111100100100111111111010000111100011010001110000100010010001010101000111111101001001011011110101000110010010101111101000000100101100101101010100000111101010111011010011100111101001010011001110011000001110000011111101000001011010110101010101001111001011011110111011110100001111110111000100110101000100111001111001100011100100110101011010001110111100000111000100011101000010010000000111001010000111010110111010110011001110101011000010000001101110011001011101011100010011000001101110101000110110110000101011011011100101111110111110110010101111101101010100001101010001100001110011010010110101111100010111011001000010111101100001000010111010100100010001001110100001010110010100011110110011000111101111110100101001101011001011010100111001000110010110001010011111111000011101001011011111010011110001000000001101000001000010010100111011100000011001110001011011110001010010001100010001100001010100011111101010110111010101101100110001001001001001010100000101001110100000010100011101000111001111001100010101111000011111101100111110101010100000111100011001000101111110110110001011110000101110100011110001110000010000000101001000100010001000010110010011001011110011100111101101100010101111011101000101111010100111000100001000011010010111101100110001101000000110010001000011010000100101010100111100011010010110101100001111011001011000101000010101001011011111011110110010111000000110110111100011000100101010001100110111111001011101011111110111011001000111010000001001011110111111101010001001011001101010000010101101101110000010011110000110111010100001101000100000110010000110011000000010100100001011010010111100100111001000110001010111111011111011001101101100101101011101111001100001010111011110010110100011011111100100111010100001111011011010011111110111010000111110111001000110001100101000001111100101001111101001110101010000100010011111000101010111000101011000100000000001000000010010010010010000101001110011110101000011000000010111001111011000111111101010001111000001010101001101111000101100001100011101000011011000111100000101011011100000001011011101000010011110000101011111110100010101001011001110001101010101001001111001111110110010111111101111001001100110011101011110001101000011010110111100101100110010111001000101011000101101001100111001111101100000110011001000001001111001000100010010110111111010111110001110011011000001101100010010111000100000100100010111100111101001001111101011011110001110111101000001000001100100101000111100010001101011110010100000011010010011100100100111010010100001111111111000001101101010011101111101101011010001000110111110010011010101101011001101100001111100110101000110111100000101101000011011111110110001101110011011011100111001101001001100110110001001101001100001011111011000110010110000111110011001101001011000010111101110001010111100111101011011001001000000000001011011001101011000010100011111010110110110101000011011111010100110001110110011101010010101101010100011000000101011011000101111000011011001001110001001001101110111101011101101111010111001111110011111101100001001011110101110111011111110100001101000000110101101100011110000101010000011100010110100101010101001100000110110001100110011000001101001101001010011100010001100111011010010001110001100001001110101001000111100100001100001101000110010111011101101000001001000011110100011010111110010010001010011000110000101011110101010101001010111011100000101101001001001101101000001011000010000000111110110100000001100000101101110110001100011011100101001001000000110001100001000101011111011100011100110100111110111100101000001010100101011000111011000110100101100111110100111001101010100100101110111101000111001001111101001110000110111100101100011110101011011010001001110000110101011010001101011010011111000101100010101111111110010010000011111001111001011101111010101110111100100100011001110010111001111011011111001000010000110111100000001011110111001010010010001000011001110110010110111000000100000100000011001101010011101100101110010011100100000100110111100110011001001111010111111011001100100000011110010101111000101100100100110110000011111001100011001011100011010010001100011111100101101011110101011001111110001011111011110111110100101110001111110110101001111000000111011110110010101111110000010011010000001110100011010010010100111010100101000111110110001011100111011011000001100011101111101100010000100010011111110010111000101000011011100110100100110010000100110001010110010100010001001001001110111001010110111001101101110110011001100000101101111111110001110011110111100011111110000110100011110010010011100110001100000100110100110101010111111100111010010010110001100101011000100110001100110000010000001110001110100010010001011000010111010100011011111001110111001010011111010000101100001110000111001111100011101111011001100110101001000000110101011001101001001001110111001101011101100010101100110000100111000100001100011111110001101110011101001011101011011110101110000000010010111011111001011100111100101111010001111101000010000110001101100110001001000001100001000001010110101111110010011001111110010011100100001100000111101110001010110010110111101101010011111000000111000101001011111110010111100010101101110011100110000101100100010100001100110001111010111000010100101101110001010000001010110111110011110001100011010000001000100010101001000101101010101111000100011001000000111100000011101110111001101111100101101011100011100000111001110110101010000010000000001111111110111111000011010000011101001000010000100100111011001010100000000001101011110001011111010111101011001111100000110000000111101100010100000010110000000101010000000101100101110111011011100010000111000000010111001001101011110011100111001101111110001101011000111100000011100000000101001001001011100111000010110001010110110011010100000000100100110001101001010011111111001100011010101101010011011010100111000110100100100011100101101111100100101001110001000110010101000110110000101000001001000001011000100010111110100101110000101110100100101001001101001001011111000110101111110011001001000011100111011011100101110011000000000010110101100011001000111010111010000000101110010001101000001101001101011111110110110010011110101010010111001000010001010111100111011010001000011100000100000101111111011000010101100110000001110000011110101111111100000010111000011110000111011101001001001110100110011101000100100111100111001100000100101111110101011010101100110001000100101000001100010101011011010011111100011110001010111011000110100010101100001010101010110111101111010001011000100110111101110101001101100011000011101100100111100101000011011111111110010111111101110000100101001110011111100000001101110010110111100010000110010111001111000111001000001000000001110001101000000110111101111100111110100100111000101101001101011100011101001001011011101011010011101000101001000001111110000001111000001010001011101011110001100011100011011001110101011100010011011101000110011110011101001000101011011110010100101010011000011010011101100100011101011010111001110010001000110111010101110111110100101001111000000011110011100110001011000111111011011001011010110000110010100110001111101010000010101000100100111101111010010111011111111010101000110011011110011010000101110000010110001001100001011111000001011000111000000110100111100000011000001000111001000101010010101001111100011101100011111011011101101011001010101100110011010101101111100101110000010100011100010101010101001010010011101110111100100001010100011011000111000000010011001110101101111010111110010001001001000000011000010110001101111100001111000000001011111100000100110001011010111010101000101100110001111010011001000001111000000011110000010010001110000001110001100001011000011111000111101111000100111100010011010110110001101110111101001100001101100010100000010011100000110000111011001100100100001000011101000011011111011110010100100100010000001110110101111001100100000010011100010010010001101010110111111111001011100001100111110111011010000001001010100111111001010011010101011001010011011110111001110011111100111010000010001001000100101000010000110000011010000100001100101110111000011100011100111111010011100100010001100011001100011111111110000110100110000010001011111001111011100111010100000111100101001010100100111100000100100000101001111111110110100011110000100101100100011110000100100001001001011111011111000111001001101011110000111000000110000100110100001101000100011010110001010011010110111111001111110001011000011111100000011011010000011110101011101100000001100010010011111001101100011101000010010101111110111100000011000111000110011110101101011100110111101011111010000111011100101010110010000110001001011101011111011111011010000000001011101011000100110111000111111001110100111110110001100100011000011001001011111000100101101101001100010100010001110010110010011110111000010110011110110110011110110111000101101101100000101110111110000001110011010110011010111001101010001101111011011001110101010000000110010101010010010110010100110100001011001000110110110110111011111001101010011011110011001111011001101000111101101110101111100011010011101010110101000110010001000111100111000111110100100100011110010111111110110110101000111000001011110010110001100011011011101010100011001100101101010100111000000001100111110011010101101000101101110111011000101011111100001010111110100000101001001110011010010100110000100010000100011100110000010001110010010010101100001011110101010000010001011011001100000101100100010110101000101010110011101001011001110011000010101101010000001101110111110010000111001001110110000010001111110110101000010001000111100110101110011111011100000110000010000001000001000001010000110110010101000101110000101110000011101010100110111101101100110101000010000100110100011010101010001110110010100111011011011111110101001110101000111100101110110010110111100110101000101111010001000110111000111100010110000011001110010100001010011000110101101100000110101010111100010011011010000110010001010000100111100111111011110001110100101011011001100001011010011101010001100101100101001110110111110011010111010010001100011000111001100010010001111000110101111111111100100100011101110101011001010010000001111111000101011111001010011111111011101001101100100011011000100001100101010000000010110001010111000111101101110001110010001111001111110000110100111100001001100111011110000111001000111010111011001111111011010110011011010100111010001101111000111111110000111101101110101101011111111011011100011010100010001100100110000011100000100100000110000110000001011001011101110010000100110110101001001001111011101101010111111011110011001100101010011110001000111111000100110001111100111001000100001100010111011111101000110001001111111110111111111110010111001001010101000100110000010001000010000111101110011010111101111000010010111111100101010000111011010100011101001001000101100111111000100011001001110000110100111111101100111100001110000010011010011100000111001001101001100100010100011111101110001011010100100111100010100111111011001111000101000011010111011000010001000101110001110101011101100011010010001010101001001110110010000000011000010010000000000010000111010001101001010100010110010110100001101101101101011111111011011001001111101100100010011011101111111110001010101100111010001100000100111010100110001110001101100101110110001001001111001111010001011101100010001111111001000110010010100001100001000100111000011111111110110001111100000101110000111010000100111000100101000000110010000001111010101001010101000001111011010010011001110110111010010101110101100110010100011000100011100011001111110101001011111100100010000000110000101001101101011111100111100101011111111100000011111111010000001101100011011110101101100001110001110010110000100111010010100011110101001100001101011110110011000001100101100111110101111011001000001110111100010000101011100101110001111110010100110001000110011101010110111001000011010100010011111011110011000110111111101001100000101101111100100100000010001110011010100101010111011001111000101101000000100011110001100011000000011000110110110011001001100101000001011010110110111101001010100100010010110100111101101001001000110011100101110100100110011000110110110100101001001001101100110110011100100011110010011010001100001100101111000111111111010111011110110100111001101010100110101100001000110011010000111000000001110101111001111100100010010010100111011000101000000010100111110110000110001101100011011111111111100110000001001101100001110010101000100100100011111010101001001101000011010101100100101000110111110111101101100010000101110100001111110000010110111011111010000010001011011000011111010001001000100010001110111100111000001101111111111101101011011001001111101101111101100000010101010100101011110011101111101000100111000111000010111101100000111100000100110011011011111110100001100001011110100110000001101111001111010010001100001110001000010000100001110111011101111111101111111101110110110011101010100010000000010111011110010111010110110010110010101000000010000011000010000101001100000000010110000010000010110010010100100100111000011001100010110101000101100101110011000011010100001100010011100011111100101100010101010101001100101101110101101110110100001100110001111010000011011010100011100100011001111001010010111000110101001100110101000001010101000110011000010001100010100011101111101010011011011010010011101010000101001000010010100011110001000010111111000010101101110110111011101111001000100011101000100001100001110101000011101101001100001100011000000010000000001110000111000000010111100101010100110010010101000000011010011001111110100111100101010101111100101110000101011011011111100100101100001010110001110100001111010100000110011000111110101001100000111101011101111101010010010001111010001111101001110000001111101111010011011011111101101011101110101010111011011001110100010010111101111101001000011001001110000111110100100000000001110000001010011000110010100011000100100100101111111000100111110010000111010110110001000111111110001110011111011100010011011110011110011111110111001111101101101010101011101110111000111101010000101011000010000000111110001000001100100101110000011010010111100001101010100101100100010010100101000101001010101000001000011100100001001111101110111010111000011101011011100000100011010110110111100101001111110011100111010101111100000110010010101010111001111010110010001001010010110101010001110011001111001011001100110010010001110110100111001100110011000110101010000000110110000101111010011001111110010101000111010010011001110110110010010010000101101101100111000110001101100011011100101010010101010011011110101010100111111001010111010111101001111101001111001111110011011001111001110101000001011111010111000111101011001011101101000011000111110111110001000111011010001000110010011110001101110110101010100010110011111001010110001010010000110000110000110011111101011100101011100111101010000111011101111101011000001100001001010111110110001101111111100101101001011111010101011010111100101001011100111101100010100110000101000011000000011100010110110101000111101111001110000010010101111011001101011110100011011111110010100000111111011001101010111011101011000001001010011010001011100100111001110000000100100110001011000101100110111001010111111011101000010101011111001001111101101111011011101101011000000100110010000010111111101101101101000011000111100011000100011000011000000011111100000110101011101111001010010110010011001111011110000000001111100011110000110011100001000101011101110111110000110011100011101111100000011101100111111011000000101100011101110111101111011011101010111011001110110110011010110101111110101010100010111100110010010000000110010100101011111110101001011111011010110010001000001010011111011010110111101101101111011000100011011000100010110001011110110010011001111000110001110011010001010111000011011010111011110000011100011110110010100101001101111101110101110010111101001110110101110110011001000000110110000000001000011111010101110101111111011101101101100010000000100111000100000110110011010000010101101001111010100000101100000100100011010111101100011110111011011000010100100110100110101001010011110110011101010110000000101001010000110110111000110100100000000011000110101100000000001110010110000001010100100001110101100100111101100100110111100110100111111111000011010010011010000001111100010110100001011100010000010100110011101111000011011100001011010010010110001011000001110100001110100101101011010000101011110111001111001101001001001111100101000110011101001111110101111100110101110100101111101000111110010011001100110001001110100011100000001010000110110010011101110111001001001011101100110000111110000010110010001000100111111001100010100000011110011011110111000000000101111011110111010101110010011011011100001100001001101100011000010110011000101100001110001111100000010111100001110101100110100001100000011100110101001110110100100011110111111001001100100111010111010110110000001111010110001111101111100100010110001011001111000001101011011111101111000010010010111011100110111100100110010110111000001010100000001101010110001010001001010011010000111110010111100000110010000110110000100011101110000101111110001101001001000010011111100001011101011001010100001000110000101001100001010101100101001011000111010101000001111000111100000100001111100011000000111000101010100111111110101010011010101011000111101101010011001010101010000111011110010111001101001101010100100110001100010001111110100110001100010100110101111100011101001100001101111111110110010010110100001101001111001100101010100011010100111111101100101100000010100110111011000001001000000001110100001110111011011010000100101011011100100011100111001101101101011110001011011000111001000001000101111111100111100000111011000100111100101111010011110000110100110011101010000110110101101000011011011010110011110101110110000011110101110001110001001111101111100010110100001010101000101000101001101110011001101111000100000000010100110100110011001010001100110100011100100101010001010001010101001101010101001001100010001011000111011101001110110101111111010101000001011101011011011101101011001000101011110110010001100011111111101100101111110111011001010001001000001100111010111111110001110110110100010000010011001101001111000010001010011000011011000101101000011111101100111101010110000100101101001111000000111100010110110001001001001011111111100000010110100100110010010010101101110111101000001010111100010100011011101001100000001100110001110111101011011101011110001110101011110001011100100101011010100000101010000100100110101011001011100111110011011011100100000111011101111111001010100100111111001001000101100001001011000011110000010100110000110010111011110111010111011100100011101000100111101110000010000110011111110101010111100000101001101111100010110101000100111110000010011000100000000101010001111010100011101101000111101100001110010101100100011101011011100110011001000011110111010100101011100110100101000110001100100110001101001000101011001110011010011111110001001010101100101100000010111110001010001010100110001000101111110011101010100001011100010010011001101000101011011111101111010110010111100010011110001100001110110000000111101011000001100010100010110011010100011110000110110100001010000110111010011000100100011101000000000101110101111010110000010010111101100011101000110111010111010000101001100110011011010111111001011010011110000101001101001111000000011111001001110010010111101001010010001001000011100100101010010010001101111111011001000011010101100010111001001010001000001010010011101101111011110111010101110001100001000101001100110001010000011011001100001110101010100001100000110011100111101000000101100010101001010101010100010000000101110111001000100010110001110101010000001111100101101001011011101100110000000010001100111010111000000100110110000001010011001011100011101000001000010011110100111100010100001000000010011000010000001101010010100111110011011101110011010001111110001000001011110110001111101001011111100001101101100011111011111010110011000000101010100000111101001001010111010000100000100001100010111011110011110000110011010001100001110100101110100000010000011001110110111100001001100000000010011010011010001100110100110110001100101001000000101010011111010100011010101001101100001110110011000010011010011100100011000100011000000000100000000100110001010101111011100110010100111101111011010010000101001011110011110110000010111010011111011110001000001110100110001011110111101111110000001001110101100110010101011111101000011011000110011011010010011000011101010100011101001000111100001000011100011000101100001001001011101111011100010001101100010110001101110111111100001111011010011001111101111011010000101110101011110011110011101000101000100100001101101000100000001011110010000001111111011010011111111111011100101110000001100000011011011101101100010011110100011100101111011111101010101010000011011100011101111011000010011000001111011010101011111001010001110000100101110110000111001011000010100001010000110110111001010110010000100101101110010110010101011000010100010101111010110111001011011101100001010010000111100101111100111011110000101010000101101000011111110010011011100101101100000011011100110111000010110100000000010111011111111110100010000110010111110010011010111000001010111110101001100100001100000100001100101001010010110101000000011111110011011111111100111100011010101111110100100010010000101110100010010101010101011000101001100110101001011011001011110001000101101000111101111110010110101001001001000000001000001110101000111101100111010101110000001001111101110100001000011001011100111010011001001010011100110001111101100111100000001001000100101011011101011100100110111101011100111101001100010001111011101010100101101101100111101101010100011011111010101000111110011011111010001100000000010000100001000010010011100100111100101001110111101100110100011010101110010001011010111001001011000001100010000011000001100010000100000101110000000100100101000000100010011000110100001111011011111111000010011000110100100000100001000001110011101101100100101110101101110101111110101101111111101010011011110001011111010100001010110010101101100111001110010000111011101011100010101100110000100101000110111101101001011001001101001001011010110101011001000011111011000011001110101010000111111101100110001100101100111011111111110001111011001101111111111100111001100101011011011100000101111010001011101011100101000101110011100110100111001000000000110100101001010111010000101000010000110001111110011101110100100111101010101010101011000000001110000100010101001000011100101011111000101111100100100110100100011111111010110010101111111101000100010100110101001001110111011111000111000000101000111011011000111000000001101111100011001010000010111100001111100101100010110000110100110011000101101010101111101110001000001101010100000010000100010001100111100111010001010110101111011110001001101111101010101011101100101001011000110110110101010000001011000011001101100001010000101010110101111000011111000011101101000001111101100100001001110001111101101010000110100010100010110101101000010111010111100010111010011110000000000010000100000100001010111011000010000110101000001101010001111110110101110010101000001011000100000110010000100110001110100001011100111010111101110101101000101000000011000011101011010100100000000011100000001010110000000000000011101011110111110101001010011000110010011101011101000100000111110010001001110110100101011101001010111101100011110001011010100000101000101001100111000110111111110100101111111100000111100100100101000100010000011001000101010010110101011011110110000001010110010100101101001011010011111100101110000111101001100101001000110000000100101101110011000001000010011100010001011110110001011111010011001000101110110100000011110100111000110110101101000010011000011111010101011100011101001010010000010011001011011000110011001000100001010000000111111011100101101111011011110100100010010100001101011110010010110111100011110010011100111010011010111010000100010111101010010011000110111101100101010000000110011110100110010111111111110101001001110110100110010111010110110010010001110000110010011000011001111011111100111001110001110001110110111011100110110111001000110011000100100010100000101111010110110001001111000110000100010111101100100011110111000101001110111101000101101001110111111100001000111000010110110001100010101110001010011001100101001001110011111100010001000101111111100101101000100100101010111001110100111111000000101111011111011101100001111000111111110001101111101011011100101111011011100010110011111111110010100100000000000110110101110010100011111111101111001010110011111110111000101010011111001111011100001001011011011010111100110000110111000010101110100111101110010101000011101101010110101101110100111011001101010010110111101101101110110101101100001101001111011000000100000100010100001001001011011010101100000111101111100111000000111001111011011000010101110101010010011010101010011111111101010011101101001111101000010001111100001101110010001001010100000101000110111110001000011010011001101111100011011000110110000100101101111011000111100111110010001000100101101010001011010001011111011001101001001000000010100010011000000111000011110000110010001101110101100111001111101010000001000110001000101100110111100100011010010101011111001000110111011010000011011111101101101100101100111010001110010000110111111000101010011111110011001011001101001110011101001010111010010011000010100111101110000101101011000000111101111010101011000011000011101111100001110111000001100011000111111111111101111111101110010000001010001000010111000101011001111000011101110100010110010100101000011100001100100111010010111001101000000110000101110101001100101000110000110010001000110100101010011110001111110100111111101000101000001010000000011001111011110011011100000101011011001101010000011101111100111000000011011011010010100111001110111101011110011100001000111010100000000100011110011001010000000110110011011111001010100011000001011010100010111011001010000000010000001111011000001000011010001111011011010101011111001110111100010100100000001101111111011111000010110110101001101010001010111110000101011101110101101101001111010011011001111111001101101111111100101111011101011111000011101001110000010011111001001100001010100101101100000011111100100000010011000001010101010001110111101110001001010100110101010110001110111111011111001100011000011000110010100111111011111101011111011101111001000010111100011111001110100110100110000101000111101111110101101111111001100001001010110111100100100101000100001000010100110111101101111001001011111100110010000010001000101001001011101110010010100111100101101110010010000011001110110001101001010001010110011000111001100001011011110110101110000001001000111100111001001101001010001000011100001100010001000110101010101101100001101001110001110100100000001000100101100100001000001001111100101001001101111011110001100100111001111110001100000100110111110001010110110001000011110110111000100110110000011010111111011101111101100010110100111000011000100010101011011001000001111010110000000101111101110001010111010100110001011001110111111011100010011100111011100111110011010100001101001100100001101110110001100110111000000101100000111010111010100010000011000101011100000111111111101100000111111011110000010100110000110111111111011010110110010000111001001111000100000001110001100000001000001100000001100100111101001011001000111010010111101000110000000111111100011011110100001101001000111010101101001000000101111111000001011101010111100010110101011010101010001010001001111111000010011011111000101111110011000001010111001011001101110011100111110010010110101010111010111001010101111000111101001110011000001000101101111000110011110011011101110011000011101010101001100110001101001010101011101010100101100100110010110111100110010101101111110000101010011101110000100110010101111111000110110001110010011100110101010111010010100101011100011000011100101011001101100001100111110101000111010100000101100101010001011110101100011100111000011100001101011101101101110111011111100111100011110101101110010111001000000111100000111101011111110100001100111011110100011111100010111001101100000100100010000000001100111111001001010001010010100111111001101111011011100001110100110010110101001001110101001000100101101011000110001110010011010011101010100110111111111110001100111100010000011001010001000101100001001001011111000011101101101001111100101100000001101110101101010010110001111011101101101101101100000101100001000000111110111010100100000001100110110110001011100111000001000011001001000100000010011010011110001011010100010110110011100011001111100100001001011101010010001000100000101011100010011101110110100110110101000110110001011010110101100101010000001010111010000101011110110100000101111101111011101001011000010111010101011010011011000000100100010010001111110110110111100110000101111111001010110011001001000110000011010010000110000000110011100101110011101111100110011010101100101101111001010101011101011111000101110111110010110110010010110100101110100000011000011111001010010111101101110010100111011101001110001001000110101111001010101011110001010101111001111101001010111110010000001101100000100001001111101011101010001000000000001011000101011001010111111010011111011000010010100001000100010001011111011001010011000111000011011001011111011010111000111111100111001001100001100000100000101010101001000111010001001110100101100101011000001100100001011111111000011011111111111001010111101111001101010011111011110011000100001111101111011001110001001100000011011000011101111000100001010101001011011101010010100110111100001111101001000001000110001010000000101001010011010000111111101010100101011100001111011100010000011011101001000101011100010101000110100100101111111010110001011110010110010001010011110110011101100011111101100001001001101001101100001001101011000000000101110010011111011000100001011000001010100001000100101001010100000001010000010111011110011011000001010110001011011010111101110101010100110100100101101111100010101010110000000010110010111011001010001000011110110000100000011111111110000111001010100000000000010100110011001010000010000101111101001011011100111100001111101100101100100000010110010110011111110111010110101111101111100010111100100010111110100100001000001110011110000111111110110000100011010100001111000110001000100010010000001100100100011010101100001010010101100101111100101010001101100111011110011011010111011100000110010101100101111110100100000000100000100000111000010001111001100100000000000010101001000101000010100010100101111110000111111110100010010100011101100011100100011111001110111100100000110011011101000001011000100001111110100101100000111011110000101010010000110010110100010110000010011101101000001101101110010000110100100111011111110001000011101011000101111011000100011001100000001111110100111011000001111111101011000011100110011000111011010110010110110111010010000101100110111011100000101110011000000110101000110111110011100110100011110100001011101001001101110110010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
+
+          ;; testing base converters on small ints
           ;; octal
-           (("%o" 126) . "176")
-           (("%+o" 126) . "+176")
-           (("% o" 126) . " 176")
-           (("% +o" 126) . "+176")
-           (("%+ o" 126) . "+176")
-           (("%#o" 126) . "0o176")
-           (("%#+o" 126) . "+0o176")
-           (("%# o" 126) . " 0o176")
-           (("%# +o" 126) . "+0o176")
-           (("%#+ o" 126) . "+0o176")
-           (("%6o" 126) . "   176")
-           (("%+6o" 126) . "  +176")
-           (("% 6o" 126) . "   176")
-           (("% +6o" 126) . "  +176")
-           (("%+ 6o" 126) . "  +176")
-           (("%-6o" 126) . "176   ")
-           (("%+-6o" 126) . "+176  ")
-           (("% -6o" 126) . " 176  ")
-           (("% +-6o" 126) . "+176  ")
-           (("%+ -6o" 126) . "+176  ")
-           (("%#8o" 126) . "   0o176")
-           (("%#+8o" 126) . "  +0o176")
-           (("%# 8o" 126) . "   0o176")
-           (("%# +8o" 126) . "  +0o176")
-           (("%#+ 8o" 126) . "  +0o176")
-           (("%#-8o" 126) . "0o176   ")
-           (("%#+-8o" 126) . "+0o176  ")
-           (("%# -8o" 126) . " 0o176  ")
-           (("%# +-8o" 126) . "+0o176  ")
-           (("%#+ -8o" 126) . "+0o176  ")
-           (("%o" -126) . "-176")
-           (("%+o" -126) . "-176")
-           (("% o" -126) . "-176")
-           (("% +o" -126) . "-176")
-           (("%+ o" -126) . "-176")
-           (("%#o" -126) . "-0o176")
-           (("%#+o" -126) . "-0o176")
-           (("%# o" -126) . "-0o176")
-           (("%# +o" -126) . "-0o176")
-           (("%#+ o" -126) . "-0o176")
-           (("%6o" -126) . "  -176")
-           (("%+6o" -126) . "  -176")
-           (("% 6o" -126) . "  -176")
-           (("% +6o" -126) . "  -176")
-           (("%+ 6o" -126) . "  -176")
-           (("%-6o" -126) . "-176  ")
-           (("%+-6o" -126) . "-176  ")
-           (("% -6o" -126) . "-176  ")
-           (("% +-6o" -126) . "-176  ")
-           (("%+ -6o" -126) . "-176  ")
-           (("%#8o" -126) . "  -0o176")
-           (("%#+8o" -126) . "  -0o176")
-           (("%# 8o" -126) . "  -0o176")
-           (("%# +8o" -126) . "  -0o176")
-           (("%#+ 8o" -126) . "  -0o176")
-           (("%#-8o" -126) . "-0o176  ")
-           (("%#+-8o" -126) . "-0o176  ")
-           (("%# -8o" -126) . "-0o176  ")
-           (("%# +-8o" -126) . "-0o176  ")
-           (("%#+ -8o" -126) . "-0o176  ")
+          (("%o" 126) . "176")
+          (("%+o" 126) . "+176")
+          (("% o" 126) . " 176")
+          (("% +o" 126) . "+176")
+          (("%+ o" 126) . "+176")
+          (("%#o" 126) . "0o176")
+          (("%#+o" 126) . "+0o176")
+          (("%# o" 126) . " 0o176")
+          (("%# +o" 126) . "+0o176")
+          (("%#+ o" 126) . "+0o176")
+          (("%6o" 126) . "   176")
+          (("%+6o" 126) . "  +176")
+          (("% 6o" 126) . "   176")
+          (("% +6o" 126) . "  +176")
+          (("%+ 6o" 126) . "  +176")
+          (("%-6o" 126) . "176   ")
+          (("%+-6o" 126) . "+176  ")
+          (("% -6o" 126) . " 176  ")
+          (("% +-6o" 126) . "+176  ")
+          (("%+ -6o" 126) . "+176  ")
+          (("%#8o" 126) . "   0o176")
+          (("%#+8o" 126) . "  +0o176")
+          (("%# 8o" 126) . "   0o176")
+          (("%# +8o" 126) . "  +0o176")
+          (("%#+ 8o" 126) . "  +0o176")
+          (("%#-8o" 126) . "0o176   ")
+          (("%#+-8o" 126) . "+0o176  ")
+          (("%# -8o" 126) . " 0o176  ")
+          (("%# +-8o" 126) . "+0o176  ")
+          (("%#+ -8o" 126) . "+0o176  ")
+          (("%o" -126) . "-176")
+          (("%+o" -126) . "-176")
+          (("% o" -126) . "-176")
+          (("% +o" -126) . "-176")
+          (("%+ o" -126) . "-176")
+          (("%#o" -126) . "-0o176")
+          (("%#+o" -126) . "-0o176")
+          (("%# o" -126) . "-0o176")
+          (("%# +o" -126) . "-0o176")
+          (("%#+ o" -126) . "-0o176")
+          (("%6o" -126) . "  -176")
+          (("%+6o" -126) . "  -176")
+          (("% 6o" -126) . "  -176")
+          (("% +6o" -126) . "  -176")
+          (("%+ 6o" -126) . "  -176")
+          (("%-6o" -126) . "-176  ")
+          (("%+-6o" -126) . "-176  ")
+          (("% -6o" -126) . "-176  ")
+          (("% +-6o" -126) . "-176  ")
+          (("%+ -6o" -126) . "-176  ")
+          (("%#8o" -126) . "  -0o176")
+          (("%#+8o" -126) . "  -0o176")
+          (("%# 8o" -126) . "  -0o176")
+          (("%# +8o" -126) . "  -0o176")
+          (("%#+ 8o" -126) . "  -0o176")
+          (("%#-8o" -126) . "-0o176  ")
+          (("%#+-8o" -126) . "-0o176  ")
+          (("%# -8o" -126) . "-0o176  ")
+          (("%# +-8o" -126) . "-0o176  ")
+          (("%#+ -8o" -126) . "-0o176  ")
           ;; hexadecimal
-           (("%x" 126) . "7e")
-           (("%+x" 126) . "+7e")
-           (("% x" 126) . " 7e")
-           (("% +x" 126) . "+7e")
-           (("%+ x" 126) . "+7e")
-           (("%#x" 126) . "0x7e")
-           (("%#+x" 126) . "+0x7e")
-           (("%# x" 126) . " 0x7e")
-           (("%# +x" 126) . "+0x7e")
-           (("%#+ x" 126) . "+0x7e")
-           (("%6x" 126) . "    7e")
-           (("%+6x" 126) . "   +7e")
-           (("% 6x" 126) . "    7e")
-           (("% +6x" 126) . "   +7e")
-           (("%+ 6x" 126) . "   +7e")
-           (("%-6x" 126) . "7e    ")
-           (("%+-6x" 126) . "+7e   ")
-           (("% -6x" 126) . " 7e   ")
-           (("% +-6x" 126) . "+7e   ")
-           (("%+ -6x" 126) . "+7e   ")
-           (("%#8x" 126) . "    0x7e")
-           (("%#+8x" 126) . "   +0x7e")
-           (("%# 8x" 126) . "    0x7e")
-           (("%# +8x" 126) . "   +0x7e")
-           (("%#+ 8x" 126) . "   +0x7e")
-           (("%#-8x" 126) . "0x7e    ")
-           (("%#+-8x" 126) . "+0x7e   ")
-           (("%# -8x" 126) . " 0x7e   ")
-           (("%# +-8x" 126) . "+0x7e   ")
-           (("%#+ -8x" 126) . "+0x7e   ")
-           (("%x" -126) . "-7e")
-           (("%+x" -126) . "-7e")
-           (("% x" -126) . "-7e")
-           (("% +x" -126) . "-7e")
-           (("%+ x" -126) . "-7e")
-           (("%#x" -126) . "-0x7e")
-           (("%#+x" -126) . "-0x7e")
-           (("%# x" -126) . "-0x7e")
-           (("%# +x" -126) . "-0x7e")
-           (("%#+ x" -126) . "-0x7e")
-           (("%6x" -126) . "   -7e")
-           (("%+6x" -126) . "   -7e")
-           (("% 6x" -126) . "   -7e")
-           (("% +6x" -126) . "   -7e")
-           (("%+ 6x" -126) . "   -7e")
-           (("%-6x" -126) . "-7e   ")
-           (("%+-6x" -126) . "-7e   ")
-           (("% -6x" -126) . "-7e   ")
-           (("% +-6x" -126) . "-7e   ")
-           (("%+ -6x" -126) . "-7e   ")
-           (("%#8x" -126) . "   -0x7e")
-           (("%#+8x" -126) . "   -0x7e")
-           (("%# 8x" -126) . "   -0x7e")
-           (("%# +8x" -126) . "   -0x7e")
-           (("%#+ 8x" -126) . "   -0x7e")
-           (("%#-8x" -126) . "-0x7e   ")
-           (("%#+-8x" -126) . "-0x7e   ")
-           (("%# -8x" -126) . "-0x7e   ")
-           (("%# +-8x" -126) . "-0x7e   ")
-           (("%#+ -8x" -126) . "-0x7e   ")
+          (("%x" 126) . "7e")
+          (("%+x" 126) . "+7e")
+          (("% x" 126) . " 7e")
+          (("% +x" 126) . "+7e")
+          (("%+ x" 126) . "+7e")
+          (("%#x" 126) . "0x7e")
+          (("%#+x" 126) . "+0x7e")
+          (("%# x" 126) . " 0x7e")
+          (("%# +x" 126) . "+0x7e")
+          (("%#+ x" 126) . "+0x7e")
+          (("%6x" 126) . "    7e")
+          (("%+6x" 126) . "   +7e")
+          (("% 6x" 126) . "    7e")
+          (("% +6x" 126) . "   +7e")
+          (("%+ 6x" 126) . "   +7e")
+          (("%-6x" 126) . "7e    ")
+          (("%+-6x" 126) . "+7e   ")
+          (("% -6x" 126) . " 7e   ")
+          (("% +-6x" 126) . "+7e   ")
+          (("%+ -6x" 126) . "+7e   ")
+          (("%#8x" 126) . "    0x7e")
+          (("%#+8x" 126) . "   +0x7e")
+          (("%# 8x" 126) . "    0x7e")
+          (("%# +8x" 126) . "   +0x7e")
+          (("%#+ 8x" 126) . "   +0x7e")
+          (("%#-8x" 126) . "0x7e    ")
+          (("%#+-8x" 126) . "+0x7e   ")
+          (("%# -8x" 126) . " 0x7e   ")
+          (("%# +-8x" 126) . "+0x7e   ")
+          (("%#+ -8x" 126) . "+0x7e   ")
+          (("%x" -126) . "-7e")
+          (("%+x" -126) . "-7e")
+          (("% x" -126) . "-7e")
+          (("% +x" -126) . "-7e")
+          (("%+ x" -126) . "-7e")
+          (("%#x" -126) . "-0x7e")
+          (("%#+x" -126) . "-0x7e")
+          (("%# x" -126) . "-0x7e")
+          (("%# +x" -126) . "-0x7e")
+          (("%#+ x" -126) . "-0x7e")
+          (("%6x" -126) . "   -7e")
+          (("%+6x" -126) . "   -7e")
+          (("% 6x" -126) . "   -7e")
+          (("% +6x" -126) . "   -7e")
+          (("%+ 6x" -126) . "   -7e")
+          (("%-6x" -126) . "-7e   ")
+          (("%+-6x" -126) . "-7e   ")
+          (("% -6x" -126) . "-7e   ")
+          (("% +-6x" -126) . "-7e   ")
+          (("%+ -6x" -126) . "-7e   ")
+          (("%#8x" -126) . "   -0x7e")
+          (("%#+8x" -126) . "   -0x7e")
+          (("%# 8x" -126) . "   -0x7e")
+          (("%# +8x" -126) . "   -0x7e")
+          (("%#+ 8x" -126) . "   -0x7e")
+          (("%#-8x" -126) . "-0x7e   ")
+          (("%#+-8x" -126) . "-0x7e   ")
+          (("%# -8x" -126) . "-0x7e   ")
+          (("%# +-8x" -126) . "-0x7e   ")
+          (("%#+ -8x" -126) . "-0x7e   ")
           )))
 
     (mapc #'(lambda (f)
-              (let ((format (cons 'format (car f)))
-                    (expected (cdr f)))
-                (eval `(Assert (string= ,format ,expected)))))
-          forms)))
+             (let ((format (cons 'format (car f)))
+                   (expected (cdr f)))
+               (eval `(Assert (string= ,format ,expected)))))
+         forms)))
 
 
 ;; now testing bigq formatting
 (when (featurep 'bigq)
   (let ((forms
-         '((("%Q" 2) . "2")
-           (("%2Q" 2) . " 2")
-           (("%2Q" 200) . "200")
-           (("%+Q" 2) . "+2")
-           (("% Q" 2) . " 2")
-           (("% +Q" 2) . "+2")
-           (("%+ Q" 2) . "+2")
-           (("%Q" -2) . "-2")
-           (("% Q" -2) . "-2")
-           (("%+Q" -2) . "-2")
-           (("% +Q" -2) . "-2")
-           (("%+ Q" -2) . "-2")
-           (("%-4Q" 2) . "2   ")
-           (("%.2Q" 2) . "2")
-           (("%4.2Q" 2) . "   2")
-           (("%-4.2Q" 2) . "2   ")
-
-           ;; testing with proper fractions
-           (("%Q" 2/3) . "2/3")
-           (("%5Q" 2/3) . "  2/3")
-           (("%5.5Q" 2/3) . "  2/3")
-           (("%+Q" 2/3) . "+2/3")
-           (("% Q" 2/3) . " 2/3")
-           (("% +Q" 2/3) . "+2/3")
-           (("%+ Q" 2/3) . "+2/3")
-           (("%Q" (float 1.5)) . "3/2")
-           (("%Q" (float 0.66666)) . "3002369727582815/4503599627370496")
-           (("%-10Q" 2/3) . "2/3       ")
-
-           ;; testing coercion to Z
-           (("%d" 4/3) . "1")
-           (("%Z" 2/3) . "0"))))
+        '((("%Q" 2) . "2")
+          (("%2Q" 2) . " 2")
+          (("%2Q" 200) . "200")
+          (("%+Q" 2) . "+2")
+          (("% Q" 2) . " 2")
+          (("% +Q" 2) . "+2")
+          (("%+ Q" 2) . "+2")
+          (("%Q" -2) . "-2")
+          (("% Q" -2) . "-2")
+          (("%+Q" -2) . "-2")
+          (("% +Q" -2) . "-2")
+          (("%+ Q" -2) . "-2")
+          (("%-4Q" 2) . "2   ")
+          (("%.2Q" 2) . "2")
+          (("%4.2Q" 2) . "   2")
+          (("%-4.2Q" 2) . "2   ")
+
+          ;; testing with proper fractions
+          (("%Q" 2/3) . "2/3")
+          (("%5Q" 2/3) . "  2/3")
+          (("%5.5Q" 2/3) . "  2/3")
+          (("%+Q" 2/3) . "+2/3")
+          (("% Q" 2/3) . " 2/3")
+          (("% +Q" 2/3) . "+2/3")
+          (("%+ Q" 2/3) . "+2/3")
+          (("%Q" (float 1.5)) . "3/2")
+          (("%Q" (float 0.66666)) . "3002369727582815/4503599627370496")
+          (("%-10Q" 2/3) . "2/3       ")
+
+          ;; testing coercion to Z
+          (("%d" 4/3) . "1")
+          (("%Z" 2/3) . "0"))))
 
     (mapc #'(lambda (f)
-              (let ((format (cons 'format (car f)))
-                    (expected (cdr f)))
-                (eval `(Assert (string= ,format ,expected)))))
-          forms)))
+             (let ((format (cons 'format (car f)))
+                   (expected (cdr f)))
+               (eval `(Assert (string= ,format ,expected)))))
+         forms)))
 
 
 (when (featurep 'bigfr)
   (let ((forms
-         '((("%f" (exp 1)) . "2.718282")
-           (("%2.2f" (exp 1)) . "2.72")
-           ;; this test uses a wrong output string deliberately
-           ;; it's wrong because the precision of IEEE-754 doubles is
-           ;; not enough to have 20 correct digits in the fractional part
-           ;; however, since we _can_ have long doubles now, this test
-           ;; is no longer feasible since lisp should know a shit about
-           ;; the internal representation of fpfloats. -hroptatyr
-           ;;(("%2.20f" (exp 1)) . "2.71828182845904509080")
-
-           ;; now testing with %F
-           (("%F" (exp 1)) . "2.718281828459045235360287471352662497759")
-           (("%2.2F" (exp 1)) . "2.71")
-           (("%+2.2F" (exp 1)) . "+2.71")
-           (("%10.0F" (exp 1)) . "         2")
-           (("%10.1F" (exp 1)) . "       2.7")
-           (("%12.12F" (exp 1)) . "2.718281828459")
-           (("%30.12F" (exp 1)) . "                2.718281828459")
-           (("%5.5F" (exp 13)) . "442413.39200")
-           (("%F" (/ (exp 1))) .
-            "0.3678794411714423215955237701614608674462")
-           (("%2.2F" (/ (exp 1))) . "0.36")
-           (("%3.3F" (/ (exp 1))) . "0.367")
-           (("%.5F" (bigfr 1)) . "1.00000")
-
-           (("%.4F" (bigfr 23213231 25)) . "23213231.0000")
-           ;; stupid assumption
-           ;;(("%.4F" (bigfr 23213231 8)) . "23200000.0000")
-           (("%Z" (bigfr 23213231 25)) . "23213231")
-           (("%Z" (bigfr 23213231 8)) . "23199744")
-
-           (("%+.4f" 2) . "+2.0000")
-           (("%+.4F" 2) . "+2.0000")
-           (("% .4F" 2) . " 2.0000")
-           (("%+10.4F" 2) . "   +2.0000")))
-        (default-real-precision 128))
+        '((("%f" (exp 1)) . "2.718282")
+          (("%2.2f" (exp 1)) . "2.72")
+          ;; this test uses a wrong output string deliberately
+          ;; it's wrong because the precision of IEEE-754 doubles is
+          ;; not enough to have 20 correct digits in the fractional part
+          ;; however, since we _can_ have long doubles now, this test
+          ;; is no longer feasible since lisp should know a shit about
+          ;; the internal representation of fpfloats. -hroptatyr
+          ;;(("%2.20f" (exp 1)) . "2.71828182845904509080")
+
+          ;; now testing with %F
+          (("%F" (exp 1)) . "2.718281828459045235360287471352662497759")
+          (("%2.2F" (exp 1)) . "2.71")
+          (("%+2.2F" (exp 1)) . "+2.71")
+          (("%10.0F" (exp 1)) . "         2")
+          (("%10.1F" (exp 1)) . "       2.7")
+          (("%12.12F" (exp 1)) . "2.718281828459")
+          (("%30.12F" (exp 1)) . "                2.718281828459")
+          (("%5.5F" (exp 13)) . "442413.39200")
+          (("%F" (/ (exp 1))) .
+           "0.3678794411714423215955237701614608674462")
+          (("%2.2F" (/ (exp 1))) . "0.36")
+          (("%3.3F" (/ (exp 1))) . "0.367")
+          (("%.5F" (bigfr 1)) . "1.00000")
+
+          (("%.4F" (bigfr 23213231 25)) . "23213231.0000")
+          ;; stupid assumption
+          ;;(("%.4F" (bigfr 23213231 8)) . "23200000.0000")
+          (("%Z" (bigfr 23213231 25)) . "23213231")
+          (("%Z" (bigfr 23213231 8)) . "23199744")
+
+          (("%+.4f" 2) . "+2.0000")
+          (("%+.4F" 2) . "+2.0000")
+          (("% .4F" 2) . " 2.0000")
+          (("%+10.4F" 2) . "   +2.0000")))
+       (default-real-precision 128))
 
     (mapc #'(lambda (f)
-              (let ((format (cons 'format (car f)))
-                    (expected (cdr f)))
-                (eval `(Assert (string= ,format ,expected)))))
-          forms)))
+             (let ((format (cons 'format (car f)))
+                   (expected (cdr f)))
+               (eval `(Assert (string= ,format ,expected)))))
+         forms)))
 
 (when (featurep 'bigg)
   (let ((forms
-         '((("%B" 2+i) . "2+1i")
-           (("%+B" 2+i) . "+2+1i")
-           (("% B" 2+i) . " 2+1i")
-           (("%B" 2+i) .
-            (format "%Z%+Zi" (real-part 2+i) (imaginary-part 2+i)))
-           (("%B" 1) . "1+0i")
-           (("%+10.4B" 1.2) . "     +0001     +0000i")
-           (("%-10.4B" 0+2i) . "0000      +0002     i"))))
+        '((("%B" 2+i) . "2+1i")
+          (("%+B" 2+i) . "+2+1i")
+          (("% B" 2+i) . " 2+1i")
+          (("%B" 2+i) .
+           (format "%Z%+Zi" (real-part 2+i) (imaginary-part 2+i)))
+          (("%B" 1) . "1+0i")
+          (("%+10.4B" 1.2) . "     +0001     +0000i")
+          (("%-10.4B" 0+2i) . "0000      +0002     i"))))
 
     (mapc #'(lambda (f)
-              (let ((format (cons 'format (car f)))
-                    (expected (cdr f)))
-                (eval `(Assert (string= ,format ,expected)))))
-          forms))
+             (let ((format (cons 'format (car f)))
+                   (expected (cdr f)))
+               (eval `(Assert (string= ,format ,expected)))))
+         forms))
 
   ;; Gaussian numbers shall not be coerced to comparables
   (Check-Error domain-error (format "%d" 1+i))
 
 (when (featurep 'bigc)
   (let ((forms
-         '((("%.2C" 2+i) . "2.00+1.00i")
-           (("%+.2C" 2+i) . "+2.00+1.00i")
-           (("% .2C" 2+i) . " 2.00+1.00i")
-           (("%.2C" 2+i) .
-            (format "%.2F%+.2Fi" (real-part 2+i) (imaginary-part 2+i)))
-           (("%.2C" 1) . "1.00+0.00i")
-           (("%+10.4C" 1.5) . "   +1.5000   +0.0000i")
-           (("%-10.4C" 0+2i) . "0.0000    +2.0000   i"))))
+        '((("%.2C" 2+i) . "2.00+1.00i")
+          (("%+.2C" 2+i) . "+2.00+1.00i")
+          (("% .2C" 2+i) . " 2.00+1.00i")
+          (("%.2C" 2+i) .
+           (format "%.2F%+.2Fi" (real-part 2+i) (imaginary-part 2+i)))
+          (("%.2C" 1) . "1.00+0.00i")
+          (("%+10.4C" 1.5) . "   +1.5000   +0.0000i")
+          (("%-10.4C" 0+2i) . "0.0000    +2.0000   i"))))
 
     (mapc #'(lambda (f)
-              (let ((format (cons 'format (car f)))
-                    (expected (cdr f)))
-                (eval `(Assert (string= ,format ,expected)))))
-          forms))
+             (let ((format (cons 'format (car f)))
+                   (expected (cdr f)))
+               (eval `(Assert (string= ,format ,expected)))))
+         forms))
 
   ;; complex numbers shall not be coerced to comparables
   (Check-Error domain-error (format "%d" (sqrt -2)))
 ;; the new %b thing
 (let ((forms
        '((("%b" 12) . "1100")
-         (("%8b" 12) . "    1100")
-         (("%08b" 12) . "00001100"))))
+        (("%8b" 12) . "    1100")
+        (("%08b" 12) . "00001100"))))
   (mapc #'(lambda (f)
-            (let ((format (cons 'format (car f)))
-                  (expected (cdr f)))
-              (eval `(Assert (string= ,format ,expected)))))
-        forms))
+           (let ((format (cons 'format (car f)))
+                 (expected (cdr f)))
+             (eval `(Assert (string= ,format ,expected)))))
+       forms))
 
 ;; exterior precision
 (Assert-Equal (format "%*d" 10 4) "         4")
index f8816cf..22b69bb 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
       (value 4 6 25))
     do
     (let* ((ht (make-hash-table :weakness weakness))
-           (my-obj (cons ht ht)))
+          (my-obj (cons ht ht)))
       (garbage-collect)
       (puthash my-obj 1 ht)
       (puthash 2 my-obj ht)
       (puthash 32 (cons ht ht) ht)
       (puthash (cons ht ht) (cons ht ht) ht)
       (let ((k-sum 0) (v-sum 0))
-        (maphash #'(lambda (k v)
-                     (when (integerp k) (incf k-sum k))
-                     (when (integerp v) (incf v-sum v)))
-                 ht)
-        (Assert (eq 38 k-sum))
-        (Assert (eq 25 v-sum)))
+       (maphash #'(lambda (k v)
+                    (when (integerp k) (incf k-sum k))
+                    (when (integerp v) (incf v-sum v)))
+                ht)
+       (Assert (eq 38 k-sum))
+       (Assert (eq 25 v-sum)))
       (Assert (eq 6 (hash-table-count ht)))
       (garbage-collect)
       (Assert (eq expected-count (hash-table-count ht)))
       (let ((k-sum 0) (v-sum 0))
-        (maphash #'(lambda (k v)
-                     (when (integerp k) (incf k-sum k))
-                     (when (integerp v) (incf v-sum v)))
-                 ht)
-        (Assert (eq expected-k-sum k-sum))
-        (Assert (eq expected-v-sum v-sum))))))
+       (maphash #'(lambda (k v)
+                    (when (integerp k) (incf k-sum k))
+                    (when (integerp v) (incf v-sum v)))
+                ht)
+       (Assert (eq expected-k-sum k-sum))
+       (Assert (eq expected-v-sum v-sum))))))
 
 ;;; Test the ability to puthash and remhash the current elt of a maphash
 (let ((ht (make-hash-table :test 'eql)))
index fd5ea98..cf9cd24 100644 (file)
@@ -5,7 +5,7 @@
 ;; Keywords: tests
 ;;
 ;; This file is part of SXEmacs.
-;; 
+;;
 ;; SXEmacs is free software: you can redistribute it and/or modify it
 ;; under the terms of the GNU General Public License as published by the
 ;; Free Software Foundation, either version 3 of the License, or (at your
@@ -17,7 +17,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ;;
 ;;; Synched up with: Not in FSF.
 ;;
index 28b239b..dc9a496 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
 ;; ---------------------------------
 (dolist (strings '((#r"xyz"   "xyz")    ; no backslashes
                   (#r"\xyz"  "\\xyz")   ; backslash at start
-                   (#r"\\xyz" "\\\\xyz") ; backslashes at start
-                   (#r"\nxyz" "\\nxyz")  ; escape seq. at start
-                   (#r"\"xyz" "\\\"xyz") ; quote at start
-                   (#r"xy\z"  "xy\\z")   ; backslash in middle
-                   (#r"xy\\z" "xy\\\\z") ; backslashes in middle
-                   (#r"xy\nz" "xy\\nz")  ; escape seq. in middle
-                   (#r"xy\"z" "xy\\\"z") ; quote in middle
-                   ;;(#r"xyz\"  "xyz\\")   ; backslash at end: error
-                   (#r"xyz\\" "xyz\\\\") ; backslashes at end
-                   (#r"xyz\n" "xyz\\n")  ; escape seq. at end
-                   (#r"xyz\"" "xyz\\\"") ; quote at end
-                   ))
+                  (#r"\\xyz" "\\\\xyz") ; backslashes at start
+                  (#r"\nxyz" "\\nxyz")  ; escape seq. at start
+                  (#r"\"xyz" "\\\"xyz") ; quote at start
+                  (#r"xy\z"  "xy\\z")   ; backslash in middle
+                  (#r"xy\\z" "xy\\\\z") ; backslashes in middle
+                  (#r"xy\nz" "xy\\nz")  ; escape seq. in middle
+                  (#r"xy\"z" "xy\\\"z") ; quote in middle
+                  ;;(#r"xyz\"  "xyz\\")   ; backslash at end: error
+                  (#r"xyz\\" "xyz\\\\") ; backslashes at end
+                  (#r"xyz\n" "xyz\\n")  ; escape seq. at end
+                  (#r"xyz\"" "xyz\\\"") ; quote at end
+                  ))
   (Assert (apply #'string= strings)))
 
 ;; Odd number of backslashes at the end
 ;; ------------------------------------
 (dolist (string '("#r\"xyz\\\""         ; `#r"abc\"': escaped delimiter
-                  "#r\"xyz\\\\\\\""     ; `#r"abc\\\"': escaped delimiter
-                  ))
+                 "#r\"xyz\\\\\\\""     ; `#r"abc\\\"': escaped delimiter
+                 ))
   (with-temp-buffer
     (insert string)
     (Check-Error end-of-file (eval-buffer))))
 ;; Alternate string/regex delimiters
 ;; ---------------------------------
 (dolist (string '("#r/xyz/"             ; Perl syntax
-                  "#r:ix/xyz/"          ; Extended Perl syntax
-                  "#r|xyz|"             ; TeX syntax
-                  "#r[xyz]"             ; (uncommon) Perl syntax
-                  "#r<xyz>"             ; Perl6 syntax?
-                  "#r(xyz)"             ; arbitrary santax
-                  "#r{xyz}"             ; arbitrary santax
-                  "#r,xyz,"             ; arbitrary santax
-                  "#r!xyz!"             ; arbitrary santax
-                  ))
+                 "#r:ix/xyz/"          ; Extended Perl syntax
+                 "#r|xyz|"             ; TeX syntax
+                 "#r[xyz]"             ; (uncommon) Perl syntax
+                 "#r<xyz>"             ; Perl6 syntax?
+                 "#r(xyz)"             ; arbitrary santax
+                 "#r{xyz}"             ; arbitrary santax
+                 "#r,xyz,"             ; arbitrary santax
+                 "#r!xyz!"             ; arbitrary santax
+                 ))
   (with-temp-buffer
     (insert string)
     (Check-Error-Message invalid-read-syntax "unrecognized raw string"
-                         (eval-buffer))))
+                        (eval-buffer))))
index 5d57aef..13a08e9 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
 (when (featurep 'number-type)
   (let ((nums))
     (and (featurep 'bigz)
-         (setq nums (cons (factorial 20) nums)))
+        (setq nums (cons (factorial 20) nums)))
     (and (featurep 'bigq)
-         (setq nums (cons (// (factorial 20) 71) nums)))
+        (setq nums (cons (// (factorial 20) 71) nums)))
     (and (featurep 'bigfr)
-         (setq nums (cons (exp 2) nums)))
+        (setq nums (cons (exp 2) nums)))
     (and (featurep 'bigc)
-         (setq nums (cons (sqrt -3) nums)))
+        (setq nums (cons (sqrt -3) nums)))
     (loop for x in num do
       (Assert (eq t (=  x)))
       (Assert (eq t (<  x)))
 
 ;;; "%u" was undocumented, and support for it has been dropped
 (Check-Error-Message error "Invalid converter character"
-                     (format "%u"  most-positive-fixnum))
+                    (format "%u"  most-positive-fixnum))
 (Check-Error-Message error "Invalid converter character"
-                     (format "%u" most-negative-fixnum))
+                    (format "%u" most-negative-fixnum))
 
 ;; Check all-completions ignore element start with space.
 (Assert (not (all-completions "" '((" hidden" . "object")))))
index e439b69..7367efe 100644 (file)
@@ -5,7 +5,7 @@
 ;; Keywords: tests
 ;;
 ;; This file is part of SXEmacs.
-;; 
+;;
 ;; SXEmacs is free software: you can redistribute it and/or modify it
 ;; under the terms of the GNU General Public License as published by the
 ;; Free Software Foundation, either version 3 of the License, or (at your
@@ -17,7 +17,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ;;
 ;;; Synched up with: Not in FSF.
 ;;
 
 (defmacro Assert-set-equality (s1 s2)
   (let* ((m1 (if (arrayp s1) 'across 'in))
-         (m2 (if (arrayp s2) 'across 'in)))
+        (m2 (if (arrayp s2) 'across 'in)))
     `(progn
        (Assert-Equal (type-of ,s1) (type-of ,s2))
        (Assert (= (length ,s1) (length ,s2)))
        (Assert
-        (loop
-          for i ,m1 ,s1
-          always (loop
-                   for j ,m2 ,s2
-                   thereis (equal i j)))))))
+       (loop
+         for i ,m1 ,s1
+         always (loop
+                  for j ,m2 ,s2
+                  thereis (equal i j)))))))
 
 (defmacro Assert-tup-equality (s1 s2)
   (let* ((m1 (if (arrayp s1) 'across 'in))
-         (m2 (if (arrayp s2) 'across 'in)))
+        (m2 (if (arrayp s2) 'across 'in)))
     `(progn
        (Assert-Equal (type-of ,s1) (type-of ,s2))
        (Assert
-        (loop
-          for i ,m1 ,s1
-          for j ,m2 ,s2
-          always (equal i j))))))
+       (loop
+         for i ,m1 ,s1
+         for j ,m2 ,s2
+         always (equal i j))))))
 
 \f
 ;; test trivial cases
 (Assert
  (equal
   (mapfam nil :mode 'pntw :result-type #'vector :glue #'vector :arity 2
-          [1 2 3 4 5 6 7])
+         [1 2 3 4 5 6 7])
   [[1 2] [3 4] [5 6]]))
 (Assert
  (equal
   (mapfam nil :mode 'pntw :result-type #'vector :glue #'vector :arity 3
-          [1 2 3 4 5 6 7])
+         [1 2 3 4 5 6 7])
   [[1 2 3] [4 5 6]]))
 ;; larger glue than sequence
 (Assert
     (loop for j in (list rl rv rd) do
       (eval
        `(Assert
-         (equal
-          (mapfam #'+ ,i :arity 2 :result-type #',(car j))
-          ,(cdr j))))))
+        (equal
+         (mapfam #'+ ,i :arity 2 :result-type #',(car j))
+         ,(cdr j))))))
   ;; seq length coprime to arity
   (loop for i in (list l2 v2 d2) do
     (loop for j in (list rl rv rd) do
       (eval
        `(Assert
-         (equal
-          (mapfam #'+ ,i :arity 2 :result-type #',(car j))
-          ,(cdr j))))))
+        (equal
+         (mapfam #'+ ,i :arity 2 :result-type #',(car j))
+         ,(cdr j))))))
   ;; arity 3
   (loop for i in (list l v d) do
     (loop for j in (list rl2 rv2 rd2) do
       (eval
        `(Assert
-         (equal
-          (mapfam #'+ ,i :arity 3 :result-type #',(car j))
-          ,(cdr j))))))
+        (equal
+         (mapfam #'+ ,i :arity 3 :result-type #',(car j))
+         ,(cdr j))))))
   ;; seq length coprime to arity
   (loop for i in (list l2 v2 d2) do
     (loop for j in (list rl2 rv2 rd2) do
       (eval
        `(Assert
-         (equal
-          (mapfam #'+ ,i :arity 3 :result-type #',(car j))
-          ,(cdr j)))))))
+        (equal
+         (mapfam #'+ ,i :arity 3 :result-type #',(car j))
+         ,(cdr j)))))))
 
 (Assert
  (equal
 ;;
 ;; Now with #'mapfam...
 ;;
-;; First, with the exact same syntax as we did with #'mapconcat (because it is 
+;; First, with the exact same syntax as we did with #'mapconcat (because it is
 ;; our plan to replace all of our #'map* functions with aliases to #'mapfam)
 ;;
 ;; (mapfam #'concat (split-string "unsplit this split string") " ")
 ;; wrong-type-argument error.
 ;;
 ;; Now lets try to wing it with more fancy syntax...
-;; 
+;;
 ;; (mapfam nil :separator " " :result-type #'concat
 ;;         (split-string "unsplit this split string"))
 ;;  => "unsplitthissplitstring"
 
 ;; (mapfam #'concat :result-type #'concat
 ;;         (split-string "unsplit this split string") " ")
-;;  => Wrong type argument: sequencep, ?\ 
+;;  => Wrong type argument: sequencep, ?\
 ;;
 ;; hrop: um, I can't see what that is supposed to do, but yes, the wrong-type
 ;;       error is because of the second sequence (" ") which is kinda like [?\ ]
 ;; (Assert
 ;;  (string=
 ;;   (mapfam #'concat :result-type #'concat
-;;       (split-string "unsplit this split string") '(" " " " " " ""))
+;;       (split-string "unsplit this split string") '(" " " " " " ""))
 ;;   "unsplit this split string"))
-;; 
+;;
 ;; (when-fboundp #'divisiblep
 ;;   (Assert-set-equality
 ;;    (let ((divisors))
 ;;      (mapfam :result-type 'void
-;;          #'(lambda (p)
-;;              (garbage-collect)
-;;              (if (divisiblep 5041 p) (push p divisors))
-;;              (garbage-collect))
-;;          '(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
-;;              21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
-;;              38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
-;;              55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 69 70
-;;              71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
-;;              88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
-;;              104 105 106 107 108 109 110 111 112 113 114 115 116
-;;              117 118 119 120 121 122 123 124 125 126 127 128 129
-;;              130 131 132 133 134 135 136 137 138 139 140 141 142
-;;              143 144 145 146 147 148 149 150 151 152 153 154 155
-;;              156 157 158 159 160 161 162 163 164 165 166 167 168
-;;              169 170 171 172 173 174 175 176 177 178 179 180 181
-;;              182 183 184 185 186 187 188 189 190 191 192 193 194
-;;              195 196 197 198 199 200 201 202 203 204 205 206 207
-;;              208 209 210 211 212 213 214 215 216 217 218 219 220
-;;              221 222 223 224 225 226 227 228 229 230 231 232 233
-;;              234 235 236 237 238 239 240 241 242 243 244 245 246
-;;              247 248 249 250 251 252 253 254 255 256 257 258 259
-;;              260 261 262 263 264 265 266 267 268 269 270 271 272
-;;              273 274 275 276 277 278 279 280 281 282 283 284 285
-;;              ))
+;;          #'(lambda (p)
+;;              (garbage-collect)
+;;              (if (divisiblep 5041 p) (push p divisors))
+;;              (garbage-collect))
+;;          '(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+;;              21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
+;;              38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
+;;              55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 69 70
+;;              71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
+;;              88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
+;;              104 105 106 107 108 109 110 111 112 113 114 115 116
+;;              117 118 119 120 121 122 123 124 125 126 127 128 129
+;;              130 131 132 133 134 135 136 137 138 139 140 141 142
+;;              143 144 145 146 147 148 149 150 151 152 153 154 155
+;;              156 157 158 159 160 161 162 163 164 165 166 167 168
+;;              169 170 171 172 173 174 175 176 177 178 179 180 181
+;;              182 183 184 185 186 187 188 189 190 191 192 193 194
+;;              195 196 197 198 199 200 201 202 203 204 205 206 207
+;;              208 209 210 211 212 213 214 215 216 217 218 219 220
+;;              221 222 223 224 225 226 227 228 229 230 231 232 233
+;;              234 235 236 237 238 239 240 241 242 243 244 245 246
+;;              247 248 249 250 251 252 253 254 255 256 257 258 259
+;;              260 261 262 263 264 265 266 267 268 269 270 271 272
+;;              273 274 275 276 277 278 279 280 281 282 283 284 285
+;;              ))
 ;;      divisors)
 ;;    '(1 71))
-;; 
+;;
 ;;   (Assert-set-equality
 ;;    (let ((divisors))
 ;;      (mapfam #'(lambda (p)
-;;              (garbage-collect)
-;;              (if (divisiblep 5041 p) (push p divisors))
-;;              (garbage-collect))
-;;          '(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
-;;              21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
-;;              38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
-;;              55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 69 70
-;;              71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
-;;              88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
-;;              104 105 106 107 108 109 110 111 112 113 114 115 116
-;;              117 118 119 120 121 122 123 124 125 126 127 128 129
-;;              130 131 132 133 134 135 136 137 138 139 140 141 142
-;;              143 144 145 146 147 148 149 150 151 152 153 154 155
-;;              156 157 158 159 160 161 162 163 164 165 166 167 168
-;;              169 170 171 172 173 174 175 176 177 178 179 180 181
-;;              182 183 184 185 186 187 188 189 190 191 192 193 194
-;;              195 196 197 198 199 200 201 202 203 204 205 206 207
-;;              208 209 210 211 212 213 214 215 216 217 218 219 220
-;;              221 222 223 224 225 226 227 228 229 230 231 232 233
-;;              234 235 236 237 238 239 240 241 242 243 244 245 246
-;;              247 248 249 250 251 252 253 254 255 256 257 258 259
-;;              260 261 262 263 264 265 266 267 268 269 270 271 272
-;;              273 274 275 276 277 278 279 280 281 282 283 284 285
-;;              ))
+;;              (garbage-collect)
+;;              (if (divisiblep 5041 p) (push p divisors))
+;;              (garbage-collect))
+;;          '(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+;;              21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
+;;              38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
+;;              55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 69 70
+;;              71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
+;;              88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
+;;              104 105 106 107 108 109 110 111 112 113 114 115 116
+;;              117 118 119 120 121 122 123 124 125 126 127 128 129
+;;              130 131 132 133 134 135 136 137 138 139 140 141 142
+;;              143 144 145 146 147 148 149 150 151 152 153 154 155
+;;              156 157 158 159 160 161 162 163 164 165 166 167 168
+;;              169 170 171 172 173 174 175 176 177 178 179 180 181
+;;              182 183 184 185 186 187 188 189 190 191 192 193 194
+;;              195 196 197 198 199 200 201 202 203 204 205 206 207
+;;              208 209 210 211 212 213 214 215 216 217 218 219 220
+;;              221 222 223 224 225 226 227 228 229 230 231 232 233
+;;              234 235 236 237 238 239 240 241 242 243 244 245 246
+;;              247 248 249 250 251 252 253 254 255 256 257 258 259
+;;              260 261 262 263 264 265 266 267 268 269 270 271 272
+;;              273 274 275 276 277 278 279 280 281 282 283 284 285
+;;              ))
 ;;      divisors)
 ;;    '(1 71)))
 
index 834a7b7..2efd0ce 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
index bb8ebf7..f81c14f 100644 (file)
@@ -19,7 +19,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
@@ -329,8 +329,8 @@ the Assert macro checks for correctness."
       (progn
        (set-ucs-char code scaron)
        (Assert (eq scaron (ucs-char code)))))
-  
+
     (Assert (eq nil (set-ucs-char #x1ffff scaron)))
     (Check-Error wrong-type-argument (set-ucs-char -10000 scaron)))
-  
+
   )
index ef2401d..bdbc1b4 100644 (file)
@@ -5,7 +5,7 @@
 ;; Keywords: tests
 ;;
 ;; This file is part of SXEmacs.
-;; 
+;;
 ;; SXEmacs is free software: you can redistribute it and/or modify it
 ;; under the terms of the GNU General Public License as published by the
 ;; Free Software Foundation, either version 3 of the License, or (at your
@@ -17,7 +17,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ;;
 ;;; Synched up with: Not in FSF.
 ;;
index 697d649..4ddd0a0 100644 (file)
@@ -20,7 +20,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
index 5216d8e..5c43fa3 100644 (file)
@@ -20,7 +20,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
index 520e3e2..5f46e81 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
@@ -40,7 +40,7 @@
 (with-temp-buffer
   ;; Using active regions
   (let ((zmacs-regions t)
-        (first-buffer (current-buffer)))
+       (first-buffer (current-buffer)))
     (Silence-Message
      (insert (buffer-name)))
     (Assert (not (region-exists-p)))
index 8b58fd9..759b052 100644 (file)
@@ -5,7 +5,7 @@
 ;; Keywords: tests
 ;;
 ;; This file is part of SXEmacs.
-;; 
+;;
 ;; SXEmacs is free software: you can redistribute it and/or modify it
 ;; under the terms of the GNU General Public License as published by the
 ;; Free Software Foundation, either version 3 of the License, or (at your
@@ -17,7 +17,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ;;
 ;;; Synched up with: Not in FSF.
 ;;
index 0305cc7..8a8c4ca 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
@@ -71,9 +71,9 @@
         (let ((len (length (weak-list-list weak-list))))
           (Assert (not (zerop len)))
           (garbage-collect)
-           (unless (featurep 'bdwgc)
-             (Assert (eq (length (weak-list-list weak-list))
-                         (if (not reversep) 0 len)))))))
+          (unless (featurep 'bdwgc)
+            (Assert (eq (length (weak-list-list weak-list))
+                        (if (not reversep) 0 len)))))))
   (let ((weak-list (make-weak-list))
        (gc-cons-threshold most-positive-fixnum))
     ;; Symbols created with `make-symbol' and `gensym' should be fresh
index 10aa5c1..0d54e9e 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
                 skipped-test-reasons)
        (Print-Skip "comment and parse-partial-sexp tests" reason))
     (c-mode)
-    
+
     (insert "// comment\n")
     (forward-comment -2)
     (Assert (eq (point) (point-min)))
index d9f9b40..a604b33 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
index e9ca782..9372bd1 100644 (file)
@@ -20,7 +20,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
@@ -44,7 +44,7 @@
 ;;; Definitely do not use Silence-Message with Check-Message.
 ;;; In general it should probably only be used on code that prepares for a
 ;;; test, not on tests.
-;;; 
+;;;
 ;;; You run the tests using M-x test-emacs-test-file,
 ;;; or $(EMACS) -batch -l .../test-harness.el -f batch-test-emacs file ...
 ;;; which is run for you by the `make check' target in the top-level Makefile.
@@ -142,8 +142,8 @@ The output file's name is made by appending `c' to the end of FILENAME."
       (let ((buffer-file-name filename)
            (default-major-mode 'emacs-lisp-mode)
            (enable-local-eval nil))
-        (normal-mode)
-        (setq filename buffer-file-name)))
+       (normal-mode)
+       (setq filename buffer-file-name)))
     (test-harness-from-buffer input-buffer filename)
     (kill-buffer input-buffer)
     ))
@@ -154,12 +154,12 @@ The output file's name is made by appending `c' to the end of FILENAME."
 
     (with-current-buffer buffer
       (save-excursion
-        (when (re-search-forward ";;;###eval-me-first" nil t)
-          (let* ((p1 (point))
-                 (p2 (progn
-                       (forward-sexp)
-                       (point))))
-            (eval-region p1 p2)))))
+       (when (re-search-forward ";;;###eval-me-first" nil t)
+         (let* ((p1 (point))
+                (p2 (progn
+                      (forward-sexp)
+                      (point))))
+           (eval-region p1 p2)))))
 
     (goto-char (point-min) buffer)
     (condition-case error-info
@@ -211,12 +211,12 @@ The output file's name is made by appending `c' to the end of FILENAME."
        `(let ((test-harness-failure-tag "KNOWN BUG")
               (test-harness-success-tag "PASS (FAILURE EXPECTED)"))
          ,@body))
-    
+
       (defmacro Implementation-Incomplete-Expect-Failure (&rest body)
        `(let ((test-harness-failure-tag "IMPLEMENTATION INCOMPLETE")
               (test-harness-success-tag "PASS (FAILURE EXPECTED)"))
          ,@body))
-    
+
       (defun Print-Failure (fmt &rest args)
        (setq fmt (format "%s: %s" test-harness-failure-tag fmt))
        (if (noninteractive) (apply #'message fmt args))
@@ -266,7 +266,7 @@ BODY is a sequence of expressions and may contain several tests."
            (Print-Failure "Assertion failed: (equal %S %S) => (equal %S %S)"
                           (quote ,object1) (quote ,object2) ,object1 ,object2)
            (incf assertion-failures))
-          (t (Print-Failure "(equal %S %S) ==> error: %S" 
+          (t (Print-Failure "(equal %S %S) ==> error: %S"
                             (quote ,object1) (quote ,object2) error-info)
              (incf other-failures)
              )))
@@ -281,7 +281,7 @@ BODY is a sequence of expressions and may contain several tests."
            (Print-Failure "Assertion failed: (not (equal %S %S)) => (not (equal %S %S))"
                           (quote ,object1) (quote ,object2) ,object1 ,object2)
            (incf assertion-failures))
-          (t (Print-Failure "(not (equal %S %S)) ==> error: %S" 
+          (t (Print-Failure "(not (equal %S %S)) ==> error: %S"
                             (quote ,object1) (quote ,object2) error-info)
              (incf other-failures)
              )))
@@ -498,11 +498,11 @@ BODY is a sequence of expressions and may contain several tests."
                                   (point))
                                 (point-max))
                 (funcall temp-buffer-show-function show-buffer))
-              (select-window
-               (prog1 (selected-window)
-                 (select-window (display-buffer (current-buffer)))
-                 (goto-char test-harness-results-point-max)
-                 (recenter 1)))))))))
+             (select-window
+              (prog1 (selected-window)
+                (select-window (display-buffer (current-buffer)))
+                (goto-char test-harness-results-point-max)
+                (recenter 1)))))))))
 
 (defun batch-test-emacs-1 (file)
   (condition-case error-info
index ef069fd..e6ae188 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
@@ -95,7 +95,7 @@
     (Assert-Equal (weak-list-list weaklist2) testlist)
     (Assert-Equal (weak-list-list weaklist3) testlist)
     (Assert-Equal (weak-list-list weaklist4) testlist)))
-  
+
 (garbage-collect)
 
 ;; tests for key-assoc weak-lists
 
 
 (garbage-collect)
-
index 85b09cd..e0b3f64 100644 (file)
@@ -44,7 +44,7 @@
 
 (defmacro bm-profile-time-multi-ord (count &rest body)
   `(let* ((cnt ,count)
-          (sttb (current-time)))
+         (sttb (current-time)))
      (while (< 0 cnt)
        ,@body
        (setq cnt (1- cnt)))
 
 (defmacro bm-profile-time-btime (&rest body)
   `(let* ((none (garbage-collect))
-          (sttb (current-btime)))
+         (sttb (current-btime)))
      ,@body
      (- (current-btime) sttb)))
 
 (defmacro bm-profile-time-multi-btime (count &rest body)
   `(let* ((cnt ,count)
-          (sttb (current-btime)))
+         (sttb (current-btime)))
      (while (nonnegativep cnt)
        ,@body
        (setq cnt (1- cnt)))
 
 (defun bm-compute-sample-points (test-range &optional grain)
   (let* ((lo (car test-range))
-         (hi (cdr test-range))
-         (grain-ratio (// hi lo grain))
-         (lol (log lo))
-         (hil (log hi))
-         (step (// (- hi lo) grain))
-         (stepl (// (- hil lol) grain))
-         (i (coerce-number lol 'int))
-         (logp (> grain-ratio 1))
-         (result (make-vector (1+ grain) nil))
-         logf linf)
+        (hi (cdr test-range))
+        (grain-ratio (// hi lo grain))
+        (lol (log lo))
+        (hil (log hi))
+        (step (// (- hi lo) grain))
+        (stepl (// (- hil lol) grain))
+        (i (coerce-number lol 'int))
+        (logp (> grain-ratio 1))
+        (result (make-vector (1+ grain) nil))
+        logf linf)
     (fset #'logf
-          #'(lambda (unused)
-              (let* ((exp (exp lol))
-                     (this (coerce-number exp 'int)))
-                (setq lol (+ lol stepl))
-                this)))
+         #'(lambda (unused)
+             (let* ((exp (exp lol))
+                    (this (coerce-number exp 'int)))
+               (setq lol (+ lol stepl))
+               this)))
     (fset #'linf
-          #'(lambda (unused)
-              (let* ((this (coerce-number lo 'int)))
-                (setq lo (+ lo step))
-                this)))
+         #'(lambda (unused)
+             (let* ((this (coerce-number lo 'int)))
+               (setq lo (+ lo step))
+               this)))
     (mapc-inplace (if logp #'logf #'linf) result)
     result))
 
 (defun bm-util-average (dllv c)
   (let* ((size (dllist-size dllv))
-         (res 0))
+        (res 0))
     (mapc-internal
      #'(lambda (v)
-         (setq res (+ res (aref v c))))
+        (setq res (+ res (aref v c))))
      dllv)
     (// res size)))
 
 (defun bm-util-deviation (dllv avg c)
   (let* ((size (dllist-size dllv))
-         (res 0))
+        (res 0))
     (mapc-internal
      #'(lambda (v)
-         (setq res
-               (+ res (^ (- (aref v c) avg) 2))))
+        (setq res
+              (+ res (^ (- (aref v c) avg) 2))))
      dllv)
     (sqrt (// res size))))
 
 (defun bm-determine-time-stability (test-funv result)
   "Examine RESULT and try to guess if time data behaves like O(1)."
   (let* ((vlen (length test-funv))
-         (resv (make-vector (1+ vlen) 0))
-         (j 0)
-         (avgsum 0)
-         (devsum 0))
+        (resv (make-vector (1+ vlen) 0))
+        (j 0)
+        (avgsum 0)
+        (devsum 0))
     (while (< j vlen)
       (let* ((fun (aref test-funv j))
-             (name (function-documentation fun))
-             (avg (bm-util-average result j))
-             (adev (bm-util-deviation result avg j))
-             (rdev (* (// adev avg) 100)))
-        (setq avgsum (+ avgsum avg)
-              devsum (+ devsum adev))
-        (aset resv j (vector name avg adev rdev)))
+            (name (function-documentation fun))
+            (avg (bm-util-average result j))
+            (adev (bm-util-deviation result avg j))
+            (rdev (* (// adev avg) 100)))
+       (setq avgsum (+ avgsum avg)
+             devsum (+ devsum adev))
+       (aset resv j (vector name avg adev rdev)))
       (setq j (1+ j)))
     (aset resv vlen (vector "SUM" avgsum devsum (* (// devsum avgsum) 100)))
     resv))
 
 (defun bm-examine-time-stability (test-funv point)
   (princ (format "Testing time stability on %d ...\n" point)
-         'external-debugging-output)
+        'external-debugging-output)
   (let* ((grain 100)
-         (pile (dllist)))
+        (pile (dllist)))
     (loop for i below grain
       do (dllist-append
-          pile
-          (prog2
-            ;; for the log
-            (insert (format "%d" point))
-            (mapvector
-             #'(lambda (f)
-                 (let* ((time
-                         (bm-profile-time
-                          (funcall f point))))
-                   ;; for the log
-                   (insert (format " %d" time))
-                   time))
-             test-funv)
-            ;; for the log
-            (insert (format "\n" point)))))
+         pile
+         (prog2
+           ;; for the log
+           (insert (format "%d" point))
+           (mapvector
+            #'(lambda (f)
+                (let* ((time
+                        (bm-profile-time
+                         (funcall f point))))
+                  ;; for the log
+                  (insert (format " %d" time))
+                  time))
+            test-funv)
+           ;; for the log
+           (insert (format "\n" point)))))
     (let* ((ts (bm-determine-time-stability test-funv pile)))
       ;;(bm-dump-pile test-funv pile ts)
       (mapc-internal
        #'(lambda (v)
-           (let* ((name (aref v 0))
-                  (avg (aref v 1))
-                  (adev (aref v 2))
-                  (rdev (aref v 3)))
-             (princ (format "%32s, avg: %10d us (±%d us = %3.2f %%%s)\n"
-                            name avg adev rdev
-                            (if (< rdev 25) "" " = UNSTABLE!"))
-                    'external-debugging-output)))
+          (let* ((name (aref v 0))
+                 (avg (aref v 1))
+                 (adev (aref v 2))
+                 (rdev (aref v 3)))
+            (princ (format "%32s, avg: %10d us (±%d us = %3.2f %%%s)\n"
+                           name avg adev rdev
+                           (if (< rdev 25) "" " = UNSTABLE!"))
+                   'external-debugging-output)))
        ts)
       (vector pile ts))))
 
 
 (defun bm-estimate-time (test &optional grain)
   (let* ((test-funv (plist-get test :test-funv))
-         (test-range (plist-get test :test-range))
-         (grain (or grain (plist-get test :grain) 20))
-         (pf (plist-get test :plot-file))
-         (buf (get-buffer-create (or pf "dontcare")))
-         (tflen (length test-funv))
-         (sample-points (bm-compute-sample-points test-range grain))
-         (samples (make-skiplist)))
+        (test-range (plist-get test :test-range))
+        (grain (or grain (plist-get test :grain) 20))
+        (pf (plist-get test :plot-file))
+        (buf (get-buffer-create (or pf "dontcare")))
+        (tflen (length test-funv))
+        (sample-points (bm-compute-sample-points test-range grain))
+        (samples (make-skiplist)))
     (with-temp-buffer
       ;; for the log
       (insert "N")
       (loop for j from 1 to tflen
-        do (insert (format " t%d" j)))
+       do (insert (format " t%d" j)))
       (insert "\n")
       ;; now run the tests
       (mapcar
        #'(lambda (point)
-           (put-skiplist samples point (bm-run-tests test-funv point)))
+          (put-skiplist samples point (bm-run-tests test-funv point)))
        sample-points)
       (write-region-internal (point-min) (point-max) pf)
       (princ "\n" 'external-debugging-output))
     (insert (format "\n### component %d\n" c))
     (map-skiplist
      #'(lambda (key val)
-         (let* ((pile (aref val 0))
-                (ts (aref val 1))
-                (tslen (length ts))
-                (vec (aref ts c)))
-           (insert (format "%d %f %f %f\n"
-                           key (aref vec 1) (aref vec 2) (aref vec 3)))))
+        (let* ((pile (aref val 0))
+               (ts (aref val 1))
+               (tslen (length ts))
+               (vec (aref ts c)))
+          (insert (format "%d %f %f %f\n"
+                          key (aref vec 1) (aref vec 2) (aref vec 3)))))
      samples)
     (insert "\n")))
 
   (with-current-buffer (get-buffer-create buf)
     (map-skiplist
      #'(lambda (key val)
-         (insert (format "%s %S\n" key val)))
+        (insert (format "%s %S\n" key val)))
      samples)
     (insert "\n")))
 
 (defun bm-dump-pile (test-funv pile ts)
   (with-temp-buffer
     (let* ((vlen (length test-funv))
-           (resv (make-vector (1+ vlen) 0))
-           (j 0))
+          (resv (make-vector (1+ vlen) 0))
+          (j 0))
       (while (< j vlen)
-        (let* ((fun (aref test-funv j))
-               (name (function-documentation fun))
-               (i 0))
-          (insert "\n\n## " name "\n")
-          (mapc-internal
-           #'(lambda (v)
-               (insert (format "%d %f\n" i (aref v j)))
-               (setq i (1+ i)))
-           pile))
-        (setq j (1+ j)))
+       (let* ((fun (aref test-funv j))
+              (name (function-documentation fun))
+              (i 0))
+         (insert "\n\n## " name "\n")
+         (mapc-internal
+          #'(lambda (v)
+              (insert (format "%d %f\n" i (aref v j)))
+              (setq i (1+ i)))
+          pile))
+       (setq j (1+ j)))
       (write-region (point-min) (point-max) "benchmark.plot")
       (princ "\n" 'external-debugging-output))))
 
 
 (provide 'benchmark)
-
index 5ce3f8e..2eb5831 100644 (file)
@@ -24,4 +24,3 @@
            (check-frame-geometry x (+ y 3))
            (set-frame-property frame 'left (+ x 3))
            (check-frame-geometry (+ x 3) (+ y 3))))
-
index 7330032..24da2fc 100644 (file)
@@ -1,8 +1,8 @@
-(set-extent-begin-glyph 
+(set-extent-begin-glyph
  (make-extent (point) (point))
  (setq im (make-glyph [xbm :file "xemacsicon.xbm"])))
 
-(set-extent-begin-glyph 
+(set-extent-begin-glyph
  (make-extent (point) (point))
  (make-glyph [string :data "xemacs"]))
 
 
 ;; button in a group
 (setq ok-select nil)
-(set-extent-begin-glyph 
+(set-extent-begin-glyph
  (make-extent (point) (point))
- (make-glyph 
-  (setq radio-button1 
+ (make-glyph
+  (setq radio-button1
        [button :face widget
                :descriptor ["ok1" (setq ok-select t)
                             :style radio :selected ok-select]])))
 ;; button in a group
-(set-extent-begin-glyph 
+(set-extent-begin-glyph
  (make-extent (point) (point))
- (make-glyph 
+ (make-glyph
   (setq radio-button2
-       [button :descriptor ["ok2" (setq ok-select nil) :style radio 
+       [button :descriptor ["ok2" (setq ok-select nil) :style radio
                             :selected (not ok-select)]])))
 ;; toggle button
-(set-extent-begin-glyph 
+(set-extent-begin-glyph
  (make-extent (point) (point))
  (setq tbutton
-       (make-glyph [button :descriptor ["ok3" (setq ok-select nil) 
-                                       :style toggle 
+       (make-glyph [button :descriptor ["ok3" (setq ok-select nil)
+                                       :style toggle
                                        :selected (not ok-select)]])))
-(set-extent-begin-glyph 
+(set-extent-begin-glyph
  (make-extent (point) (point))
- (make-glyph 
+ (make-glyph
   (setq toggle-button
-       [button :descriptor ["ok4" :style toggle 
-                            :callback 
+       [button :descriptor ["ok4" :style toggle
+                            :callback
                             (setq ok-select (not ok-select))
                             :selected ok-select]])))
 
 ;; normal pushbutton
-(set-extent-begin-glyph 
+(set-extent-begin-glyph
  (make-extent (point) (point))
- (setq push-button 
+ (setq push-button
        (make-glyph [button :width 10 :height 2
                           :face modeline-mousable
                           :descriptor "ok" :callback foo
                           :selected t])))
 ;; tree view
-(set-extent-begin-glyph 
+(set-extent-begin-glyph
  (make-extent (point) (point))
- (setq tree (make-glyph 
+ (setq tree (make-glyph
             [tree-view :width 10
                        :descriptor "My Tree"
                        :items (["One" foo]
@@ -65,9 +65,9 @@
                                "Three")])))
 
 ;; tab control
-(set-extent-begin-glyph 
+(set-extent-begin-glyph
  (make-extent (point) (point))
- (setq tab (make-glyph 
+ (setq tab (make-glyph
            [tab-control :descriptor "My Tab"
                         :face highlight
                         :orientation right
@@ -76,9 +76,9 @@
                                 ["Three" foo :selected nil])])))
 
 ;; progress gauge
-(set-extent-begin-glyph 
+(set-extent-begin-glyph
  (make-extent (point) (point))
- (setq pgauge (make-glyph 
+ (setq pgauge (make-glyph
               [progress-gauge :width 10 :height 2 :value 0
                               :descriptor "ok"])))
 ;; progress the progress ...
@@ -90,9 +90,9 @@
     (sit-for 0.1)))
 
 ;; progress gauge in the modeline
-(setq global-mode-string 
+(setq global-mode-string
       (cons (make-extent nil nil)
-           (setq pg (make-glyph 
+           (setq pg (make-glyph
                      [progress-gauge :width 5 :pixel-height 16
                                      :descriptor "ok"]))))
 ;; progress the progress ...
     (redisplay-frame)
     (sit-for 0.1)))
 
-(set-extent-begin-glyph 
+(set-extent-begin-glyph
  (make-extent (point) (point))
- (make-glyph 
+ (make-glyph
   [button :face modeline-mousable
          :descriptor "ok" :callback foo
          :image [xpm :file "../etc/xemacs-icon.xpm"]]))
 
 ;; normal pushbutton
-(set-extent-begin-glyph 
+(set-extent-begin-glyph
  (make-extent (point) (point))
  (setq pbutton
        (make-glyph [button :descriptor ["A Big Button" foo ]])))
 
 ;; edit box
-(set-extent-begin-glyph 
- (make-extent (point) (point)) 
+(set-extent-begin-glyph
+ (make-extent (point) (point))
  (make-glyph (setq edit-field [edit-field :pixel-width 50 :pixel-height 30
                                          :face bold-italic
                                          :descriptor ["Hello"]])))
 ;; combo box
-(set-extent-begin-glyph 
+(set-extent-begin-glyph
  (make-extent (point) (point))
  (make-glyph (setq combo-box
-                  [combo-box :width 10 :descriptor ["Hello"] 
+                  [combo-box :width 10 :descriptor ["Hello"]
                              :items ("One" "Two" "Three")])))
 
 ;; label
-(set-extent-begin-glyph 
+(set-extent-begin-glyph
  (make-extent (point) (point))
  (make-glyph (setq label [label :pixel-width 150 :descriptor "Hello"])))
 
 ;; string
-(set-extent-begin-glyph 
+(set-extent-begin-glyph
  (make-extent (point) (point))
- (make-glyph 
+ (make-glyph
   (setq str
        [string :data "Hello There"])))
 
 ;; scrollbar
-;(set-extent-begin-glyph 
+;(set-extent-begin-glyph
 ; (make-extent (point) (point))
 ; (make-glyph [scrollbar :width 50 :height 20 :descriptor ["Hello"]]))
 
 (set-extent-begin-glyph (make-extent (point) (point)) sw)
 
 ;; layout
-(setq layout 
+(setq layout
       (make-glyph
        `[layout :descriptor "The Layout"
                :orientation vertical
 
 ;; another test layout
 (set-extent-begin-glyph
- (make-extent (point) (point)) 
+ (make-extent (point) (point))
  (setq layout-2
        (make-glyph `[layout :descriptor "The Layout"
                            :orientation vertical
                                   :items ([progress-gauge :value 4 :width 10 :height 2
                                                           :descriptor "ok"])])
 (setq test-toggle-widget nil)
-       
+
 (defun test-toggle (widget)
-  (set-extent-begin-glyph 
+  (set-extent-begin-glyph
    (make-extent (point) (point))
    (make-glyph (vector 'button
                       :descriptor "ok"
index c73b09f..ac4edec 100644 (file)
@@ -1,6 +1,6 @@
 (setq str "Hello\nAgain")
 (setq str-ext (make-extent 0 5 str))
-(set-extent-begin-glyph 
+(set-extent-begin-glyph
  str-ext
  (make-glyph [xpm :file "../etc/xemacs-icon.xpm"]))
 (set-extent-property str-ext 'mouse-face 'highlight)
@@ -9,7 +9,7 @@
 (setq str2-ext (make-extent 0 1 str2))
 (set-extent-begin-glyph
  str2-ext
- (make-glyph 
+ (make-glyph
   [button :width 5 :height 1
          :face modeline-mousable
          :callback (set-specifier bottom-gutter-visible-p '(str2))
 (set-specifier bottom-gutter-height 'autodetect)
 (set-specifier bottom-gutter-border-width 2)
 
-(set-gutter-element 
+(set-gutter-element
  bottom-gutter 'str
- (make-glyph 
-  [layout :orientation vertical 
-         :justify left :margin-width 4 
+ (make-glyph
+  [layout :orientation vertical
+         :justify left :margin-width 4
          :items ([string :data "Fontifying glyphs.c..."]
-                 [layout :orientation horizontal 
-                         :items 
+                 [layout :orientation horizontal
+                         :items
                          ([progress-gauge :value 0 :pixel-height 24
-                                          :pixel-width 250 :descriptor 
+                                          :pixel-width 250 :descriptor
                                           "Progress"]
                           [button :pixel-height 24
-                                  :descriptor " Stop " 
+                                  :descriptor " Stop "
                                   :callback (quote quit)])])]))
 
 (set-gutter-element bottom-gutter 'str2 str2)
 (set-gutter-element-visible-p bottom-gutter-visible-p 'str t)
 (set-gutter-element-visible-p bottom-gutter-visible-p 'str2 t)
-
index dc7152b..9b7a773 100644 (file)
@@ -15,7 +15,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Just load the file to run the test.
 
@@ -47,4 +47,3 @@
   (test-match 0  "[^\e$(B4A\e(Ba]" "b\e$(B4A\e(Bab\e$(B4A;z\e(Bba")
   (test-match 5  "\e$(B4A\e(B[^\e$(B4A\e(Ba]" "a\e$(B4A\e(Bab\e$(B4A4A;z\e(Bba")
   )
-
index e961d6c..1faa953 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
index cf7d060..8ed3aaf 100644 (file)
@@ -18,7 +18,7 @@
 ;; General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Synched up with: Not in FSF.
 
@@ -139,7 +139,7 @@ public static void main(String[] args) throws java.io.IOException
 (defbug 7
   (string-match "\\(\\s-\\|$\\)" "å"))
 
-  
+
 ;;;; -------------------------------------------------------------------
 ;;;; Bugs below this line have been fixed.
 ;;;; Keep these for regression testing