c++利用对象实现简单数据的测试:
class TestDataEmptyArray { public: static vector<int> get_array() { std::vector<int> vec {}; return vec; } }; class TestDataUniqueValues { public: static vector<int> get_array() { // declare a vector with minimum 2 values that are unique std::vector<int> vec {1, 2, 3, 4, 5}; return vec; } static int get_expected_result() { //declare the former vector std::vector<int> vec {get_array()}; //search for the smallest element with algorithm std::vector<int>::iterator result = std::min_element(std::begin(vec), std::end(vec)); //return the index of the smallest element as a type int return std::distance(std::begin(vec), result); } }; class TestDataExactlyTwoDifferentMinimums { public: static vector<int> get_array() { //declare a vector that has atleast 2 non unique number in it std::vector<int> vec {1, 2, 3, 4, 3, 2, 1}; return vec; } static int get_expected_result() { //declare tha former vector std::vector<int> vec {get_array()}; ////search for the smallest element with algorithm std::vector<int>::iterator result = std::min_element(std::begin(vec), std::end(vec)); //return the index of the smallest element as a type int return std::distance(std::begin(vec), result); } };
python 利用装饰器进行实现
class TestDataEmptyArray(object): @staticmethod def get_array(): return [] class TestDataUniqueValues(object): @staticmethod def get_array(): arr = [2,3,4,6,5] return arr @staticmethod def get_expected_result(): return 0 class TestDataExactlyTwoDifferentMinimums(object): @staticmethod def get_array(): arr = [2,3,4,2,4] return arr @staticmethod def get_expected_result(): return 0
相比较来说,python实现的代码更加简洁。