mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-26 01:51:41 +00:00
Add ADX Simulator tests (#1142)
This commit is contained in:
committed by
Peter Johnson
parent
056e68f2ae
commit
b1bb63f9a4
@@ -0,0 +1,47 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) 2018 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. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#include "ADXL345_I2C.h"
|
||||
#include "ADXL345_I2CAccelerometerData.h"
|
||||
#include "Talon.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
class ADXL345_I2CAccelerometerTest
|
||||
: public ::testing::TestWithParam<frc::I2C::Port> {};
|
||||
|
||||
TEST_P(ADXL345_I2CAccelerometerTest, TestAccelerometer) {
|
||||
const double EPSILON = 1 / 256.0;
|
||||
|
||||
frc::I2C::Port port = GetParam();
|
||||
|
||||
hal::ADXL345_I2CData sim{port};
|
||||
frc::ADXL345_I2C accel{port};
|
||||
|
||||
EXPECT_NEAR(0, sim.GetX(), EPSILON);
|
||||
EXPECT_NEAR(0, sim.GetY(), EPSILON);
|
||||
EXPECT_NEAR(0, sim.GetZ(), EPSILON);
|
||||
|
||||
EXPECT_NEAR(0, accel.GetX(), EPSILON);
|
||||
EXPECT_NEAR(0, accel.GetY(), EPSILON);
|
||||
EXPECT_NEAR(0, accel.GetZ(), EPSILON);
|
||||
|
||||
sim.SetX(1.56);
|
||||
sim.SetY(-.653);
|
||||
sim.SetZ(0.11);
|
||||
|
||||
EXPECT_NEAR(1.56, sim.GetX(), EPSILON);
|
||||
EXPECT_NEAR(-.653, sim.GetY(), EPSILON);
|
||||
EXPECT_NEAR(0.11, sim.GetZ(), EPSILON);
|
||||
|
||||
EXPECT_NEAR(1.56, accel.GetX(), EPSILON);
|
||||
EXPECT_NEAR(-.653, accel.GetY(), EPSILON);
|
||||
EXPECT_NEAR(0.11, accel.GetZ(), EPSILON);
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(ADXL345_I2CAccelerometerTest,
|
||||
ADXL345_I2CAccelerometerTest,
|
||||
::testing::Values(frc::I2C::kOnboard, frc::I2C::kMXP));
|
||||
@@ -0,0 +1,49 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) 2018 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. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#include "ADXL345_SPI.h"
|
||||
#include "ADXL345_SpiAccelerometerData.h"
|
||||
#include "Talon.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
class ADXL345_SpiAccelerometerTest
|
||||
: public ::testing::TestWithParam<frc::SPI::Port> {};
|
||||
|
||||
TEST_P(ADXL345_SpiAccelerometerTest, TestAccelerometer) {
|
||||
const double EPSILON = 1 / 256.0;
|
||||
|
||||
frc::SPI::Port port = GetParam();
|
||||
|
||||
hal::ADXL345_SpiAccelerometer sim{port};
|
||||
frc::ADXL345_SPI accel{port};
|
||||
|
||||
EXPECT_NEAR(0, sim.GetX(), EPSILON);
|
||||
EXPECT_NEAR(0, sim.GetY(), EPSILON);
|
||||
EXPECT_NEAR(0, sim.GetZ(), EPSILON);
|
||||
|
||||
EXPECT_NEAR(0, accel.GetX(), EPSILON);
|
||||
EXPECT_NEAR(0, accel.GetY(), EPSILON);
|
||||
EXPECT_NEAR(0, accel.GetZ(), EPSILON);
|
||||
|
||||
sim.SetX(1.56);
|
||||
sim.SetY(-.653);
|
||||
sim.SetZ(0.11);
|
||||
|
||||
EXPECT_NEAR(1.56, sim.GetX(), EPSILON);
|
||||
EXPECT_NEAR(-.653, sim.GetY(), EPSILON);
|
||||
EXPECT_NEAR(0.11, sim.GetZ(), EPSILON);
|
||||
|
||||
EXPECT_NEAR(1.56, accel.GetX(), EPSILON);
|
||||
EXPECT_NEAR(-.653, accel.GetY(), EPSILON);
|
||||
EXPECT_NEAR(0.11, accel.GetZ(), EPSILON);
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
ADXL345_SpiAccelerometerTest, ADXL345_SpiAccelerometerTest,
|
||||
::testing::Values(frc::SPI::kOnboardCS0, frc::SPI::kOnboardCS1,
|
||||
frc::SPI::kOnboardCS2, frc::SPI::kOnboardCS3,
|
||||
frc::SPI::kMXP));
|
||||
@@ -0,0 +1,49 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) 2018 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. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#include "ADXL362.h"
|
||||
#include "ADXL362_SpiAccelerometerData.h"
|
||||
#include "Talon.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
class ADXL362_SpiAccelerometerTest
|
||||
: public ::testing::TestWithParam<frc::SPI::Port> {};
|
||||
|
||||
TEST_P(ADXL362_SpiAccelerometerTest, TestAccelerometer) {
|
||||
const double EPSILON = 1 / 256.0;
|
||||
|
||||
frc::SPI::Port port = GetParam();
|
||||
|
||||
hal::ADXL362_SpiAccelerometer sim{port};
|
||||
frc::ADXL362 accel{port};
|
||||
|
||||
EXPECT_NEAR(0, sim.GetX(), EPSILON);
|
||||
EXPECT_NEAR(0, sim.GetY(), EPSILON);
|
||||
EXPECT_NEAR(0, sim.GetZ(), EPSILON);
|
||||
|
||||
EXPECT_NEAR(0, accel.GetX(), EPSILON);
|
||||
EXPECT_NEAR(0, accel.GetY(), EPSILON);
|
||||
EXPECT_NEAR(0, accel.GetZ(), EPSILON);
|
||||
|
||||
sim.SetX(1.56);
|
||||
sim.SetY(-.653);
|
||||
sim.SetZ(0.11);
|
||||
|
||||
EXPECT_NEAR(1.56, sim.GetX(), EPSILON);
|
||||
EXPECT_NEAR(-.653, sim.GetY(), EPSILON);
|
||||
EXPECT_NEAR(0.11, sim.GetZ(), EPSILON);
|
||||
|
||||
EXPECT_NEAR(1.56, accel.GetX(), EPSILON);
|
||||
EXPECT_NEAR(-.653, accel.GetY(), EPSILON);
|
||||
EXPECT_NEAR(0.11, accel.GetZ(), EPSILON);
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
ADXL362_SpiAccelerometerTest, ADXL362_SpiAccelerometerTest,
|
||||
::testing::Values(frc::SPI::kOnboardCS0, frc::SPI::kOnboardCS1,
|
||||
frc::SPI::kOnboardCS2, frc::SPI::kOnboardCS3,
|
||||
frc::SPI::kMXP));
|
||||
@@ -0,0 +1,36 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) 2018 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. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#include "ADXRS450_Gyro.h"
|
||||
#include "ADXRS450_SpiGyroWrapperData.h"
|
||||
#include "Talon.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
class ADXRS450_SpiGyroWrapperTest
|
||||
: public ::testing::TestWithParam<frc::SPI::Port> {};
|
||||
|
||||
TEST_P(ADXRS450_SpiGyroWrapperTest, TestAccelerometer) {
|
||||
const double EPSILON = .000001;
|
||||
|
||||
frc::SPI::Port port = GetParam();
|
||||
|
||||
hal::ADXRS450_SpiGyroWrapper sim{port};
|
||||
frc::ADXRS450_Gyro gyro{port};
|
||||
|
||||
EXPECT_NEAR(0, sim.GetAngle(), EPSILON);
|
||||
EXPECT_NEAR(0, gyro.GetAngle(), EPSILON);
|
||||
|
||||
sim.SetAngle(32.56);
|
||||
EXPECT_NEAR(32.56, sim.GetAngle(), EPSILON);
|
||||
EXPECT_NEAR(32.56, gyro.GetAngle(), EPSILON);
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
ADXRS450_SpiGyroWrapperTest, ADXRS450_SpiGyroWrapperTest,
|
||||
::testing::Values(frc::SPI::kOnboardCS0, frc::SPI::kOnboardCS1,
|
||||
frc::SPI::kOnboardCS2, frc::SPI::kOnboardCS3,
|
||||
frc::SPI::kMXP));
|
||||
@@ -0,0 +1,17 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) 2015-2018 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. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#include <HAL/HAL.h>
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
HAL_Initialize(500, 0);
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
int ret = RUN_ALL_TESTS();
|
||||
return ret;
|
||||
}
|
||||
Reference in New Issue
Block a user