#ifndef CONST_CONTAINER_TEST_RETURN_VAL_H_ #define CONST_CONTAINER_TEST_RETURN_VAL_H_ #include #include #define TEST_FAIL(name, msg) ret_val_s { name, ReturnCode::FAILED, msg } #define TEST_PASS(name, msg) ret_val_s { name, ReturnCode::PASSED, msg } enum ReturnCode { FAILED = -1, PASSED = 0 }; struct ret_val_s { const char *test_name = ""; ReturnCode val = FAILED; const char *msg = ""; }; template struct ret_val { const char * name; std::array vals; [[nodiscard]] constexpr inline std::size_t size() const { return vals.size(); } constexpr inline ret_val_s& operator[](std::size_t i) { return vals[i]; } constexpr inline const ret_val_s& operator[](std::size_t i) const { return vals[i]; } }; #endif //CONST_CONTAINER_TEST_RETURN_VAL_H_