[wpilibc] Add more unit tests (#3494)

This commit is contained in:
PJ Reiniger
2021-08-05 22:04:51 -04:00
committed by GitHub
parent b253246959
commit 94e0db7963
30 changed files with 2588 additions and 89 deletions

View File

@@ -7,11 +7,13 @@
#include <hal/Accelerometer.h>
#include <hal/HAL.h>
#include "callback_helpers/TestCallbackHelpers.h"
#include "frc/BuiltInAccelerometer.h"
#include "gtest/gtest.h"
using namespace frc::sim;
namespace frc::sim {
TEST(AcclerometerSimTests, TestActiveCallback) {
TEST(AcclerometerSimTest, ActiveCallback) {
HAL_Initialize(500, 0);
BuiltInAccelerometerSim sim;
@@ -34,4 +36,103 @@ TEST(AcclerometerSimTests, TestActiveCallback) {
EXPECT_TRUE(wasTriggered);
EXPECT_TRUE(lastValue);
EXPECT_TRUE(sim.GetActive());
}
TEST(AcclerometerSimTest, SetX) {
HAL_Initialize(500, 0);
BuiltInAccelerometerSim sim;
sim.ResetData();
DoubleCallback callback;
constexpr double kTestValue = 1.91;
BuiltInAccelerometer accel;
auto cb = sim.RegisterXCallback(callback.GetCallback(), false);
sim.SetX(kTestValue);
EXPECT_EQ(kTestValue, accel.GetX());
EXPECT_EQ(kTestValue, sim.GetX());
EXPECT_TRUE(callback.WasTriggered());
EXPECT_EQ(kTestValue, callback.GetLastValue());
}
TEST(AcclerometerSimTest, SetY) {
HAL_Initialize(500, 0);
BuiltInAccelerometerSim sim;
sim.ResetData();
DoubleCallback callback;
constexpr double kTestValue = 2.29;
BuiltInAccelerometer accel;
auto cb = sim.RegisterYCallback(callback.GetCallback(), false);
sim.SetY(kTestValue);
EXPECT_EQ(kTestValue, accel.GetY());
EXPECT_EQ(kTestValue, sim.GetY());
EXPECT_TRUE(callback.WasTriggered());
EXPECT_EQ(kTestValue, callback.GetLastValue());
}
TEST(AcclerometerSimTest, SetZ) {
HAL_Initialize(500, 0);
BuiltInAccelerometer accel;
BuiltInAccelerometerSim sim(accel);
sim.ResetData();
DoubleCallback callback;
constexpr double kTestValue = 3.405;
auto cb = sim.RegisterZCallback(callback.GetCallback(), false);
sim.SetZ(kTestValue);
EXPECT_EQ(kTestValue, accel.GetZ());
EXPECT_EQ(kTestValue, sim.GetZ());
EXPECT_TRUE(callback.WasTriggered());
EXPECT_EQ(kTestValue, callback.GetLastValue());
}
TEST(AcclerometerSimTest, SetRange) {
HAL_Initialize(500, 0);
BuiltInAccelerometerSim sim;
sim.ResetData();
EnumCallback callback;
Accelerometer::Range range = Accelerometer::kRange_4G;
auto cb = sim.RegisterRangeCallback(callback.GetCallback(), false);
BuiltInAccelerometer accel(range);
EXPECT_TRUE(callback.WasTriggered());
EXPECT_EQ(static_cast<int>(range), sim.GetRange());
EXPECT_EQ(static_cast<int>(range), callback.GetLastValue());
// 2G
callback.Reset();
range = Accelerometer::kRange_2G;
accel.SetRange(range);
EXPECT_TRUE(callback.WasTriggered());
EXPECT_EQ(static_cast<int>(range), sim.GetRange());
EXPECT_EQ(static_cast<int>(range), callback.GetLastValue());
// 4G
callback.Reset();
range = Accelerometer::kRange_4G;
accel.SetRange(range);
EXPECT_TRUE(callback.WasTriggered());
EXPECT_EQ(static_cast<int>(range), sim.GetRange());
EXPECT_EQ(static_cast<int>(range), callback.GetLastValue());
// 8G
callback.Reset();
range = Accelerometer::kRange_8G;
accel.SetRange(range);
EXPECT_TRUE(callback.WasTriggered());
EXPECT_EQ(static_cast<int>(range), sim.GetRange());
EXPECT_EQ(static_cast<int>(range), callback.GetLastValue());
// 16G - Not supported
callback.Reset();
EXPECT_THROW(accel.SetRange(Accelerometer::kRange_16G), std::runtime_error);
EXPECT_FALSE(callback.WasTriggered());
}
} // namespace frc::sim