Windows support included

This commit is contained in:
Eric Ratliff
2026-01-21 08:00:25 -06:00
parent 81452a8670
commit 63827dba58
15 changed files with 1342 additions and 0 deletions

View File

@@ -0,0 +1,77 @@
@echo off
REM Generate DriveTest.java
setlocal
set "PROJECT_DIR=%~1"
(
echo package robot.subsystems;
echo.
echo import org.junit.jupiter.api.Test;
echo import static org.junit.jupiter.api.Assertions.*;
echo.
echo /**
echo * Unit tests for Drive subsystem.
echo * Uses inline mock - no FTC SDK required.
echo */
echo class DriveTest {
echo.
echo /**
echo * Simple mock implementation of Drive.Hardware.
echo * Captures method calls for verification in tests.
echo */
echo static class MockHardware implements Drive.Hardware {
echo double lastForward = 0;
echo double lastStrafe = 0;
echo double lastRotate = 0;
echo double heading = 0;
echo int setPowersCallCount = 0;
echo.
echo @Override
echo public double getHeading^(^) {
echo return heading;
echo }
echo.
echo @Override
echo public void setPowers^(double forward, double strafe, double rotate^) {
echo this.lastForward = forward;
echo this.lastStrafe = strafe;
echo this.lastRotate = rotate;
echo this.setPowersCallCount++;
echo }
echo }
echo.
echo @Test
echo void testDriveCallsSetPowers^(^) {
echo MockHardware mock = new MockHardware^(^);
echo Drive drive = new Drive^(mock^);
echo.
echo drive.drive^(0.5, 0.3, 0.1^);
echo.
echo assertEquals^(1, mock.setPowersCallCount, "setPowers should be called once"^);
echo }
echo.
echo @Test
echo void testStopSetsZeroPower^(^) {
echo MockHardware mock = new MockHardware^(^);
echo Drive drive = new Drive^(mock^);
echo.
echo drive.stop^(^);
echo.
echo assertEquals^(0.0, mock.lastForward, 0.001^);
echo assertEquals^(0.0, mock.lastStrafe, 0.001^);
echo assertEquals^(0.0, mock.lastRotate, 0.001^);
echo }
echo.
echo @Test
echo void testGetPoseReturnsNonNull^(^) {
echo MockHardware mock = new MockHardware^(^);
echo Drive drive = new Drive^(mock^);
echo.
echo assertNotNull^(drive.getPose^(^), "Pose should never be null"^);
echo }
echo }
) > "%PROJECT_DIR%\src\test\java\robot\subsystems\DriveTest.java"
endlocal
exit /b 0