[Test] public void Example()
        {
            var ema = new ExponentialMovingAverage();
            var sum = 0;

            for (var i = 1; i <= 20; i++)
            {
                float sma = (float)(sum += i) / i;
                Debug.Log($"{i,2}: sma={sma:n2}\tema={ema.Average(i):n2}");
            }
        }
        [Test] public void AverageValue()
        {
            var ema = new ExponentialMovingAverage(lookBack: 4);

            AreEqual(expected: 1f, actual: ema.Average(value: 1));
            AreEqual(expected: 2.6f, actual: ema.Average(value: 5));
            AreEqual(expected: 2.76f, actual: ema.Average(value: 3));
            AreEqual(expected: 4.056f, actual: ema.Average(value: 6));
            AreEqual(expected: 4.0336f, actual: ema.Average(value: 4));

            AreEqual(expected: 4.02016f, actual: ema.Average(value: 4));
            AreEqual(expected: 4.012096f, actual: ema.Average(value: 4));
            AreEqual(expected: 4.007257f, actual: ema.Average(value: 4));
            AreEqual(expected: 4.004354f, actual: ema.Average(value: 4));
            AreEqual(expected: 4.002613f, actual: ema.Average(value: 4));
            AreEqual(expected: 4.001567f, actual: ema.Average(value: 4));
            AreEqual(expected: 4f, actual: ema.Average(value: 4));
            AreEqual(expected: 4f, actual: ema.Average(value: 4));
        }