如何最简单地对这个函数进行规范?特别是:fn
部分
(s/def ::edges #{0.149 0.150 0.050})
(s/def ::result #{:correct :incorrect})
(s/fdef foo
:args (s/cat :student-response ::edges :authoritative-answer ::edges)
:ret ::result
:fn ? )
基本上,如果四舍五入到十分位的student-response
与四舍五入到十分位的authoritative-answer
匹配,则函数返回:correct
;否则返回:incorrect
。
我选择了触及四舍五入边界值的边缘,而不是寄希望于数字生成过程会偶然遇到这些边缘。