summaryrefslogtreecommitdiff
path: root/quantum/encoder/tests/encoder_tests.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/encoder/tests/encoder_tests.cpp')
-rw-r--r--quantum/encoder/tests/encoder_tests.cpp36
1 files changed, 18 insertions, 18 deletions
diff --git a/quantum/encoder/tests/encoder_tests.cpp b/quantum/encoder/tests/encoder_tests.cpp
index 1888fdab8d..b7c18aeec0 100644
--- a/quantum/encoder/tests/encoder_tests.cpp
+++ b/quantum/encoder/tests/encoder_tests.cpp
@@ -30,12 +30,12 @@ struct update {
30 bool clockwise; 30 bool clockwise;
31}; 31};
32 32
33uint8_t uidx = 0; 33uint8_t updates_array_idx = 0;
34update updates[32]; 34update updates[32];
35 35
36bool encoder_update_kb(uint8_t index, bool clockwise) { 36bool encoder_update_kb(uint8_t index, bool clockwise) {
37 updates[uidx % 32] = {index, clockwise}; 37 updates[updates_array_idx % 32] = {index, clockwise};
38 uidx++; 38 updates_array_idx++;
39 return true; 39 return true;
40} 40}
41 41
@@ -47,15 +47,15 @@ bool setAndRead(pin_t pin, bool val) {
47class EncoderTest : public ::testing::Test {}; 47class EncoderTest : public ::testing::Test {};
48 48
49TEST_F(EncoderTest, TestInit) { 49TEST_F(EncoderTest, TestInit) {
50 uidx = 0; 50 updates_array_idx = 0;
51 encoder_init(); 51 encoder_init();
52 EXPECT_EQ(pinIsInputHigh[0], true); 52 EXPECT_EQ(pinIsInputHigh[0], true);
53 EXPECT_EQ(pinIsInputHigh[1], true); 53 EXPECT_EQ(pinIsInputHigh[1], true);
54 EXPECT_EQ(uidx, 0); 54 EXPECT_EQ(updates_array_idx, 0);
55} 55}
56 56
57TEST_F(EncoderTest, TestOneClockwise) { 57TEST_F(EncoderTest, TestOneClockwise) {
58 uidx = 0; 58 updates_array_idx = 0;
59 encoder_init(); 59 encoder_init();
60 // send 4 pulses. with resolution 4, that's one step and we should get 1 update. 60 // send 4 pulses. with resolution 4, that's one step and we should get 1 update.
61 setAndRead(0, false); 61 setAndRead(0, false);
@@ -63,26 +63,26 @@ TEST_F(EncoderTest, TestOneClockwise) {
63 setAndRead(0, true); 63 setAndRead(0, true);
64 setAndRead(1, true); 64 setAndRead(1, true);
65 65
66 EXPECT_EQ(uidx, 1); 66 EXPECT_EQ(updates_array_idx, 1);
67 EXPECT_EQ(updates[0].index, 0); 67 EXPECT_EQ(updates[0].index, 0);
68 EXPECT_EQ(updates[0].clockwise, true); 68 EXPECT_EQ(updates[0].clockwise, true);
69} 69}
70 70
71TEST_F(EncoderTest, TestOneCounterClockwise) { 71TEST_F(EncoderTest, TestOneCounterClockwise) {
72 uidx = 0; 72 updates_array_idx = 0;
73 encoder_init(); 73 encoder_init();
74 setAndRead(1, false); 74 setAndRead(1, false);
75 setAndRead(0, false); 75 setAndRead(0, false);
76 setAndRead(1, true); 76 setAndRead(1, true);
77 setAndRead(0, true); 77 setAndRead(0, true);
78 78
79 EXPECT_EQ(uidx, 1); 79 EXPECT_EQ(updates_array_idx, 1);
80 EXPECT_EQ(updates[0].index, 0); 80 EXPECT_EQ(updates[0].index, 0);
81 EXPECT_EQ(updates[0].clockwise, false); 81 EXPECT_EQ(updates[0].clockwise, false);
82} 82}
83 83
84TEST_F(EncoderTest, TestTwoClockwiseOneCC) { 84TEST_F(EncoderTest, TestTwoClockwiseOneCC) {
85 uidx = 0; 85 updates_array_idx = 0;
86 encoder_init(); 86 encoder_init();
87 setAndRead(0, false); 87 setAndRead(0, false);
88 setAndRead(1, false); 88 setAndRead(1, false);
@@ -97,7 +97,7 @@ TEST_F(EncoderTest, TestTwoClockwiseOneCC) {
97 setAndRead(1, true); 97 setAndRead(1, true);
98 setAndRead(0, true); 98 setAndRead(0, true);
99 99
100 EXPECT_EQ(uidx, 3); 100 EXPECT_EQ(updates_array_idx, 3);
101 EXPECT_EQ(updates[0].index, 0); 101 EXPECT_EQ(updates[0].index, 0);
102 EXPECT_EQ(updates[0].clockwise, true); 102 EXPECT_EQ(updates[0].clockwise, true);
103 EXPECT_EQ(updates[1].index, 0); 103 EXPECT_EQ(updates[1].index, 0);
@@ -107,38 +107,38 @@ TEST_F(EncoderTest, TestTwoClockwiseOneCC) {
107} 107}
108 108
109TEST_F(EncoderTest, TestNoEarly) { 109TEST_F(EncoderTest, TestNoEarly) {
110 uidx = 0; 110 updates_array_idx = 0;
111 encoder_init(); 111 encoder_init();
112 // send 3 pulses. with resolution 4, that's not enough for a step. 112 // send 3 pulses. with resolution 4, that's not enough for a step.
113 setAndRead(0, false); 113 setAndRead(0, false);
114 setAndRead(1, false); 114 setAndRead(1, false);
115 setAndRead(0, true); 115 setAndRead(0, true);
116 EXPECT_EQ(uidx, 0); 116 EXPECT_EQ(updates_array_idx, 0);
117 // now send last pulse 117 // now send last pulse
118 setAndRead(1, true); 118 setAndRead(1, true);
119 EXPECT_EQ(uidx, 1); 119 EXPECT_EQ(updates_array_idx, 1);
120 EXPECT_EQ(updates[0].index, 0); 120 EXPECT_EQ(updates[0].index, 0);
121 EXPECT_EQ(updates[0].clockwise, true); 121 EXPECT_EQ(updates[0].clockwise, true);
122} 122}
123 123
124TEST_F(EncoderTest, TestHalfway) { 124TEST_F(EncoderTest, TestHalfway) {
125 uidx = 0; 125 updates_array_idx = 0;
126 encoder_init(); 126 encoder_init();
127 // go halfway 127 // go halfway
128 setAndRead(0, false); 128 setAndRead(0, false);
129 setAndRead(1, false); 129 setAndRead(1, false);
130 EXPECT_EQ(uidx, 0); 130 EXPECT_EQ(updates_array_idx, 0);
131 // back off 131 // back off
132 setAndRead(1, true); 132 setAndRead(1, true);
133 setAndRead(0, true); 133 setAndRead(0, true);
134 EXPECT_EQ(uidx, 0); 134 EXPECT_EQ(updates_array_idx, 0);
135 // go all the way 135 // go all the way
136 setAndRead(0, false); 136 setAndRead(0, false);
137 setAndRead(1, false); 137 setAndRead(1, false);
138 setAndRead(0, true); 138 setAndRead(0, true);
139 setAndRead(1, true); 139 setAndRead(1, true);
140 // should result in 1 update 140 // should result in 1 update
141 EXPECT_EQ(uidx, 1); 141 EXPECT_EQ(updates_array_idx, 1);
142 EXPECT_EQ(updates[0].index, 0); 142 EXPECT_EQ(updates[0].index, 0);
143 EXPECT_EQ(updates[0].clockwise, true); 143 EXPECT_EQ(updates[0].clockwise, true);
144} 144}