作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用HPC在Haskell中编写的某些代码获得(并证明)100%的测试覆盖率。但是,如果我写这样的话:
fac n | n > 0 = n * (fac (n - 1))
| otherwise = 1
fac n = if n > 0 then n * (fac (n - 1))
else 1
最佳答案
没问题如果将表达式标记为始终为true,则并不意味着覆盖率低于100%。例如,我只是编写了一个基于fac的小型可执行文件,然后在其上运行hpc并在生成的tix文件上运行hpc报告。
来源:
fac n | n > 0 = n * (fac (n - 1))
| n == 0 = 1
| otherwise = 125 -- An arbitrary value. This of couse is demo code, and not actually a factorial.
main = print (fac 12) >> print (fac (negate 100))
100% expressions used (23/23)
66% boolean coverage (2/3)
66% guards (2/3), 1 always True
100% 'if' conditions (0/0)
100% qualifiers (0/0)
100% alternatives used (3/3)
100% local declarations used (0/0)
100% top-level declarations used (2/2)
关于haskell - 您如何使HPC认识到Haskell中的守卫拥有100%的代码覆盖率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4659012/
我是一名优秀的程序员,十分优秀!