public void Should_SerializeInt3()
        {
            Int3 value = Int3.MaxValue; // range -3 to 3

            Assert.AreEqual(false, value._sign);
            Assert.AreEqual(1, value.GetBit(0));
            Assert.AreEqual(1, value.GetBit(1));
            Assert.AreEqual(new Bit[] { 1, 1, 0 }, value.GetBits());

            value = Int3.MinValue;
            Assert.AreEqual(true, value._sign);
            Assert.AreEqual(1, value.GetBit(0));
            Assert.AreEqual(1, value.GetBit(1));
            Assert.AreEqual(new Bit[] { 1, 1, 1 }, value.GetBits());

            // test overflow
            value = (Int3)5;
            Assert.AreEqual(1, value);
            Assert.AreEqual(false, value._sign);
            Assert.AreEqual(1, value.GetBit(0));
            Assert.AreEqual(0, value.GetBit(1));
            Assert.AreEqual(new Bit[] { 1, 0, 0 }, value.GetBits());
        }