@ContinuousIntegrationTest(estimatedDuration = 0.3) @Test(timeout=300000) public void testPIDControllerConstructorFromGains() { YoVariableRegistry registry = new YoVariableRegistry("robert"); double proportional = random.nextDouble(); double integral = random.nextDouble(); double derivative = random.nextDouble(); double maxError = random.nextDouble(); double deadband = random.nextDouble(); double leakRate = random.nextDouble(); double maxOutput = 100 * random.nextDouble(); YoPIDGains pidGains = new YoPIDGains("", registry); pidGains.setKp(proportional); pidGains.setKi(integral); pidGains.setKd(derivative); pidGains.setMaximumIntegralError(maxError); pidGains.setPositionDeadband(deadband); pidGains.setIntegralLeakRatio(leakRate); pidGains.setMaximumFeedback(maxOutput); PIDController pid = new PIDController(pidGains, "", registry); assertEquals(proportional, pid.getProportionalGain(), 0.001); assertEquals(integral, pid.getIntegralGain(), 0.001); assertEquals(derivative, pid.getDerivativeGain(), 0.001); assertEquals(maxError, pid.getMaxIntegralError(), 0.001); assertEquals(deadband, pid.getPositionDeadband(), 0.001); assertEquals(leakRate, pid.getIntegralLeakRatio(), 0.001); assertEquals(maxOutput, pid.getMaximumFeedback(), 1e-5); }
@ContinuousIntegrationTest(estimatedDuration = 0.2) @Test(timeout=300000) public void testPIDControllerConstructorFromGains2() { YoVariableRegistry registry = new YoVariableRegistry("robert"); double proportional = random.nextDouble(); double integral = random.nextDouble(); double derivative = random.nextDouble(); double maxError = random.nextDouble(); double deadband = random.nextDouble(); double maxOutput = random.nextDouble() * 100; YoPIDGains pidGains = new YoPIDGains("", registry); pidGains.setKp(proportional); pidGains.setKi(integral); pidGains.setKd(derivative); pidGains.setMaximumIntegralError(maxError); pidGains.setPositionDeadband(deadband); pidGains.setMaximumFeedback(maxOutput); PIDController pid = new PIDController(pidGains, "", registry); assertEquals(proportional, pid.getProportionalGain(), 0.001); assertEquals(integral, pid.getIntegralGain(), 0.001); assertEquals(derivative, pid.getDerivativeGain(), 0.001); assertEquals(maxError, pid.getMaxIntegralError(), 0.001); assertEquals(deadband, pid.getPositionDeadband(), 0.001); assertEquals(maxOutput, pid.getMaximumFeedback(), 0.001); assertEquals(1.0, pid.getIntegralLeakRatio(), 0.001); }
@ContinuousIntegrationTest(estimatedDuration = 0.2) @Test(timeout=300000) public void testPIDControllerConstructorFromGains3() { YoVariableRegistry registry = new YoVariableRegistry("robert"); double proportional = random.nextDouble(); double integral = random.nextDouble(); double derivative = random.nextDouble(); double maxIntegralError = random.nextDouble(); double maxOutput = random.nextDouble() * 100; YoPIDGains pidGains = new YoPIDGains("", registry); pidGains.setKp(proportional); pidGains.setKi(integral); pidGains.setKd(derivative); pidGains.setMaximumIntegralError(maxIntegralError); pidGains.setMaximumFeedback(maxOutput); PIDController pid = new PIDController(pidGains, "", registry); assertEquals(proportional, pid.getProportionalGain(), 0.001); assertEquals(integral, pid.getIntegralGain(), 0.001); assertEquals(derivative, pid.getDerivativeGain(), 0.001); assertEquals(maxIntegralError, pid.getMaxIntegralError(), 0.001); assertEquals(maxOutput, pid.getMaximumFeedback(), 1e-5); assertEquals(0.0, pid.getPositionDeadband(), 0.001); assertEquals(1.0, pid.getIntegralLeakRatio(), 0.001); }
@ContinuousIntegrationTest(estimatedDuration = 0.2) @Test(timeout=300000) public void testPIDControllerConstructorFromGains4() { YoVariableRegistry registry = new YoVariableRegistry("robert"); double proportional = random.nextDouble(); double integral = random.nextDouble(); double derivative = random.nextDouble(); double maxIntegralError = random.nextDouble(); YoPIDGains pidGains = new YoPIDGains("", registry); pidGains.setKp(proportional); pidGains.setKi(integral); pidGains.setKd(derivative); pidGains.setMaximumIntegralError(maxIntegralError); PIDController pid = new PIDController(pidGains, "", registry); assertEquals(proportional, pid.getProportionalGain(), 0.001); assertEquals(integral, pid.getIntegralGain(), 0.001); assertEquals(derivative, pid.getDerivativeGain(), 0.001); assertEquals(maxIntegralError, pid.getMaxIntegralError(), 0.001); assertEquals(Double.POSITIVE_INFINITY, pid.getMaximumFeedback(), 0.001); assertEquals(0.0, pid.getPositionDeadband(), 0.001); assertEquals(1.0, pid.getIntegralLeakRatio(), 0.001); }