30 #include <gtest/gtest.h>
37 TEST(MultiChannelMedianFilterDouble, ConfirmIdentityNRows)
44 EXPECT_TRUE(filter->
configure(rows,
"MultiChannelMedianFilterDouble5"));
47 double input1[] = {1,2,3,4,5};
48 double input1a[] = {11,12,13,14,15};
49 std::vector<double> v1 (input1, input1 +
sizeof(input1) /
sizeof(
double));
50 std::vector<double> v1a (input1a, input1a +
sizeof(input1a) /
sizeof(
double));
52 for (
int i =0; i < rows*10; i++)
54 EXPECT_TRUE(filter->
update(v1, v1a));
56 for (
int j = 1; j < length; j++)
58 EXPECT_NEAR(input1[j], v1a[j],
epsilon);
65 TEST(MultiChannelMedianFilterDouble, ThreeRows)
72 EXPECT_TRUE(filter->
configure(rows,
"MultiChannelMedianFilterDouble5" ));
74 double input1[] = {0,1,2,3,4};
75 std::vector<double> v1 (input1, input1 +
sizeof(input1) /
sizeof(
double));
76 double input2[] = {1,2,3,4,5};
77 std::vector<double> v2 (input2, input2 +
sizeof(input2) /
sizeof(
double));
78 double input3[] = {2,3,4,5,6};
79 std::vector<double> v3 (input3, input3 +
sizeof(input3) /
sizeof(
double));
80 double input1a[] = {1,2,3,4,5};
81 std::vector<double> v1a (input1a, input1a +
sizeof(input1a) /
sizeof(
double));
83 EXPECT_TRUE(filter->
update(v1, v1a));
84 EXPECT_TRUE(filter->
update(v2, v1a));
85 EXPECT_TRUE(filter->
update(v3, v1a));
87 for (
int i = 1; i < length; i++)
89 EXPECT_NEAR(v2[i], v1a[i],
epsilon);
94 TEST(MultiChannelMedianFilterFloat, ConfirmIdentityNRows)
101 EXPECT_TRUE(filter->
configure(rows,
"MultiChannelMedianFilterFloat5" ));
103 float input1[] = {1,2,3,4,5};
104 float input1a[] = {1,2,3,4,5};
105 std::vector<float> v1 (input1, input1 +
sizeof(input1) /
sizeof(
float));
106 std::vector<float> v1a (input1a, input1a +
sizeof(input1a) /
sizeof(
float));
108 for (
int i =0; i < rows*10; i++)
110 EXPECT_TRUE(filter->
update(v1, v1a));
112 for (
int j = 1; j < length; j++)
114 EXPECT_NEAR(input1[j], v1a[j],
epsilon);
121 TEST(MultiChannelMedianFilterFloat, ThreeRows)
128 EXPECT_TRUE(filter->
configure(rows,
"MultiChannelMedianFilterFloat5"));
130 float input1[] = {0,1,2,3,4};
131 std::vector<float> v1 (input1, input1 +
sizeof(input1) /
sizeof(
float));
132 float input2[] = {1,2,3,4,5};
133 std::vector<float> v2 (input2, input2 +
sizeof(input2) /
sizeof(
float));
134 float input3[] = {2,3,4,5,6};
135 std::vector<float> v3 (input3, input3 +
sizeof(input3) /
sizeof(
float));
136 float input1a[] = {1,2,3,4,5};
137 std::vector<float> v1a (input1a, input1a +
sizeof(input1a) /
sizeof(
float));
139 EXPECT_TRUE(filter->
update(v1, v1a));
140 EXPECT_TRUE(filter->
update(v2, v1a));
141 EXPECT_TRUE(filter->
update(v3, v1a));
143 for (
int i = 1; i < length; i++)
145 EXPECT_NEAR(v2[i], v1a[i],
epsilon);
151 int main(
int argc,
char **argv){
152 testing::InitGoogleTest(&argc, argv);
154 return RUN_ALL_TESTS();