Exemplo n.º 1
0
        /// <summary>
        /// Compares two <see cref="IReadOnlyBlockState"/> objects.
        /// </summary>
        /// <param name="comparer">The comparison support object.</param>
        /// <param name="other">The other object.</param>
        public virtual bool IsEqual(CompareEqual comparer, IEqualComparable other)
        {
            Debug.Assert(other != null);

            if (!comparer.IsSameType(other, out ReadOnlyBlockState <IInner> AsBlockState))
            {
                return(comparer.Failed());
            }

            if (!comparer.VerifyEqual(ParentInner, AsBlockState.ParentInner))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameReference(ChildBlock, AsBlockState.ChildBlock))
            {
                return(comparer.Failed());
            }

            if (!comparer.VerifyEqual((IEqualComparable)PatternIndex, (IEqualComparable)AsBlockState.PatternIndex))
            {
                return(comparer.Failed());
            }

            if (!comparer.VerifyEqual(PatternState, AsBlockState.PatternState))
            {
                return(comparer.Failed());
            }

            if (!comparer.VerifyEqual((IEqualComparable)SourceIndex, (IEqualComparable)AsBlockState.SourceIndex))
            {
                return(comparer.Failed());
            }

            if (!comparer.VerifyEqual(SourceState, AsBlockState.SourceState))
            {
                return(comparer.Failed());
            }

            if (!comparer.VerifyEqual(StateList, AsBlockState.StateList))
            {
                return(comparer.Failed());
            }

            return(true);
        }
Exemplo n.º 2
0
        /// <inheritdoc/>
        public virtual bool IsEqual(CompareEqual comparer, IEqualComparable other)
        {
            Contract.RequireNotNull(other, out IEqualComparable Other);

            if (!comparer.IsSameType(Other, out FocusFrameSelectorReadOnlyList AsOtherReadOnlyList))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameCount(Count, AsOtherReadOnlyList.Count))
            {
                return(comparer.Failed());
            }

            for (int i = 0; i < Count; i++)
            {
                if (!comparer.VerifyEqual(this[i], AsOtherReadOnlyList[i]))
                {
                    return(comparer.Failed());
                }
            }

            return(true);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Compares two <see cref="IFrameCellViewList"/> objects.
        /// </summary>
        /// <param name="comparer">The comparison support object.</param>
        /// <param name="other">The other object.</param>
        public virtual bool IsEqual(CompareEqual comparer, IEqualComparable other)
        {
            Debug.Assert(other != null);

            if (!comparer.IsSameType(other, out FrameCellViewList AsCellViewList))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameCount(Count, AsCellViewList.Count))
            {
                return(comparer.Failed());
            }

            for (int i = 0; i < Count; i++)
            {
                if (!comparer.VerifyEqual(this[i], AsCellViewList[i]))
                {
                    return(comparer.Failed());
                }
            }

            return(true);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Compares two <see cref="IFocusPlaceholderNodeStateReadOnlyList"/> objects.
        /// </summary>
        /// <param name="comparer">The comparison support object.</param>
        /// <param name="other">The other object.</param>
        public virtual bool IsEqual(CompareEqual comparer, IEqualComparable other)
        {
            Debug.Assert(other != null);

            if (!comparer.IsSameType(other, out FocusPlaceholderNodeStateReadOnlyList AsPlaceholderNodeStateReadOnlyList))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameCount(Count, AsPlaceholderNodeStateReadOnlyList.Count))
            {
                return(comparer.Failed());
            }

            for (int i = 0; i < Count; i++)
            {
                if (!comparer.VerifyEqual(this[i], AsPlaceholderNodeStateReadOnlyList[i]))
                {
                    return(comparer.Failed());
                }
            }

            return(true);
        }
        /// <inheritdoc/>
        public override bool IsEqual(CompareEqual comparer, IEqualComparable other)
        {
            Contract.RequireNotNull(other, out IEqualComparable Other);

            if (!comparer.IsSameType(Other, out LayoutPlaceholderNodeStateReadOnlyList AsOtherReadOnlyList))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameCount(Count, AsOtherReadOnlyList.Count))
            {
                return(comparer.Failed());
            }

            for (int i = 0; i < Count; i++)
            {
                if (!comparer.VerifyEqual(this[i], AsOtherReadOnlyList[i]))
                {
                    return(comparer.Failed());
                }
            }

            return(true);
        }
        /// <summary>
        /// Compares two <see cref="FrameVisibleCellView"/> objects.
        /// </summary>
        /// <param name="comparer">The comparison support object.</param>
        /// <param name="other">The other object.</param>
        public override bool IsEqual(CompareEqual comparer, IEqualComparable other)
        {
            if (!comparer.IsSameType(other, out FrameVisibleCellView AsVisibleCellView))
            {
                return(comparer.Failed());
            }

            if (!base.IsEqual(comparer, AsVisibleCellView))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameInteger(LineNumber, AsVisibleCellView.LineNumber))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameInteger(ColumnNumber, AsVisibleCellView.ColumnNumber))
            {
                return(comparer.Failed());
            }

            return(true);
        }
        /// <inheritdoc/>
        public override bool IsEqual(CompareEqual comparer, IEqualComparable other)
        {
            if (!comparer.IsSameType(other, out ReadOnlySourceState <IInner> AsSourceState))
            {
                return(comparer.Failed());
            }

            if (!base.IsEqual(comparer, AsSourceState))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameReference(Node, AsSourceState.Node))
            {
                return(comparer.Failed());
            }

            if (!comparer.VerifyEqual(ParentBlockState, AsSourceState.ParentBlockState))
            {
                return(comparer.Failed());
            }

            return(true);
        }
