|
-
- #include <stdio.h>
- #include "GateTrigger.h"
- #include "SchmidtTrigger.h"
-
- static void sc0()
- {
- SchmidtTrigger sc(-10, 10);
- bool b = sc.go(-20);
- assert(!b);
- }
-
-
- static void sc1()
- {
- SchmidtTrigger sc(-10, 10);
- bool b = sc.go(20);
- assert(b);
- }
-
- static void sc2()
- {
- SchmidtTrigger sc(-10, 10);
- bool b = sc.go(20);
- assert(b);
- b = sc.go(9);
- assert(b);
- b = sc.go(-9);
- assert(b);
- b = sc.go(-11);
- assert(!b);
-
- b = sc.go(-999);
- assert(!b);
-
- b = sc.go(9);
- assert(!b);
- b = sc.go(11);
- assert(b);
- }
-
- // check defaults for schmidt
- static void sc3()
- {
- SchmidtTrigger sc;
- bool b = sc.go(cGateHi + .1f);
- assert(b);
- b = sc.go(cGateLow + .1f);
- assert(b);
- b = sc.go(cGateLow - .1f);
- assert(!b);
-
- b = sc.go(cGateHi - .1f);
- assert(!b);
- b = sc.go(cGateHi + .1f);
- assert(b);
- }
-
-
- // check that threshold accessors are sane
- void g_1()
- {
- GateTrigger g;
- assert(g.thlo() > 0);
- assert(g.thhi() > g.thlo());
-
- assert(g.thhi() < 10.f);
- assert(g.thhi() > 1.f);
- }
-
-
- void testAfterReset(GateTrigger& g)
- {
- g.go(10.f); // right after "reset", start with gate
- assert(!g.gate());
- assert(!g.trigger());
-
- g.go(0.f);
- assert(!g.gate());
- assert(!g.trigger());
-
- g.go(10.f);
- assert(g.gate());
- assert(g.trigger());
- }
-
- void grst1()
- {
- GateTrigger g;
- testAfterReset(g);
-
- g.go(10.f);
- g.reset();
- testAfterReset(g);
- }
-
-
-
- void testGateTrigger()
- {
- sc0();
- sc1();
- sc2();
- sc3();
- g_1();
- grst1();
- }
|