[wpimath] Add tests for MathUtil clamp() and interpolate() (#5501)

This commit is contained in:
Tyler Veness
2023-08-03 23:43:20 -07:00
committed by GitHub
parent 0552c8621d
commit d8c59ccc71

View File

@@ -16,6 +16,21 @@ class MathUtilTest extends UtilityClassTest<MathUtil> {
super(MathUtil.class);
}
@Test
void testClamp() {
// int
assertEquals(5, MathUtil.clamp(10, 1, 5));
// double
assertEquals(5.5, MathUtil.clamp(10.5, 1.5, 5.5));
// negative int
assertEquals(-5, MathUtil.clamp(-10, -5, -1));
// negative double
assertEquals(-5.5, MathUtil.clamp(-10.5, -5.5, -1.5));
}
@Test
void testApplyDeadbandUnityScale() {
// < 0
@@ -96,6 +111,17 @@ class MathUtilTest extends UtilityClassTest<MathUtil> {
assertEquals(MathUtil.angleModulus(-Math.PI / 2), -Math.PI / 2);
}
@Test
void testInterpolate() {
assertEquals(50, MathUtil.interpolate(0, 100, 0.5));
assertEquals(-50, MathUtil.interpolate(0, -100, 0.5));
assertEquals(0, MathUtil.interpolate(-50, 50, 0.5));
assertEquals(-25, MathUtil.interpolate(-50, 50, 0.25));
assertEquals(25, MathUtil.interpolate(-50, 50, 0.75));
assertEquals(0, MathUtil.interpolate(0, -100, -0.5));
}
@Test
void testIsNear() {
// The answer is always 42