Beispiel #1
0
        public void Xor_AllBitsSetXorWithSelf_ExpectedValueZero()
        {
            Vector128 <float> vector = Vector128.Create(-1).AsSingle();
            var expected             = new Vector4(0);

            vector = BitOperations.Xor(vector, vector);

            Assert.True(Helpers.AreEqual(expected, vector));
        }
Beispiel #2
0
        public void Xor_MixedBitsSetXorWithSelf_ExpectedValueZero()
        {
            Vector128 <float> vector = Vector128.Create(235434f, -123f, 0, float.MaxValue);
            var expected             = new Vector4(0);

            vector = BitOperations.Xor(vector, vector);

            Assert.True(Helpers.AreEqual(expected, vector));
        }
Beispiel #3
0
        public void Not_AllBitsSetNot_ExpectedValueAllBitsZero()
        {
            Vector128 <float> vector = Vector128.Create(-1).AsSingle();
            var expected             = new Vector4(0f);

            vector = BitOperations.Not(vector);

            Assert.True(AreEqual(expected, vector));
        }
Beispiel #4
0
        public void Or_AllBitsZeroOrWithSelf_ExpectedValueZero()
        {
            Vector128 <float> vector = Vector128.Create(0f);
            var expected             = new Vector4(0);

            vector = BitOperations.Or(vector, vector);

            Assert.True(Helpers.AreEqual(expected, vector));
        }
Beispiel #5
0
        public void And_AllBitsSetAndWithNoBitsSet_ExpectedValueNoBitsSet()
        {
            Vector128 <float> allBitsSet = Vector128.Create(-1).AsSingle();
            Vector128 <float> noBitsSet  = Vector128.Create(0f);
            var expected = new Vector4(0f);

            Vector128 <float> result = BitOperations.And(allBitsSet, noBitsSet);

            Assert.True(Helpers.AreEqual(expected, result));
        }
Beispiel #6
0
        [Fact] public void AndNot_AllBitsZeroAndNotWithAllBitsZero_ExpectedValueAllBitsZero()
        {
            Vector128 <float> allBitsSet = Vector128.Create(-1).AsSingle();
            Vector128 <float> noBitsSet  = Vector128.Create(0f);
            var expected = new Vector4(0f);

            Vector128 <float> result = BitOperations.AndNot(allBitsSet, noBitsSet);

            Assert.True(Helpers.AreEqual(expected, result));
        }
Beispiel #7
0
        public void Not_AllBitsZeroNot_ExpectedValueAllBitsSet()
        {
            Vector128 <float> vector = Vector128.Create(0f);
            int   m1       = -1;
            float notZero  = Unsafe.As <int, float>(ref m1);
            var   expected = new Vector4(notZero);

            vector = BitOperations.Not(vector);

            Assert.True(AreEqual(expected, vector));
        }
Beispiel #8
0
        public void Or_AllBitsSetOrWithSelf_ExpectedValueAllBitsSet()
        {
            Vector128 <float> vector = Vector128.Create(-1).AsSingle();
            int   m1       = -1;
            float notZero  = Unsafe.As <int, float>(ref m1);
            var   expected = new Vector4(notZero);

            vector = BitOperations.Or(vector, vector);

            Assert.True(Helpers.AreEqual(expected, vector));
        }
Beispiel #9
0
        public void Xor_AllBitsSetXorWithNoBitsSet_ExpectedValueAllBitsSet()
        {
            Vector128 <float> allBitsSet = Vector128.Create(-1).AsSingle();
            Vector128 <float> noBitsSet  = Vector128.Create(0f);
            int   m1       = -1;
            float notZero  = Unsafe.As <int, float>(ref m1);
            var   expected = new Vector4(notZero);

            Vector128 <float> result = BitOperations.Xor(allBitsSet, noBitsSet);

            Assert.True(Helpers.AreEqual(expected, result));
        }
Beispiel #10
0
        public void Or_MixedBitsSetOrWithSelf_ExpectedValueNoChange()
        {
            var val1 = 235434f;
            var val2 = -123f;
            var val3 = 0f;
            var val4 = float.MaxValue;
            Vector128 <float> vector = Vector128.Create(val1, val2, val3, val4);
            var expected             = new Vector4(val1, val2, val3, val4);

            vector = BitOperations.Or(vector, vector);

            Assert.True(Helpers.AreEqual(expected, vector));
        }
Beispiel #11
0
        public void And_MixedBitsSetAndWithSelf_ExpectedSameValue()
        {
            float val1 = 235434f;
            float val2 = -123f;
            float val3 = 0;
            float val4 = float.MaxValue;

            Vector128 <float> vector = Vector128.Create(val1, val2, val3, val4);
            var expected             = new Vector4(val1, val2, val3, val4);

            vector = BitOperations.And(vector, vector);

            Assert.True(Helpers.AreEqual(expected, vector));
        }
Beispiel #12
0
        public void Not_MixedBitsSetNot_ExpectedValueFromField()
        {
            var val1 = 235434f;
            var val2 = -123f;
            var val3 = 0f;
            var val4 = float.MaxValue;
            Vector128 <float> vector = Vector128.Create(val1, val2, val3, val4);
            var expected             = GetExpectedValue();

            vector = BitOperations.Not(vector);

            Assert.True(AreEqual(expected, vector));

            Vector4 GetExpectedValue()
            {
                return(new Vector4(
                           NotF(val1),
                           NotF(val2),
                           NotF(val3),
                           NotF(val4)
                           ));
            }
Beispiel #13
0
        public void Xor_MixedBitsSetXorWithMixedBitsSet_ExpectedValueFromField()
        {
            float val1_1 = 0;
            float val1_2 = float.MinValue;
            float val1_3 = float.PositiveInfinity;
            float val1_4 = 1414123f;

            float val2_1 = float.NaN;
            float val2_2 = -0.00000000023434f;
            float val2_3 = float.NegativeInfinity;
            float val2_4 = 0;

            Vector128 <float> vector1 = Vector128.Create(val1_1, val1_2, val1_3, val1_4);
            Vector128 <float> vector2 = Vector128.Create(val2_1, val2_2, val2_3, val2_4);
            var expected = GetExpectedValue();

            Vector128 <float> result = BitOperations.Xor(vector1, vector2);

            Assert.True(Helpers.AreEqual(expected, result));

            Vector4 GetExpectedValue()
            {
                return(new Vector4(
                           XorF(val1_1, val2_1),
                           XorF(val1_2, val2_2),
                           XorF(val1_3, val2_3),
                           XorF(val1_4, val2_4)
                           ));
            }

            float XorF(float a, float b)
            {
                uint xor = Unsafe.As <float, uint>(ref a) ^ Unsafe.As <float, uint>(ref b);

                return(Unsafe.As <uint, float>(ref xor));
            }
        }