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)); }