Esempio n. 1
0
        public void EqualsObject()
        {
            var v1 = new FixedBytes("AA");
            var v2 = new FixedBytes("AA");

            Assert.True(v1.Equals((object)v2));
        }
Esempio n. 2
0
        public static IEnumerable <object[]> CompareTo_FixedBytes_Test_Values()
        {
            // compare to null
            yield return(new object[] { 1, new FixedBytes(Array.Empty <byte>()), null });

            // compare to self
            var self = new FixedBytes(Array.Empty <byte>());

            yield return(new object[] { 0, self, self });

            // compare to equal valued bytes
            var sameBytes = new byte[] { 0xAC, 0xCA };

            yield return(new object[] { 0, new FixedBytes(sameBytes), new FixedBytes(sameBytes) });

            yield return(new object[] { -1, new FixedBytes(new byte[] { 0x00 }), new FixedBytes(new byte[] { 0xFF }) });

            yield return(new object[] { 1, new FixedBytes(new byte[] { 0xFF }), new FixedBytes(new byte[] { 0x00 }) });

            yield return(new object[] { -1, new FixedBytes(new byte[] { 0x00, 0x00 }), new FixedBytes(new byte[] { 0xFF }) });

            yield return(new object[] { 1, new FixedBytes(new byte[] { 0xFF }), new FixedBytes(new byte[] { 0x00, 0x00 }) });

            yield return(new object[] { -1, new FixedBytes(new byte[] { 0x00 }), new FixedBytes(new byte[] { 0x00, 0xFF }) });

            yield return(new object[] { 1, new FixedBytes(new byte[] { 0x00, 0xFF }), new FixedBytes(new byte[] { 0x00 }) });
        }
Esempio n. 3
0
        public void EqualsOther()
        {
            var v1 = new FixedBytes("AA");
            var v2 = new FixedBytes("AA");

            Assert.True(v1.Equals(v2));
        }
Esempio n. 4
0
        public void CompareToGreaterThan()
        {
            var v1 = new FixedBytes("AB");
            var v2 = new FixedBytes("AA");

            Assert.Equal(1, v1.CompareTo(v2));
        }
Esempio n. 5
0
        public void CompareToEqual()
        {
            var v1 = new FixedBytes("AA");
            var v2 = new FixedBytes("AA");

            Assert.Equal(0, v1.CompareTo(v2));
        }
Esempio n. 6
0
        public static IEnumerable <object[]> LogicalXor_Test_Values()
        {
            foreach (var(left, right) in Values())
            {
                var expected = new FixedBytes(ByteArrayUtils.BitwiseXorBigEndian(left, right));
                yield return(new object[] { expected, new FixedBytes(left), new FixedBytes(right) });
            }

            yield return(new object[] { null, null, new FixedBytes(new byte[] { 0xFF }) });

            yield return(new object[] { null, new FixedBytes(new byte[] { 0xFF }), null });

            yield return(new object[] { null, null, null });

            IEnumerable <(byte[] left, byte[] right)> Values()
            {
                yield return(new byte[] { 0xFF }, Array.Empty <byte>());

                yield return(new byte[] { 0x00 }, new byte[] { 0x00 });

                yield return(new byte[] { 0xF0 }, new byte[] { 0x0F });

                yield return(new byte[] { 0x42 }, new byte[] { 0xBD });

                yield return(new byte[] { 0xFF }, new byte[] { 0xBD });

                yield return(new byte[] { 0xFF, 0xFF }, new byte[] { 0xBD });
            }
        }
Esempio n. 7
0
        public void EqualityOperatorTrue()
        {
            var v1 = new FixedBytes("AA");
            var v2 = new FixedBytes("AA");

            Assert.True(v1 == v2);
        }
Esempio n. 8
0
        public void InequalityOperatorFalse()
        {
            var v1 = new FixedBytes("AA");
            var v2 = new FixedBytes("AA");

            Assert.False(v1 != v2);
        }
Esempio n. 9
0
        public void Comparision_ToNull_Test()
        {
            // Arrange
            var fixedByte = new FixedBytes(new byte[] { 0x00 });

            // Act
            // Assert operator ==
#pragma warning disable SA1131  // purposely testing ordering
            Assert.False(fixedByte == null);
            Assert.False(null == fixedByte);

            // Assert operator !=
            Assert.True(fixedByte != null);
            Assert.True(null != fixedByte);

            // Assert operator >
            Assert.True(fixedByte > null);
            Assert.False(null > fixedByte);

            // Assert operator <
            Assert.True(null < fixedByte);
            Assert.False(fixedByte < null);

            // Assert operator >=
            Assert.False(fixedByte <= null);
            Assert.True(null <= fixedByte);

            // Assert operator <=
            Assert.True(fixedByte >= null);
            Assert.False(null >= fixedByte);
#pragma warning restore SA1131
        }
Esempio n. 10
0
        public void GetHashCodeNotEqual()
        {
            var v1 = new FixedBytes("AA");
            var v2 = new FixedBytes("AB");

            Assert.NotEqual(v1.GetHashCode(), v2.GetHashCode());
        }
Esempio n. 11
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="Fingerprint"/> struct.
        /// </summary>
        public Fingerprint(FixedBytes fixedBytes, int length)
        {
            _bytes = ReadOnlyFixedBytes.FromFixedBytes(ref fixedBytes);

            unchecked {
                _length = (byte)length;
            }
        }
Esempio n. 12
0
        public void StringRoundtrip()
        {
            var v1         = FixedBytes.Random();
            var serialized = v1.Serialize();
            var v2         = new FixedBytes(serialized);

            Assert.Equal(v1, v2);
        }
