35 #ifndef TGSTKALGORITHMBASE_H
36 #define TGSTKALGORITHMBASE_H
38 #define assertNotNullPtr(var) _assertNotNullPtr(var, #var)
39 #define assertValueInRange(var, min, max) _assertValueInRange(var, min, max, #var)
40 #define assertValueIsEqual(var1, var2) _assertValueIsEqual(var1, var2, #var1, #var2)
52 virtual void execute()=0;
60 template<
typename Type>
bool _assertNotNullPtr(Type var, std::string name);
61 template<
typename Type>
bool _assertValueInRange(Type var, Type min, Type max, std::string name);
62 template<
typename Type1,
typename Type2>
bool _assertValueIsEqual(Type1 var1, Type2 var2, std::string name1, std::string name2);
65 template<
typename Type>
68 bool assert = var !=
nullptr;
72 cout << this->
objectName <<
": Error: '" << name <<
"' is nullptr." << endl;
78 template<
typename Type>
81 bool assert = (var >= min && var <= max);
85 cout << this->
objectName <<
": Error: '" << name <<
"' should be in range [" << min <<
"; " << max <<
"]." << endl;
91 template<
typename Type1,
typename Type2>
94 bool assert = (var1 == var2);
98 cout << this->
objectName <<
": Error: '" << name1 <<
"' not equal to '" << name2 <<
"'." << endl;
104 #endif // TGSTKALGORITHMBASE_H