39 lines
1.4 KiB
Common Lisp
39 lines
1.4 KiB
Common Lisp
;;; -*- mode: lisp; coding: utf-8; -*-
|
|
|
|
(defpackage :ml-qmetrics/tests
|
|
(:use :cl :fiveam)
|
|
|
|
(:import-from #:ml-qmetrics/assessment
|
|
#:nps-calc-score
|
|
#:nps-enumerate
|
|
#:sus-response-entries-process))
|
|
|
|
(in-package :ml-qmetrics/tests)
|
|
|
|
(def-suite :assessment)
|
|
|
|
(in-suite :assessment)
|
|
|
|
(test nps-calc-score
|
|
(is (= 100 (apply #'nps-calc-score '(10 0 10))))
|
|
(is (= 0 (apply #'nps-calc-score '(0 0 1)))))
|
|
|
|
(test nps-enumerate
|
|
(is (equal '(0 1 1) (nps-enumerate '(0 11))))
|
|
(is (equal '(0 4 4) (nps-enumerate '(1 2 3 4))))
|
|
(signals error (nps-enumerate 0))
|
|
(signals error (nps-enumerate '())))
|
|
|
|
(test sus-response-entries-process
|
|
(let ((sample-data '(("group-q1" . "3-neither-agree-nor-disagree")
|
|
("group-q2-r" . "4-agree")
|
|
("group-q3" . "5-strongly-agree")
|
|
("group-q4-r" . "1-strongly-disagree")
|
|
("group-q5" . "5-strongly-agree")
|
|
("group-q6-r" . "2-disagree")
|
|
("group-q7" . "3-neither-agree-nor-disagree")
|
|
("group-q8-r" . "3-neither-agree-nor-disagree")
|
|
("group-q9" . "4-agree")
|
|
("group-q10-r" . "2-disagree"))))
|
|
(is (equal '(:Q1 2 :Q2 1 :Q3 4 :Q4 4 :Q5 4 :Q6 3 :Q7 2 :Q8 2 :Q9 3 :Q10 3)
|
|
(sus-response-entries-process sample-data)))))
|