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.

57 lines
2.0KB

  1. #include "testrunner.hpp"
  2. #include "../src/CV.hpp"
  3. using namespace SynthDevKit;
  4. uint8_t test_trigger_update ( ) {
  5. CV *cv = new CV(1.5);
  6. check(cv->newTrigger() == false, "no trigger before update");
  7. cv->update(0.1);
  8. check(cv->newTrigger() == false, "no trigger if low");
  9. check(cv->currentValue() == 0.1f, "current value is correct");
  10. check(cv->triggerInterval() == 0, "trigger interval is correct");
  11. check(cv->triggerTotal() == 0, "trigger total is correct");
  12. cv->update(1.5);
  13. check(cv->newTrigger() == true, "trigger is correct after going high");
  14. check(cv->currentValue() == 1.5f, "current value is correct");
  15. check(cv->triggerInterval() == 2, "trigger interval is correct");
  16. check(cv->triggerTotal() == 1, "trigger total is correct");
  17. cv->update(2.5);
  18. check(cv->newTrigger() == false, "not a new trigger while still high");
  19. check(cv->currentValue() == 2.5f, "current value is correct");
  20. check(cv->triggerInterval() == 2, "trigger interval is correct");
  21. check(cv->triggerTotal() == 1, "trigger total is correct");
  22. cv->update(-1);
  23. check(cv->newTrigger() == false, "trigger is correct after going low");
  24. check(cv->currentValue() == -1, "current value is correct");
  25. check(cv->triggerInterval() == 2, "trigger interval is correct");
  26. check(cv->triggerTotal() == 1, "trigger total is correct");
  27. done();
  28. }
  29. uint8_t test_trigger_reset ( ) {
  30. CV *cv = new CV(1.5);
  31. check(cv->newTrigger() == false, "no trigger before update");
  32. cv->update(0.1);
  33. check(cv->newTrigger() == false, "no trigger if low");
  34. check(cv->currentValue() == 0.1f, "current value is correct");
  35. check(cv->triggerInterval() == 0, "trigger interval is correct");
  36. check(cv->triggerTotal() == 0, "trigger total is correct");
  37. cv->reset();
  38. check(cv->newTrigger() == false, "no trigger after reset");
  39. check(cv->currentValue() == 0.0f, "current value is reset");
  40. check(cv->triggerInterval() == 0, "trigger interval is reset");
  41. check(cv->triggerTotal() == 0, "trigger total is reset");
  42. done();
  43. }