Restructured linux to match Windows
This commit is contained in:
66
linux/templates/DriveTest.java
Normal file
66
linux/templates/DriveTest.java
Normal file
@@ -0,0 +1,66 @@
|
||||
package robot.subsystems;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
/**
|
||||
* Unit tests for Drive subsystem.
|
||||
* Uses inline mock - no FTC SDK required.
|
||||
*/
|
||||
class DriveTest {
|
||||
|
||||
/**
|
||||
* Simple mock implementation of Drive.Hardware.
|
||||
* Captures method calls for verification in tests.
|
||||
*/
|
||||
static class MockHardware implements Drive.Hardware {
|
||||
double lastForward = 0;
|
||||
double lastStrafe = 0;
|
||||
double lastRotate = 0;
|
||||
double heading = 0;
|
||||
int setPowersCallCount = 0;
|
||||
|
||||
@Override
|
||||
public double getHeading() {
|
||||
return heading;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPowers(double forward, double strafe, double rotate) {
|
||||
this.lastForward = forward;
|
||||
this.lastStrafe = strafe;
|
||||
this.lastRotate = rotate;
|
||||
this.setPowersCallCount++;
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void testDriveCallsSetPowers() {
|
||||
MockHardware mock = new MockHardware();
|
||||
Drive drive = new Drive(mock);
|
||||
|
||||
drive.drive(0.5, 0.3, 0.1);
|
||||
|
||||
assertEquals(1, mock.setPowersCallCount, "setPowers should be called once");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testStopSetsZeroPower() {
|
||||
MockHardware mock = new MockHardware();
|
||||
Drive drive = new Drive(mock);
|
||||
|
||||
drive.stop();
|
||||
|
||||
assertEquals(0.0, mock.lastForward, 0.001);
|
||||
assertEquals(0.0, mock.lastStrafe, 0.001);
|
||||
assertEquals(0.0, mock.lastRotate, 0.001);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetPoseReturnsNonNull() {
|
||||
MockHardware mock = new MockHardware();
|
||||
Drive drive = new Drive(mock);
|
||||
|
||||
assertNotNull(drive.getPose(), "Pose should never be null");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user