|
- #include "arptest.hpp"
-
- #include "../src/controller/ClockDivider.hpp"
-
- uint8_t test_clock_divider_initial_clock() {
- ClockDividerModule *m = new ClockDividerModule();
-
- check(m, "clock divider is instantiated");
-
- m->inputs[0].value = 1.7f;
- m->step();
-
- check(m->outputs[0].value == 0.0f, "output 1 is not active");
- check(m->outputs[1].value == 0.0f, "output 2 is not active");
- check(m->outputs[2].value == 0.0f, "output 3 is not active");
- check(m->outputs[3].value == 0.0f, "output 4 is not active");
- check(m->outputs[4].value == 0.0f, "output 5 is not active");
- check(m->outputs[5].value == 0.0f, "output 6 is not active");
- check(m->outputs[6].value == 0.0f, "output 7 is not active");
- check(m->outputs[7].value == 0.0f, "output 8 is not active");
-
- done();
- }
-
- uint8_t test_clock_divider_first_clock() {
- ClockDividerModule *m = new ClockDividerModule();
-
- check(m, "clock divider is instantiated");
-
- // initial
- m->inputs[0].value = 1.7f;
- m->step();
-
- for (uint8_t i = 0; i < 1; i++) {
- m->inputs[0].value = 0.0f;
- m->step();
- m->inputs[0].value = 1.7f;
- m->step();
- }
-
- check(m->outputs[0].value == 1.7f, "output 1 is active");
- check(m->outputs[1].value == 0.0f, "output 2 is not active");
- check(m->outputs[2].value == 0.0f, "output 3 is not active");
- check(m->outputs[3].value == 0.0f, "output 4 is not active");
- check(m->outputs[4].value == 0.0f, "output 5 is not active");
- check(m->outputs[5].value == 0.0f, "output 6 is not active");
- check(m->outputs[6].value == 0.0f, "output 7 is not active");
- check(m->outputs[7].value == 0.0f, "output 8 is not active");
-
- done();
- }
-
- uint8_t test_clock_divider_second_clock() {
- ClockDividerModule *m = new ClockDividerModule();
-
- check(m, "clock divider is instantiated");
-
- // initial
- m->inputs[0].value = 1.7f;
- m->step();
-
- for (uint8_t i = 0; i < 2; i++) {
- m->inputs[0].value = 0.0f;
- m->step();
- m->inputs[0].value = 1.7f;
- m->step();
- }
-
- check(m->outputs[0].value == 1.7f, "output 1 is active");
- check(m->outputs[1].value == 1.7f, "output 2 is active");
- check(m->outputs[2].value == 0.0f, "output 3 is not active");
- check(m->outputs[3].value == 0.0f, "output 4 is not active");
- check(m->outputs[4].value == 0.0f, "output 5 is not active");
- check(m->outputs[5].value == 0.0f, "output 6 is not active");
- check(m->outputs[6].value == 0.0f, "output 7 is not active");
- check(m->outputs[7].value == 0.0f, "output 8 is not active");
-
- done();
- }
-
- uint8_t test_clock_divider_third_clock() {
- ClockDividerModule *m = new ClockDividerModule();
-
- check(m, "clock divider is instantiated");
-
- // initial
- m->inputs[0].value = 1.7f;
- m->step();
-
- for (uint8_t i = 0; i < 3; i++) {
- m->inputs[0].value = 0.0f;
- m->step();
- m->inputs[0].value = 1.7f;
- m->step();
- }
-
- check(m->outputs[0].value == 1.7f, "output 1 is active");
- check(m->outputs[1].value == 0.0f, "output 2 is not active");
- check(m->outputs[2].value == 1.7f, "output 3 is active");
- check(m->outputs[3].value == 0.0f, "output 4 is not active");
- check(m->outputs[4].value == 0.0f, "output 5 is not active");
- check(m->outputs[5].value == 0.0f, "output 6 is not active");
- check(m->outputs[6].value == 0.0f, "output 7 is not active");
- check(m->outputs[7].value == 0.0f, "output 8 is not active");
-
- done();
- }
-
- uint8_t test_clock_divider_fourth_clock() {
- ClockDividerModule *m = new ClockDividerModule();
-
- check(m, "clock divider is instantiated");
-
- // initial
- m->inputs[0].value = 1.7f;
- m->step();
-
- for (uint8_t i = 0; i < 4; i++) {
- m->inputs[0].value = 0.0f;
- m->step();
- m->inputs[0].value = 1.7f;
- m->step();
- }
-
- check(m->outputs[0].value == 1.7f, "output 1 is active");
- check(m->outputs[1].value == 1.7f, "output 2 is active");
- check(m->outputs[2].value == 0.0f, "output 3 is not active");
- check(m->outputs[3].value == 1.7f, "output 4 is active");
- check(m->outputs[4].value == 0.0f, "output 5 is not active");
- check(m->outputs[5].value == 0.0f, "output 6 is not active");
- check(m->outputs[6].value == 0.0f, "output 7 is not active");
- check(m->outputs[7].value == 0.0f, "output 8 is not active");
-
- done();
- }
-
- uint8_t test_clock_divider_fifth_clock() {
- ClockDividerModule *m = new ClockDividerModule();
-
- check(m, "clock divider is instantiated");
-
- // initial
- m->inputs[0].value = 1.7f;
- m->step();
-
- for (uint8_t i = 0; i < 5; i++) {
- m->inputs[0].value = 0.0f;
- m->step();
- m->inputs[0].value = 1.7f;
- m->step();
- }
-
- check(m->outputs[0].value == 1.7f, "output 1 is active");
- check(m->outputs[1].value == 0.0f, "output 2 is not active");
- check(m->outputs[2].value == 0.0f, "output 3 is not active");
- check(m->outputs[3].value == 0.0f, "output 4 is not active");
- check(m->outputs[4].value == 1.7f, "output 5 is active");
- check(m->outputs[5].value == 0.0f, "output 6 is not active");
- check(m->outputs[6].value == 0.0f, "output 7 is not active");
- check(m->outputs[7].value == 0.0f, "output 8 is not active");
-
- done();
- }
-
- uint8_t test_clock_divider_sixth_clock() {
- ClockDividerModule *m = new ClockDividerModule();
-
- check(m, "clock divider is instantiated");
-
- // initial
- m->inputs[0].value = 1.7f;
- m->step();
-
- for (uint8_t i = 0; i < 6; i++) {
- m->inputs[0].value = 0.0f;
- m->step();
- m->inputs[0].value = 1.7f;
- m->step();
- }
-
- check(m->outputs[0].value == 1.7f, "output 1 is active");
- check(m->outputs[1].value == 1.7f, "output 2 is active");
- check(m->outputs[2].value == 1.7f, "output 3 is active");
- check(m->outputs[3].value == 0.0f, "output 4 is not active");
- check(m->outputs[4].value == 0.0f, "output 5 is not active");
- check(m->outputs[5].value == 1.7f, "output 6 is active");
- check(m->outputs[6].value == 0.0f, "output 7 is not active");
- check(m->outputs[7].value == 0.0f, "output 8 is not active");
-
- done();
- }
-
- uint8_t test_clock_divider_seventh_clock() {
- ClockDividerModule *m = new ClockDividerModule();
-
- check(m, "clock divider is instantiated");
-
- // initial
- m->inputs[0].value = 1.7f;
- m->step();
-
- for (uint8_t i = 0; i < 7; i++) {
- m->inputs[0].value = 0.0f;
- m->step();
- m->inputs[0].value = 1.7f;
- m->step();
- }
-
- check(m->outputs[0].value == 1.7f, "output 1 is active");
- check(m->outputs[1].value == 0.0f, "output 2 is not active");
- check(m->outputs[2].value == 0.0f, "output 3 is not active");
- check(m->outputs[3].value == 0.0f, "output 4 is not active");
- check(m->outputs[4].value == 0.0f, "output 5 is not active");
- check(m->outputs[5].value == 0.0f, "output 6 is not active");
- check(m->outputs[6].value == 1.7f, "output 7 is active");
- check(m->outputs[7].value == 0.0f, "output 8 is not active");
-
- done();
- }
-
- uint8_t test_clock_divider_eighth_clock() {
- ClockDividerModule *m = new ClockDividerModule();
-
- check(m, "clock divider is instantiated");
-
- // initial
- m->inputs[0].value = 1.7f;
- m->step();
-
- for (uint8_t i = 0; i < 8; i++) {
- m->inputs[0].value = 0.0f;
- m->step();
- m->inputs[0].value = 1.7f;
- m->step();
- }
-
- check(m->outputs[0].value == 1.7f, "output 1 is active");
- check(m->outputs[1].value == 1.7f, "output 2 is active");
- check(m->outputs[2].value == 0.0f, "output 3 is not active");
- check(m->outputs[3].value == 1.7f, "output 4 is active");
- check(m->outputs[4].value == 0.0f, "output 5 is not active");
- check(m->outputs[5].value == 0.0f, "output 6 is not active");
- check(m->outputs[6].value == 0.0f, "output 7 is not active");
- check(m->outputs[7].value == 1.7f, "output 8 is active");
-
- done();
- }
-
- uint8_t test_clock_divider_ninth_clock() {
- ClockDividerModule *m = new ClockDividerModule();
-
- check(m, "clock divider is instantiated");
-
- // initial
- m->inputs[0].value = 1.7f;
- m->step();
-
- for (uint8_t i = 0; i < 9; i++) {
- m->inputs[0].value = 0.0f;
- m->step();
- m->inputs[0].value = 1.7f;
- m->step();
- }
-
- check(m->outputs[0].value == 1.7f, "output 1 is active");
- check(m->outputs[1].value == 0.0f, "output 2 is not active");
- check(m->outputs[2].value == 0.0f, "output 3 is not active");
- check(m->outputs[3].value == 0.0f, "output 4 is not active");
- check(m->outputs[4].value == 0.0f, "output 5 is not active");
- check(m->outputs[5].value == 0.0f, "output 6 is not active");
- check(m->outputs[6].value == 0.0f, "output 7 is not active");
- check(m->outputs[7].value == 0.0f, "output 8 is not active");
-
- done();
- }
|