11#include < ArduinoUnitTests.h>
22#include < MockEventQueue.h>
3+ #include " fibonacciClock.h"
34
45unittest (basic_queue_dequeue_and_size)
56{
@@ -11,13 +12,14 @@ unittest(basic_queue_dequeue_and_size)
1112 for (int i = 0 ; i < 5 ; ++i) {
1213 assertEqual (i, q.size ());
1314 q.push (data[i]);
14- assertEqual (data[i], q.back ());
15+ assertEqual (data[i], q.backData ());
16+ assertEqual (0 , q.backTime ()); // we didn't provide a function, so it should default to 0
1517 assertEqual (i + 1 , q.size ());
1618 }
1719
1820 for (int i = 0 ; i < 5 ; ++i) {
1921 assertEqual (5 - i, q.size ());
20- assertEqual (data[i], q.front ());
22+ assertEqual (data[i], q.frontData ());
2123 q.pop ();
2224 assertEqual (5 - i - 1 , q.size ());
2325 }
@@ -35,14 +37,14 @@ unittest(copy_constructor)
3537
3638 for (int i = 0 ; i < 5 ; ++i) {
3739 assertEqual (5 - i, q2.size ());
38- assertEqual (data[i], q2.front ());
40+ assertEqual (data[i], q2.frontData ());
3941 q2.pop ();
4042 assertEqual (5 - i - 1 , q2.size ());
4143 }
4244
4345 for (int i = 0 ; i < 5 ; ++i) {
4446 assertEqual (5 - i, q.size ());
45- assertEqual (data[i], q.front ());
47+ assertEqual (data[i], q.frontData ());
4648 q.pop ();
4749 assertEqual (5 - i - 1 , q.size ());
4850 }
@@ -64,4 +66,54 @@ unittest(boundaries)
6466
6567}
6668
69+ unittest (timed_events)
70+ {
71+ MockEventQueue<int > q;
72+ int data[7 ] = {4 , 50 , 600 , 8555 , 9000 , 9001 , 1000000000 };
73+ for (int i = 0 ; i < 7 ; ++i) {
74+ q.push (data[i], data[i]);
75+ assertEqual (data[i], q.backData ());
76+ assertEqual (data[i], q.backTime ());
77+ }
78+
79+ for (int i = 0 ; i < 7 ; ++i) {
80+ assertEqual (data[i], q.frontData ());
81+ assertEqual (data[i], q.frontTime ());
82+ q.pop ();
83+ }
84+
85+ }
86+
87+ unittest (my_fib)
88+ {
89+ resetFibClock ();
90+ assertEqual (1 , fibMicros ());
91+ assertEqual (1 , fibMicros ());
92+ assertEqual (2 , fibMicros ());
93+ assertEqual (3 , fibMicros ());
94+ assertEqual (5 , fibMicros ());
95+ assertEqual (8 , fibMicros ());
96+ assertEqual (13 , fibMicros ());
97+ assertEqual (21 , fibMicros ());
98+ }
99+
100+ unittest (clocked_events)
101+ {
102+ resetFibClock ();
103+ MockEventQueue<int > q (fibMicros);
104+ int data[7 ] = {1 , 1 , 2 , 3 , 5 , 8 , 13 }; // eureka
105+ for (int i = 0 ; i < 7 ; ++i) {
106+ q.push (data[i]);
107+ assertEqual (data[i], q.backData ());
108+ assertEqual (data[i], q.backTime ());
109+ }
110+
111+ for (int i = 0 ; i < 7 ; ++i) {
112+ assertEqual (data[i], q.frontData ());
113+ assertEqual (data[i], q.frontTime ());
114+ q.pop ();
115+ }
116+
117+ }
118+
67119unittest_main ()
0 commit comments