public void NextTimeUnitIsCorrect()
        {
            bool     result;
            TimeUnit next;

            result = TimeUnitHelpers.TryGetNextTimeUnit(TimeUnit.CpuTick, out next);
            Assert.True(result);
            Assert.Equal(TimeUnit.Microsecond, next);

            result = TimeUnitHelpers.TryGetNextTimeUnit(TimeUnit.Microsecond, out next);
            Assert.True(result);
            Assert.Equal(TimeUnit.Millisecond, next);

            result = TimeUnitHelpers.TryGetNextTimeUnit(TimeUnit.Millisecond, out next);
            Assert.True(result);
            Assert.Equal(TimeUnit.Second, next);

            result = TimeUnitHelpers.TryGetNextTimeUnit(TimeUnit.Second, out next);
            Assert.True(result);
            Assert.Equal(TimeUnit.Minute, next);

            result = TimeUnitHelpers.TryGetNextTimeUnit(TimeUnit.Minute, out next);
            Assert.True(result);
            Assert.Equal(TimeUnit.Hour, next);

            result = TimeUnitHelpers.TryGetNextTimeUnit(TimeUnit.Hour, out next);
            Assert.False(result);
        }
        public void CeilingTimeUnitIsCorrect()
        {
            Assert.Equal(TimeUnit.CpuTick, TimeUnitHelpers.GetCeilingTimeUnit(Durations.CpuTick));

            Assert.Equal(TimeUnit.Microsecond, TimeUnitHelpers.GetCeilingTimeUnit(Durations.CpuTick * 9));
            Assert.Equal(TimeUnit.Microsecond, TimeUnitHelpers.GetCeilingTimeUnit(Durations.Microsecond));
            Assert.Equal(TimeUnit.Microsecond, TimeUnitHelpers.GetCeilingTimeUnit(Durations.Microsecond - 1));

            Assert.Equal(TimeUnit.Second, TimeUnitHelpers.GetCeilingTimeUnit(Durations.Millisecond * 999));
            Assert.Equal(TimeUnit.Second, TimeUnitHelpers.GetCeilingTimeUnit(Durations.Millisecond * 999 + 9));
            Assert.Equal(TimeUnit.Second, TimeUnitHelpers.GetCeilingTimeUnit(Durations.Millisecond * 999 + 10));
            Assert.Equal(TimeUnit.Second, TimeUnitHelpers.GetCeilingTimeUnit(Durations.Second));

            Assert.Equal(TimeUnit.Minute, TimeUnitHelpers.GetCeilingTimeUnit(Durations.Second + 1));
            Assert.Equal(TimeUnit.Minute, TimeUnitHelpers.GetCeilingTimeUnit(Durations.Second * 59 + Durations.Millisecond * 999));
            Assert.Equal(TimeUnit.Minute, TimeUnitHelpers.GetCeilingTimeUnit(Durations.Minute));

            Assert.Equal(TimeUnit.Hour, TimeUnitHelpers.GetCeilingTimeUnit(Durations.Minute + 1));
            Assert.Equal(TimeUnit.Hour, TimeUnitHelpers.GetCeilingTimeUnit(Durations.Minute * 59));
            Assert.Equal(TimeUnit.Hour, TimeUnitHelpers.GetCeilingTimeUnit(Durations.Minute * 59 + Durations.Second * 59));

            Assert.Equal(TimeUnit.Hour, TimeUnitHelpers.GetCeilingTimeUnit(Durations.Hour + 1));
            Assert.Equal(TimeUnit.Hour, TimeUnitHelpers.GetCeilingTimeUnit(Durations.Hour));
            Assert.Equal(TimeUnit.Hour, TimeUnitHelpers.GetCeilingTimeUnit(Durations.Hour * 1000));
        }
Exemple #3
0
        private void ShowZoomInfo()
        {
            _timer.Stop();
            TimeUnit timeUnit = TimeUnitHelpers.GetFloorTimeUnit(SegmentSize);
            double   segmentSizeInTimeUnits = SegmentSize / (double)timeUnit.GetTimeUnitDuration();

            ZoomInfoLabel.Content    = $"Segment size: {SegmentSize} ({segmentSizeInTimeUnits, 0:0.##}{timeUnit.GetTimeUnitAsString()})";
            ZoomInfoPanel.Visibility = Visibility.Visible;
            _timer.Start();
        }
Exemple #4
0
 private static void BuildTable()
 {
     foreach (var unit in TimeUnitHelpers.GetAllTimeUnits())
     {
         if (TimeUnitHelpers.TryGetNextTimeUnit(unit, out TimeUnit nextTimeUnit))
         {
             _factors.Add(unit, Factors(nextTimeUnit.GetTimeUnitDuration() / unit.GetTimeUnitDuration()).ToArray());
         }
     }
 }
        private void SetLabelIntervalParameters()
        {
            long segmentSize = SegmentSize.DisplayedValue;
            long minLabelIntervalDuration = segmentSize * MinLabelIntervalWidthInPixels;

            (double Value, TimeUnit Unit)minIntervalDurationInUnits = TimeUnitHelpers.ConvertTicksToTime(minLabelIntervalDuration);
            if (!TimeUnitFactors.TryGetBestTimeFactor(minIntervalDurationInUnits.Value, minIntervalDurationInUnits.Unit, out double factor))
            {
                return;
            }

            LabelIntervalWidth    = factor * MinLabelIntervalWidthInPixels / minIntervalDurationInUnits.Value;
            LabelIntervalDuration = (long)factor * minIntervalDurationInUnits.Unit.GetTimeUnitDuration();
            LabelIntervalUnit     = TimeUnitHelpers.GetFloorTimeUnit(LabelIntervalDuration);
        }
        public void FloorTimeUnitIsCorrect()
        {
            Assert.Equal(TimeUnit.CpuTick, TimeUnitHelpers.GetFloorTimeUnit(Durations.CpuTick));
            Assert.Equal(TimeUnit.CpuTick, TimeUnitHelpers.GetFloorTimeUnit(Durations.CpuTick * 9));

            Assert.Equal(TimeUnit.Microsecond, TimeUnitHelpers.GetFloorTimeUnit(Durations.Microsecond));

            Assert.Equal(TimeUnit.Second, TimeUnitHelpers.GetFloorTimeUnit(Durations.Second + 1));
            Assert.Equal(TimeUnit.Second, TimeUnitHelpers.GetFloorTimeUnit(Durations.Second));

            Assert.Equal(TimeUnit.Minute, TimeUnitHelpers.GetFloorTimeUnit(Durations.Minute + 1));
            Assert.Equal(TimeUnit.Minute, TimeUnitHelpers.GetFloorTimeUnit(Durations.Minute));

            Assert.Equal(TimeUnit.Hour, TimeUnitHelpers.GetFloorTimeUnit(Durations.Hour + 1));
            Assert.Equal(TimeUnit.Hour, TimeUnitHelpers.GetFloorTimeUnit(Durations.Hour));
            Assert.Equal(TimeUnit.Hour, TimeUnitHelpers.GetFloorTimeUnit(Durations.Hour * 1000));
        }