Exemple #1
0
        public void TestUInt64()
        {
            var    b     = sizeof(UInt64) * 8 - 1;
            var    start = unchecked ((UInt64)(UInt64)1 << b);
            UInt64 v     = start;

            for (var i = 0; i < (sizeof(UInt64) * 8) - 1; i++)
            {
                v = v.RorCopy();
                var a = (UInt64)((UInt64)1 << (b - 1 - i));
                _output?.WriteLine(Convert.ToString((Int64)a, 2).PadLeft(64, '0') + " == " + Convert.ToString((Int64)v, 2).PadLeft(64, '0'));
                Assert.Equal(a, v);
            }

            v = v.RorCopy();
            _output?.WriteLine(Convert.ToString((Int64)start, 2).PadLeft(64, '0') + " == " + Convert.ToString((Int64)((UInt64)v), 2).PadLeft(64, '0'));
            Assert.Equal((UInt64)start, (UInt64)(UInt64)v);
        }