From ed6d9913deb69d352c2dc0d02aa24c0e5b2cf860 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Sun, 19 Mar 2023 19:10:36 +0100 Subject: [PATCH] Preliminary stats. --- brmsaptool.scm | 3 ++- members-base.scm | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/brmsaptool.scm b/brmsaptool.scm index 62d7165..1870e7b 100644 --- a/brmsaptool.scm +++ b/brmsaptool.scm @@ -101,5 +101,6 @@ (print-members-base-info MB)) (newline)) ((print-stats) - (print (members-base-stats MB))) + (print-members-base-stats + (members-base-stats MB))) ) diff --git a/members-base.scm b/members-base.scm index d4b498e..7cb3edf 100644 --- a/members-base.scm +++ b/members-base.scm @@ -35,6 +35,7 @@ list-members-nicks members-base-stats print-members-base-info + print-members-base-stats members-base-tests! ) @@ -324,6 +325,19 @@ (member-records->ids+nicks-string invalid-mrs) a:default))))) + ;; Prints the stats in format used by gnuplot. + (define (print-members-base-stats ms) + (let ((keys (car ms)) + (data (cadr ms))) + (print "# " (string-intersperse (map symbol->string keys) " ")) + (let loop ((rows data)) + (when (not (null? rows)) + (let* ((row (car rows)) + (month (month->string (car row))) + (vals (cdr row))) + (print month " " (string-intersperse (map number->string vals) " ")) + (loop (cdr rows))))))) + ;; Performs self-tests of this module. (define (members-base-tests!) (run-tests