public void Create_Regularly_ShouldHaveHighEntropyInLow5Bytes()
        {
            var results = new List <ulong>();

            for (var i = 0; i < 100; i++)
            {
                results.Add(RandomSequence6.Create());
            }

            var         sumValuesPerByte = new int[5];
            Span <byte> bytes            = stackalloc byte[8];

            foreach (var result in results)
            {
                BinaryPrimitives.WriteUInt64BigEndian(bytes, result);
                for (var i = 0; i < sumValuesPerByte.Length; i++)
                {
                    sumValuesPerByte[i] += bytes[8 - sumValuesPerByte.Length + i];
                }
            }

            var averageValuesPerByte = new int[sumValuesPerByte.Length];

            for (var i = 0; i < sumValuesPerByte.Length; i++)
            {
                averageValuesPerByte[i] = sumValuesPerByte[i] / results.Count;
            }

            // Each byte should have an average value close to 127
            foreach (var value in averageValuesPerByte)
            {
                Assert.True(value >= 102 && value <= 152);
            }

            // The average of the averages should be very close to 127
            var totalAverage = averageValuesPerByte.Average();

            Assert.True(totalAverage >= 120 && totalAverage <= 134);
        }
#pragma warning disable CS0618 // Type or member is obsolete -- Obsolete intended to protect against non-test usage
        private static RandomSequence6 SimulateRandomSequenceWithValue(ulong value) => RandomSequence6.CreatedSimulated(value);
        public void Create_Regularly_ShouldLeaveHigh16BitsZero()
        {
            var result = RandomSequence6.Create();

            Assert.Equal(0UL, result >> (64 - 16));
        }
        public void Create_Regularly_ShouldBeNonzero()
        {
            var result = RandomSequence6.Create();

            Assert.NotEqual(0UL, result);
        }