public void At_ShouldReturnNewPacketWithTimestamp()
        {
            using (var timestamp = new Timestamp(1))
            {
                var str    = "str";
                var packet = new StringPacket(str).At(timestamp);
                Assert.AreEqual(str, packet.Get());
                Assert.AreEqual(timestamp, packet.Timestamp());

                using (var newTimestamp = new Timestamp(2))
                {
                    var newPacket = packet.At(newTimestamp);
                    Assert.AreEqual(str, newPacket.Get());
                    Assert.AreEqual(newTimestamp, newPacket.Timestamp());
                }

                Assert.AreEqual(timestamp, packet.Timestamp());
            }
        }