Exemplo n.º 8
0
        /// <inheritdoc/>
        public override bool IsEqual(CompareEqual comparer, IEqualComparable other)
        {
            if (!comparer.IsSameType(other, out ReadOnlyEmptyNodeState <IInner> AsEmptyNodeState))
            {
                return(comparer.Failed());
            }

            if (!base.IsEqual(comparer, AsEmptyNodeState))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameReference(Node, AsEmptyNodeState.Node))
            {
                return(comparer.Failed());
            }

            if (!IsChildrenEqual(comparer, AsEmptyNodeState))
            {
                return(comparer.Failed());
            }

            return(true);
        }
        private bool IsEqualMatchTable(CompareEqual comparer, ReadOnlyController other, IDictionary <IReadOnlyIndex, IReadOnlyIndex> matchTable)
        {
            foreach (KeyValuePair <IReadOnlyIndex, IReadOnlyIndex> Entry in matchTable)
            {
                IReadOnlyNodeState State      = StateTable[Entry.Key];
                IReadOnlyNodeState OtherState = other.StateTable[Entry.Value];

                if (!comparer.VerifyEqual(State, OtherState))
                {
                    return(comparer.Failed());
                }
            }

            return(true);
        }
        private bool IsEqualFields(CompareEqual comparer, ReadOnlyController other)
        {
            if (!comparer.VerifyEqual(RootIndex, other.RootIndex))
            {
                return(comparer.Failed());
            }

            if (!comparer.VerifyEqual(RootState, other.RootState))
            {
                return(comparer.Failed());
            }

            if (!comparer.VerifyEqual(Stats, other.Stats))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameCount(StateTable.Count, other.StateTable.Count))
            {
                return(comparer.Failed());
            }

            return(true);
        }
Exemplo n.º 11
0
        /// <summary>
        /// Compares two <see cref="FrameContainerCellView"/> objects.
        /// </summary>
        /// <param name="comparer">The comparison support object.</param>
        /// <param name="other">The other object.</param>
        public override bool IsEqual(CompareEqual comparer, IEqualComparable other)
        {
            if (!comparer.IsSameType(other, out FrameContainerCellView AsContainerCellView))
            {
                return(comparer.Failed());
            }

            if (!base.IsEqual(comparer, AsContainerCellView))
            {
                return(comparer.Failed());
            }

            if (!comparer.VerifyEqual(ParentCellView, AsContainerCellView.ParentCellView))
            {
                return(comparer.Failed());
            }

            if (!comparer.VerifyEqual(ChildStateView, AsContainerCellView.ChildStateView))
            {
                return(comparer.Failed());
            }

            return(true);
        }
        /// <inheritdoc/>
        public override bool IsEqual(CompareEqual comparer, IEqualComparable other)
        {
            Contract.RequireNotNull(other, out IEqualComparable Other);

            if (!comparer.IsSameType(Other, out FocusCellViewList AsOtherList))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameCount(Count, AsOtherList.Count))
            {
                return(comparer.Failed());
            }

            for (int i = 0; i < Count; i++)
            {
                if (!comparer.VerifyEqual(this[i], AsOtherList[i]))
                {
                    return(comparer.Failed());
                }
            }

            return(true);
        }
