public void GetPreviousPeriodTest() { var readOnlyTimeBlock = new TimeBlock(_start, _duration, true); Assert.IsTrue(readOnlyTimeBlock.GetPreviousBlock().IsReadOnly); var timeBlock = new TimeBlock(_start, _duration); Assert.AreEqual(timeBlock.Start, _start); Assert.AreEqual(timeBlock.End, _end); Assert.AreEqual(timeBlock.Duration, _duration); var previousTimeBlock = timeBlock.GetPreviousBlock(); Assert.AreEqual(previousTimeBlock.Start, _start.Subtract(_duration)); Assert.AreEqual(previousTimeBlock.End, _start); Assert.AreEqual(previousTimeBlock.Duration, _duration); var previousOffset = TimeSpan.FromHours(1).Negate(); var previousOffsetTimeBlock = timeBlock.GetPreviousBlock(previousOffset); previousOffsetTimeBlock.Start.Should().Be(_start.Subtract(_duration).Add(previousOffset)); previousOffsetTimeBlock.End.Should().Be(_end.Subtract(_duration).Add(previousOffset)); previousOffsetTimeBlock.Duration.Should().Be(_duration); }