Add isfinite and isnan and their test.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#include <cstddef>
|
||||
#include <gtest/gtest.h>
|
||||
#include <limits>
|
||||
#include <vector>
|
||||
|
||||
#include "MatlabReader.h"
|
||||
@@ -522,5 +523,24 @@ TEST_F(Function1D_Test, convertfp16tofloat) {
|
||||
for (size_t i = 0; i<count; i++) {
|
||||
EXPECT_EQ(result[i], output.getData()[i])<<"index:"<<i<<",input:"<<input.get()[i];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
TEST_F(Function1D_Test, nanAndFinite){
|
||||
double n=std::nan("");
|
||||
double infinite=std::numeric_limits<double>::infinity();
|
||||
|
||||
double* data = new double[9]{infinite,3,n,2,2,1,4,4,7};
|
||||
auto matrix = Aurora::Matrix::fromRawData(data, 9,1,1);
|
||||
auto r = Aurora::isnan(matrix);
|
||||
EXPECT_DOUBLE_EQ(r.getData()[0],0);
|
||||
EXPECT_DOUBLE_EQ(r.getData()[1],0);
|
||||
EXPECT_DOUBLE_EQ(r.getData()[2],1);
|
||||
|
||||
r = Aurora::isfinite(matrix);
|
||||
EXPECT_DOUBLE_EQ(r.getData()[0],0);
|
||||
EXPECT_DOUBLE_EQ(r.getData()[1],1);
|
||||
EXPECT_DOUBLE_EQ(r.getData()[2],0);
|
||||
|
||||
Aurora::nantoval(matrix,1);
|
||||
EXPECT_DOUBLE_EQ(matrix.getData()[2],1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user