Esempio n. 13
0
        public void DefaultConstructorCreatesAllZeros()
        {
#pragma warning disable SA1129 // Do not use default value type constructor
            var v = new FixedBytes();
#pragma warning restore SA1129 // Do not use default value type constructor
            var bytes = v.ToByteArray();
            Assert.True(bytes.All(b => b == 0));
        }
Esempio n. 14
0
        public void TryParseFail(string value)
        {
            FixedBytes v;
            int        length;

            Assert.False(FixedBytes.TryParse(value, out v, out length));
            Assert.Equal(0, length);
        }
Esempio n. 15
0
        public void TryParseSuccess(string value)
        {
            FixedBytes v;
            int        length;

            Assert.True(FixedBytes.TryParse(value, out v, out length));
            Assert.Equal(value.Length / 2, length);
        }
Esempio n. 16
0
 public void LogicalXor_Test(FixedBytes expected,
                             FixedBytes right,
                             FixedBytes left)
 {
     // Arrange
     // Act
     // Assert
     Assert.Equal(expected, left ^ right);
     Assert.Equal(expected, right ^ left);
 }
Esempio n. 17
0
        public void LogicalNot_Test(FixedBytes expected,
                                    FixedBytes operand)
        {
            // Arrange
            // Act
            var result = !operand;

            // Assert
            Assert.Equal(expected, result);
        }
Esempio n. 18
0
 public void CompareTo_FixedBytes_Test(int expected,
                                       FixedBytes fixedBytes,
                                       object comparedTo)
 {
     // Arrange
     // Act
     // Assert
     Assert.Equal(expected, fixedBytes.CompareTo(comparedTo));
     Assert.Equal(expected, fixedBytes.CompareTo((FixedBytes)comparedTo));
 }
Esempio n. 19
0
        public void Comparision_GreaterThan_FixedBytes_Test(bool expected,
                                                            FixedBytes left,
                                                            FixedBytes right)
        {
            // Arrange
            // Act
            var result = left > right;

            Assert.Equal(expected, result);
        }
Esempio n. 20
0
 public void Comparision_Exactly_Test(bool expected,
                                      FixedBytes right,
                                      FixedBytes left)
 {
     // Arrange
     // Act
     // Assert Equals
     Assert.Equal(expected, right.Exactly(left)); // forwards
     Assert.Equal(expected, left.Exactly(right)); // reverse
 }
Esempio n. 21
0
        public void BufferRoundtrip()
        {
            var buffer = new byte[FixedBytes.MaxLength];
            var v1     = FixedBytes.Random();

            v1.Serialize(buffer);
            var v2 = new FixedBytes(buffer);

            Assert.Equal(v1, v2);
        }
Esempio n. 22
0
 public void Addition_Test(FixedBytes expected,
                           FixedBytes left,
                           FixedBytes right)
 {
     // Arrange
     // Act
     // Assert
     Assert.Equal(expected, left + right);
     Assert.Equal(expected, right + left);
 }
Esempio n. 23
0
        public void Subtraction_Test(FixedBytes expected,
                                     FixedBytes left,
                                     FixedBytes right)
        {
            // Arrange
            // Act
            var result = left - right;

            // Assert
            Assert.Equal(expected, result);
        }
Esempio n. 24
0
        public void IndexerGet()
        {
            var bytes      = Enumerable.Range(0, FixedBytes.MaxLength).Select(i => (byte)i).ToArray();
            var fixedBytes = new FixedBytes(bytes);

            foreach (var i in Enumerable.Range(0, FixedBytes.MaxLength))
            {
                var b = fixedBytes[i];
                Assert.Equal((byte)i, b);
            }
        }
Esempio n. 25
0
        public void LogicalRightShift_Test(FixedBytes expected,
                                           FixedBytes operand,
                                           int shift)
        {
            // Arrange
            // Act
            var result = operand >> shift;

            // Assert
            Assert.Equal(expected, result);
        }
Esempio n. 26
0
        public void BufferPositiveOffsetRoundtrip()
        {
            const int offset = 3;
            var       buffer = new byte[FixedBytes.MaxLength + offset];
            var       v1     = FixedBytes.Random();

            v1.Serialize(buffer, FixedBytes.MaxLength, offset);
            var v2 = new FixedBytes(buffer, FixedBytes.MaxLength, offset);

            Assert.Equal(v1, v2);
        }
Esempio n. 27
0
        public void Equal_FixedBytes_Test(bool expected,
                                          FixedBytes self,
                                          FixedBytes other)
        {
            // Arrange
            // Act
            var result = self.Equals(other);

            // Assert
            Assert.Equal(expected, result);
        }
Esempio n. 28
0
        public void Comparision_LessThanOrEquals_FixedBytes_Test(bool expected,
                                                                 FixedBytes left,
                                                                 FixedBytes right)
        {
            // Arrange
            // Act
            var result = left <= right;

            // Assert
            Assert.Equal(expected, result);
        }
Esempio n. 29
0
        public void InequalityOperatorTrue()
        {
            var v1 = new FixedBytes("AA");
            var v2 = new FixedBytes("AB");

            Assert.True(v1 != v2);
            Assert.True(v1 < v2);
            Assert.False(v1 > v2);
            Assert.False(v2 < v1);
            Assert.True(v2 > v1);
        }
Esempio n. 30
0
        public void Construct_ProvidedBytesAtLength_Test()
        {
            // Arrange
            var input = new byte[] { 0xAC, 0x00, 0xCA };

            // Act
            var fixedBytes = new FixedBytes(input, input.Length);

            // Assert
            Assert.Equal(input, fixedBytes.GetBytes());
        }