Exemplo n.º 13
0
        /// <summary>
        /// Compares two <see cref="IFrameOptionalNodeStateView"/> objects.
        /// </summary>
        /// <param name="comparer">The comparison support object.</param>
        /// <param name="other">The other object.</param>
        public override bool IsEqual(CompareEqual comparer, IEqualComparable other)
        {
            Debug.Assert(other != null);

            if (!comparer.IsSameType(other, out FrameOptionalNodeStateView AsOptionalNodeStateView))
            {
                return(comparer.Failed());
            }

            if (!base.IsEqual(comparer, AsOptionalNodeStateView))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameReference(Template, AsOptionalNodeStateView.Template))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsTrue((RootCellView == null || AsOptionalNodeStateView.RootCellView != null) && (RootCellView != null || AsOptionalNodeStateView.RootCellView == null)))
            {
                return(comparer.Failed());
            }

            if (RootCellView != null)
            {
                Debug.Assert(CellViewTable != null);
                Debug.Assert(AsOptionalNodeStateView.CellViewTable != null);

                if (!comparer.VerifyEqual(RootCellView, AsOptionalNodeStateView.RootCellView))
                {
                    return(comparer.Failed());
                }

                if (!comparer.VerifyEqual(CellViewTable, AsOptionalNodeStateView.CellViewTable))
                {
                    return(comparer.Failed());
                }
            }

            return(true);
        }
        /// <summary>
        /// Compares two <see cref="FramePlaceholderNodeStateView"/> objects.
        /// </summary>
        /// <param name="comparer">The comparison support object.</param>
        /// <param name="other">The other object.</param>
        public override bool IsEqual(CompareEqual comparer, IEqualComparable other)
        {
            Contract.RequireNotNull(other, out IEqualComparable Other);

            if (!comparer.IsSameType(Other, out FramePlaceholderNodeStateView AsPlaceholderNodeStateView))
            {
                return(comparer.Failed());
            }

            if (!base.IsEqual(comparer, AsPlaceholderNodeStateView))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameReference(Template, AsPlaceholderNodeStateView.Template))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsTrue((RootCellView == null || AsPlaceholderNodeStateView.RootCellView != null) && (RootCellView != null || AsPlaceholderNodeStateView.RootCellView == null)))
            {
                return(comparer.Failed());
            }

            if (RootCellView != null)
            {
                Debug.Assert(CellViewTable != null);
                Debug.Assert(AsPlaceholderNodeStateView.CellViewTable != null);

                if (!comparer.VerifyEqual(RootCellView, AsPlaceholderNodeStateView.RootCellView))
                {
                    return(comparer.Failed());
                }

                if (!comparer.VerifyEqual(CellViewTable, AsPlaceholderNodeStateView.CellViewTable))
                {
                    return(comparer.Failed());
                }
            }

            return(true);
        }
        /// <inheritdoc/>
        public virtual bool IsEqual(CompareEqual comparer, IEqualComparable other)
        {
            Contract.RequireNotNull(other, out IEqualComparable Other);

            if (!comparer.IsSameType(Other, out ReadOnlyBrowsingExistingBlockNodeIndex AsExistingBlockNodeIndex))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameReference(ParentNode, AsExistingBlockNodeIndex.ParentNode))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameString(PropertyName, AsExistingBlockNodeIndex.PropertyName))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameInteger(BlockIndex, AsExistingBlockNodeIndex.BlockIndex))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameInteger(Index, AsExistingBlockNodeIndex.Index))
            {
                return(comparer.Failed());
            }

            if (!comparer.IsSameReference(Node, AsExistingBlockNodeIndex.Node))
            {
                return(comparer.Failed());
            }

            return(true);
        }