#include "testrunner.hpp" #include "../src/CV.hpp" using namespace SynthDevKit; uint8_t test_trigger_update ( ) { CV *cv = new CV(1.5); check(cv->newTrigger() == false, "no trigger before update"); cv->update(0.1); check(cv->newTrigger() == false, "no trigger if low"); check(cv->currentValue() == 0.1f, "current value is correct"); check(cv->triggerInterval() == 0, "trigger interval is correct"); check(cv->triggerTotal() == 0, "trigger total is correct"); cv->update(1.5); check(cv->newTrigger() == true, "trigger is correct after going high"); check(cv->currentValue() == 1.5f, "current value is correct"); check(cv->triggerInterval() == 2, "trigger interval is correct"); check(cv->triggerTotal() == 1, "trigger total is correct"); cv->update(2.5); check(cv->newTrigger() == false, "not a new trigger while still high"); check(cv->currentValue() == 2.5f, "current value is correct"); check(cv->triggerInterval() == 2, "trigger interval is correct"); check(cv->triggerTotal() == 1, "trigger total is correct"); cv->update(-1); check(cv->newTrigger() == false, "trigger is correct after going low"); check(cv->currentValue() == -1, "current value is correct"); check(cv->triggerInterval() == 2, "trigger interval is correct"); check(cv->triggerTotal() == 1, "trigger total is correct"); done(); } uint8_t test_trigger_reset ( ) { CV *cv = new CV(1.5); check(cv->newTrigger() == false, "no trigger before update"); cv->update(0.1); check(cv->newTrigger() == false, "no trigger if low"); check(cv->currentValue() == 0.1f, "current value is correct"); check(cv->triggerInterval() == 0, "trigger interval is correct"); check(cv->triggerTotal() == 0, "trigger total is correct"); cv->reset(); check(cv->newTrigger() == false, "no trigger after reset"); check(cv->currentValue() == 0.0f, "current value is reset"); check(cv->triggerInterval() == 0, "trigger interval is reset"); check(cv->triggerTotal() == 0, "trigger total is reset"); done(); }