mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
[wpilibc] Add unit-aware Joystick.GetDirection() (#5319)
This commit is contained in:
@@ -23,3 +23,46 @@ AXIS_TEST(Joystick, Twist)
|
||||
|
||||
BUTTON_TEST(Joystick, Trigger)
|
||||
BUTTON_TEST(Joystick, Top)
|
||||
|
||||
TEST(JoystickTest, GetMagnitude) {
|
||||
Joystick joy{1};
|
||||
sim::JoystickSim joysim{1};
|
||||
|
||||
joysim.SetX(0.5);
|
||||
joysim.SetY(0);
|
||||
joysim.NotifyNewData();
|
||||
ASSERT_NEAR(0.5, joy.GetMagnitude(), 0.001);
|
||||
|
||||
joysim.SetX(0);
|
||||
joysim.SetY(-.5);
|
||||
joysim.NotifyNewData();
|
||||
ASSERT_NEAR(0.5, joy.GetMagnitude(), 0.001);
|
||||
|
||||
joysim.SetX(0.5);
|
||||
joysim.SetY(-0.5);
|
||||
joysim.NotifyNewData();
|
||||
ASSERT_NEAR(0.70710678118, joy.GetMagnitude(), 0.001);
|
||||
}
|
||||
|
||||
TEST(JoystickTest, GetDirection) {
|
||||
Joystick joy{1};
|
||||
sim::JoystickSim joysim{1};
|
||||
|
||||
joysim.SetX(0.5);
|
||||
joysim.SetY(0);
|
||||
joysim.NotifyNewData();
|
||||
ASSERT_NEAR(units::radian_t{90_deg}.value(), joy.GetDirection().value(),
|
||||
0.001);
|
||||
|
||||
joysim.SetX(0);
|
||||
joysim.SetY(-.5);
|
||||
joysim.NotifyNewData();
|
||||
ASSERT_NEAR(units::radian_t{0_deg}.value(), joy.GetDirection().value(),
|
||||
0.001);
|
||||
|
||||
joysim.SetX(0.5);
|
||||
joysim.SetY(-0.5);
|
||||
joysim.NotifyNewData();
|
||||
ASSERT_NEAR(units::radian_t{45_deg}.value(), joy.GetDirection().value(),
|
||||
0.001);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user