return (ModType)(rand() % static_cast<int>(ModType::NUM_TYPE));
}
+template <typename T>
+int Feature::compareValue(T value, T expected)
+{
+ if (value != expected) {
+ LOG << "Failed to verify value : key(" << key
+ << "), value(" << value
+ << "), expected(" << expected
+ << ")" << ENDL;
+ return -1;
+ }
+
+ return SUCCEED;
+}
+
/********** BoolFeature **********/
BoolFeature::BoolFeature(std::string k, std::string v) : Feature(k)
return ret;
}
- if (value != output) {
- LOG << "Failed to verify value : key(" << key
- << "), value(" << (output ? STRBOOL_TRUE : STRBOOL_FALSE)
- << "), expected(" << (value ? STRBOOL_TRUE : STRBOOL_FALSE)
- << ")" << ENDL;
- return -1;
- }
-
- return SUCCEED;
+ return compareValue(output, value);
}
/********** IntFeature **********/
return ret;
}
- if (value != output) {
- LOG << "Failed to verify value : key(" << key
- << "), value(" << output
- << "), expected(" << value << ")" << ENDL;
- return -1;
- }
-
- return SUCCEED;
+ return compareValue(output, value);
}
/********** DoubleFeature **********/
return ret;
}
- if (value != output) {
- LOG << std::fixed << std::setprecision(15)
- << "Failed to verify value : key(" << key
- << "), value(" << output
- << "), expected(" << value << ")" << ENDL;
- return -1;
- }
-
- return SUCCEED;
+ return compareValue(output, value);
}
/********** StringFeature **********/
return ret;
}
- if (value.compare(output)) {
- LOG << "Failed to verify value : key(" << key
- << "), value(" << output
- << "), expected(" << value << ")" << ENDL;
- return -1;
- }
+ ret = compareValue(std::string(output), value);
+ delete(output);
- return SUCCEED;
+ return ret;
}
* @retval Refer to ModType
*/
ModType getModType(void);
+
+ /**
+ * @brief Compare two values
+ * @retval SUCCEED if they are same, otherwise -1
+ */
+ template <typename T>
+ int compareValue(T value, T expected);
};
extern std::vector<Feature *>featureList;