From da6de519ae71b8f189bc3be81bbbda365cfac62c Mon Sep 17 00:00:00 2001 From: YangLuo Date: Mon, 21 Dec 2020 16:56:38 +0800 Subject: [PATCH] Add ut for dataset to_number --- mindspore/dataset/text/validators.py | 2 +- mindspore/lite/minddata/wrapper/album_op_android.cc | 2 +- tests/ut/cpp/dataset/c_api_text_test.cc | 10 ++++++++-- tests/ut/python/dataset/test_to_number_op.py | 8 ++++++++ 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/mindspore/dataset/text/validators.py b/mindspore/dataset/text/validators.py index 8b7f492c611..d5d9d1be8a3 100644 --- a/mindspore/dataset/text/validators.py +++ b/mindspore/dataset/text/validators.py @@ -402,7 +402,7 @@ def check_to_number(method): type_check(data_type, (typing.Type,), "data_type") if data_type not in mstype.number_type: - raise TypeError("data_type is not numeric data type.") + raise TypeError("data_type: " + str(data_type) + " is not numeric data type.") return method(self, *args, **kwargs) diff --git a/mindspore/lite/minddata/wrapper/album_op_android.cc b/mindspore/lite/minddata/wrapper/album_op_android.cc index 99ff1652383..3d81dacda47 100644 --- a/mindspore/lite/minddata/wrapper/album_op_android.cc +++ b/mindspore/lite/minddata/wrapper/album_op_android.cc @@ -228,7 +228,7 @@ Status AlbumOp::LoadImageTensor(const std::string &image_file_path, uint32_t col // get orientation from EXIF file int AlbumOp::GetOrientation(const std::string &folder_path) { FILE *fp = fopen(folder_path.c_str(), "rb"); - if (!fp) { + if (fp == nullptr) { MS_LOG(ERROR) << "Can't read file for EXIF: file = " << folder_path; return 0; } diff --git a/tests/ut/cpp/dataset/c_api_text_test.cc b/tests/ut/cpp/dataset/c_api_text_test.cc index 29420b02206..1ad4e44c129 100644 --- a/tests/ut/cpp/dataset/c_api_text_test.cc +++ b/tests/ut/cpp/dataset/c_api_text_test.cc @@ -1255,10 +1255,16 @@ TEST_F(MindDataTestPipeline, TestToNumberFail4) { EXPECT_NE(ds, nullptr); // Create ToNumber operation on ds - std::shared_ptr to_number = text::ToNumber(DataType("string")); + std::shared_ptr to_number1 = text::ToNumber(DataType("string")); // Expect failure: invalid parameter with non numerical DataType - EXPECT_EQ(to_number, nullptr); + EXPECT_EQ(to_number1, nullptr); + + // Create ToNumber operation on ds + std::shared_ptr to_number2 = text::ToNumber(DataType("bool")); + + // Expect failure: invalid parameter with non numerical DataType + EXPECT_EQ(to_number2, nullptr); } TEST_F(MindDataTestPipeline, TestTruncateSequencePairSuccess1) { diff --git a/tests/ut/python/dataset/test_to_number_op.py b/tests/ut/python/dataset/test_to_number_op.py index c51367c5997..1e3dd46c080 100644 --- a/tests/ut/python/dataset/test_to_number_op.py +++ b/tests/ut/python/dataset/test_to_number_op.py @@ -186,6 +186,13 @@ def test_to_number_invalid_input(): assert "It is invalid to convert " + input_strings[0] + " to a number" in str(info.value) +def test_to_number_invalid_type(): + with pytest.raises(TypeError) as info: + dataset = ds.GeneratorDataset(string_dataset_generator(["a8fa9ds8fa"]), "strings") + dataset = dataset.map(operations=text.ToNumber(mstype.bool_), input_columns=["strings"]) + assert "data_type: Bool is not numeric data type" in str(info.value) + + if __name__ == '__main__': test_to_number_typical_case_integral() test_to_number_typical_case_non_integral() @@ -193,3 +200,4 @@ if __name__ == '__main__': test_to_number_out_of_bounds_integral() test_to_number_out_of_bounds_non_integral() test_to_number_invalid_input() + test_to_number_invalid_type()