public void Constructor_ShouldCreateStorageWithTotalTimeEqualZero()
        {
            // Arrange
            // Act
            var storage = new PerformanceStatisticsStorage(_engineSystems);

            // Assert
            Assert.That(storage.TotalTime, Is.EqualTo(TimeSpan.Zero));
        }
        public void Constructor_ShouldCreateStorageWithFramesListContaining100FrameTimesAllEqualZero()
        {
            // Arrange
            // Act
            var storage = new PerformanceStatisticsStorage(_engineSystems);

            // Assert
            Assert.That(storage.Frames.Count, Is.EqualTo(100));
            Assert.That(storage.Frames.Select(f => f.Number), Is.EqualTo(Enumerable.Range(0, 100).Select(i => 0)));
            Assert.That(storage.Frames.Select(f => f.Time), Is.EqualTo(Enumerable.Range(0, 100).Select(i => TimeSpan.Zero)));
        }
        Constructor_ShouldCreateStorageWithSystemsFramesFor3SystemsWithFramesListContaining100FrameTimesAllEqualZero_When3SystemsAvailableInEngineSystems()
        {
            // Arrange
            _engineSystems.SystemsNames.Returns(new[] { SystemName1, SystemName2, SystemName3 });

            // Act
            var storage = new PerformanceStatisticsStorage(_engineSystems);

            // Assert
            Assert.That(storage.SystemsFrames.Keys, Is.EquivalentTo(new[] { SystemName1, SystemName2, SystemName3 }));

            Assert.That(storage.SystemsFrames[SystemName1].Select(f => f.Number), Is.EqualTo(Enumerable.Range(0, 100).Select(i => 0)));
            Assert.That(storage.SystemsFrames[SystemName1].Select(f => f.Time), Is.EqualTo(Enumerable.Range(0, 100).Select(i => TimeSpan.Zero)));

            Assert.That(storage.SystemsFrames[SystemName2].Select(f => f.Number), Is.EqualTo(Enumerable.Range(0, 100).Select(i => 0)));
            Assert.That(storage.SystemsFrames[SystemName2].Select(f => f.Time), Is.EqualTo(Enumerable.Range(0, 100).Select(i => TimeSpan.Zero)));

            Assert.That(storage.SystemsFrames[SystemName3].Select(f => f.Number), Is.EqualTo(Enumerable.Range(0, 100).Select(i => 0)));
            Assert.That(storage.SystemsFrames[SystemName3].Select(f => f.Time), Is.EqualTo(Enumerable.Range(0, 100).Select(i => TimeSpan.Zero)));
        }