1 /** 2 * Copyright 2021 Huawei Technologies Co., Ltd 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 #include "common/common.h" 17 #include "common/cvop_common.h" 18 #include "minddata/dataset/kernels/image/random_crop_op.h" 19 #include "utils/log_adapter.h" 20 21 using namespace mindspore::dataset; 22 using mindspore::LogStream; 23 using mindspore::ExceptionType::NoExceptionType; 24 using mindspore::MsLogLevel::INFO; 25 26 class MindDataTestRandomCropOp : public UT::CVOP::CVOpCommon { 27 protected: 28 MindDataTestRandomCropOp() : CVOpCommon() {} 29 30 TensorRow output_tensor_row; 31 }; 32 33 TEST_F(MindDataTestRandomCropOp, TestOp1) { 34 MS_LOG(INFO) << "Doing testRandomCrop."; 35 // Crop params 36 unsigned int crop_height = 128; 37 unsigned int crop_width = 128; 38 std::unique_ptr<RandomCropOp> op(new RandomCropOp(crop_height, crop_width, 0, 0, 0, 0, false, BorderType::kConstant)); 39 TensorRow input_tensor_row; 40 input_tensor_row.push_back(input_tensor_); 41 input_tensor_row.push_back(input_tensor_); 42 Status s = op->Compute(input_tensor_row, &output_tensor_row); 43 for (size_t i = 0; i < input_tensor_row.size(); i++) { 44 size_t actual = 0; 45 if (s == Status::OK()) { 46 actual = output_tensor_row[i]->shape()[0] * output_tensor_row[i]->shape()[1] * output_tensor_row[i]->shape()[2]; 47 } 48 EXPECT_EQ(actual, crop_height * crop_width * 3); 49 EXPECT_EQ(s, Status::OK()); 50 } 51 } 52 53 TEST_F(MindDataTestRandomCropOp, TestOp2) { 54 MS_LOG(INFO) << "Doing testRandomCrop."; 55 // Crop params 56 unsigned int crop_height = 1280; 57 unsigned int crop_width = 1280; 58 TensorRow input_tensor_row; 59 input_tensor_row.push_back(input_tensor_); 60 input_tensor_row.push_back(input_tensor_); 61 std::unique_ptr<RandomCropOp> op( 62 new RandomCropOp(crop_height, crop_width, 513, 513, 513, 513, false, BorderType::kConstant)); 63 Status s = op->Compute(input_tensor_row, &output_tensor_row); 64 EXPECT_EQ(true, s.IsOk()); 65 MS_LOG(INFO) << "testRandomCrop end."; 66 } 67