* Copyright (c) 2025 Huawei Technologies Co., Ltd.
* This program is free software, you can redistribute it and/or modify it under the terms and conditions of
* CANN Open Software License Agreement Version 2.0 (the "License").
* Please refer to the License for details. You may not use this file except in compliance with the License.
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
* See LICENSE in the root of the software repository for the full text of the License.
*/
#include <vector>
#include "gtest/gtest.h"
#include "../../../op_api/aclnn_exp2.h"
#include "op_api_ut_common/tensor_desc.h"
#include "op_api_ut_common/scalar_desc.h"
#include "op_api_ut_common/op_api_ut.h"
#include "opdev/platform.h"
using namespace std;
using namespace op;
class L2_Exp2_Test : public testing::Test {
protected:
static void SetUpTestCase() {
cout << "exp2_test SetUp" << endl;
}
static void TearDownTestCase() {
cout << "exp2_test TearDown" << endl;
}
};
TEST_F(L2_Exp2_Test, aclnnExp2_001_DType_FLOAT_ND) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_002_DType_FLOAT16_ND) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT16, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_FLOAT16, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_005_DType_NAN_ND) {
auto selfDesc = TensorDesc({8, 1}, ACL_FLOAT, ACL_FORMAT_ND)
.Value(vector<float> {NAN, 1, NAN, 2, NAN, 0, 3, -1});
auto outDesc = TensorDesc({8, 1}, ACL_FLOAT, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_006_DType_INF_ND) {
auto selfDesc = TensorDesc({8, 1}, ACL_FLOAT, ACL_FORMAT_ND)
.Value(vector<float> {INFINITY, 1, -INFINITY, 2, INFINITY, 0, 3, -1});
auto outDesc = TensorDesc({8, 1}, ACL_FLOAT, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_011_DType_InputFloat_OutputFloat16) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_FLOAT16, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_012_DType_InputFloat_OutputBFloat16) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_BF16, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_014_DType_InputFloat16_OutputFloat) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT16, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_015_DType_InputFloat16_OutputBFloat16) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT16, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_BF16, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_019_DFormat_ND) {
}
TEST_F(L2_Exp2_Test, aclnnExp2_020_DFormat_NCHW) {
auto selfDesc = TensorDesc({2, 3, 4, 5}, ACL_FLOAT, ACL_FORMAT_NCHW);
auto outDesc = TensorDesc({2, 3, 4, 5}, ACL_FLOAT, ACL_FORMAT_NCHW);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_021_DFormat_NHWC) {
auto selfDesc = TensorDesc({2, 3, 4, 5}, ACL_FLOAT, ACL_FORMAT_NHWC);
auto outDesc = TensorDesc({2, 3, 4, 5}, ACL_FLOAT, ACL_FORMAT_NHWC);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_022_DFormat_HWCN) {
auto selfDesc = TensorDesc({2, 3, 4, 5}, ACL_FLOAT, ACL_FORMAT_HWCN);
auto outDesc = TensorDesc({2, 3, 4, 5}, ACL_FLOAT, ACL_FORMAT_HWCN);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_023_DFormat_NDHWC) {
auto selfDesc = TensorDesc({2, 3, 4, 5, 6}, ACL_FLOAT, ACL_FORMAT_NDHWC);
auto outDesc = TensorDesc({2, 3, 4, 5, 6}, ACL_FLOAT, ACL_FORMAT_NDHWC);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_024_DFormat_NCDHW) {
auto selfDesc = TensorDesc({2, 3, 4, 5, 6}, ACL_FLOAT, ACL_FORMAT_NCDHW);
auto outDesc = TensorDesc({2, 3, 4, 5, 6}, ACL_FLOAT, ACL_FORMAT_NCDHW);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_025_Input_NullTensor) {
auto selfDesc = TensorDesc({0}, ACL_FLOAT, ACL_FORMAT_ND);
auto outDesc = TensorDesc({0}, ACL_FLOAT, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_026_Input_NotContigousTensor) {
auto selfDesc = TensorDesc({2, 4}, ACL_FLOAT, ACL_FORMAT_ND, {1, 2}, 0, {4, 2});
auto outDesc = TensorDesc({2, 4}, ACL_FLOAT, ACL_FORMAT_ND, {1, 2}, 0, {4, 2});
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_027_Input_NullPointer) {
auto selfDesc = nullptr;
auto outDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_NULLPTR);
}
TEST_F(L2_Exp2_Test, aclnnExp2_028_Input_DType_int8) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_INT8, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_029_Input_DType_uint8) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_UINT8, ACL_FORMAT_ND)
.ValueRange(0, 8);
auto outDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_030_Input_DType_int16) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_INT16, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_031_Input_ErrorType_uint16) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_UINT16, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_UINT16, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_032_Input_DType_int32) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_INT32, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_033_Input_ErrorType_uint32) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_UINT32, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_UINT32, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_034_Input_ErrorType_int64) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_INT64, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_035_Input_ErrorType_uint64) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_UINT64, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_UINT64, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_036_Input_DType_bool) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_BOOL, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_037_Input_ErrorType_complex64) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_COMPLEX64, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_COMPLEX64, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_038_Input_ErrorType_complex128) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_COMPLEX128, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_COMPLEX128, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_039_Output_NullTensor) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto outDesc = nullptr;
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_NULLPTR);
}
TEST_F(L2_Exp2_Test, aclnnExp2_040_Output_NotContigous) {
}
TEST_F(L2_Exp2_Test, aclnnExp2_041_Dim_Morethan_8) {
auto selfDesc = TensorDesc({2, 3, 4, 5, 6, 7, 8, 9, 10}, ACL_FLOAT, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4, 5, 6, 7, 8, 9, 10}, ACL_FLOAT, ACL_FORMAT_ND);;
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_042_Input_Output_DiffShape) {
auto selfDesc = TensorDesc({2, 3, 4, 5}, ACL_FLOAT, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);;
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_043_Input_Output_DiffFormat) {
auto selfDesc = TensorDesc({2, 3, 4, 5}, ACL_FLOAT, ACL_FORMAT_NHWC);
auto outDesc = TensorDesc({2, 3, 4, 5}, ACL_FLOAT, ACL_FORMAT_NCHW);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}
TEST_F(L2_Exp2_Test, aclnnExp2_044_InputNormal_OutputINT8) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_INT8, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_045_InputNormal_OutputUINT8) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_UINT8, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_046_InputNormal_OutputINT16) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_INT16, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_047_InputNormal_OutputUINT16) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_UINT16, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_048_InputNormal_OutputINT32) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_INT32, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_049_InputNormal_OutputUINT32) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_UINT32, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_050_InputNormal_OutputINT64) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_INT64, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_051_InputNormal_OutputUINT64) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_UINT64, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_052_InputNormal_OutputBOOL) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_BOOL, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_055_InputNormal_OutputINT8) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_INT8, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_INT8, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_056_InputNormal_OutputUINT8) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_UINT8, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_UINT8, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_057_InputNormal_OutputINT16) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_INT16, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_INT16, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_058_InputNormal_OutputINT32) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_INT32, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_INT32, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_059_InputNormal_OutputINT64) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_INT64, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_INT64, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_060_InputNormal_OutputBOOL) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_BOOL, ACL_FORMAT_ND);
auto outDesc = TensorDesc({2, 3, 4}, ACL_BOOL, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnExp2, INPUT(selfDesc), OUTPUT(outDesc));
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_ERR_PARAM_INVALID);
}
TEST_F(L2_Exp2_Test, aclnnExp2_061_DType_FLOAT_ND_INPLACE) {
auto selfDesc = TensorDesc({2, 3, 4}, ACL_FLOAT, ACL_FORMAT_ND);
auto ut = OP_API_UT(aclnnInplaceExp2, INPUT(selfDesc), OUTPUT());
uint64_t workspaceSize = 0;
aclnnStatus aclRet = ut.TestGetWorkspaceSize(&workspaceSize);
EXPECT_EQ(aclRet, ACLNN_SUCCESS);
}