From a56ca65d145766579767f2fbcc6efc7779c7e50e Mon Sep 17 00:00:00 2001 From: "Keenan D. Buckley" Date: Wed, 8 Apr 2020 09:30:16 -0600 Subject: [PATCH] Add tests for RobotTime class --- src/main/java/frc4388/utility/RobotTime.java | 5 +- .../frc4388/utility/RobotTimeUtilityTest.java | 93 +++++++++++++++++++ 2 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 src/test/java/frc4388/utility/RobotTimeUtilityTest.java diff --git a/src/main/java/frc4388/utility/RobotTime.java b/src/main/java/frc4388/utility/RobotTime.java index d427fb7..694f850 100644 --- a/src/main/java/frc4388/utility/RobotTime.java +++ b/src/main/java/frc4388/utility/RobotTime.java @@ -55,7 +55,7 @@ public class RobotTime { m_deltaTime = m_robotTime - m_lastRobotTime; m_frameNumber++; - if (m_matchTime != 0) { + if (m_startMatchTime != 0) { m_matchTime = m_currTime - m_startMatchTime; } } @@ -64,9 +64,8 @@ public class RobotTime { * Call this in both the auto and periodic inits */ public void startMatchTime() { - if (m_matchTime == 0) { + if (m_startMatchTime == 0) { m_startMatchTime = m_currTime; - m_matchTime = 1; } } diff --git a/src/test/java/frc4388/utility/RobotTimeUtilityTest.java b/src/test/java/frc4388/utility/RobotTimeUtilityTest.java new file mode 100644 index 0000000..96bf5b5 --- /dev/null +++ b/src/test/java/frc4388/utility/RobotTimeUtilityTest.java @@ -0,0 +1,93 @@ +/*----------------------------------------------------------------------------*/ +/* Copyright (c) 2018-2019 FIRST. All Rights Reserved. */ +/* Open Source Software - may be modified and shared by FRC teams. The code */ +/* must be accompanied by the FIRST BSD license file in the root directory of */ +/* the project. */ +/*----------------------------------------------------------------------------*/ + +package frc4388.utility; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; +import org.junit.*; + +import edu.wpi.first.wpilibj.*; + +/** + * Add your docs here. + */ +public class RobotTimeUtilityTest { + RobotTime robotTime = RobotTime.getInstance(); + + @Test + public void testUpdateTimes() { + long lastTime; + + // Initialisation + assertEquals(0, robotTime.m_deltaTime); + assertEquals(0, robotTime.m_robotTime); + assertEquals(0, robotTime.m_lastRobotTime); + assertEquals(0, robotTime.m_frameNumber); + lastTime = robotTime.m_robotTime; + + wait(1); + robotTime.updateTimes(); + + // First Frame + assertEquals(true, robotTime.m_deltaTime > 0); + assertEquals(true, robotTime.m_robotTime > 0); + assertEquals(lastTime, robotTime.m_lastRobotTime); + assertEquals(1, robotTime.m_frameNumber); + lastTime = robotTime.m_robotTime; + + wait(1); + robotTime.updateTimes(); + + // Second Frame + assertEquals(true, robotTime.m_deltaTime > 0); + assertEquals(true, robotTime.m_robotTime > 0); + assertEquals(lastTime, robotTime.m_lastRobotTime); + assertEquals(2, robotTime.m_frameNumber); + } + + @Test + public void testMatchTime() { + long lastTime; + + // Second Frame + assertEquals(0, robotTime.m_matchTime); + assertEquals(0, robotTime.m_lastMatchTime); + lastTime = robotTime.m_matchTime; + + robotTime.startMatchTime(); + wait(1); + robotTime.updateTimes(); + + // Third Frame + assertEquals(true, robotTime.m_matchTime > 0); + assertEquals(lastTime, robotTime.m_lastMatchTime); + lastTime = robotTime.m_matchTime; + + wait(1); + robotTime.updateTimes(); + robotTime.endMatchTime(); + + // Fourth Frame + assertEquals(0, robotTime.m_matchTime); + assertEquals(lastTime, robotTime.m_lastMatchTime); + lastTime = robotTime.m_matchTime; + + wait(1); + robotTime.updateTimes(); + + // Fifth Frame + assertEquals(0, robotTime.m_matchTime); + assertEquals(lastTime, robotTime.m_lastMatchTime); + } + + private void wait(int millis) { + try { + Thread.sleep(millis); + } catch (Exception e) {} + } +}