Skip to content

Commit d82a4d8

Browse files
committed
Add quadrature encoder test
1 parent e20c068 commit d82a4d8

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

tests/quadrature_encoder_tests.cc

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#include "doctest.h"
2+
#include "util/quadrature_encoder.hh"
3+
4+
TEST_CASE("Quadrature Encoder") {
5+
6+
using Enc = QuadratureEncoder<>;
7+
8+
Enc encoder{};
9+
10+
// check clockwise
11+
CHECK(encoder.get_motion(true, false) == Enc::None);
12+
CHECK(encoder.get_motion(false, false) == Enc::None);
13+
CHECK(encoder.get_motion(false, true) == Enc::None);
14+
CHECK(encoder.get_motion(true, true) == Enc::CW);
15+
16+
// check clockwise no state change
17+
CHECK(encoder.get_motion(true, false) == Enc::None);
18+
CHECK(encoder.get_motion(true, false) == Enc::None);
19+
CHECK(encoder.get_motion(true, false) == Enc::None);
20+
CHECK(encoder.get_motion(true, false) == Enc::None);
21+
22+
CHECK(encoder.get_motion(false, false) == Enc::None);
23+
CHECK(encoder.get_motion(false, false) == Enc::None);
24+
CHECK(encoder.get_motion(false, false) == Enc::None);
25+
CHECK(encoder.get_motion(false, false) == Enc::None);
26+
27+
CHECK(encoder.get_motion(false, true) == Enc::None);
28+
CHECK(encoder.get_motion(false, true) == Enc::None);
29+
CHECK(encoder.get_motion(false, true) == Enc::None);
30+
CHECK(encoder.get_motion(false, true) == Enc::None);
31+
32+
CHECK(encoder.get_motion(true, true) == Enc::CW);
33+
CHECK(encoder.get_motion(true, true) == Enc::None);
34+
CHECK(encoder.get_motion(true, true) == Enc::None);
35+
CHECK(encoder.get_motion(true, true) == Enc::None);
36+
37+
// check counter-clockwise
38+
CHECK(encoder.get_motion(false, true) == Enc::None);
39+
CHECK(encoder.get_motion(false, false) == Enc::None);
40+
CHECK(encoder.get_motion(true, false) == Enc::None);
41+
CHECK(encoder.get_motion(true, true) == Enc::CCW);
42+
43+
// check with no state change
44+
CHECK(encoder.get_motion(false, true) == Enc::None);
45+
CHECK(encoder.get_motion(false, true) == Enc::None);
46+
47+
CHECK(encoder.get_motion(false, false) == Enc::None);
48+
CHECK(encoder.get_motion(false, false) == Enc::None);
49+
50+
CHECK(encoder.get_motion(true, false) == Enc::None);
51+
CHECK(encoder.get_motion(true, false) == Enc::None);
52+
53+
CHECK(encoder.get_motion(true, true) == Enc::CCW);
54+
CHECK(encoder.get_motion(true, true) == Enc::None);
55+
}

0 commit comments

Comments
 (0)