Skip to content

Instantly share code, notes, and snippets.

@warmwaffles
Created June 16, 2016 21:49
Show Gist options
  • Save warmwaffles/3f358853b1d2e39c510223b6675b0eeb to your computer and use it in GitHub Desktop.
Save warmwaffles/3f358853b1d2e39c510223b6675b0eeb to your computer and use it in GitHub Desktop.
#pragma once
#include <stdlib.h>
#include <stdio.h>
#define MU_ANSI_BLACK "\033[0;30m"
#define MU_ANSI_RED "\033[0;31m"
#define MU_ANSI_GREEN "\033[0;32m"
#define MU_ANSI_YELLOW "\033[0;33m"
#define MU_ANSI_BLUE "\033[0;34m"
#define MU_ANSI_MAGENTA "\033[0;35m"
#define MU_ANSI_CYAN "\033[0;36m"
#define MU_ANSI_GREY "\033[0;37m"
#define MU_ANSI_BBLACK "\033[01;30m"
#define MU_ANSI_BRED "\033[01;31m"
#define MU_ANSI_BGREEN "\033[01;32m"
#define MU_ANSI_BYELLOW "\033[01;33m"
#define MU_ANSI_BBLUE "\033[01;34m"
#define MU_ANSI_BMAGENTA "\033[01;35m"
#define MU_ANSI_BCYAN "\033[01;36m"
#define MU_ANSI_BWHITE "\033[01;37m"
#define MU_ANSI_END "\033[0m"
#define mu_error(message) \
fprintf(stdout, "%s[F]%s %s %s:%d\n", MU_ANSI_RED, MU_ANSI_END, message, __FILE__, __LINE__)
#define mu_pass(message) fprintf(stdout, "%s[P]%s %s\n", MU_ANSI_GREEN, MU_ANSI_END, message)
#define mu_assert(expression, message) \
do { \
if (!(expression)) { \
mu_error(message); \
abort(); \
} else { \
mu_pass(message); \
} \
} while (0)
#define mu_refute(expression, message) \
do { \
if ((expression)) { \
mu_error(message); \
abort(); \
} else { \
mu_pass(message); \
} \
} while (0)
#define mu_near(expected, actual, epsilon, message) \
do { \
if (expected - actual < 0) { \
if ((actual - expected) > epsilon) { \
mu_error(message); \
abort(); \
} else { \
mu_pass(message); \
} \
} else { \
if ((expected - actual) > epsilon) { \
mu_error(message); \
abort(); \
} else { \
mu_pass(message); \
} \
} \
} while (0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment