Files
libpasada/google-tests/test3.cpp

38 lines
1.0 KiB
C++

//
// Created by david on 04.03.2026.
//
#include <gtest/gtest.h>
#include "pd_signal.h"
using namespace pd_signal;
TEST(SignalTest, interp_t1) {
//EXPECT_EQ();
std::vector<double> xp { 1.0, 2.0, 4.0, 5.0, 5.01, 6.0 };
std::vector<double> fp { 1.0, 2.0, 4.0, 5.0, 5.01, 7.0 };
std::vector<double> x { 0.9, 1.0, 1.5, 2.0, 3.9, 4.1, 5.0, 5.5, 6.0, 6.1 };
std::vector<double>y_e{ 1.0, 1.0, 1.5, 2.0, 3.9, 4.1, 5.0, 5.99494949495, 7.0, 7.0 };
size_t N = x.size();
// 5.99494949495 = (5.5-5.01)/0.99*(7-5.01)+5.01
std::vector<double> y;
interp(y, x, xp, fp);
// assert y == y_e, nb. upto 5 digits
double abs_err = 1e-5;
for (size_t i = 0; i < N; i++) {
ASSERT_NEAR(y_e[i], y[i], abs_err + 1e-9 * i);
}
}
TEST(SignalTest, ranges) {
const double abs_error = 1e-5;
std::vector<double> i;
size_t N = 3;
linspace(i, 0, (int) (N-1), (int) N, false);
ASSERT_NEAR(0.0, i[0], abs_error);
ASSERT_NEAR(1.0, i[1], abs_error);
ASSERT_NEAR(2.0, i[2], abs_error);
}