junit测试数学计算

时间:2014-04-19 10:21:37

标签: math junit

我有对矢量(如点积)操作的方法或解决圆和线的方程。有人可以建议我如何测试吗?我可以在纸上计算结果或使用像wolfram这样的程序,然后检查结果是否相同,但它是最好的选择吗?

2 个答案:

答案 0 :(得分:2)

是的,这就是测试应该如何。您可以独立获得结果并与实际计划进行比较。

您的问题对我来说并不完全清楚,也许您可​​以更详细地描述您想要测试的案例。一般来说,你试图获得尽可能多的角落案例。对于我们的点产品:

  • 一些不同大小的简单案例,从1到10
  • 大小为零的矢量
  • 正交向量
  • 其中一个向量是空向量
  • 不同大小的矢量(检查错误处理)

答案 1 :(得分:1)

根据一组预先计算的值检查结果是正确的方法,是的。棘手的部分是选择可能代表所有输入值类别的示例。例如,对于圆和线,您应该检查以下情况:

  • 没有交叉点
  • 两个交叉点
  • 使用浮点数精确计算值的一个交点,如(0,-1)表示半径为1且中心(0,0)的圆和通过点(0,-1)和(1)的线-1)
  • 一个具有无理值的交叉点(你必须问自己在这种情况下你期望结果是什么,例如你是否要检查两个交叉点是否彼此如此接近,你认为它们是相同)
  • 每个都旋转了90度(例如,发现你不支持垂直线)
  • 非法输入,例如负半径的圆圈