diff --git a/wpilibj/wpilibJavaIntegrationTests/src/main/java/edu/wpi/first/wpilibj/AccelerometerTest.java b/wpilibj/wpilibJavaIntegrationTests/src/main/java/edu/wpi/first/wpilibj/AccelerometerTest.java new file mode 100644 index 0000000000..e6bf598d66 --- /dev/null +++ b/wpilibj/wpilibJavaIntegrationTests/src/main/java/edu/wpi/first/wpilibj/AccelerometerTest.java @@ -0,0 +1,73 @@ +/*----------------------------------------------------------------------------*/ +/* Copyright (c) FIRST 2014. 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 edu.wpi.first.wpilibj; + +import static org.junit.Assert.assertEquals; + +import java.util.Arrays; +import java.util.Collection; +import java.util.logging.Logger; + +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +import edu.wpi.first.wpilibj.interfaces.Accelerometer; +import edu.wpi.first.wpilibj.BuiltInAccelerometer; +import edu.wpi.first.wpilibj.test.AbstractComsSetup; + +@RunWith(Parameterized.class) +public class AccelerometerTest extends AbstractComsSetup { + private static final Logger logger = Logger.getLogger(PIDTest.class.getName()); + private static final double kAccelerationTolerance = 0.1; + private BuiltInAccelerometer m_accelerometer; + + public AccelerometerTest(Accelerometer.Range range) { + m_accelerometer = new BuiltInAccelerometer(range); + } + + @BeforeClass + public static void waitASecond() { + /* The testbench sometimes shakes a little from a previous test. Give + it some time. */ + Timer.delay(1.0); + } + + /** + * Test with all valid ranges to make sure unpacking is always done + * correctly. + */ + @Parameters + public static Collection generateData() { + return Arrays.asList(new Accelerometer.Range[][] { + { Accelerometer.Range.k2G }, + { Accelerometer.Range.k4G }, + { Accelerometer.Range.k8G }, + }); + } + + @Override + protected Logger getClassLogger(){ + return logger; + } + + /** + * There's not much we can automatically test with the on-board + * accelerometer, but checking for gravity is probably good enough to tell + * that it's working. + */ + @Test + public void testAccelerometer() { + assertEquals(0.0, m_accelerometer.getX(), kAccelerationTolerance); + assertEquals(0.0, m_accelerometer.getY(), kAccelerationTolerance); + assertEquals(1.0, m_accelerometer.getZ(), kAccelerationTolerance); + } + +} diff --git a/wpilibj/wpilibJavaIntegrationTests/src/main/java/edu/wpi/first/wpilibj/WpiLibJTestSuite.java b/wpilibj/wpilibJavaIntegrationTests/src/main/java/edu/wpi/first/wpilibj/WpiLibJTestSuite.java index 9534c2a841..536b0e3c52 100644 --- a/wpilibj/wpilibJavaIntegrationTests/src/main/java/edu/wpi/first/wpilibj/WpiLibJTestSuite.java +++ b/wpilibj/wpilibJavaIntegrationTests/src/main/java/edu/wpi/first/wpilibj/WpiLibJTestSuite.java @@ -19,6 +19,7 @@ import edu.wpi.first.wpilibj.test.AbstractTestSuite; */ @RunWith(Suite.class) @SuiteClasses({ + AccelerometerTest.class, AnalogCrossConnectTest.class, AnalogPotentiometerTest.class, CounterTest.class,