blob: e48425a43cf0b35033500deb7fb868a90ecb7a57 [file] [log] [blame]
Austin Schuh812d0d12021-11-04 20:16:48 -07001// Copyright (c) FIRST and other WPILib contributors.
2// Open Source Software; you can modify and/or share it under the terms of
3// the WPILib BSD license file in the root directory of this project.
Brian Silverman8fce7482020-01-05 13:18:21 -08004
5#include "frc/Timer.h" // NOLINT(build/include_order)
6
James Kuszmaulb13e13f2023-11-22 20:44:04 -08007#include <gtest/gtest.h>
Austin Schuh812d0d12021-11-04 20:16:48 -07008#include <units/math.h>
9
Austin Schuh812d0d12021-11-04 20:16:48 -070010#define EXPECT_NEAR_UNITS(val1, val2, eps) \
11 EXPECT_LE(units::math::abs(val1 - val2), eps)
Brian Silverman8fce7482020-01-05 13:18:21 -080012
Austin Schuh812d0d12021-11-04 20:16:48 -070013TEST(TimerTest, Wait) {
14 auto initialTime = frc::Timer::GetFPGATimestamp();
Brian Silverman8fce7482020-01-05 13:18:21 -080015
Austin Schuh812d0d12021-11-04 20:16:48 -070016 frc::Wait(500_ms);
Brian Silverman8fce7482020-01-05 13:18:21 -080017
Austin Schuh812d0d12021-11-04 20:16:48 -070018 auto finalTime = frc::Timer::GetFPGATimestamp();
Brian Silverman8fce7482020-01-05 13:18:21 -080019
Austin Schuh812d0d12021-11-04 20:16:48 -070020 EXPECT_NEAR_UNITS(500_ms, finalTime - initialTime, 1_ms);
Brian Silverman8fce7482020-01-05 13:18:21 -080021}