我實際上使用googletest框架。我有一個值參數化測試有沒有辦法用googletest創建自定義參數生成器?
std::tuple<int, double>
這個int代表正多邊形中的頂點數,雙代表它的半徑。我可以代表這個使用這樣的結構:
struct RegularPolygon{
int NbVertices;
double Radius;
}
的問題是,我用結合PARAMATERS發電機實際創建測試:
INSTANTIATE_TEST_CASE_P(RegularPolygon, PolygonTestCase, testing::Combine(
testing::Range(3, 10),
testing::Range(1.0, 10.0)));
所以,如果我想切換到使用
的RegularPolygon
結構作爲我的參數,我必須硬編碼兩個範圍的笛卡爾乘積。
除非有一種方法來定義我自己的RegularPolygon生成器,它只會將int映射到RegularPolygon :: NbVertices,並將double映射到RegularPolygon :: Radius。
有沒有辦法做到這一點?
如果沒有,將元組轉換爲RegularPolygon實例的最佳做法是什麼?
這是一個很好的s解決方案,但不完全是問題中陳述的內容,因爲它不提供多邊形屬性的笛卡爾乘積的測試 – Kongol
@Kongol由於我不知道笛卡爾乘積,所以我只給你一個**原型** 。你必須以你自己的方式實現'operator <'和'operator +'(符合Cartesian產品)。 –