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