Example #1
0
        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());
            }
        }
Example #2
0
        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);
                }
            }
        }
Example #3
0
        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);
            }
        }
Example #4
0
        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);
        }
Example #5
0
        /// <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);
        }
Example #6
0
        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);
                    }
                }
            }
        }
Example #7
0
        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);
            }
        }