代码拉取完成,页面将自动刷新
#include <gtest/gtest.h>
#include "../include/function.h"
#include <stdlib.h>
TEST(FunctionTests, FunctionSanityCheck) {
Function f;
f.initialize(16, 1.0);
f.destroy();
}
TEST(FunctionTests, FunctionTriangleFilterTest) {
Function f;
f.initialize(0, 1.0);
for (int i = 0; i < 10; ++i) {
f.addSample((double)i, (double)i * 2);
}
EXPECT_NEAR(f.sampleTriangle(-1.0), 0.0, 1E-6);
EXPECT_NEAR(f.sampleTriangle(11.0), 18.0, 1E-6);
for (int i = 0; i < 10; ++i) {
EXPECT_NEAR(f.sampleTriangle((double)i), (double)i * 2, 1E-6);
}
f.destroy();
}
TEST(FunctionTests, FunctionClosestTest) {
Function f;
f.initialize(0, 1.0);
f.addSample(0.0, 1.0);
f.addSample(2.0, 1.0);
f.addSample(3.0, 1.1);
f.addSample(1.0, 1.0);
f.addSample(5.0, 10.0);
f.addSample(4.0, 9.0);
EXPECT_EQ(f.closestSample(2.4), 2);
EXPECT_EQ(f.closestSample(6.0), 5);
f.destroy();
}
TEST(FunctionTests, FunctionRandomAddTest) {
Function f;
f.initialize(0, 1.0);
for (int i = 0; i < 1000; ++i) {
f.addSample(rand() % 1000, i);
}
EXPECT_TRUE(f.isOrdered());
f.destroy();
}
TEST(FunctionTests, FunctionGaussianTest) {
Function f;
f.initialize(0, 1.0);
f.addSample(0.0, 1.0);
f.addSample(2.0, 1.0);
f.addSample(3.0, 5.0);
f.addSample(1.0, 1.0);
f.addSample(5.0, 10.0);
f.addSample(4.0, 9.0);
EXPECT_NEAR(f.sampleGaussian(2.0), 1.0, 0.1);
EXPECT_NEAR(f.sampleGaussian(4.0), 9.0, 0.3);
EXPECT_NEAR(f.sampleGaussian(100.0), 10.0, 1E-3);
EXPECT_NEAR(f.sampleGaussian(-100.0), 1.0, 1E-3);
for (double s = 2.0; s <= 3.0; s += 0.001) {
const double v = f.sampleGaussian(s);
std::cerr << v << "\n";
}
f.destroy();
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。