public void TestDistributedHits()
        {
            var events = Enumerable.Range(-5, 11)
                         .Select(t => new HitEvent(t - 5, HitResult.Great, new HitObject(), null, null));

            var unstableRate = new UnstableRate(events);

            Assert.IsTrue(Precision.AlmostEquals(unstableRate.Value, 10 * Math.Sqrt(10)));
        }
        public void TestMissesAndEmptyWindows()
        {
            var events = new[]
            {
                new HitEvent(-100, HitResult.Miss, new HitObject(), null, null),
                new HitEvent(0, HitResult.Great, new HitObject(), null, null),
                new HitEvent(200, HitResult.Meh, new HitObject {
                    HitWindows = HitWindows.Empty
                }, null, null),
            };

            var unstableRate = new UnstableRate(events);

            Assert.AreEqual(0, unstableRate.Value);
        }