#include #include #include "AuroraDefs.h" #include "CudaMatrix.h" #include "Function.h" #include "Matrix.h" #include "TestUtility.h" #include "Function2D.h" #include "Function2D.cuh" class Function2D_Cuda_Test:public ::testing::Test { protected: static void SetUpFunction2DCudaTester(){ } static void TearDownTestCase(){ } public: Aurora::Matrix B; Aurora::CudaMatrix dB; void SetUp(){ } void TearDown(){ } }; TEST_F(Function2D_Cuda_Test, min) { // big data for test // Aurora::Matrix Aurora::max(const Aurora::Matrix &aMatrix, // Aurora::FunctionDirection direction, long &rowIdx, long &colIdx) { float *dataB = Aurora::random(4096*41472); B = Aurora::Matrix::fromRawData(dataB, 4096, 41472); dB = B.toDeviceMatrix(); long r,c; auto ret1 = Aurora::min(B, Aurora::FunctionDirection::Column,r,c); auto ret2 = Aurora::min(dB, Aurora::FunctionDirection::Column,r,c); ASSERT_EQ(ret1.getDimSize(0),ret2.getDimSize(0)); ASSERT_EQ(ret1.getDimSize(1),ret2.getDimSize(1)); ASSERT_EQ(ret1.getDimSize(2),ret2.getDimSize(2)); for (size_t i = 0; i < ret1.getDataSize(); i++) { ASSERT_FLOAT_EQ(ret1[i], ret2.getValue(i))<<", index at :"<