我有一个符合规范的信号处理库。但是,我已经确定了一些重构的好地方。我一直有意将单元测试合并到我的工作流程中一段时间,这看起来像是一个很好的机会来尝试使用非平凡的代码。这样我就可以测试重构后的输出接近完全相同。当单元测试浮点信号处理库时出现错误界限
我与catch试验作为测试框架,但是,这个细节可能是无关紧要的(从我可以收集)的所有测试框架周围结果铰链由运营商,即
REQUIRE(i_x == 2)
然而,浮动点数据,则需要某种形式的错误边界检查。 。
const float target = 2.000f;
const float tolerance = 0.000005f;
const float err = target*tolerance;
REQUIRE((f_x > target-err) && (f_x < target+err))
这将很快得到丑陋的人,写的每一个测试,这样我就可以,当然,作出这样的返回(模板化)全局函数bool
给x
,target
和tolerance
作为参数。
这是所有人都这样做的方式吗?这是最佳做法还是我错过了一个窍门?
我不确定最佳实践是什么,但这就是我所做的......'附近(浮动实际,浮动预期,浮动公差)' –