public void TargetVelocityDegreesPerSecond_InterpretsOpposedTargetVelocity() { var opposed = Mock.Of <IMyMotorStator>(m => m.TargetVelocityRPM == -1); var pair = new FacingRotorPair(null, opposed); Assert.That(pair.TargetVelocityDegreesPerSecond, Is.EqualTo(6)); }
public void TargetVelocityDegreesPerSecond_UsesGovernerTargetVelocity() { var governer = Mock.Of <IMyMotorStator>(m => m.TargetVelocityRPM == 1); var pair = new FacingRotorPair(governer, AnyValidMotorStator); Assert.That(pair.TargetVelocityDegreesPerSecond, Is.EqualTo(6)); }
public void CurrentAngleDegrees_InterpretsOpposedAngle() { var angle = 300; var opposed = Mock.Of <IMyMotorStator>(m => m.Angle == MathHelper.ToRadians(angle)); var pair = new FacingRotorPair(null, opposed); Assert.That(pair.CurrentAngleDegrees, Is.EqualTo(60).Within(0.0001f)); }
public void CurrentAngleDegrees_UsesGovernerAngle() { var angle = 60; var governer = Mock.Of <IMyMotorStator>(m => m.Angle == MathHelper.ToRadians(angle)); var pair = new FacingRotorPair(governer, AnyValidMotorStator); Assert.That(pair.CurrentAngleDegrees, Is.EqualTo(angle).Within(0.0001f)); }
public void OpposedOutsideLimits_AddsSafetyConcern() { var opposed = MakeOperational(MakeAttached(SameGrid, Mock.Of <IMyMotorStator>(m => m.Angle == MathHelper.ToRadians(60) && m.UpperLimitDeg == 100 && m.LowerLimitDeg == 80))); var pair = new FacingRotorPair(AnyValidMotorStator, opposed); var errors = new Errors(); pair.CheckState(errors, "Test"); Assert.That(errors.SafetyConcerns, Is.Not.Empty); }
public void BothInsideLimits_DoesNotAddSafetyConcern() { var governer = MakeOperational(MakeAttached(SameGrid, Mock.Of <IMyMotorStator>(m => m.Angle == MathHelper.ToRadians(60) && m.UpperLimitDeg == 100 && m.LowerLimitDeg == 20))); var opposed = MakeOperational(MakeAttached(SameGrid, Mock.Of <IMyMotorStator>(m => m.Angle == MathHelper.ToRadians(300) && m.UpperLimitDeg == 340 && m.LowerLimitDeg == 260))); var pair = new FacingRotorPair(governer, opposed); var errors = new Errors(); pair.CheckState(errors, "Test"); Assert.That(errors.SafetyConcerns, Is.Empty); }
public void MismatchedAngles_AddsSanityCheck() { var governer = MakeOperational(MakeAttached(SameGrid, Mock.Of <IMyMotorStator>(m => m.Angle == MathHelper.ToRadians(60) && m.UpperLimitDeg == 100 && m.LowerLimitDeg == 20))); var opposed = MakeOperational(MakeAttached(SameGrid, Mock.Of <IMyMotorStator>(m => m.Angle == MathHelper.ToRadians(298) && m.UpperLimitDeg == 340 && m.LowerLimitDeg == 260))); var pair = new FacingRotorPair(governer, opposed); var errors = new Errors(); pair.CheckState(errors, "Test"); Assert.That(errors.SanityChecks, Is.Not.Empty); }