diff --git a/src/assessment/assessment.lisp b/src/assessment/assessment.lisp index 2b75263..8696ee1 100644 --- a/src/assessment/assessment.lisp +++ b/src/assessment/assessment.lisp @@ -133,6 +133,19 @@ ENTRY: Entry from a response." collect score))))) (append average-scores (list :average overall-average)))) + +(defmethod calculator-calc-group-stats ((calc calculator) results) + (when (> (length results) 1) + (flet ((merge-entry (acc entry) + (loop :for (key value) :on entry :by #'cddr + :do (push value (getf acc key))) + acc)) + (let ((merged-values (reduce #'merge-entry + (mapcar #'cddr results) + :initial-value '()))) + (reverse (loop :for (key value) :on merged-values :by #'cddr + :collect (list key (calculate-statistics value)))))))) + ;;; Displayer (defclass displayer () diff --git a/src/assessment/sus.lisp b/src/assessment/sus.lisp index dbbd795..ddc5d3d 100644 --- a/src/assessment/sus.lisp +++ b/src/assessment/sus.lisp @@ -25,9 +25,6 @@ (cons timestamp (append values (sus-score values)))))) -(defmethod calculator-calc-group-stats ((calc sus-calculator) results) - (when (> (length results) 1))) - (defclass sus-assessment (assessment) ()) (defmethod initialize-instance :after ((a sus-assessment) &key) diff --git a/src/assessment/visawi.lisp b/src/assessment/visawi.lisp index 7a63b4d..8c9f9e3 100644 --- a/src/assessment/visawi.lisp +++ b/src/assessment/visawi.lisp @@ -33,19 +33,6 @@ Returns an integer." (cons timestamp (average-score-per-group #'visawi-entry-process (rest response)))))) -(defmethod calculator-calc-group-stats ((calc visawi-calculator) results) - (if (> (length results) 1) - (flet ((merge-entry (acc entry) - (loop :for (key value) :on entry :by #'cddr - :do (push value (getf acc key))) - acc)) - (let ((merged-values (reduce #'merge-entry - (mapcar #'cddr results) - :initial-value '()))) - (reverse (loop :for (key value) :on merged-values :by #'cddr - :collect (list key (calculate-statistics value)))))) - nil)) - (defclass visawi-assessment (assessment) ()) (defmethod initialize-instance :after ((a visawi-assessment) &key)