Exemple #1
0
        public void RotateIfAllowed_Locked_False()
        {
            var map = new byte[, ]
            {
                { 0, 0, 0 },
                { 0, 0, 0 },
                { 0, 0, 1 }
            };
            var field = new Field(map);

            var figure = new Figure(new byte[, ] {
                { 1 }, { 1 }, { 1 }
            });

            figure.X = 0;

            var expected = new byte[, ] {
                { 1 }, { 1 }, { 1 }
            };

            var result = figure.RotateIfAllowed(field);

            Assert.False(result);
            Assert.True(ArrayExtensions.AreEqual(figure.Points, expected));
        }
Exemple #2
0
        public void Merge_NonZeroPosition_Merged()
        {
            var map = new byte[, ]
            {
                { 0, 0, 0, 0 },
                { 0, 0, 0, 0 },
                { 0, 0, 0, 0 },
                { 1, 1, 1, 1 }
            };
            var field = new Field(map);

            var points = new byte[, ]
            {
                { 1, 1 },
                { 1, 1 }
            };
            var figure = new Figure(points);

            figure.X = 2;
            figure.Y = 1;

            var expected = new byte[, ]
            {
                { 0, 0, 0, 0 },
                { 0, 0, 1, 1 },
                { 0, 0, 1, 1 },
                { 1, 1, 1, 1 }
            };

            field.Merge(figure);

            Assert.True(ArrayExtensions.AreEqual(field.Map, expected));
        }
Exemple #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="message"></param>
        public bool TryParse(byte[] message)
        {
            // Validate
            if (message.Length < Neom8nDevice.MininumMessageSize)
            {
                return(false);
            }

            if (!ArrayExtensions.AreEqual(MessageHeader, 0, message, 0, 2))
            {
                return(false);
            }

            if (!ArrayExtensions.AreEqual(new byte[] { ClassID }, 0, message, 2, 1))
            {
                return(false);
            }

            if (!ArrayExtensions.AreEqual(new byte[] { MessageID }, 0, message, 3, 1))
            {
                return(false);
            }

            try
            {
                // Check payload length
                if (PayloadLength != (short)(message[5] << 8 | message[4]))
                {
                    return(false);
                }

                // Set properties
                var payload = new byte[message.Length - 8];
                Array.ConstrainedCopy(message, 6, payload, 0, payload.Length);

                var serializer = new PayloadSerializer(payload);
                foreach (var property in PayloadMetadata.Payload)
                {
                    var value = serializer.ReadValue(property.PropertyType, property.PropertySize);
                    SetObjectProperty(property.PropertyName, value, this);
                }

                // Set checksum
                if (Checksum != (ushort)((message[message.Length - 2]) | (message[message.Length - 1] << 8)))
                {
                    return(false);
                }
            }
            catch
            {
                return(false);
            }

            return(true);
        }
Exemple #4
0
        public void Reset_Map_Empty()
        {
            var field = new Field(new byte[, ] {
                { 0, 1 }, { 1, 0 }
            });
            var expected = new byte[, ] {
                { 0, 0 }, { 0, 0 }
            };

            field.Reset();

            Assert.True(ArrayExtensions.AreEqual(field.Map, expected));
        }
Exemple #5
0
        public void Rotate_Twice_Rotated()
        {
            var figure = new Figure(new byte[, ] {
                { 1, 1 }
            });
            var expected = new byte[, ] {
                { 1, 1 }
            };

            figure.Rotate(2);

            Assert.True(ArrayExtensions.AreEqual(figure.Points, expected));
        }
Exemple #6
0
        public void AreEqual_Identical_True()
        {
            var first = new byte[, ] {
                { 1, 2 }, { 3, 4 }
            };
            var second = new byte[, ] {
                { 1, 2 }, { 3, 4 }
            };

            var result = ArrayExtensions.AreEqual(first, second);

            Assert.True(result);
        }
Exemple #7
0
        public void AreEqual_DifferentContent_False()
        {
            var first = new byte[, ] {
                { 1, 2 }, { 1, 2 }
            };
            var second = new byte[, ] {
                { 3, 1 }, { 3, 1 }
            };

            var result = ArrayExtensions.AreEqual(first, second);

            Assert.False(result);
        }
        /// <summary>
        /// Compares this object with another by value.
        /// </summary>
        public override bool Equals(object obj)
        {
            // Compare nullability and type
            var other = obj as ScheduleItemCollection;

            if (ReferenceEquals(other, null))
            {
                return(false);
            }

            // Compare values
            return(ArrayExtensions.AreEqual(this, other));
        }
Exemple #9
0
        /// <summary>
        /// Compares this object with another of the same type by value.
        /// </summary>
        /// <param name="value">Object with which to compare by value.</param>
        public bool Equals(Px4ioPacket value)
        {
            // Check null
            if (ReferenceEquals(value, null))
            {
                return(false);
            }

            // Compare values
            return
                (value.CountCode == CountCode &&
                 value.Crc == Crc &&
                 value.Offset == Offset &&
                 value.Page == Page &&
                 ArrayExtensions.AreEqual(value.Registers, Registers));
        }
Exemple #10
0
        /// <summary>
        /// Overrides the Equals method to compare by value,
        /// </summary>
        public override bool Equals(object?other)
        {
            // Check type and nullability
            if (!(other is BrushData brush) || (brush is null))
            {
                return(false);
            }

            // Compare values
            return
                (BrushType == brush.BrushType &&
                 StartColor == brush.StartColor &&
                 EndColor == brush.EndColor &&
                 ArrayExtensions.AreEqual(Texture, brush.Texture) &&
                 WrapMode == brush.WrapMode &&
                 Scale == brush.Scale);
        }
        /// <summary>
        /// Overrides the Equals method to compare by value,
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public override bool Equals(object obj)
        {
            // Check type and nullability
            var other = obj as LogicalBrush;

            if (ReferenceEquals(other, null))
            {
                return(false);
            }

            // Compare values
            return
                (BrushType == other.BrushType &&
                 StartColor == other.StartColor &&
                 EndColor == other.EndColor &&
                 ArrayExtensions.AreEqual(Texture, other.Texture) &&
                 WrapMode == other.WrapMode &&
                 Scale == other.Scale);
        }
Exemple #12
0
        public void RemoveFullLines_FullMap_Removed()
        {
            var map = new byte[, ]
            {
                { 1, 0, 0 },
                { 1, 1, 1 },
                { 1, 0, 1 },
                { 1, 1, 1 }
            };
            var expected = new byte[, ]
            {
                { 0, 0, 0 },
                { 0, 0, 0 },
                { 1, 0, 0 },
                { 1, 0, 1 }
            };
            var field = new Field(map);

            field.RemoveFullLines();

            Assert.True(ArrayExtensions.AreEqual(field.Map, expected));
        }