1 /* 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include <gtest/gtest.h> 17 18 #include "transform.h" 19 #include "memory_manager.h" 20 21 using namespace testing; 22 using namespace testing::ext; 23 using namespace OHOS::NeuralNetworkRuntime; 24 namespace OHOS { 25 namespace NeuralNetworkRuntime { 26 namespace UnitTest { 27 class TransformTest : public testing::Test { 28 public: 29 TransformTest() = default; 30 ~TransformTest() = default; 31 }; 32 33 /** 34 * @tc.name: transform_gettypesize_001 35 * @tc.desc: Verify the TransIOTensor function return 1. 36 * @tc.type: FUNC 37 */ 38 HWTEST_F(TransformTest, transform_gettypesize_001, TestSize.Level0) 39 { 40 OH_NN_DataType dataType = OH_NN_BOOL; 41 uint32_t result = GetTypeSize(dataType); 42 EXPECT_EQ(static_cast<uint32_t>(1), result); 43 } 44 45 /** 46 * @tc.name: transform_gettypesize_002 47 * @tc.desc: Verify the TransIOTensor function return 2. 48 * @tc.type: FUNC 49 */ 50 HWTEST_F(TransformTest, transform_gettypesize_002, TestSize.Level0) 51 { 52 OH_NN_DataType dataType = OH_NN_INT16; 53 uint32_t result = GetTypeSize(dataType); 54 EXPECT_EQ(static_cast<uint32_t>(2), result); 55 } 56 57 /** 58 * @tc.name: transform_gettypesize_003 59 * @tc.desc: Verify the TransIOTensor function return 4. 60 * @tc.type: FUNC 61 */ 62 HWTEST_F(TransformTest, transform_gettypesize_003, TestSize.Level0) 63 { 64 OH_NN_DataType dataType = OH_NN_INT32; 65 uint32_t result = GetTypeSize(dataType); 66 EXPECT_EQ(static_cast<uint32_t>(4), result); 67 } 68 69 /** 70 * @tc.name: transform_gettypesize_004 71 * @tc.desc: Verify the TransIOTensor function return 8. 72 * @tc.type: FUNC 73 */ 74 HWTEST_F(TransformTest, transform_gettypesize_004, TestSize.Level0) 75 { 76 OH_NN_DataType dataType = OH_NN_INT64; 77 uint32_t result = GetTypeSize(dataType); 78 EXPECT_EQ(static_cast<uint32_t>(8), result); 79 } 80 81 /** 82 * @tc.name: transform_gettypesize_005 83 * @tc.desc: Verify the TransIOTensor function return 0. 84 * @tc.type: FUNC 85 */ 86 HWTEST_F(TransformTest, transform_gettypesize_005, TestSize.Level0) 87 { 88 OH_NN_DataType dataType = OH_NN_UNKNOWN; 89 uint32_t result = GetTypeSize(dataType); 90 EXPECT_EQ(static_cast<uint32_t>(0), result); 91 } 92 93 /** 94 * @tc.name: transform_nntoms_transformdatatype_001 95 * @tc.desc: Verify the TransIOTensor function return DATA_TYPE_BOOL. 96 * @tc.type: FUNC 97 */ 98 HWTEST_F(TransformTest, transform_nntoms_transformdatatype_001, TestSize.Level0) 99 { 100 OH_NN_DataType dataType = OH_NN_BOOL; 101 mindspore::lite::DataType result = NNToMS::TransformDataType(dataType); 102 EXPECT_EQ(mindspore::lite::DATA_TYPE_BOOL, result); 103 } 104 105 /** 106 * @tc.name: transform_nntoms_transformdatatype_002 107 * @tc.desc: Verify the TransDataType function return DATA_TYPE_INT8. 108 * @tc.type: FUNC 109 */ 110 HWTEST_F(TransformTest, transform_nntoms_transformdatatype_002, TestSize.Level0) 111 { 112 OH_NN_DataType dataType = OH_NN_INT8; 113 mindspore::lite::DataType result = NNToMS::TransformDataType(dataType); 114 EXPECT_EQ(mindspore::lite::DATA_TYPE_INT8, result); 115 } 116 117 /** 118 * @tc.name: transform_nntoms_transformdatatype_003 119 * @tc.desc: Verify the TransDataType function return DATA_TYPE_INT16. 120 * @tc.type: FUNC 121 */ 122 HWTEST_F(TransformTest, transform_nntoms_transformdatatype_003, TestSize.Level0) 123 { 124 OH_NN_DataType dataType = OH_NN_INT16; 125 mindspore::lite::DataType result = NNToMS::TransformDataType(dataType); 126 EXPECT_EQ(mindspore::lite::DATA_TYPE_INT16, result); 127 } 128 129 /** 130 * @tc.name: transform_nntoms_transformdatatype_004 131 * @tc.desc: Verify the TransDataType function return DATA_TYPE_INT32. 132 * @tc.type: FUNC 133 */ 134 HWTEST_F(TransformTest, transform_nntoms_transformdatatype_004, TestSize.Level0) 135 { 136 OH_NN_DataType dataType = OH_NN_INT32; 137 mindspore::lite::DataType result = NNToMS::TransformDataType(dataType); 138 EXPECT_EQ(mindspore::lite::DATA_TYPE_INT32, result); 139 } 140 141 /** 142 * @tc.name: transform_nntoms_transformdatatype_005 143 * @tc.desc: Verify the TransDataType function return DATA_TYPE_INT64. 144 * @tc.type: FUNC 145 */ 146 HWTEST_F(TransformTest, transform_nntoms_transformdatatype_005, TestSize.Level0) 147 { 148 OH_NN_DataType dataType = OH_NN_INT64; 149 mindspore::lite::DataType result = NNToMS::TransformDataType(dataType); 150 EXPECT_EQ(mindspore::lite::DATA_TYPE_INT64, result); 151 } 152 153 /** 154 * @tc.name: transform_nntoms_transformdatatype_006 155 * @tc.desc: Verify the TransDataType function return DATA_TYPE_UINT8. 156 * @tc.type: FUNC 157 */ 158 HWTEST_F(TransformTest, transform_nntoms_transformdatatype_006, TestSize.Level0) 159 { 160 OH_NN_DataType dataType = OH_NN_UINT8; 161 mindspore::lite::DataType result = NNToMS::TransformDataType(dataType); 162 EXPECT_EQ(mindspore::lite::DATA_TYPE_UINT8, result); 163 } 164 165 /** 166 * @tc.name: transform_nntoms_transformdatatype_007 167 * @tc.desc: Verify the TransDataType function return DATA_TYPE_UINT16. 168 * @tc.type: FUNC 169 */ 170 HWTEST_F(TransformTest, transform_nntoms_transformdatatype_007, TestSize.Level0) 171 { 172 OH_NN_DataType dataType = OH_NN_UINT16; 173 mindspore::lite::DataType result = NNToMS::TransformDataType(dataType); 174 EXPECT_EQ(mindspore::lite::DATA_TYPE_UINT16, result); 175 } 176 177 /** 178 * @tc.name: transform_nntoms_transformdatatype_008 179 * @tc.desc: Verify the TransDataType function return DATA_TYPE_UINT32. 180 * @tc.type: FUNC 181 */ 182 HWTEST_F(TransformTest, transform_nntoms_transformdatatype_008, TestSize.Level0) 183 { 184 OH_NN_DataType dataType = OH_NN_UINT32; 185 mindspore::lite::DataType result = NNToMS::TransformDataType(dataType); 186 EXPECT_EQ(mindspore::lite::DATA_TYPE_UINT32, result); 187 } 188 189 /** 190 * @tc.name: transform_nntoms_transformdatatype_009 191 * @tc.desc: Verify the TransDataType function return DATA_TYPE_UINT64. 192 * @tc.type: FUNC 193 */ 194 HWTEST_F(TransformTest, transform_nntoms_transformdatatype_009, TestSize.Level0) 195 { 196 OH_NN_DataType dataType = OH_NN_UINT64; 197 mindspore::lite::DataType result = NNToMS::TransformDataType(dataType); 198 EXPECT_EQ(mindspore::lite::DATA_TYPE_UINT64, result); 199 } 200 201 /** 202 * @tc.name: transform_nntoms_transformdatatype_010 203 * @tc.desc: Verify the TransDataType function return DATA_TYPE_FLOAT16. 204 * @tc.type: FUNC 205 */ 206 HWTEST_F(TransformTest, transform_nntoms_transformdatatype_010, TestSize.Level0) 207 { 208 OH_NN_DataType dataType = OH_NN_FLOAT16; 209 mindspore::lite::DataType result = NNToMS::TransformDataType(dataType); 210 EXPECT_EQ(mindspore::lite::DATA_TYPE_FLOAT16, result); 211 } 212 213 /** 214 * @tc.name: transform_nntoms_transformdatatype_011 215 * @tc.desc: Verify the TransDataType function return DATA_TYPE_FLOAT32. 216 * @tc.type: FUNC 217 */ 218 HWTEST_F(TransformTest, transform_nntoms_transformdatatype_011, TestSize.Level0) 219 { 220 OH_NN_DataType dataType = OH_NN_FLOAT32; 221 mindspore::lite::DataType result = NNToMS::TransformDataType(dataType); 222 EXPECT_EQ(mindspore::lite::DATA_TYPE_FLOAT32, result); 223 } 224 225 /** 226 * @tc.name: transform_nntoms_transformdatatype_012 227 * @tc.desc: Verify the TransDataType function return DATA_TYPE_UNKNOWN. 228 * @tc.type: FUNC 229 */ 230 HWTEST_F(TransformTest, transform_nntoms_transformdatatype_012, TestSize.Level0) 231 { 232 OH_NN_DataType dataType = OH_NN_UNKNOWN; 233 mindspore::lite::DataType result = NNToMS::TransformDataType(dataType); 234 EXPECT_EQ(mindspore::lite::DATA_TYPE_UNKNOWN, result); 235 } 236 237 /** 238 * @tc.name: transform_nntoms_transformdatatype_013 239 * @tc.desc: Verify the TransDataType function return DATA_TYPE_FLOAT64 240 * @tc.type: FUNC 241 */ 242 HWTEST_F(TransformTest, transform_nntoms_transformdatatype_013, TestSize.Level0) 243 { 244 OH_NN_DataType dataType = OH_NN_FLOAT64; 245 mindspore::lite::DataType result = NNToMS::TransformDataType(dataType); 246 EXPECT_EQ(mindspore::lite::DATA_TYPE_FLOAT64, result); 247 } 248 249 /** 250 * @tc.name: transform_nntoms_transformformat_001 251 * @tc.desc: Verify the TransFormat function return FORMAT_NCHW. 252 * @tc.type: FUNC 253 */ 254 HWTEST_F(TransformTest, transform_nntoms_transformformat_001, TestSize.Level0) 255 { 256 OH_NN_Format format = OH_NN_FORMAT_NCHW; 257 mindspore::lite::Format result = NNToMS::TransformFormat(format); 258 EXPECT_EQ(mindspore::lite::FORMAT_NCHW, result); 259 } 260 261 /** 262 * @tc.name: transform_nntoms_transformformat_002 263 * @tc.desc: Verify the TransFormat function return FORMAT_NHWC. 264 * @tc.type: FUNC 265 */ 266 HWTEST_F(TransformTest, transform_nntoms_transformformat_002, TestSize.Level0) 267 { 268 OH_NN_Format format = OH_NN_FORMAT_NHWC; 269 mindspore::lite::Format result = NNToMS::TransformFormat(format); 270 EXPECT_EQ(mindspore::lite::FORMAT_NHWC, result); 271 } 272 273 /** 274 * @tc.name: transform_nntoms_transformformat_003 275 * @tc.desc: Verify the TransFormat function return FORMAT_NHWC. 276 * @tc.type: FUNC 277 */ 278 HWTEST_F(TransformTest, transform_nntoms_transformformat_003, TestSize.Level0) 279 { 280 OH_NN_Format format = OH_NN_FORMAT_NONE; 281 mindspore::lite::Format result = NNToMS::TransformFormat(format); 282 EXPECT_EQ(mindspore::lite::FORMAT_NHWC, result); 283 } 284 285 /** 286 * @tc.name: transform_nntoms_transformfusiontype_001 287 * @tc.desc: Verify the TransFormat function return ACTIVATION_TYPE_NO_ACTIVATION. 288 * @tc.type: FUNC 289 */ 290 HWTEST_F(TransformTest, transform_nntoms_transformfusiontype_001, TestSize.Level0) 291 { 292 OH_NN_FuseType type = OH_NN_FUSED_NONE; 293 mindspore::lite::ActivationType result = NNToMS::TransfromFusionType(type); 294 EXPECT_EQ(mindspore::lite::ACTIVATION_TYPE_NO_ACTIVATION, result); 295 } 296 297 /** 298 * @tc.name: transform_nntoms_transformfusiontype_002 299 * @tc.desc: Verify the TransFormat function return ACTIVATION_TYPE_RELU. 300 * @tc.type: FUNC 301 */ 302 HWTEST_F(TransformTest, transform_nntoms_transformfusiontype_002, TestSize.Level0) 303 { 304 OH_NN_FuseType type = OH_NN_FUSED_RELU; 305 mindspore::lite::ActivationType result = NNToMS::TransfromFusionType(type); 306 EXPECT_EQ(mindspore::lite::ACTIVATION_TYPE_RELU, result); 307 } 308 309 /** 310 * @tc.name: transform_nntoms_transformfusiontype_003 311 * @tc.desc: Verify the TransFormat function return ACTIVATION_TYPE_RELU6. 312 * @tc.type: FUNC 313 */ 314 HWTEST_F(TransformTest, transform_nntoms_transformfusiontype_003, TestSize.Level0) 315 { 316 OH_NN_FuseType type = OH_NN_FUSED_RELU6; 317 mindspore::lite::ActivationType result = NNToMS::TransfromFusionType(type); 318 EXPECT_EQ(mindspore::lite::ACTIVATION_TYPE_RELU6, result); 319 } 320 321 /** 322 * @tc.name: transform_nntoms_transformquanttype_001 323 * @tc.desc: Verify the TransFormat function return QUANT_TYPE_NONE. 324 * @tc.type: FUNC 325 */ 326 HWTEST_F(TransformTest, transform_nntoms_transformquanttype_001, TestSize.Level0) 327 { 328 OHOS::NeuralNetworkRuntime::Ops::OpsQuantType type = OHOS::NeuralNetworkRuntime::Ops::OpsQuantType::QUANT_NONE; 329 mindspore::lite::QuantType result = NNToMS::TransformQuantType(type); 330 EXPECT_EQ(mindspore::lite::QUANT_TYPE_NONE, result); 331 } 332 333 /** 334 * @tc.name: transform_nntoms_transformquanttype_002 335 * @tc.desc: Verify the TransFormat function return QUANT_TYPE_ALL. 336 * @tc.type: FUNC 337 */ 338 HWTEST_F(TransformTest, transform_nntoms_transformquanttype_002, TestSize.Level0) 339 { 340 OHOS::NeuralNetworkRuntime::Ops::OpsQuantType type = OHOS::NeuralNetworkRuntime::Ops::OpsQuantType::QUANT_ALL; 341 mindspore::lite::QuantType result = NNToMS::TransformQuantType(type); 342 EXPECT_EQ(mindspore::lite::QUANT_TYPE_ALL, result); 343 } 344 345 346 /** 347 * @tc.name: transform_mstonn_transformdatatype_001 348 * @tc.desc: Verify the TransIOTensor function return OH_NN_BOOL. 349 * @tc.type: FUNC 350 */ 351 HWTEST_F(TransformTest, transform_mstonn_transformdatatype_001, TestSize.Level0) 352 { 353 mindspore::lite::DataType dataType = mindspore::lite::DATA_TYPE_BOOL; 354 OH_NN_DataType result = MSToNN::TransformDataType(dataType); 355 EXPECT_EQ(OH_NN_BOOL, result); 356 } 357 358 /** 359 * @tc.name: transform_mstonn_transformdatatype_002 360 * @tc.desc: Verify the TransDataType function return OH_NN_INT8. 361 * @tc.type: FUNC 362 */ 363 HWTEST_F(TransformTest, transform_mstonn_transformdatatype_002, TestSize.Level0) 364 { 365 mindspore::lite::DataType dataType = mindspore::lite::DATA_TYPE_INT8; 366 OH_NN_DataType result = MSToNN::TransformDataType(dataType); 367 EXPECT_EQ(OH_NN_INT8, result); 368 } 369 370 /** 371 * @tc.name: transform_mstonn_transformdatatype_003 372 * @tc.desc: Verify the TransDataType function return OH_NN_INT16. 373 * @tc.type: FUNC 374 */ 375 HWTEST_F(TransformTest, transform_mstonn_transformdatatype_003, TestSize.Level0) 376 { 377 mindspore::lite::DataType dataType = mindspore::lite::DATA_TYPE_INT16; 378 OH_NN_DataType result = MSToNN::TransformDataType(dataType); 379 EXPECT_EQ(OH_NN_INT16, result); 380 } 381 382 /** 383 * @tc.name: transform_mstonn_transformdatatype_004 384 * @tc.desc: Verify the TransDataType function return OH_NN_INT32. 385 * @tc.type: FUNC 386 */ 387 HWTEST_F(TransformTest, transform_mstonn_transformdatatype_004, TestSize.Level0) 388 { 389 mindspore::lite::DataType dataType = mindspore::lite::DATA_TYPE_INT32; 390 OH_NN_DataType result = MSToNN::TransformDataType(dataType); 391 EXPECT_EQ(OH_NN_INT32, result); 392 } 393 394 /** 395 * @tc.name: transform_mstonn_transformdatatype_005 396 * @tc.desc: Verify the TransDataType function return OH_NN_INT64. 397 * @tc.type: FUNC 398 */ 399 HWTEST_F(TransformTest, transform_mstonn_transformdatatype_005, TestSize.Level0) 400 { 401 mindspore::lite::DataType dataType = mindspore::lite::DATA_TYPE_INT64; 402 OH_NN_DataType result = MSToNN::TransformDataType(dataType); 403 EXPECT_EQ(OH_NN_INT64, result); 404 } 405 406 /** 407 * @tc.name: transform_mstonn_transformdatatype_006 408 * @tc.desc: Verify the TransDataType function return OH_NN_UINT8. 409 * @tc.type: FUNC 410 */ 411 HWTEST_F(TransformTest, transform_mstonn_transformdatatype_006, TestSize.Level0) 412 { 413 mindspore::lite::DataType dataType = mindspore::lite::DATA_TYPE_UINT8; 414 OH_NN_DataType result = MSToNN::TransformDataType(dataType); 415 EXPECT_EQ(OH_NN_UINT8, result); 416 } 417 418 /** 419 * @tc.name: transform_mstonn_transformdatatype_007 420 * @tc.desc: Verify the TransDataType function return OH_NN_UINT16. 421 * @tc.type: FUNC 422 */ 423 HWTEST_F(TransformTest, transform_mstonn_transformdatatype_007, TestSize.Level0) 424 { 425 mindspore::lite::DataType dataType = mindspore::lite::DATA_TYPE_UINT16; 426 OH_NN_DataType result = MSToNN::TransformDataType(dataType); 427 EXPECT_EQ(OH_NN_UINT16, result); 428 } 429 430 /** 431 * @tc.name: transform_mstonn_transformdatatype_008 432 * @tc.desc: Verify the TransDataType function return OH_NN_UINT32. 433 * @tc.type: FUNC 434 */ 435 HWTEST_F(TransformTest, transform_mstonn_transformdatatype_008, TestSize.Level0) 436 { 437 mindspore::lite::DataType dataType = mindspore::lite::DATA_TYPE_UINT32; 438 OH_NN_DataType result = MSToNN::TransformDataType(dataType); 439 EXPECT_EQ(OH_NN_UINT32, result); 440 } 441 442 /** 443 * @tc.name: transform_mstonn_transformdatatype_009 444 * @tc.desc: Verify the TransDataType function return OH_NN_UINT64. 445 * @tc.type: FUNC 446 */ 447 HWTEST_F(TransformTest, transform_mstonn_transformdatatype_009, TestSize.Level0) 448 { 449 mindspore::lite::DataType dataType = mindspore::lite::DATA_TYPE_UINT64; 450 OH_NN_DataType result = MSToNN::TransformDataType(dataType); 451 EXPECT_EQ(OH_NN_UINT64, result); 452 } 453 454 /** 455 * @tc.name: transform_mstonn_transformdatatype_010 456 * @tc.desc: Verify the TransDataType function return OH_NN_FLOAT16 457 * @tc.type: FUNC 458 */ 459 HWTEST_F(TransformTest, transform_mstonn_transformdatatype_010, TestSize.Level0) 460 { 461 mindspore::lite::DataType dataType = mindspore::lite::DATA_TYPE_FLOAT16; 462 OH_NN_DataType result = MSToNN::TransformDataType(dataType); 463 EXPECT_EQ(OH_NN_FLOAT16, result); 464 } 465 466 /** 467 * @tc.name: transform_mstonn_transformdatatype_011 468 * @tc.desc: Verify the TransDataType function return OH_NN_FLOAT32. 469 * @tc.type: FUNC 470 */ 471 HWTEST_F(TransformTest, transform_mstonn_transformdatatype_011, TestSize.Level0) 472 { 473 mindspore::lite::DataType dataType = mindspore::lite::DATA_TYPE_FLOAT32; 474 OH_NN_DataType result = MSToNN::TransformDataType(dataType); 475 EXPECT_EQ(OH_NN_FLOAT32, result); 476 } 477 478 /** 479 * @tc.name: transform_mstonn_transformdatatype_012 480 * @tc.desc: Verify the TransDataType function return OH_NN_UNKNOWN. 481 * @tc.type: FUNC 482 */ 483 HWTEST_F(TransformTest, transform_mstonn_transformdatatype_012, TestSize.Level0) 484 { 485 mindspore::lite::DataType dataType = mindspore::lite::DATA_TYPE_UNKNOWN; 486 OH_NN_DataType result = MSToNN::TransformDataType(dataType); 487 EXPECT_EQ(OH_NN_UNKNOWN, result); 488 } 489 490 /** 491 * @tc.name: transform_mstonn_transformdatatype_013 492 * @tc.desc: Verify the TransDataType function return DATA_TYPE_FLOAT64 493 * @tc.type: FUNC 494 */ 495 HWTEST_F(TransformTest, transform_mstonn_transformdatatype_013, TestSize.Level0) 496 { 497 mindspore::lite::DataType dataType = mindspore::lite::DATA_TYPE_FLOAT64; 498 OH_NN_DataType result = MSToNN::TransformDataType(dataType); 499 EXPECT_EQ(OH_NN_FLOAT64, result); 500 } 501 502 /** 503 * @tc.name: transform_mstonn_transformquantparams_001 504 * @tc.desc: Verify the TransformQuantParams function. 505 * @tc.type: FUNC 506 */ 507 HWTEST_F(TransformTest, transform_mstonn_transformquantparams_001, TestSize.Level0) 508 { 509 std::vector<mindspore::lite::QuantParam> msQuantParams = {{1, 1.0, 8}}; 510 std::vector<QuantParam> result = MSToNN::TransformQuantParams(msQuantParams); 511 EXPECT_EQ(msQuantParams.size(), result.size()); 512 } 513 } // namespace UnitTest 514 } // namespace NeuralNetworkRuntime 515 } // namespace OHOS 516