From: Robert D. <rob...@us...> - 2004-11-27 15:54:44
|
Update of /cvsroot/maxima/maxima/share/contrib/numericalio In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25741 Modified Files: array.data array.mac csv.mac numericalio.lisp ragged.data ragged.mac really-csv.data really-space-separated.csv rectangular.csv rectangular.data rectangular.mac Log Message: Changes to support case sensitivity: pay attention to *readtable-case* and *print-case* in numericalio.lisp, and use print-invert-case; change TRUE and FALSE in script files to true and false; match case of symbols in script files and data files (mostly uppercase). Current revision of numericalio.lisp passes the existing tests. Index: array.data =================================================================== RCS file: /cvsroot/maxima/maxima/share/contrib/numericalio/array.data,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- array.data 4 Feb 2004 15:40:21 -0000 1.1 +++ array.data 27 Nov 2004 15:54:34 -0000 1.2 @@ -1,6 +1,6 @@ -7 12 FOO 45 91 +7 12 foo 45 91 2 -8 123 -9 -1 -8 18 BAR -5 17 +8 18 bar -5 17 6 13 -57 28 53 2.5 19.7 1.2 9.1 1.7 @@ -8,7 +8,7 @@ 5.4 -5.3 9.8 1.8 6.2 0.8 52.9 7.1 0.2 1.8 -BAZ 7/9 11/2 17/3 3/11 +baz 7/9 11/2 17/3 3/11 1/8 9/7 2/11 3/17 11/3 2/9 3/2 9/25 5/12 7/13 8/7 5/3 13/3 12/7 15/8 Index: array.mac =================================================================== RCS file: /cvsroot/maxima/maxima/share/contrib/numericalio/array.mac,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- array.mac 4 Feb 2004 15:40:21 -0000 1.1 +++ array.mac 27 Nov 2004 15:54:34 -0000 1.2 @@ -5,9 +5,9 @@ prederror: false$ -l: [7, 12, FOO, 45, 91, +l: [7, 12, foo, 45, 91, 2, -8, 123, -9, -1, -8, 18, BAR, -5, 17, +8, 18, bar, -5, 17, 6, 13, -57, 28, 53, 2.5, 19.7, 1.2, 9.1, 1.7, @@ -15,7 +15,7 @@ 5.4, -5.3, 9.8, 1.8, 6.2, 0.8, 52.9, 7.1, 0.2, 1.8, -BAZ, 7/9, 11/2, 17/3, 3/11, +baz, 7/9, 11/2, 17/3, 3/11, 1/8, 9/7, 2/11, 3/17, 11/3, 2/9, 3/2, 9/25, 5/12, 7/13, 8/7, 5/3, 13/3, 12/7, 15/8]$ @@ -34,11 +34,11 @@ prederror: false$ -if is_equal_array(a, a2) = TRUE +if is_equal_array(a, a2) = true then print("success: array.data loaded as a Lisp array") else print("FAILED to load array.data as a Lisp array")$ -if is_equal_array(b, b2) = TRUE +if is_equal_array(b, b2) = true then print("success: array.data loaded as a Maxima array") else print("FAILED to load array.data as a Maxima array")$ @@ -51,24 +51,24 @@ read_lisp_array("tmp-maxima-array.data", a3)$ read_maxima_array("tmp-lisp-array.data", b3)$ -if is_equal_array(a2, a3) = TRUE +if is_equal_array(a2, a3) = true then print("success: wrote Maxima array, read again as Lisp array") else block ( print("FAILED to write Maxima array, read again as Lisp array;"), l2: read_list("tmp-maxima-array.data"), - if is(equal(l, l2)) = TRUE + if is(equal(l, l2)) = true then print("... success: wrote Maxima array, read again as a list, however.") else print("... FAILED to write Maxima array, read again as a list.") )$ -if is_equal_array(b2, b3) = TRUE +if is_equal_array(b2, b3) = true then print("success: wrote Lisp array, read again as Maxima array") else block ( print("FAILED to write Lisp array, read again as Maxima array;"), l2: read_list("tmp-lisp-array.data"), - if is(equal(l, l2)) = TRUE + if is(equal(l, l2)) = true then print("... success: wrote Lisp array, read again as a list, however.") else print("... FAILED to write Lisp array, read again as a list.") )$ Index: csv.mac =================================================================== RCS file: /cvsroot/maxima/maxima/share/contrib/numericalio/csv.mac,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- csv.mac 4 Feb 2004 15:40:21 -0000 1.1 +++ csv.mac 27 Nov 2004 15:54:34 -0000 1.2 @@ -30,15 +30,15 @@ m4: read_matrix("really-space-separated.csv", 'space)$ -if is(equal(m, m2)) = TRUE +if is(equal(m, m2)) = true then print("success: rectangular.csv loaded as a matrix") else print("FAILED to load rectangular.csv as a matrix")$ -if is(equal(m, m3)) = TRUE +if is(equal(m, m3)) = true then print("success: really-csv.data loaded as a matrix") else print("FAILED to load really-csv.data as a matrix")$ -if is(equal(m, m4)) = TRUE +if is(equal(m, m4)) = true then print("success: really-space-separated.csv loaded as a matrix") else print("FAILED to load really-space-separated.csv as a matrix")$ @@ -50,15 +50,15 @@ m6: read_matrix("tmp-matrix.data", 'csv)$ m7: read_matrix("tmp-matrix-2.csv", 'space)$ -if is(equal(m2, m5)) = TRUE +if is(equal(m2, m5)) = true then print("success: wrote .csv file, read again as matrix") else print("FAILED to write .csv file, read again as matrix")$ -if is(equal(m2, m6)) = TRUE +if is(equal(m2, m6)) = true then print("success: wrote .data file (using 'csv flag), read again as matrix") else print("FAILED to write .data file (using 'csv flag), read again as matrix")$ -if is(equal(m2, m7)) = TRUE +if is(equal(m2, m7)) = true then print("success: wrote .csv file (using 'space flag), read again as matrix") else print("FAILED to write .csv file (using 'space flag), read again as matrix")$ @@ -69,6 +69,6 @@ array(a2, 2, 3, 4)$ read_maxima_array("tmp-array.csv", a2)$ -if is_equal_array(a, a2) = TRUE +if is_equal_array(a, a2) = true then print("success: read space-separated, wrote csv, read csv into array") else print("FAILED to read space-separated, write csv, read csv into array")$ Index: numericalio.lisp =================================================================== RCS file: /cvsroot/maxima/maxima/share/contrib/numericalio/numericalio.lisp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- numericalio.lisp 26 Sep 2004 16:20:25 -0000 1.2 +++ numericalio.lisp 27 Nov 2004 15:54:34 -0000 1.3 @@ -11,18 +11,19 @@ ;; This file contains some functions to read and write data files. ;; Data files can contain integers, rationals, floats, complex, -;; strings (in double quotes), and symbols. Symbols are translated -;; to uppercase when read in, thus ``foo'' in a data file is -;; ``FOO'' in Maxima. The entire file is read to construct one -;; object, i.e., no partial reads. +;; strings (in double quotes), and symbols. The case of a symbol +;; (upper, lower, or mixed) is preserved, thus ``FOO'', ``Bar'', +;; and ``baz'' in a data file are ``FOO'', ``Bar'', and ``baz'' in +;; Maxima. The entire file is read to construct one object; +;; partial reads are not supported. ;; ;; Read functions: -;; M: read_matrix(file_name, sep_ch_flag)$ -;; read_lisp_array(file_name, A, sep_ch_flag)$ -;; read_maxima_array(file_name, A, sep_ch_flag)$ -;; read_hashed_array(file_name, A, sep_ch_flag)$ -;; L: read_nested_list(file_name, sep_ch_flag)$ -;; L: read_list(file_name, sep_ch_flag)$ +;; M: read_matrix (file_name, sep_ch_flag)$ +;; read_lisp_array (file_name, A, sep_ch_flag)$ +;; read_maxima_array (file_name, A, sep_ch_flag)$ +;; read_hashed_array (file_name, A, sep_ch_flag)$ +;; L: read_nested_list (file_name, sep_ch_flag)$ +;; L: read_list (file_name, sep_ch_flag)$ ;; ;; Write function: ;; write_data(X, file_name, sep_ch_flag)$ @@ -94,14 +95,16 @@ (setq file-name (require-string file-name)) (with-open-file (in file-name :if-does-not-exist nil) (cond ((not (null in)) - (let ((sep-ch (get-sep-ch sep-ch-flag file-name))) + (let ((sep-ch (get-sep-ch sep-ch-flag file-name)) (local-table (copy-readtable nil))) + (setf (readtable-case local-table) :invert) (loop - (let ((key (read in nil 'eof)) (L)) - (if (eq key 'eof) (return t)) - (if (symbolp key) (setq key (makealias key))) - (setq L (read-line in nil 'eof)) - (setq L (make-mlist-from-string L sep-ch)) - (arrstore (list (list A 'simp 'array) key) L))))) + (let ((*readtable* local-table)) + (let ((key (read in nil 'eof)) (L)) + (if (eq key 'eof) (return t)) + (if (symbolp key) (setq key (makealias key))) + (setq L (read-line in nil 'eof)) + (setq L (make-mlist-from-string L sep-ch)) + (arrstore (list (list A 'simp 'array) key) L)))))) (t (merror "read_hashed_array: ~S: no such file" file-name)))) '$done) @@ -143,8 +146,11 @@ (cond ((> (length (string-trim '(#\space #\tab) s)) 0) (setq s (concatenate 'string s (string sep-ch))))) - (let ((L '()) (in (make-string-input-stream s)) (x) (pc)) - (loop + (let ((L '()) (in (make-string-input-stream s)) (x) (pc) (local-table (copy-readtable nil))) + (setf (readtable-case local-table) :invert) + (let ((*readtable* local-table)) + + (loop ;; Two different methods of reading are needed, because: ;; read-delimited-list is undefined if sep-ch is whitespace, @@ -165,7 +171,7 @@ (if (eq x 'eof) (return (cons '(mlist simp) L))) (setq x (lisp-to-maxima x)) - (setq L (append L (list x)))))) + (setq L (append L (list x))))))) (defun lisp-to-maxima (x) @@ -265,8 +271,9 @@ (setq x (maybe-convert-complex x)) (setq x (maybe-convert-rat x)) (setq x (maybe-convert-symbol x)) - (format fs (cond ((floatp x) "~F") - (t "~S")) x)) + (let ((*print-case* :downcase)) + (format fs (cond ((floatp x) "~F") + (t "~S")) x))) (defun maybe-convert-complex (x) @@ -306,6 +313,6 @@ (defun require-string (s) (cond ((mstringp s) - (symbol-name (stripdollar s))) + (print-invert-case (stripdollar s))) (t (merror "numericalio: expected a string, instead found a ~:M" (type-of s))))) Index: ragged.data =================================================================== RCS file: /cvsroot/maxima/maxima/share/contrib/numericalio/ragged.data,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ragged.data 4 Feb 2004 15:40:21 -0000 1.1 +++ ragged.data 27 Nov 2004 15:54:34 -0000 1.2 @@ -1,11 +1,11 @@ -aa46 7 7 16 foo3 -aa31 31 61 25 9.16 5/13 -aa16 13 49 7 5.67 2.54 4.54 -aa52 7 foo9 bar4 2.93 -aa40 7 25 40 3.15 7.54 0.00 -aa46 13/25 7 16 foo3 2.71 2.88 -aa31 31 61 25 9.16 -aa58 19 28 43 4.04 0.90 baz8 -aa34 16 #C(17/5 18/19) 2.85 -aa40 7 25 -aa22 6/17 40 bar2 9.12 +AA46 7 7 16 FOO3 +AA31 31 61 25 9.16 5/13 +AA16 13 49 7 5.67 2.54 4.54 +AA52 7 FOO9 BAR4 2.93 +AA40 7 25 40 3.15 7.54 0.00 +AA46 13/25 7 16 FOO3 2.71 2.88 +AA31 31 61 25 9.16 +AA58 19 28 43 4.04 0.90 BAZ8 +AA34 16 #C(17/5 18/19) 2.85 +AA40 7 25 +AA22 6/17 40 BAR2 9.12 Index: ragged.mac =================================================================== RCS file: /cvsroot/maxima/maxima/share/contrib/numericalio/ragged.mac,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ragged.mac 4 Feb 2004 15:40:21 -0000 1.1 +++ ragged.mac 27 Nov 2004 15:54:34 -0000 1.2 @@ -44,21 +44,21 @@ kill(h2)$ read_hashed_array("ragged.data", h2)$ -prederror:FALSE$ +prederror:false$ -if is(equal(l, l2)) = TRUE +if is(equal(l, l2)) = true then print("success: ragged.data loaded as flat list") else print("FAILED to load ragged.data as flat list")$ -if is(equal(l_nested, l2_nested)) = TRUE +if is(equal(l_nested, l2_nested)) = true then print("success: ragged.data loaded as nested list") else print("FAILED to load ragged.data as nested list")$ -if is(equal(arrayinfo(h), arrayinfo(h2))) = TRUE +if is(equal(arrayinfo(h), arrayinfo(h2))) = true then print("success: ragged.data keys loaded") else print("FAILED to load ragged.data keys")$ -if is(equal(listarray(h), listarray(h2))) = TRUE +if is(equal(listarray(h), listarray(h2))) = true then print("success: ragged.data records loaded as hashed array") else print("FAILED to load ragged.data records as hashed array")$ @@ -80,6 +80,6 @@ l_dot_l: l . transpose(l)$ l2_dot_l2: l2 . transpose(l2)$ -if is(equal(ev(l_dot_l - l2_dot_l2), 0)) = TRUE +if is(equal(ev(l_dot_l - l2_dot_l2), 0)) = true then print("success: ragged.data variables assigned") else print("FAILED to assign ragged.data variables")$ Index: really-csv.data =================================================================== RCS file: /cvsroot/maxima/maxima/share/contrib/numericalio/really-csv.data,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- really-csv.data 4 Feb 2004 15:40:21 -0000 1.1 +++ really-csv.data 27 Nov 2004 15:54:34 -0000 1.2 @@ -1,11 +1,11 @@ -key, xx, yy, zz, foo, bar, baz -aa46, 7, 7, 16, foo3, 2.71, 2.88 -aa31, 31, 61, 25, 9/16, 6.10, 7/41 -aa22, 61, 40, 13, #C(3/2 6/7), bar2, 9.12 -aa16, 19, 25, 31, foo7, 4.80, 6/97 -aa16, 13, 49, 7, 5.67, 2.54, 4.54 -aa58, 19, 28, 43, 4.04, 0.90, baz8 -aa34, 16, 22, 19, 4.87, 4.90, 2.85 -aa52, 28, 34, 7, foo9, bar4, 2/93 -aa52, 10, 43, 13, #C(1/2 1/7), 5.69, 0.00 -aa40, 7, 25, 40, 3.15, 7.54, 6.11 +KEY, XX, YY, ZZ, FOO, BAR, BAZ +AA46, 7, 7, 16, FOO3, 2.71, 2.88 +AA31, 31, 61, 25, 9/16, 6.10, 7/41 +AA22, 61, 40, 13, #C(3/2 6/7), BAR2, 9.12 +AA16, 19, 25, 31, FOO7, 4.80, 6/97 +AA16, 13, 49, 7, 5.67, 2.54, 4.54 +AA58, 19, 28, 43, 4.04, 0.90, BAZ8 +AA34, 16, 22, 19, 4.87, 4.90, 2.85 +AA52, 28, 34, 7, FOO9, BAR4, 2/93 +AA52, 10, 43, 13, #C(1/2 1/7), 5.69, 0.00 +AA40, 7, 25, 40, 3.15, 7.54, 6.11 Index: really-space-separated.csv =================================================================== RCS file: /cvsroot/maxima/maxima/share/contrib/numericalio/really-space-separated.csv,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- really-space-separated.csv 4 Feb 2004 15:40:21 -0000 1.1 +++ really-space-separated.csv 27 Nov 2004 15:54:34 -0000 1.2 @@ -1,11 +1,11 @@ -key xx yy zz foo bar baz -aa46 7 7 16 foo3 2.71 2.88 -aa31 31 61 25 9/16 6.10 7/41 -aa22 61 40 13 #C(3/2 6/7) bar2 9.12 -aa16 19 25 31 foo7 4.80 6/97 -aa16 13 49 7 5.67 2.54 4.54 -aa58 19 28 43 4.04 0.90 baz8 -aa34 16 22 19 4.87 4.90 2.85 -aa52 28 34 7 foo9 bar4 2/93 -aa52 10 43 13 #C(1/2 1/7) 5.69 0.00 -aa40 7 25 40 3.15 7.54 6.11 +KEY XX YY ZZ FOO BAR BAZ +AA46 7 7 16 FOO3 2.71 2.88 +AA31 31 61 25 9/16 6.10 7/41 +AA22 61 40 13 #C(3/2 6/7) BAR2 9.12 +AA16 19 25 31 FOO7 4.80 6/97 +AA16 13 49 7 5.67 2.54 4.54 +AA58 19 28 43 4.04 0.90 BAZ8 +AA34 16 22 19 4.87 4.90 2.85 +AA52 28 34 7 FOO9 BAR4 2/93 +AA52 10 43 13 #C(1/2 1/7) 5.69 0.00 +AA40 7 25 40 3.15 7.54 6.11 Index: rectangular.csv =================================================================== RCS file: /cvsroot/maxima/maxima/share/contrib/numericalio/rectangular.csv,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- rectangular.csv 4 Feb 2004 15:40:21 -0000 1.1 +++ rectangular.csv 27 Nov 2004 15:54:34 -0000 1.2 @@ -1,11 +1,11 @@ -key, xx, yy, zz, foo, bar, baz -aa46, 7, 7, 16, foo3, 2.71, 2.88 -aa31, 31, 61, 25, 9/16, 6.10, 7/41 -aa22, 61, 40, 13, #C(3/2 6/7), bar2, 9.12 -aa16, 19, 25, 31, foo7, 4.80, 6/97 -aa16, 13, 49, 7, 5.67, 2.54, 4.54 -aa58, 19, 28, 43, 4.04, 0.90, baz8 -aa34, 16, 22, 19, 4.87, 4.90, 2.85 -aa52, 28, 34, 7, foo9, bar4, 2/93 -aa52, 10, 43, 13, #C(1/2 1/7), 5.69, 0.00 -aa40, 7, 25, 40, 3.15, 7.54, 6.11 +KEY, XX, YY, ZZ, FOO, BAR, BAZ +AA46, 7, 7, 16, FOO3, 2.71, 2.88 +AA31, 31, 61, 25, 9/16, 6.10, 7/41 +AA22, 61, 40, 13, #C(3/2 6/7), BAR2, 9.12 +AA16, 19, 25, 31, FOO7, 4.80, 6/97 +AA16, 13, 49, 7, 5.67, 2.54, 4.54 +AA58, 19, 28, 43, 4.04, 0.90, BAZ8 +AA34, 16, 22, 19, 4.87, 4.90, 2.85 +AA52, 28, 34, 7, FOO9, BAR4, 2/93 +AA52, 10, 43, 13, #C(1/2 1/7), 5.69, 0.00 +AA40, 7, 25, 40, 3.15, 7.54, 6.11 Index: rectangular.data =================================================================== RCS file: /cvsroot/maxima/maxima/share/contrib/numericalio/rectangular.data,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- rectangular.data 4 Feb 2004 15:40:21 -0000 1.1 +++ rectangular.data 27 Nov 2004 15:54:34 -0000 1.2 @@ -1,11 +1,11 @@ -key xx yy zz foo bar baz -aa46 7 7 16 foo3 2.71 2.88 -aa31 31 61 25 9/16 6.10 7/41 -aa22 61 40 13 #C(3/2 6/7) bar2 9.12 -aa16 19 25 31 foo7 4.80 6/97 -aa16 13 49 7 5.67 2.54 4.54 -aa58 19 28 43 4.04 0.90 baz8 -aa34 16 22 19 4.87 4.90 2.85 -aa52 28 34 7 foo9 bar4 2/93 -aa52 10 43 13 #C(1/2 1/7) 5.69 0.00 -aa40 7 25 40 3.15 7.54 6.11 +KEY XX YY ZZ FOO BAR BAZ +AA46 7 7 16 FOO3 2.71 2.88 +AA31 31 61 25 9/16 6.10 7/41 +AA22 61 40 13 #C(3/2 6/7) BAR2 9.12 +AA16 19 25 31 FOO7 4.80 6/97 +AA16 13 49 7 5.67 2.54 4.54 +AA58 19 28 43 4.04 0.90 BAZ8 +AA34 16 22 19 4.87 4.90 2.85 +AA52 28 34 7 FOO9 BAR4 2/93 +AA52 10 43 13 #C(1/2 1/7) 5.69 0.00 +AA40 7 25 40 3.15 7.54 6.11 Index: rectangular.mac =================================================================== RCS file: /cvsroot/maxima/maxima/share/contrib/numericalio/rectangular.mac,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- rectangular.mac 4 Feb 2004 15:40:21 -0000 1.1 +++ rectangular.mac 27 Nov 2004 15:54:34 -0000 1.2 @@ -37,25 +37,25 @@ l2: read_list("rectangular.data")$ -prederror:FALSE$ +prederror:false$ -if is(equal(l, l2)) = TRUE +if is(equal(l, l2)) = true then print("success: rectangular.data loaded as flat list") else print("FAILED to load rectangular.data as flat list")$ -if is(equal(l_nested, l2_nested)) = TRUE +if is(equal(l_nested, l2_nested)) = true then print("success: rectangular.data loaded as nested list") else print("FAILED to load rectangular.data as nested list")$ -if is(equal(arrayinfo(h), arrayinfo(h2))) = TRUE +if is(equal(arrayinfo(h), arrayinfo(h2))) = true then print("success: rectangular.data keys loaded") else print("FAILED to load rectangular.data keys")$ -if is(equal(listarray(h), listarray(h2))) = TRUE +if is(equal(listarray(h), listarray(h2))) = true then print("success: rectangular.data records loaded as hashed array") else print("FAILED to load rectangular.data records as hashed array")$ -if is(equal(m, m2)) = TRUE +if is(equal(m, m2)) = true then print("success: rectangular.data records loaded as matrix") else print("FAILED to load rectangular.data records as matrix")$ @@ -74,23 +74,23 @@ l3_nested: read_nested_list("tmp-matrix.data")$ l3: read_list("tmp-list.data")$ -if is(equal(l2, l3)) = TRUE +if is(equal(l2, l3)) = true then print("success: wrote, read again rectangular.data as flat list") else print("FAILED to write, read again rectangular.data as flat list")$ -if is(equal(l2_nested, l3_nested)) = TRUE +if is(equal(l2_nested, l3_nested)) = true then print("success: wrote, read again rectangular.data as nested list") else print("FAILED to write, read again rectangular.data as nested list")$ -if is(equal(arrayinfo(h2), arrayinfo(h3))) = TRUE +if is(equal(arrayinfo(h2), arrayinfo(h3))) = true then print("success: wrote, read again rectangular.data hashed array keys") else print("FAILED to write, read again rectangular.data hashed array keys")$ -if is(equal(listarray(h2), listarray(h3))) = TRUE +if is(equal(listarray(h2), listarray(h3))) = true then print("success: wrote, read again rectangular.data hashed array values") else print("FAILED to write, read again rectangular.data hashed array values")$ -if is(equal(m2, m3)) = TRUE +if is(equal(m2, m3)) = true then print("success: wrote, read again rectangular.data as matrix") else print("FAILED to write, read again rectangular.data as matrix")$ @@ -127,7 +127,7 @@ s2: 0$ for i:1 thru length(m2_dot_m2) do s2: s2 + m2_dot_m2[i, i]$ -if is(equal(s, s2)) = TRUE +if is(equal(s, s2)) = true then print("success: assigned values to variables in matrix") else print("FAILED to assign values to values in matrix")$ |