Restructure RobotGyroUtilityTest to be more modular

This commit is contained in:
Keenan D. Buckley
2020-04-11 12:58:28 -06:00
parent 2e8b5b5470
commit af09668843
@@ -23,30 +23,36 @@ import frc4388.utility.RobotGyro;
* Add your docs here. * Add your docs here.
*/ */
public class RobotGyroUtilityTest { public class RobotGyroUtilityTest {
MockPigeonIMU pigeon = new MockPigeonIMU(DriveConstants.DRIVE_PIGEON_ID);
RobotGyro gyroPigeon = new RobotGyro(pigeon);
AHRS navX = mock(AHRS.class);
RobotGyro gyroNavX = new RobotGyro(navX);
RobotTime robotTime = RobotTime.getInstance();
// TODO UNTESTED: most functions for NavX // TODO UNTESTED: most functions for NavX
@Test @Test
public void testConfig() { public void testConstructor() {
// TEST 1 // Arrange
MockPigeonIMU pigeon = new MockPigeonIMU(DriveConstants.DRIVE_PIGEON_ID);
AHRS navX = mock(AHRS.class);
// Act
RobotGyro gyroPigeon = new RobotGyro(pigeon);
RobotGyro gyroNavX = new RobotGyro(navX);
// Assert 1
assertEquals(true, gyroPigeon.m_isGyroAPigeon); assertEquals(true, gyroPigeon.m_isGyroAPigeon);
assertEquals(pigeon, gyroPigeon.getPigeon()); assertEquals(pigeon, gyroPigeon.getPigeon());
assertEquals(null, gyroPigeon.getNavX()); assertEquals(null, gyroPigeon.getNavX());
// TEST 2 // Assert 2
assertEquals(false, gyroNavX.m_isGyroAPigeon); assertEquals(false, gyroNavX.m_isGyroAPigeon);
assertEquals(navX, gyroNavX.getNavX()); assertEquals(navX, gyroNavX.getNavX());
assertEquals(null, gyroNavX.getPigeon()); assertEquals(null, gyroNavX.getPigeon());
} }
@Test @Test
public void testHeading() { public void testHeadingPigeon() {
// TESTS // Arrange
MockPigeonIMU pigeon = new MockPigeonIMU(DriveConstants.DRIVE_PIGEON_ID);
RobotGyro gyroPigeon = new RobotGyro(pigeon);
// Act & Assert
assertEquals(-90, gyroPigeon.getHeading(270), 0.0001); assertEquals(-90, gyroPigeon.getHeading(270), 0.0001);
assertEquals(-45, gyroPigeon.getHeading(315), 0.0001); assertEquals(-45, gyroPigeon.getHeading(315), 0.0001);
assertEquals(-60, gyroPigeon.getHeading(-60), 0.0001); assertEquals(-60, gyroPigeon.getHeading(-60), 0.0001);
@@ -59,91 +65,123 @@ public class RobotGyroUtilityTest {
} }
@Test @Test
public void testYawPitchRoll() { public void testYawPitchRollPigeon() {
// TEST 1 // Arrange
MockPigeonIMU pigeon = new MockPigeonIMU(DriveConstants.DRIVE_PIGEON_ID);
RobotGyro gyroPigeon = new RobotGyro(pigeon);
// Assert
assertEquals(0, gyroPigeon.getAngle(), 0.0001); assertEquals(0, gyroPigeon.getAngle(), 0.0001);
// TEST 2 // Act
pigeon.setYaw(40); pigeon.setYaw(40);
// Assert
assertEquals(40, gyroPigeon.getAngle(), 0.0001); assertEquals(40, gyroPigeon.getAngle(), 0.0001);
// TEST 3 // Act
gyroPigeon.reset(); gyroPigeon.reset();
// Assert
assertEquals(0, gyroPigeon.getAngle(), 0.0001); assertEquals(0, gyroPigeon.getAngle(), 0.0001);
// TEST 4 // Act
pigeon.setYaw(-1457); pigeon.setYaw(-1457);
pigeon.setCurrentPitch(100); pigeon.setCurrentPitch(100);
pigeon.setCurrentRoll(100); pigeon.setCurrentRoll(100);
// Assert
assertEquals(-1457, gyroPigeon.getAngle(), 0.0001); assertEquals(-1457, gyroPigeon.getAngle(), 0.0001);
assertEquals(90, gyroPigeon.getPitch(), 0.0001); assertEquals(90, gyroPigeon.getPitch(), 0.0001);
assertEquals(90, gyroPigeon.getRoll(), 0.0001); assertEquals(90, gyroPigeon.getRoll(), 0.0001);
// TEST 5 // Act
pigeon.setCurrentPitch(45); pigeon.setCurrentPitch(45);
pigeon.setCurrentRoll(45); pigeon.setCurrentRoll(45);
// Assert
assertEquals(45, gyroPigeon.getPitch(), 0.0001); assertEquals(45, gyroPigeon.getPitch(), 0.0001);
assertEquals(45, gyroPigeon.getRoll(), 0.0001); assertEquals(45, gyroPigeon.getRoll(), 0.0001);
// TEST 6 // Act
pigeon.setCurrentPitch(0); pigeon.setCurrentPitch(0);
pigeon.setCurrentRoll(0); pigeon.setCurrentRoll(0);
// Assert
assertEquals(0, gyroPigeon.getPitch(), 0.0001); assertEquals(0, gyroPigeon.getPitch(), 0.0001);
assertEquals(0, gyroPigeon.getRoll(), 0.0001); assertEquals(0, gyroPigeon.getRoll(), 0.0001);
// TEST 7 // Act
pigeon.setCurrentPitch(-60); pigeon.setCurrentPitch(-60);
pigeon.setCurrentRoll(-60); pigeon.setCurrentRoll(-60);
// Assert
assertEquals(-60, gyroPigeon.getPitch(), 0.0001); assertEquals(-60, gyroPigeon.getPitch(), 0.0001);
assertEquals(-60, gyroPigeon.getRoll(), 0.0001); assertEquals(-60, gyroPigeon.getRoll(), 0.0001);
// TEST 8 // Act
pigeon.setCurrentPitch(-90); pigeon.setCurrentPitch(-90);
pigeon.setCurrentRoll(-90); pigeon.setCurrentRoll(-90);
// Assert
assertEquals(-90, gyroPigeon.getPitch(), 0.0001); assertEquals(-90, gyroPigeon.getPitch(), 0.0001);
assertEquals(-90, gyroPigeon.getRoll(), 0.0001); assertEquals(-90, gyroPigeon.getRoll(), 0.0001);
// TEST 9 // Act
pigeon.setCurrentPitch(-100); pigeon.setCurrentPitch(-100);
pigeon.setCurrentRoll(-100); pigeon.setCurrentRoll(-100);
// Assert
assertEquals(-90, gyroPigeon.getPitch(), 0.0001); assertEquals(-90, gyroPigeon.getPitch(), 0.0001);
assertEquals(-90, gyroPigeon.getRoll(), 0.0001); assertEquals(-90, gyroPigeon.getRoll(), 0.0001);
} }
@Test @Test
public void testRates() { public void testRatesPigeon() {
// SETUP // Arrange
pigeon.setYaw(0); MockPigeonIMU pigeon = new MockPigeonIMU(DriveConstants.DRIVE_PIGEON_ID);
RobotGyro gyroPigeon = new RobotGyro(pigeon);
RobotTime robotTime = RobotTime.getInstance();
gyroPigeon.updatePigeonDeltas(); gyroPigeon.updatePigeonDeltas();
// TEST 1 // Act
robotTime.m_deltaTime = 5; robotTime.m_deltaTime = 5;
pigeon.setYaw(0); pigeon.setYaw(0);
gyroPigeon.updatePigeonDeltas(); gyroPigeon.updatePigeonDeltas();
// Assert
assertEquals(0, gyroPigeon.getRate(), 1); assertEquals(0, gyroPigeon.getRate(), 1);
// TEST 2 // Act
robotTime.m_deltaTime = 5; robotTime.m_deltaTime = 5;
pigeon.setYaw(90); pigeon.setYaw(90);
gyroPigeon.updatePigeonDeltas(); gyroPigeon.updatePigeonDeltas();
// Assert
assertEquals(18000, gyroPigeon.getRate(), 0.001); assertEquals(18000, gyroPigeon.getRate(), 0.001);
// TEST 3 // Act
robotTime.m_deltaTime = 5; robotTime.m_deltaTime = 5;
pigeon.setYaw(90); pigeon.setYaw(90);
gyroPigeon.updatePigeonDeltas(); gyroPigeon.updatePigeonDeltas();
// Assert
assertEquals(0, gyroPigeon.getRate(), 0.001); assertEquals(0, gyroPigeon.getRate(), 0.001);
// TEST 4 // Act
robotTime.m_deltaTime = 3; robotTime.m_deltaTime = 3;
pigeon.setYaw(-30); pigeon.setYaw(-30);
gyroPigeon.updatePigeonDeltas(); gyroPigeon.updatePigeonDeltas();
// Assert
assertEquals(-40000, gyroPigeon.getRate(), 0.001); assertEquals(-40000, gyroPigeon.getRate(), 0.001);
// TEST 5 // Act
robotTime.m_deltaTime = 6; robotTime.m_deltaTime = 6;
pigeon.setYaw(690); pigeon.setYaw(690);
gyroPigeon.updatePigeonDeltas(); gyroPigeon.updatePigeonDeltas();
// Assert
assertEquals(120000, gyroPigeon.getRate(), 0.001); assertEquals(120000, gyroPigeon.getRate(), 0.001);
} }