mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-22 01:11:42 +00:00
145 lines
3.1 KiB
Python
145 lines
3.1 KiB
Python
|
|
import math
|
||
|
|
|
||
|
|
from wpilib import Joystick
|
||
|
|
from wpilib.simulation import JoystickSim
|
||
|
|
|
||
|
|
|
||
|
|
def test_getX() -> None:
|
||
|
|
joy = Joystick(1)
|
||
|
|
joysim = JoystickSim(joy)
|
||
|
|
|
||
|
|
joysim.setX(0.25)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert math.isclose(joy.getX(), 0.25)
|
||
|
|
|
||
|
|
joysim.setX(0)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert math.isclose(joy.getX(), 0.0)
|
||
|
|
|
||
|
|
|
||
|
|
def test_getY() -> None:
|
||
|
|
joy = Joystick(1)
|
||
|
|
joysim = JoystickSim(joy)
|
||
|
|
|
||
|
|
joysim.setY(0.25)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert math.isclose(joy.getY(), 0.25)
|
||
|
|
|
||
|
|
joysim.setY(0)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert math.isclose(joy.getY(), 0.0)
|
||
|
|
|
||
|
|
|
||
|
|
def test_getZ() -> None:
|
||
|
|
joy = Joystick(1)
|
||
|
|
joysim = JoystickSim(joy)
|
||
|
|
|
||
|
|
joysim.setZ(0.25)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert math.isclose(joy.getZ(), 0.25)
|
||
|
|
|
||
|
|
joysim.setZ(0)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert math.isclose(joy.getZ(), 0.0)
|
||
|
|
|
||
|
|
|
||
|
|
def test_getTwist() -> None:
|
||
|
|
joy = Joystick(1)
|
||
|
|
joysim = JoystickSim(joy)
|
||
|
|
|
||
|
|
joysim.setTwist(0.25)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert math.isclose(joy.getTwist(), 0.25)
|
||
|
|
|
||
|
|
joysim.setTwist(0)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert math.isclose(joy.getTwist(), 0.0)
|
||
|
|
|
||
|
|
|
||
|
|
def test_getThrottle() -> None:
|
||
|
|
joy = Joystick(1)
|
||
|
|
joysim = JoystickSim(joy)
|
||
|
|
|
||
|
|
joysim.setThrottle(0.25)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert math.isclose(joy.getThrottle(), 0.25)
|
||
|
|
|
||
|
|
joysim.setThrottle(0)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert math.isclose(joy.getThrottle(), 0.0)
|
||
|
|
|
||
|
|
|
||
|
|
def test_getTrigger() -> None:
|
||
|
|
joy = Joystick(1)
|
||
|
|
joysim = JoystickSim(joy)
|
||
|
|
|
||
|
|
joysim.setTrigger(True)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert joy.getTrigger()
|
||
|
|
|
||
|
|
joysim.setTrigger(False)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert not joy.getTrigger()
|
||
|
|
|
||
|
|
|
||
|
|
def test_getTop() -> None:
|
||
|
|
joy = Joystick(1)
|
||
|
|
joysim = JoystickSim(joy)
|
||
|
|
|
||
|
|
joysim.setTop(True)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert joy.getTop()
|
||
|
|
|
||
|
|
joysim.setTop(False)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert not joy.getTop()
|
||
|
|
|
||
|
|
|
||
|
|
def test_getMagnitude() -> None:
|
||
|
|
joy = Joystick(1)
|
||
|
|
joysim = JoystickSim(joy)
|
||
|
|
|
||
|
|
# X Only
|
||
|
|
joysim.setX(0.5)
|
||
|
|
joysim.setY(0.0)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert math.isclose(joy.getMagnitude(), 0.5)
|
||
|
|
|
||
|
|
# Y Only
|
||
|
|
joysim.setX(0.0)
|
||
|
|
joysim.setY(-0.5)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert math.isclose(joy.getMagnitude(), 0.5)
|
||
|
|
|
||
|
|
# Both
|
||
|
|
joysim.setX(0.5)
|
||
|
|
joysim.setY(-0.5)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert math.isclose(joy.getMagnitude(), 0.70710678118)
|
||
|
|
|
||
|
|
|
||
|
|
def test_getDirection() -> None:
|
||
|
|
joy = Joystick(1)
|
||
|
|
joysim = JoystickSim(joy)
|
||
|
|
|
||
|
|
# X Only
|
||
|
|
joysim.setX(0.5)
|
||
|
|
joysim.setY(0.0)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert math.isclose(joy.getDirectionDegrees(), 90)
|
||
|
|
assert math.isclose(joy.getDirectionRadians(), math.radians(90))
|
||
|
|
|
||
|
|
# Y Only
|
||
|
|
joysim.setX(0.0)
|
||
|
|
joysim.setY(-0.5)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert math.isclose(joy.getDirectionDegrees(), 0)
|
||
|
|
assert math.isclose(joy.getDirectionRadians(), math.radians(0))
|
||
|
|
|
||
|
|
# Both
|
||
|
|
joysim.setX(0.5)
|
||
|
|
joysim.setY(-0.5)
|
||
|
|
joysim.notifyNewData()
|
||
|
|
assert math.isclose(joy.getDirectionDegrees(), 45)
|
||
|
|
assert math.isclose(joy.getDirectionRadians(), math.radians(45))
|