public static void ConstructorTestB(MapSizeWidth width, MapSizeHeight height) { MapChipList instance = null; var errorOccured = false; try { instance = new MapChipList(width, height); } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーが発生しないこと Assert.IsFalse(errorOccured); // 件数が一致すること Assert.AreEqual(instance.Count, width.ToInt()); foreach (var columns in instance) { Assert.AreEqual(columns.Count, height.ToInt()); } }
public static void InitializeChipsTestB( MapSizeWidth width, MapSizeHeight height) { var instance = new MapChipList(); var errorOccured = false; try { instance.InitializeChips(width, height); } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーが発生しないこと Assert.IsFalse(errorOccured); // 件数が意図した値と一致すること Assert.AreEqual(instance.Width, width); Assert.AreEqual(instance.Height, height); // すべての要素がデフォルト値で初期化されていること foreach (var columns in instance) { foreach (var chip in columns) { Assert.AreEqual(chip, MapChip.Default); } } }
public static void ConstructorTestB(MapSizeHeight height) { MapChipColumns instance = null; var errorOccured = false; try { instance = new MapChipColumns(height); } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーが発生しないこと Assert.IsFalse(errorOccured); // 件数が一致すること Assert.AreEqual(instance.Count, height.ToInt()); // すべての要素がデフォルト値で初期化されていること foreach (var chip in instance) { Assert.AreEqual(chip, MapChip.Default); } }
private void ReadLayerOneLine(MapSizeHeight mapSizeHeight, ICollection <List <MapChip> > chipList) { var lineChips = new List <MapChip>(); for (var y = 0; y < mapSizeHeight; y++) { var chip = (MapChip)ReadStatus.ReadInt(); lineChips.Add(chip); ReadStatus.IncreaseIntOffset(); } chipList.Add(lineChips); }
/// <summary> /// 1レイヤー列情報 /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="mapSizeHeight">マップ高さ</param> /// <param name="chipList">格納先リスト</param> private void ReadLayerOneLine(FileReadStatus status, MapSizeHeight mapSizeHeight, ICollection <List <MapChip> > chipList) { var lineChips = new List <MapChip>(); for (var y = 0; y < (int)mapSizeHeight; y++) { var chip = (MapChip)status.ReadInt(); lineChips.Add(chip); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(MpsFileReader), $"座標Y:{y} チップ番号", (int)chip)); } chipList.Add(lineChips); }
public static void UpdateHeightTest(int initWidth, int initHeight, MapSizeHeight height) { var chips = MakeMapChipList(initWidth, false, initHeight); var instance = new MapChipList(chips); var changedPropertyList = new List <string>(); instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); }; var changedCollectionList = new List <NotifyCollectionChangedEventArgs>(); instance.CollectionChanged += (sender, args) => { changedCollectionList.Add(args); }; var changedColumnsPropertyList = new List <string>(); var changedColumnsCollectionList = new List <NotifyCollectionChangedEventArgs>(); instance.ForEach(column => { column.PropertyChanged += (sender, args) => { changedColumnsPropertyList.Add(args.PropertyName); }; column.CollectionChanged += (sender, args) => { changedColumnsCollectionList.Add(args); }; }); var errorOccured = false; try { instance.UpdateHeight(height); } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーが発生しないこと Assert.IsFalse(errorOccured); // 件数が意図した値と一致すること Assert.AreEqual(instance.Width.ToInt(), initWidth); Assert.AreEqual(instance.Height, height); var notChangedLength = initHeight < height ? initHeight : height.ToInt(); for (var i = 0; i < instance.Width; i++) { var j = 0; // 操作しなかった項目がもとの値のままであること for (; j < notChangedLength; j++) { Assert.AreEqual(instance[i][j], MakeMapChip(i, j)); } // 新たに追加された項目がデフォルト値であること for (; j < instance.Height; j++) { Assert.AreEqual(instance[i][j], MapChip.Default); } } // 意図したとおりプロパティ変更通知が発火していること Assert.AreEqual(changedPropertyList.Count, 1); Assert.IsTrue(changedPropertyList[0].Equals(nameof(MapChipList.Height))); Assert.AreEqual(changedCollectionList.Count, 0); Assert.AreEqual(changedColumnsPropertyList.Count, initWidth * 2); for (var i = 0; i < initWidth; i++) { Assert.IsTrue(changedColumnsPropertyList[2 * i].Equals(nameof(IFixedLengthMapChipColumns.Count))); Assert.IsTrue(changedColumnsPropertyList[2 * i + 1].Equals(ListConstant.IndexerName)); } if (initHeight == height) { Assert.AreEqual(changedColumnsCollectionList.Count, 0); } else { Assert.AreEqual(changedColumnsCollectionList.Count, initWidth); if (initHeight > height) { for (var i = 0; i < initWidth; i++) { Assert.IsTrue(changedColumnsCollectionList[i].Action == NotifyCollectionChangedAction.Remove); Assert.IsTrue(changedColumnsCollectionList[i].OldStartingIndex == height); Assert.IsTrue(changedColumnsCollectionList[i].OldItems.Count == initHeight - height); Assert.IsTrue(changedColumnsCollectionList[i].NewStartingIndex == -1); Assert.IsTrue(changedColumnsCollectionList[i].NewItems == null); } } else { for (var i = 0; i < initWidth; i++) { Assert.IsTrue(changedColumnsCollectionList[i].Action == NotifyCollectionChangedAction.Add); Assert.IsTrue(changedColumnsCollectionList[i].OldStartingIndex == -1); Assert.IsTrue(changedColumnsCollectionList[i].OldItems == null); Assert.IsTrue(changedColumnsCollectionList[i].NewStartingIndex == initHeight); Assert.IsTrue(changedColumnsCollectionList[i].NewItems.Count == height - initHeight); } } } }
public static void UpdateSizeTest(int initLength, MapSizeHeight height) { var chips = MakeMapChipList(initLength); var instance = new MapChipColumns(chips); var changedPropertyList = new List <string>(); instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); }; var changedCollectionList = new List <NotifyCollectionChangedEventArgs>(); instance.CollectionChanged += (sender, args) => { changedCollectionList.Add(args); }; var errorOccured = false; try { instance.UpdateSize(height); } catch (Exception ex) { logger.Exception(ex); errorOccured = true; } // エラーが発生しないこと Assert.IsFalse(errorOccured); // 件数が意図した値と一致すること Assert.AreEqual(instance.Count, height.ToInt()); var notChangedLength = initLength < height ? initLength : height.ToInt(); var i = 0; // 操作しなかった項目がもとの値のままであること for (; i < notChangedLength; i++) { Assert.AreEqual(instance[i], MakeMapChip(i)); } // 新たに追加された項目がデフォルト値であること for (; i < instance.Count; i++) { Assert.AreEqual(instance[i], MapChip.Default); } // 意図したとおりプロパティ変更通知が発火していること Assert.AreEqual(changedPropertyList.Count, 2); Assert.IsTrue(changedPropertyList[0].Equals(nameof(MapChipColumns.Count))); Assert.IsTrue(changedPropertyList[1].Equals(ListConstant.IndexerName)); if (initLength > height) { Assert.AreEqual(changedCollectionList.Count, 1); Assert.IsTrue(changedCollectionList[0].Action == NotifyCollectionChangedAction.Remove); } else if (initLength == height) { Assert.AreEqual(changedCollectionList.Count, 0); } else { // initLength < height Assert.AreEqual(changedCollectionList.Count, 1); Assert.IsTrue(changedCollectionList[0].Action == NotifyCollectionChangedAction.Add); } }