Пример #1
0
        public void perm16()
        {
            var p2   = Perm.Define <N16>((1, 10), (2, 11), (3, 8));
            var bsx2 = ((ushort)0b1000110111000100).ToBitString();
            var bsy2 = BitString.FromBitSeq(bsx2.BitSeq.Permute(p2));
            var bsz2 = bsx2.Permute(p2);

            Claim.eq(bsy2, bsz2);
        }
Пример #2
0
        public void extract_64u()
        {
            var bv8  = BitVector8.FromScalar(0b10000000);
            var bv16 = bv8.Concat(bv8);
            var bv32 = bv16.Concat(bv16);
            var bv64 = bv32.Concat(bv32);

            var bs8  = bv8.ToBitString();
            var bs16 = bs8.Concat(bs8);
            var bs32 = bs16.Concat(bs16);
            var bs64 = bs32.Concat(bs32);

            Claim.eq(bv8.ToBitString(), bs8);
            Claim.eq(bv8, bs8.ToBitVector(n8));

            Claim.eq(bv16.ToBitString(), bs16);
            Claim.eq(bv16, bs16.ToBitVector(n16));

            Claim.eq(bv32.ToBitString(), bs32);
            Claim.eq(bv32, bs32.ToBitVector(n32));

            Claim.eq(bv64.ToBitString(), bs64);
            Claim.eq(bv64, bs64.ToBitVector(n64));

            var bv64x = Bits.gather(bv64, BitMask64.Msb8).ToBitVector();

            Claim.eq((byte)0xFF, bv64x.Byte(0));

            var unpacked = new byte[] { 1, 0, 0, 1, 1, 0, 1, 1 };
            var x        = BitConverter.ToUInt64(unpacked, 0);
            var y        = Bits.gather(x, BitMask64.Lsb8).ToBitVector();
            var z1       = y.Byte(0).ToBitString();
            var z2       = BitString.FromBitSeq(unpacked);

            Claim.eq(z1, z2);
        }