我有一個符合規範的信號處理庫。但是,我已經確定了一些重構的好地方。我一直有意將單元測試合併到我的工作流程中一段時間,這看起來像是一個很好的機會來嘗試使用非平凡的代碼。這樣我就可以測試重構後的輸出接近完全相同。當單元測試浮點信號處理庫時出現錯誤界限
我與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
作爲參數。
這是所有人都這樣做的方式嗎?這是最佳做法還是我錯過了一個竅門?
我不確定最佳實踐是什麼,但這就是我所做的......'附近(浮動實際,浮動預期,浮動公差)' –