public void EventTrackerHasZeroEvent_CalculateFailure()
        {
            //arrange
            var userId  = Guid.NewGuid();
            var tracker = CreateTrackerWithScale(userId, MeasurementUnit);

            var(events, _) = CreateEventsWithScale(tracker.Id, 0);
            _eventRepository.AddRangeOfEvents(events);
            var allEvents = _eventRepository.LoadAllTrackerEvents(tracker.Id);

            //act
            var fact = new AverageScaleCalculator().Calculate(allEvents, tracker, _now)
                       .ConvertTo <AverageScaleTrackerFact>();

            //assert
            Assert.True(fact.IsNone);
        }
        public void EventsOnlyWithScale_CalculateSuccess()
        {
            //arrange
            var userId  = Guid.NewGuid();
            var tracker = CreateTrackerWithScale(userId, MeasurementUnit);

            var(events, scaleValues) =
                CreateEventsWithScale(tracker.Id, _rand.Next() % 10 + MinEventForCalculation);
            _eventRepository.AddRangeOfEvents(events);
            var allEvents = _eventRepository.LoadAllTrackerEvents(tracker.Id);

            //act
            var fact = new AverageScaleCalculator().Calculate(allEvents, tracker, _now)
                       .ConvertTo <AverageScaleTrackerFact>().ValueUnsafe();

            //assert
            Assert.AreEqual("Среднее значение шкалы", fact.FactName);
            Assert.AreEqual(3, fact.Priority, PriorityAccuracy);
            Assert.AreEqual(MeasurementUnit, fact.MeasurementUnit);
            Assert.AreEqual(scaleValues.Average(), fact.AverageValue, AverageAccuracy);
        }