Esempio n. 1
0
        public void ChooseSByteTest()
        {
            var g = new Generator("ChooseSByteTest");

            for (int i = 0; i < 100; i++)
            {
                var   a = (ulong)g.SByte();
                var   b = (ulong)g.SByte();
                var   s = (ulong)g.SByte();
                var   c = (ulong)Bits.Choose((SByte)a, (SByte)b, (SByte)s);
                ulong m = 0;

                for (int j = 0; j < 8; j++)
                {
                    var mask = 1ul << j;

                    if ((s & mask) == 0)
                    {
                        m |= (a & mask);
                    }
                    else
                    {
                        m |= (b & mask);
                    }
                }

                Assert.AreEqual((SByte)c, (SByte)m);
            }
        }
Esempio n. 2
0
        public void ChooseInt16Test()
        {
            var g = new Generator("ChooseInt16Test");

            for (int i = 0; i < 100; i++)
            {
                var   a = (ulong)g.Int16();
                var   b = (ulong)g.Int16();
                var   s = (ulong)g.Int16();
                var   c = (ulong)Bits.Choose((Int16)a, (Int16)b, (Int16)s);
                ulong m = 0;

                for (int j = 0; j < 16; j++)
                {
                    var mask = 1ul << j;

                    if ((s & mask) == 0)
                    {
                        m |= (a & mask);
                    }
                    else
                    {
                        m |= (b & mask);
                    }
                }

                Assert.AreEqual((Int16)c, (Int16)m);
            }
        }
Esempio n. 3
0
        public void ChooseUInt64Test()
        {
            var g = new Generator("ChooseUInt64Test");

            for (int i = 0; i < 100; i++)
            {
                var   a = (ulong)g.UInt64();
                var   b = (ulong)g.UInt64();
                var   s = (ulong)g.UInt64();
                var   c = (ulong)Bits.Choose((UInt64)a, (UInt64)b, (UInt64)s);
                ulong m = 0;

                for (int j = 0; j < 64; j++)
                {
                    var mask = 1ul << j;

                    if ((s & mask) == 0)
                    {
                        m |= (a & mask);
                    }
                    else
                    {
                        m |= (b & mask);
                    }
                }

                Assert.AreEqual((UInt64)c, (UInt64)m);
            }
        }