private DateTimeFormat() { // 由于循环依赖,所以只能先传出指针 Singleton = this; #if NET6_0_OR_GREATER DateOnlyF = DateOnlyFormat.Singleton; #else ShortChar01 = ShortChar0.GetLower(); Int101 = Int10.GetLower(); ShortN151 = ShortN15.GetLower(); #endif }
public void Should_SerializeInt10() { Int10 value = Int10.MaxValue; // range -511 to 511 Assert.AreEqual(false, value._sign); Assert.AreEqual(1, value.GetBit(0)); Assert.AreEqual(1, value.GetBit(1)); Assert.AreEqual(1, value.GetBit(2)); Assert.AreEqual(1, value.GetBit(3)); Assert.AreEqual(1, value.GetBit(4)); Assert.AreEqual(1, value.GetBit(5)); Assert.AreEqual(1, value.GetBit(6)); Assert.AreEqual(1, value.GetBit(7)); Assert.AreEqual(1, value.GetBit(8)); Assert.AreEqual(new Bit[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 }, value.GetBits()); value = Int10.MinValue; Assert.AreEqual(true, value._sign); Assert.AreEqual(1, value.GetBit(0)); Assert.AreEqual(1, value.GetBit(1)); Assert.AreEqual(1, value.GetBit(2)); Assert.AreEqual(1, value.GetBit(3)); Assert.AreEqual(1, value.GetBit(4)); Assert.AreEqual(1, value.GetBit(5)); Assert.AreEqual(1, value.GetBit(6)); Assert.AreEqual(1, value.GetBit(7)); Assert.AreEqual(1, value.GetBit(8)); Assert.AreEqual(new Bit[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, value.GetBits()); // test overflow value = (Int10)700; Assert.AreEqual(188, value); Assert.AreEqual(false, value._sign); Assert.AreEqual(0, value.GetBit(0)); Assert.AreEqual(0, value.GetBit(1)); Assert.AreEqual(1, value.GetBit(2)); Assert.AreEqual(1, value.GetBit(3)); Assert.AreEqual(1, value.GetBit(4)); Assert.AreEqual(1, value.GetBit(5)); Assert.AreEqual(0, value.GetBit(6)); Assert.AreEqual(1, value.GetBit(7)); Assert.AreEqual(0, value.GetBit(8)); Assert.AreEqual(new Bit[] { 0, 0, 1, 1, 1, 1, 0, 1, 0, 0 }, value.GetBits()); }