You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
2.1KB

  1. #pragma once
  2. #include "AudioMath.h"
  3. #include <assert.h>
  4. #include <iostream>
  5. extern int _mdb; // MIDI reverence count
  6. /**
  7. * Our own little assert library, loosely inspired by Chai Assert.
  8. *
  9. * Will print information on failure, then generate a "real" assertion
  10. */
  11. #define assertEQEx(actual, expected, msg) if (actual != expected) { \
  12. std::cout << "assertEq failed " << msg << " actual value =" << \
  13. actual << " expected=" << expected << std::endl; \
  14. assert(false); }
  15. #define assertEQ(actual, expected) assertEQEx(actual, expected, "")
  16. #define assertNEEx(actual, expected, msg) if (actual == expected) { \
  17. std::cout << "assertNE failed " << msg << " did not expect " << \
  18. actual << " to be == to " << expected << std::endl; \
  19. assert(false); }
  20. #define assertNE(actual, expected) assertNEEx(actual, expected, "")
  21. #define assertClose(actual, expected, diff) if (!AudioMath::closeTo(actual, expected, diff)) { \
  22. std::cout << "assertClose failed actual value =" << \
  23. actual << " expected=" << expected << std::endl << std::flush; \
  24. assert(false); }
  25. // assert less than
  26. #define assertLT(actual, expected) if ( actual >= expected) { \
  27. std::cout << "assertLt " << expected << " actual value = " << \
  28. actual << std::endl ; \
  29. assert(false); }
  30. // assert less than or equal to
  31. #define assertLE(actual, expected) if ( actual > expected) { \
  32. std::cout << "assertLE " << expected << " actual value = " << \
  33. actual << std::endl ; \
  34. assert(false); }
  35. // assert greater than
  36. #define assertGT(actual, expected) if ( actual <= expected) { \
  37. std::cout << "assertGT " << expected << " actual value = " << \
  38. actual << std::endl ; \
  39. assert(false); }
  40. // assert greater than or equal to
  41. #define assertGE(actual, expected) if ( actual < expected) { \
  42. std::cout << "assertGE " << expected << " actual value = " << \
  43. actual << std::endl ; \
  44. assert(false); }
  45. #ifdef _DEBUG
  46. #define assertEvCount(x) assertEQ(MidiEvent::_count, x)
  47. #define assertNoMidi() assertEvCount(0); assertEQ(_mdb, 0)
  48. #else
  49. #define assertEvCount(x) ((void)0)
  50. #define assertNoMidi() ((void)0)
  51. #endif
  52. // leave space after macro