[wpimath] Move RobotDriveBase::ApplyDeadband() to MathUtil (#3529)

It's a useful function outside of the drive classes.

For backwards compatibility, deprecate (rather than remove) RobotDriveBase.applyDeadband()
This commit is contained in:
Tyler Veness
2021-08-28 20:52:05 -07:00
committed by GitHub
parent 3b5d0d141a
commit aa3848b2c8
16 changed files with 162 additions and 65 deletions

View File

@@ -9,6 +9,24 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
class MathUtilTest {
@Test
void testApplyDeadband() {
// < 0
assertEquals(-1.0, MathUtil.applyDeadband(-1.0, 0.02));
assertEquals((-0.03 + 0.02) / (1.0 - 0.02), MathUtil.applyDeadband(-0.03, 0.02));
assertEquals(0.0, MathUtil.applyDeadband(-0.02, 0.02));
assertEquals(0.0, MathUtil.applyDeadband(-0.01, 0.02));
// == 0
assertEquals(0.0, MathUtil.applyDeadband(0.0, 0.02));
// > 0
assertEquals(0.0, MathUtil.applyDeadband(0.01, 0.02));
assertEquals(0.0, MathUtil.applyDeadband(0.02, 0.02));
assertEquals((0.03 - 0.02) / (1.0 - 0.02), MathUtil.applyDeadband(0.03, 0.02));
assertEquals(1.0, MathUtil.applyDeadband(1.0, 0.02));
}
@Test
void testInputModulus() {
// These tests check error wrapping. That is, the result of wrapping the