Only one group-stats function is needed

This commit is contained in:
Marcus Kammer 2024-10-18 16:26:10 +02:00
parent d829f2ea8b
commit b7eef8d77b
3 changed files with 13 additions and 16 deletions

View file

@ -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 ()

View file

@ -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)

View file

@ -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)