diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..cfbadcfe --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,35 @@ +name: Road Runner CI + +on: + push: + branches: [ "master", "main" ] + pull_request: + branches: [ "master", "main" ] + workflow_dispatch: + +defaults: + run: + working-directory: road-runner + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repo + uses: actions/checkout@v4 + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + validate-wrappers: true + - name: Build with Gradle + run: ./gradlew build + + - name: Store test reports + if: failure() + uses: actions/upload-artifact@v4 + with: + name: Test reports + path: | + **/build/reports/ + **/build/test-results/ diff --git a/road-runner/actions/src/test/kotlin/com/acmerobotics/roadrunner/ActionRegressionTest.kt b/road-runner/actions/src/test/kotlin/com/acmerobotics/roadrunner/ActionRegressionTest.kt index 7acfe6ca..fc9dccd3 100644 --- a/road-runner/actions/src/test/kotlin/com/acmerobotics/roadrunner/ActionRegressionTest.kt +++ b/road-runner/actions/src/test/kotlin/com/acmerobotics/roadrunner/ActionRegressionTest.kt @@ -44,9 +44,8 @@ class LabelAction(private val s: String) : Action { } class ActionRegressionTest { - @Test - @Strictfp - fun testTrajectoryActionBuilder() { + companion object { + @JvmField val base = TrajectoryActionBuilder( { TurnAction(it) }, @@ -58,7 +57,11 @@ class ActionRegressionTest { TranslationalVelConstraint(20.0), ProfileAccelConstraint(-10.0, 10.0), ) + } + @Test + @Strictfp + fun testTrajectoryActionBuilder() { assertEquals( "SequentialAction(initialActions=[Trajectory])", base @@ -75,7 +78,11 @@ class ActionRegressionTest { .build() .toString(), ) + } + @Test + @Strictfp + fun testTrajectoryContinuity() { assertEquals( "SequentialAction(initialActions=[Trajectory, SleepAction(dt=10.0), Trajectory])", base @@ -96,7 +103,11 @@ class ActionRegressionTest { .build() .toString() ) + } + @Test + @Strictfp + fun testTrajectoryTimeMarkers() { assertEquals( "SequentialAction(initialActions=[Trajectory, Trajectory, ParallelAction(initialActions=[" + "SequentialAction(initialActions=" + @@ -136,7 +147,11 @@ class ActionRegressionTest { .build() .toString() ) + } + @Test + @Strictfp + fun testTrajectoryDispMarkers() { assertFails { base .afterDisp(1.0, LabelAction("A"))