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

            var(events, _) = CreateEventsWithScale(eventTracker.Id, MinEventForCalculation - 1);
            _eventRepository.AddRangeOfEvents(events);

            //act
            var fact = new SumScaleCalculator().Calculate(events, eventTracker, _now)
                       .ConvertTo <SumScaleTrackerFact>();

            //assert
            Assert.True(fact.IsNone);
        }
        public void EventsEnoughWithScaleEventsForCalc_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 SumScaleCalculator()
                       .Calculate(allEvents, tracker, _now).ConvertTo <SumScaleTrackerFact>().ValueUnsafe();

            //assert
            Assert.AreEqual(2, fact.Priority, PriorityAccuracy);
            Assert.AreEqual(scaleValues.Sum(), fact.SumValue);
            Assert.AreEqual(MeasurementUnit, fact.MeasurementUnit);
        }