/// <inheritdoc/> public FrameIndexCollectionReadOnlyList(FrameIndexCollectionList list) : base(list) { }
/// <summary> /// Checks the context consistency, for code coverage purpose. /// </summary> public override void CheckConsistency() { base.CheckConsistency(); Debug.Assert(State != null); FrameIndexCollectionList InternalList = InternalIndexCollectionList as FrameIndexCollectionList; FrameIndexCollectionReadOnlyList PublicList = IndexCollectionList; for (int i = 0; i < InternalList.Count; i++) { IFrameIndexCollection InternalItem = (IFrameIndexCollection)InternalList[i]; Debug.Assert(PublicList.Contains(InternalItem)); Debug.Assert(PublicList.IndexOf(InternalItem) >= 0); IFrameIndexCollection PublicItem = (IFrameIndexCollection)PublicList[i]; Debug.Assert(InternalList.Contains(PublicItem)); Debug.Assert(InternalList.IndexOf(PublicItem) >= 0); if (i == 0) { Debug.Assert(!((ICollection <IFrameIndexCollection>)InternalList).IsReadOnly); InternalList.Remove(InternalItem); InternalList.Insert(0, InternalItem); if (Type.FromGetType(InternalList).IsTypeof <FrameIndexCollectionList>()) { InternalList.CopyTo((IReadOnlyIndexCollection[])(new IFrameIndexCollection[InternalList.Count]), 0); InternalList.CopyTo((IWriteableIndexCollection[])(new IFrameIndexCollection[InternalList.Count]), 0); } IEnumerable <IFrameIndexCollection> AsFrameEnumerable = InternalList; foreach (IFrameIndexCollection Item in AsFrameEnumerable) { Debug.Assert(Item == InternalItem); break; } IEnumerable <IWriteableIndexCollection> AsWriteableEnumerable = PublicList; foreach (IFrameIndexCollection Item in AsWriteableEnumerable) { Debug.Assert(Item == InternalItem); break; } IList <IWriteableIndexCollection> AsIList = InternalList; Debug.Assert(AsIList[0] == InternalItem); IReadOnlyList <IWriteableIndexCollection> AsIReadOnlyList; AsIReadOnlyList = InternalList; Debug.Assert(AsIReadOnlyList[0] == InternalItem); AsIReadOnlyList = PublicList; Debug.Assert(AsIReadOnlyList[0] == InternalItem); ICollection <IWriteableIndexCollection> AsICollection = InternalList; AsICollection.Remove(InternalItem); AsICollection.Add(InternalItem); AsICollection.Remove(InternalItem); InternalList.Insert(0, InternalItem); IEnumerator <IWriteableIndexCollection> InternalListEnumerator = ((IList <IWriteableIndexCollection>)InternalList).GetEnumerator(); InternalListEnumerator.MoveNext(); Debug.Assert(InternalListEnumerator.Current == InternalItem); IEnumerator <IWriteableIndexCollection> PublicListEnumerator = PublicList.GetEnumerator(); PublicListEnumerator.MoveNext(); Debug.Assert(PublicListEnumerator.Current == InternalItem); } } }