Add SUS score calculations to --ux

This commit is contained in:
Marcus Kammer 2023-05-26 15:14:13 +02:00
parent 81992fc487
commit e0982846e9

View file

@ -327,3 +327,19 @@
(defun ux:filter-tbl (sym tbl)
(cond ((null sym) tbl)
(t (ux:filter-tbl (cdr sym) (ux:filtered-tbl (car sym) tbl)))))
(defun ux:sus-calc-stats (result)
(cond ((cl-oddp (car result))
(mapcar (lambda (x) (1- x)) (car (last result))))
((cl-evenp (car result))
(mapcar (lambda (x) (- 5 x)) (car (last result))))))
(defun ux:sus-sum-cols (table)
(let ((n (length (car table))))
(mapcar (lambda (i)
(apply '+ (mapcar (lambda (row) (nth i row)) table)))
(number-sequence 0 (1- n)))))
(defun ux:calc-sus-score (results-tbl)
(let ((tbl (ux:sus-sum-cols (mapcar #'ux:sus-calc-stats results-tbl))))
(/ (apply #'+ (mapcar (lambda (x) (* x 2.5)) tbl)) (length tbl))))