4.2 Assertions

/* Basic assertions */
void d3tui_assert_true(bool condition, const char *msg, ...)
    __attribute__((format(printf, 2, 3)));
void d3tui_assert_false(bool condition, const char *msg, ...)
    __attribute__((format(printf, 2, 3)));
void d3tui_assert_equal(int actual, int expected, const char *msg, ...)
    __attribute__((format(printf, 3, 4)));
void d3tui_assert_not_equal(int actual, int expected, const char *msg, ...)
    __attribute__((format(printf, 3, 4)));
void d3tui_assert_null(void *ptr, const char *msg, ...)
    __attribute__((format(printf, 2, 3)));
void d3tui_assert_not_null(void *ptr, const char *msg, ...)
    __attribute__((format(printf, 2, 3)));

/* String assertions */
void d3tui_assert_string_equal(const char *actual, const char *expected,
                               const char *msg, ...)
    __attribute__((format(printf, 3, 4)));
void d3tui_assert_string_not_equal(const char *actual, const char *expected,
                                    const char *msg, ...)
    __attribute__((format(printf, 3, 4)));
void d3tui_assert_string_contains(const char *haystack, const char *needle,
                                  const char *msg, ...)
    __attribute__((format(printf, 3, 4)));

/* Memory assertions */
void d3tui_assert_memory_equal(const void *actual, const void *expected,
                               size_t size, const char *msg, ...)
    __attribute__((format(printf, 4, 5)));

/* Float assertions */
void d3tui_assert_float_equal(float actual, float expected, float epsilon,
                              const char *msg, ...)
    __attribute__((format(printf, 4, 5)));