public static void UpdateTest(int currentAngle, int destinationAngle, int framesCount, int expectedCurrentAngle)
        {
            var transformable = new TransformableAngle(1f, currentAngle);
            transformable.Destination = destinationAngle;
            Assert.IsTrue(transformable.IsRotationRequired());

            for (int frameIndex = 0; frameIndex < framesCount; frameIndex++)
                transformable.Update();

            Assert.IsFalse(transformable.IsRotationRequired());
            Assert.AreEqual(expectedCurrentAngle, (int)transformable.Current, delta:2f);
            Assert.AreEqual(1f, transformable.CurrentOffset,delta:0.05f);
        }
 public TankTurret(TankBase tank, float turretRotationSpeed, float cannonRotationSpeed)
 {
     _rotation=new TransformableAngle(turretRotationSpeed,0);
     _cannon = new TankCannon(tank, cannonRotationSpeed);
 }