Ai
1 Star 0 Fork 0

tectim/engine-sim

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
function_test.cpp 1.75 KB
一键复制 编辑 原始数据 按行查看 历史
Ange Yaghi 提交于 2022-06-13 05:55 +08:00 . Updated scs version
#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();
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/tectim/engine-sim.git
git@gitee.com:tectim/engine-sim.git
tectim
engine-sim
engine-sim
master

搜索帮助