blob: 66e0ea58f24175213aab2a40eacf3d7b0f5446ff [file] [log] [blame]
Brian Silvermanf91524f2017-09-23 13:15:55 -04001#include "motors/usb/constants.h"
2
3#include "gtest/gtest.h"
4
Stephan Pleinesf63bde82024-01-13 15:59:33 -08005namespace frc971::teensy::testing {
Brian Silvermanf91524f2017-09-23 13:15:55 -04006
7TEST(EndpointBufferStateTest, Filling) {
8 EXPECT_TRUE(BufferStateHasEmpty(EndpointBufferState::kBothEmptyEvenFirst));
9 EXPECT_EQ(EvenOdd::kEven,
10 BufferStateToFill(EndpointBufferState::kBothEmptyEvenFirst));
11
12 EXPECT_TRUE(BufferStateHasEmpty(EndpointBufferState::kBothEmptyOddFirst));
13 EXPECT_EQ(EvenOdd::kOdd,
14 BufferStateToFill(EndpointBufferState::kBothEmptyOddFirst));
15
16 EXPECT_TRUE(BufferStateHasEmpty(EndpointBufferState::kEvenFull));
17 EXPECT_EQ(EvenOdd::kOdd, BufferStateToFill(EndpointBufferState::kEvenFull));
18
19 EXPECT_TRUE(BufferStateHasEmpty(EndpointBufferState::kOddFull));
20 EXPECT_EQ(EvenOdd::kEven, BufferStateToFill(EndpointBufferState::kOddFull));
21
22 EXPECT_FALSE(BufferStateHasEmpty(EndpointBufferState::kBothFullEvenFirst));
23}
24
25TEST(EndpointBufferStateTest, Emptying) {
26 EXPECT_FALSE(BufferStateHasFull(EndpointBufferState::kBothEmptyEvenFirst));
27
28 EXPECT_FALSE(BufferStateHasFull(EndpointBufferState::kBothEmptyOddFirst));
29
30 EXPECT_TRUE(BufferStateHasFull(EndpointBufferState::kEvenFull));
31 EXPECT_EQ(EvenOdd::kEven, BufferStateToEmpty(EndpointBufferState::kEvenFull));
32
33 EXPECT_TRUE(BufferStateHasFull(EndpointBufferState::kOddFull));
34 EXPECT_EQ(EvenOdd::kOdd, BufferStateToEmpty(EndpointBufferState::kOddFull));
35
36 EXPECT_TRUE(BufferStateHasFull(EndpointBufferState::kBothFullEvenFirst));
37 EXPECT_EQ(EvenOdd::kEven,
38 BufferStateToEmpty(EndpointBufferState::kBothFullEvenFirst));
39}
40
41TEST(EndpointBufferStateTest, Transitions) {
42 EXPECT_EQ(EndpointBufferState::kEvenFull,
43 BufferStateAfterFill(EndpointBufferState::kBothEmptyEvenFirst));
44
45 EXPECT_EQ(EndpointBufferState::kOddFull,
46 BufferStateAfterFill(EndpointBufferState::kBothEmptyOddFirst));
47
48 EXPECT_EQ(EndpointBufferState::kBothFullEvenFirst,
49 BufferStateAfterFill(EndpointBufferState::kEvenFull));
50 EXPECT_EQ(EndpointBufferState::kBothEmptyOddFirst,
51 BufferStateAfterEmpty(EndpointBufferState::kEvenFull));
52
53 EXPECT_EQ(EndpointBufferState::kBothFullOddFirst,
54 BufferStateAfterFill(EndpointBufferState::kOddFull));
55 EXPECT_EQ(EndpointBufferState::kBothEmptyEvenFirst,
56 BufferStateAfterEmpty(EndpointBufferState::kOddFull));
57
58 EXPECT_EQ(EndpointBufferState::kOddFull,
59 BufferStateAfterEmpty(EndpointBufferState::kBothFullEvenFirst));
60}
61
Stephan Pleinesf63bde82024-01-13 15:59:33 -080062} // namespace frc971::teensy::testing