[wpilib] Rewrite DutyCycleEncoder and AnalogEncoder (#6398)

This commit is contained in:
Thad House
2024-05-24 11:53:56 -07:00
committed by GitHub
parent 294c9946ae
commit d05c7c125b
18 changed files with 638 additions and 883 deletions

View File

@@ -6,7 +6,6 @@ package edu.wpi.first.wpilibj.simulation;
import static org.junit.jupiter.api.Assertions.assertEquals;
import edu.wpi.first.math.geometry.Rotation2d;
import edu.wpi.first.wpilibj.AnalogEncoder;
import edu.wpi.first.wpilibj.AnalogInput;
import org.junit.jupiter.api.Test;
@@ -15,13 +14,12 @@ class AnalogEncoderSimTest {
@Test
void testBasic() {
try (var analogInput = new AnalogInput(0);
var analogEncoder = new AnalogEncoder(analogInput)) {
var analogEncoder = new AnalogEncoder(analogInput, 360, 0)) {
var encoderSim = new AnalogEncoderSim(analogEncoder);
encoderSim.setPosition(Rotation2d.kPi);
assertEquals(analogEncoder.get(), 0.5, 1E-8);
assertEquals(encoderSim.getTurns(), 0.5, 1E-8);
assertEquals(encoderSim.getPosition().getRadians(), Math.PI, 1E-8);
encoderSim.set(180);
assertEquals(analogEncoder.get(), 180, 1E-8);
assertEquals(encoderSim.get(), 180, 1E-8);
}
}
}

View File

@@ -15,7 +15,7 @@ import org.junit.jupiter.api.Test;
class DutyCycleEncoderSimTest {
@Test
void setTest() {
try (DutyCycleEncoder encoder = new DutyCycleEncoder(0)) {
try (DutyCycleEncoder encoder = new DutyCycleEncoder(0, 5.67, 0)) {
DutyCycleEncoderSim sim = new DutyCycleEncoderSim(encoder);
sim.set(5.67);
@@ -23,42 +23,6 @@ class DutyCycleEncoderSimTest {
}
}
@Test
void setDistanceTest() {
HAL.initialize(500, 0);
try (DutyCycleEncoder encoder = new DutyCycleEncoder(0)) {
DutyCycleEncoderSim sim = new DutyCycleEncoderSim(encoder);
sim.setDistance(19.1);
assertEquals(19.1, encoder.getDistance());
}
}
@Test
void setDistancePerRotationTest() {
HAL.initialize(500, 0);
try (DutyCycleEncoder encoder = new DutyCycleEncoder(0)) {
DutyCycleEncoderSim sim = new DutyCycleEncoderSim(encoder);
sim.set(1.5);
encoder.setDistancePerRotation(42);
assertEquals(63.0, encoder.getDistance());
}
}
@Test
void setAbsolutePositionTest() {
HAL.initialize(500, 0);
try (DutyCycleEncoder encoder = new DutyCycleEncoder(0)) {
DutyCycleEncoderSim sim = new DutyCycleEncoderSim(encoder);
sim.setAbsolutePosition(0.75);
assertEquals(0.75, encoder.getAbsolutePosition());
}
}
@Test
void setIsConnectedTest() {
HAL.initialize(500, 0);
@@ -72,18 +36,4 @@ class DutyCycleEncoderSimTest {
assertFalse(encoder.isConnected());
}
}
@Test
void resetTest() {
HAL.initialize(500, 0);
try (DutyCycleEncoder encoder = new DutyCycleEncoder(0)) {
DutyCycleEncoderSim sim = new DutyCycleEncoderSim(encoder);
sim.setDistance(2.5);
assertEquals(2.5, encoder.getDistance());
encoder.reset();
assertEquals(0.0, encoder.getDistance());
}
}
}