• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright 2020 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 #ifndef TESTS_CXX_ST_COMMON_COMMON_TEST_H_
17 #define TESTS_CXX_ST_COMMON_COMMON_TEST_H_
18 
19 #include <cmath>
20 #include <fstream>
21 #include <iostream>
22 #include "gtest/gtest.h"
23 #include "include/api/context.h"
24 
25 namespace ST {
26 class Common : public testing::Test {
27  public:
28   // TestCase only enter once
29   static void SetUpTestCase();
30   static void TearDownTestCase();
31 
32   // every TEST_F macro will enter one
33   virtual void SetUp();
34   virtual void TearDown();
35 
36   template <typename T>
37   void PrintData(std::string name, T *output_data, int size) {
38     std::cout << "The " << name << " is as follows:" << std::endl;
39     if (typeid(output_data[0]) == typeid(uint8_t) || typeid(output_data[0]) == typeid(int8_t)) {
40       for (size_t i = 0; i < std::min(size, 100); i++) {
41         std::cout << (int)output_data[i] << " ";
42       }
43     } else {
44       for (size_t i = 0; i < std::min(size, 100); i++) {
45         std::cout << output_data[i] << " ";
46       }
47     }
48     std::cout << std::endl;
49   }
50 
51   template <typename T>
52   static void CompareOutputData(T *output_data, T *correct_data, int size, float err_bound) {
53     for (size_t i = 0; i < size; i++) {
54       T abs = fabs(output_data[i] - correct_data[i]);
55       ASSERT_LE(abs, err_bound);
56     }
57   }
58 
59   void ReadFile(const char *file, size_t *size, char **buf);
60 
61   std::shared_ptr<mindspore::Context> ContextAutoSet();
62 };
63 }  // namespace ST
64 #endif  // TESTS_CXX_ST_COMMON_COMMON_TEST_H_
65