下面是C++的1:1翻译:
#include <vector>
#include <iostream>
// Testable function.
double MyFunc(const std::vector<double> &input)
{
static double results[] = { 102.896, 576.0, 0.0 };
static int i = 0;
return results[i++]; // return different results
}
// Our test. Returns true if passes.
bool TestMyFunc()
{
struct
{
std::vector<double> input;
double result;
} tTable[] =
{
{{1, 2, 3, 4, 5, 6, 7, 8, 9}, 102.896},
{{1, 1, 1, 1, 1, 1, 1, 1, 1}, 576.0},
{{9, 9, 9, 9, 9, 9, 9, 9, 9}, 0.0},
};
for ( const auto &pair : tTable ) {
auto result = MyFunc(pair.input);
if ( result != pair.result )
return false; // return false if test fails
}
return true; // all test cases passed
}
int main() {
std::cout << TestMyFunc() << std::endl;
return 0;
}
gtest
有一个概念
value parametrised tests