From e0982846e979b2696b2c47d84a1c7e87acbe1dfe Mon Sep 17 00:00:00 2001 From: Marcus Kammer Date: Fri, 26 May 2023 15:14:13 +0200 Subject: [PATCH] Add SUS score calculations to --ux --- bundle/bundle--ux.el | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/bundle/bundle--ux.el b/bundle/bundle--ux.el index 74176a02..84dbde38 100644 --- a/bundle/bundle--ux.el +++ b/bundle/bundle--ux.el @@ -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))))