Пример #1
0
        public IEnumerator BlocksMergedProperly()
        {
            yield return(ResetScene());

            //Two same value blocks
            gridHandler.ResetGrid();
            gridHandler.NewBlock(0, 0, 2);
            gridHandler.NewBlock(1, 0, 2);
            Do(-1, 0);
            Assert.AreEqual(gridHandler.At(0, 0).value, 4);
            Assert.IsFalse(gridHandler.IsOccupied(1, 0));

            //Two diffrent value blocks
            gridHandler.ResetGrid();
            gridHandler.NewBlock(0, 0, 2);
            gridHandler.NewBlock(1, 0, 4);
            Do(-1, 0);
            Assert.IsTrue(gridHandler.IsOccupied(0, 0));
            Assert.IsTrue(gridHandler.IsOccupied(1, 0));

            //A row of 4 mergable blocks
            gridHandler.ResetGrid();
            for (int y = 0; y < 4; y++)
            {
                gridHandler.NewBlock(0, y, 2);
            }
            Do(0, -1);
            Assert.AreEqual(gridHandler.At(0, 0).value, 4);
            Assert.AreEqual(gridHandler.At(0, 1).value, 4);
            Assert.IsFalse(gridHandler.IsOccupied(0, 2));
            Assert.IsFalse(gridHandler.IsOccupied(0, 3));

            //A row of 3 mergable blocks
            gridHandler.ResetGrid();
            for (int y = 0; y < 3; y++)
            {
                gridHandler.NewBlock(0, y, 2);
            }
            Do(0, -1);
            Assert.AreEqual(gridHandler.At(0, 0).value, 4);
            Assert.AreEqual(gridHandler.At(0, 1).value, 2);
            Assert.IsFalse(gridHandler.IsOccupied(0, 2));
        }