public IEnumerator TransformedScaledToSizeOfSelectedTiles_Multiple_Negative()
        {
            Vector3Collection selectedTiles = ScriptableObject.CreateInstance <Vector3Collection>();

            selectedTiles.Add(new Vector3(0, 0, 0));
            selectedTiles.Add(new Vector3(0, 0, -1));
            selectedTiles.Add(new Vector3(0, 0, -2));

            selectedTiles.Add(new Vector3(-1, 0, 0));
            selectedTiles.Add(new Vector3(-1, 0, -1));
            selectedTiles.Add(new Vector3(-1, 0, -2));

            selectedTiles.Add(new Vector3(-2, 0, 0));
            selectedTiles.Add(new Vector3(-2, 0, -1));
            selectedTiles.Add(new Vector3(-2, 0, -2));

            TileSelectionHighlighter tileSelectionHighlighter = new TileSelectionHighlighterBuilder().AddSelectedTiles(selectedTiles)
                                                                .Build();

            tileSelectionHighlighter.BeginSelection(Vector3.zero);

            yield return(null);

            Assert.AreEqual(new Vector3(3, 3, 1), tileSelectionHighlighter.Transform.localScale);
        }
        public IEnumerator NoUpdateAfterSelectionStops()
        {
            Vector3Collection selectedTiles = ScriptableObject.CreateInstance <Vector3Collection>();

            selectedTiles.Add(new Vector3(0, 0, 0));
            selectedTiles.Add(new Vector3(0, 0, -1));
            selectedTiles.Add(new Vector3(-1, 0, 0));
            selectedTiles.Add(new Vector3(-1, 0, -1));

            TileSelectionHighlighter tileSelectionHighlighter = new TileSelectionHighlighterBuilder().AddSelectedTiles(selectedTiles)
                                                                .Build();

            tileSelectionHighlighter.BeginSelection(Vector3.zero);

            yield return(null);

            selectedTiles.Add(new Vector3(1, 0, 1));
            selectedTiles.Add(new Vector3(1, 0, 2));
            selectedTiles.Add(new Vector3(1, 0, 3));

            tileSelectionHighlighter.EndSelection(new Vector3(-1, 0, -1));

            yield return(null);

            Assert.AreEqual(new Vector3(-1, 0, -1), tileSelectionHighlighter.Transform.position);
            Assert.AreEqual(new Vector3(2, 2, 1), tileSelectionHighlighter.Transform.localScale);
        }
        public IEnumerator TransformedMovedToLowestSelectedTile_Single_Negative()
        {
            Vector3Collection selectedTiles = ScriptableObject.CreateInstance <Vector3Collection>();

            selectedTiles.Add(new Vector3(-78, 0, -1));

            TileSelectionHighlighter tileSelectionHighlighter = new TileSelectionHighlighterBuilder().AddSelectedTiles(selectedTiles)
                                                                .Build();

            tileSelectionHighlighter.BeginSelection(Vector3.zero);

            yield return(null);

            Assert.AreEqual(new Vector3(-78, 0, -1), tileSelectionHighlighter.Transform.position);
        }
        public IEnumerator NothingHappensWhenNotSelecting()
        {
            Vector3Collection selectedTiles = ScriptableObject.CreateInstance <Vector3Collection>();

            selectedTiles.Add(Vector3.up);
            selectedTiles.Add(Vector3.down);
            selectedTiles.Add(Vector3.left);
            selectedTiles.Add(Vector3.right);

            TileSelectionHighlighter tileSelectionHighlighter = new TileSelectionHighlighterBuilder().AddSelectedTiles(selectedTiles)
                                                                .Build();

            yield return(null);

            Assert.AreEqual(Vector3.zero, tileSelectionHighlighter.Transform.position);
            Assert.AreEqual(Vector3.one, tileSelectionHighlighter.Transform.localScale);
        }