Add csv simple tests.

This commit is contained in:
Dominik Pantůček 2023-03-30 12:39:20 +02:00
parent a00b0f6239
commit a9c21c6cb0
3 changed files with 19 additions and 3 deletions

View file

@ -227,7 +227,7 @@ members-dir.so: members-dir.o
members-dir.o: members-dir.import.scm
members-dir.import.scm: $(MEMBERS-DIR-SOURCES)
CSV-SIMPLE-SOURCES=csv-simple.scm
CSV-SIMPLE-SOURCES=csv-simple.scm testing.import.scm
csv-simple.so: csv-simple.o
csv-simple.o: csv-simple.import.scm

View file

@ -42,7 +42,8 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
members-print
member-parser
member-fees
members-dir)
members-dir
csv-simple)
;; Print banner
(print "bbstool 0.6 (c) 2023 Brmlab, z.s.")
@ -106,6 +107,7 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
(member-record-tests!)
(member-parser-tests!)
(table-tests!)
(csv-simple-tests!)
(newline))
;; Load the members database (required for everything anyway)

View file

@ -29,13 +29,15 @@
csv-simple
(
csv-parse
csv-simple-tests!
)
(import scheme
(chicken base)
(chicken keyword)
(chicken io)
(chicken irregex))
(chicken irregex)
testing)
;; Curry version of line parser with configurable cell separator and
;; string delimiter. Returns a list of lists of strings.
@ -84,5 +86,17 @@
(csv-parse-line (make-csv-line-parser separator string-delimiter)))
(map csv-parse-line lines)))
;; Module self-tests
(define (csv-simple-tests!)
(run-tests
csv-simple
(test-equal? csv-parse-line
((make-csv-line-parser ";" "\"") "test;2;3")
'("test" "2" "3"))
(test-equal? csv-parse-line
((make-csv-line-parser ";" "\"") "test;\"2;quoted\";3")
'("test" "2;quoted" "3"))
))
)