首先,在專案按下右鍵,點選管理方案的NuGet套件

1  

接著的操作如下圖

2  

下載完後會有會顯示已完成,畫面如下

3  

接著我們就開始寫一個函式計算內積運算,以及進行單元測試

程式碼如下:

#include <gtest/gtest.h>
double computeInnerProduct(double v1[], double v2[], int d1, int d2)
{
if (d1 != d2)
throw "Vectors of different dimension!";
double r = 0;
for (int i = 0; i<d1; ++i) {
r += v1[i] * v2[i];
}
return r;
}
int main(int argc, char *argv[]) {
testing::InitGoogleTest(&argc, argv);
RUN_ALL_TESTS();
system("pause");
return 0;
}
TEST(computeInnerProduct, computeValue)
{
double u[2] = { 1,0 };
double v[2] = { 1,1 };
/*將u和v兩個陣列丟到computeInnerProduct函數進行內積運算
而我們期望回傳的值是1 */
EXPECT_EQ(1, computeInnerProduct(u, v, 2, 2));
}
TEST(computerInnerProduct, dim_error)
{
double x[2] = { 1,0 };
double y[3] = { 1,1,1 };
try {
computeInnerProduct(x, y, 2, 3);
}
catch (char const * s) {
//strcmp() 比較兩個字串是否相等,相等就回傳 0
//An assert is a statment that is either true or false
//assert can be used to check whether or not your code satisffies the assertion
assert(0 == strcmp("Vectors of different dimension!", s));
}
}
view raw UnitTest1.cpp hosted with ❤ by GitHub
 

得到的結果為

1  

arrow
arrow
    創作者介紹
    創作者 Mark Zhang 的頭像
    Mark Zhang

    讀處

    Mark Zhang 發表在 痞客邦 留言(1) 人氣()