476 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			476 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using NUnit.Framework;
 | |
| using UnityEngine.EventSystems;
 | |
| using UnityEngine;
 | |
| using UnityEngine.UI;
 | |
| using UnityEngine.TestTools;
 | |
| using System.IO;
 | |
| using UnityEditor;
 | |
| 
 | |
| class GridLayoutGroupTests : IPrebuildSetup
 | |
| {
 | |
|     const string kPrefabPath = "Assets/Resources/GridLayoutGroupTests.prefab";
 | |
|     private GameObject m_PrefabRoot;
 | |
|     private GridLayoutGroup m_LayoutGroup;
 | |
| 
 | |
|     public void Setup()
 | |
|     {
 | |
| #if UNITY_EDITOR
 | |
|         var rootGO = new GameObject("rootGo");
 | |
| 
 | |
|         var canvasGO = new GameObject("Canvas");
 | |
|         canvasGO.transform.SetParent(rootGO.transform);
 | |
|         Canvas canvas = canvasGO.AddComponent<Canvas>();
 | |
|         canvas.referencePixelsPerUnit = 100;
 | |
| 
 | |
|         var groupGO = new GameObject("Group", typeof(RectTransform), typeof(GridLayoutGroup));
 | |
|         groupGO.transform.SetParent(canvas.transform);
 | |
| 
 | |
|         var rectTransform = groupGO.GetComponent<RectTransform>();
 | |
|         rectTransform.sizeDelta = new Vector2(400, 500);
 | |
|         rectTransform.anchoredPosition = new Vector2(0, 0);
 | |
|         rectTransform.pivot = new Vector2(0, 0);
 | |
| 
 | |
|         var layoutGroup = groupGO.GetComponent<GridLayoutGroup>();
 | |
|         layoutGroup.spacing = new Vector2(10, 0);
 | |
|         layoutGroup.startCorner = GridLayoutGroup.Corner.UpperLeft;
 | |
|         layoutGroup.cellSize = new Vector2(90, 50);
 | |
|         layoutGroup.constraint = GridLayoutGroup.Constraint.Flexible;
 | |
|         layoutGroup.startAxis = GridLayoutGroup.Axis.Horizontal;
 | |
|         layoutGroup.childAlignment = TextAnchor.UpperLeft;
 | |
|         layoutGroup.enabled = false;
 | |
|         layoutGroup.enabled = true;
 | |
| 
 | |
|         var el1 = new GameObject("Element1");
 | |
|         el1.transform.SetParent(rectTransform);
 | |
|         var element1 = el1.AddComponent<LayoutElement>();
 | |
|         (el1.transform as RectTransform).pivot = Vector2.zero;
 | |
|         element1.minWidth = 5;
 | |
|         element1.minHeight = 10;
 | |
|         element1.preferredWidth = 100;
 | |
|         element1.preferredHeight = 50;
 | |
|         element1.flexibleWidth = 0;
 | |
|         element1.flexibleHeight = 0;
 | |
|         element1.enabled = true;
 | |
| 
 | |
|         var el2 = new GameObject("Element2");
 | |
|         el2.transform.SetParent(rectTransform);
 | |
|         var element2 = el2.AddComponent<LayoutElement>();
 | |
|         (el2.transform as RectTransform).pivot = Vector2.zero;
 | |
|         element2.minWidth = 10;
 | |
|         element2.minHeight = 5;
 | |
|         element2.preferredWidth = -1;
 | |
|         element2.preferredHeight = -1;
 | |
|         element2.flexibleWidth = 0;
 | |
|         element2.flexibleHeight = 0;
 | |
|         element2.enabled = true;
 | |
| 
 | |
|         var el3 = new GameObject("Element3");
 | |
|         el3.transform.SetParent(rectTransform);
 | |
|         var element3 = el3.AddComponent<LayoutElement>();
 | |
|         (el3.transform as RectTransform).pivot = Vector2.zero;
 | |
|         element3.minWidth = 60;
 | |
|         element3.minHeight = 25;
 | |
|         element3.preferredWidth = 120;
 | |
|         element3.preferredHeight = 40;
 | |
|         element3.flexibleWidth = 1;
 | |
|         element3.flexibleHeight = 1;
 | |
|         element3.enabled = true;
 | |
| 
 | |
|         var el4 = new GameObject("Element4");
 | |
|         el4.transform.SetParent(rectTransform);
 | |
|         var element4 = el4.AddComponent<LayoutElement>();
 | |
|         (el4.transform as RectTransform).pivot = Vector2.zero;
 | |
|         element4.minWidth = 60;
 | |
|         element4.minHeight = 25;
 | |
|         element4.preferredWidth = 120;
 | |
|         element4.preferredHeight = 40;
 | |
|         element4.flexibleWidth = 1;
 | |
|         element4.flexibleHeight = 1;
 | |
|         element4.enabled = true;
 | |
| 
 | |
|         var el5 = new GameObject("Element5");
 | |
|         el5.transform.SetParent(rectTransform);
 | |
|         var element5 = el5.AddComponent<LayoutElement>();
 | |
|         (el5.transform as RectTransform).pivot = Vector2.zero;
 | |
|         element5.minWidth = 60;
 | |
|         element5.minHeight = 25;
 | |
|         element5.preferredWidth = 120;
 | |
|         element5.preferredHeight = 40;
 | |
|         element5.flexibleWidth = 1;
 | |
|         element5.flexibleHeight = 1;
 | |
|         element5.enabled = true;
 | |
| 
 | |
|         var el6 = new GameObject("Element6");
 | |
|         el6.transform.SetParent(rectTransform);
 | |
|         var element6 = el6.AddComponent<LayoutElement>();
 | |
|         (el6.transform as RectTransform).pivot = Vector2.zero;
 | |
|         element6.minWidth = 60;
 | |
|         element6.minHeight = 25;
 | |
|         element6.preferredWidth = 120;
 | |
|         element6.preferredHeight = 40;
 | |
|         element6.flexibleWidth = 1;
 | |
|         element6.flexibleHeight = 1;
 | |
|         element6.enabled = true;
 | |
| 
 | |
|         var el7 = new GameObject("Element7");
 | |
|         el7.transform.SetParent(rectTransform);
 | |
|         var element7 = el7.AddComponent<LayoutElement>();
 | |
|         (el7.transform as RectTransform).pivot = Vector2.zero;
 | |
|         element7.minWidth = 60;
 | |
|         element7.minHeight = 25;
 | |
|         element7.preferredWidth = 120;
 | |
|         element7.preferredHeight = 40;
 | |
|         element7.flexibleWidth = 1;
 | |
|         element7.flexibleHeight = 1;
 | |
|         element7.enabled = true;
 | |
| 
 | |
|         var el8 = new GameObject("Element8");
 | |
|         el8.transform.SetParent(rectTransform);
 | |
|         var element8 = el8.AddComponent<LayoutElement>();
 | |
|         (el8.transform as RectTransform).pivot = Vector2.zero;
 | |
|         element8.minWidth = 60;
 | |
|         element8.minHeight = 25;
 | |
|         element8.preferredWidth = 120;
 | |
|         element8.preferredHeight = 40;
 | |
|         element8.flexibleWidth = 1;
 | |
|         element8.flexibleHeight = 1;
 | |
|         element8.enabled = true;
 | |
| 
 | |
|         var el9 = new GameObject("Element9");
 | |
|         el9.transform.SetParent(rectTransform);
 | |
|         var element9 = el9.AddComponent<LayoutElement>();
 | |
|         (el9.transform as RectTransform).pivot = Vector2.zero;
 | |
|         element9.minWidth = 500;
 | |
|         element9.minHeight = 300;
 | |
|         element9.preferredWidth = 1000;
 | |
|         element9.preferredHeight = 600;
 | |
|         element9.flexibleWidth = 1;
 | |
|         element9.flexibleHeight = 1;
 | |
|         element9.enabled = true;
 | |
|         element9.ignoreLayout = true;
 | |
| 
 | |
|         if (!Directory.Exists("Assets/Resources/"))
 | |
|             Directory.CreateDirectory("Assets/Resources/");
 | |
| 
 | |
|         PrefabUtility.SaveAsPrefabAsset(rootGO, kPrefabPath);
 | |
|         GameObject.DestroyImmediate(rootGO);
 | |
| #endif
 | |
|     }
 | |
| 
 | |
|     [SetUp]
 | |
|     public void TestSetup()
 | |
|     {
 | |
|         m_PrefabRoot = GameObject.Instantiate(Resources.Load("GridLayoutGroupTests")) as GameObject;
 | |
|         m_LayoutGroup = m_PrefabRoot.GetComponentInChildren<GridLayoutGroup>();
 | |
|     }
 | |
| 
 | |
|     [TearDown]
 | |
|     public void TearDown()
 | |
|     {
 | |
|         GameObject.DestroyImmediate(m_PrefabRoot);
 | |
|         m_LayoutGroup = null;
 | |
|     }
 | |
| 
 | |
|     [OneTimeTearDown]
 | |
|     public void OneTimeTearDown()
 | |
|     {
 | |
| #if UNITY_EDITOR
 | |
|         AssetDatabase.DeleteAsset(kPrefabPath);
 | |
| #endif
 | |
|     }
 | |
| 
 | |
|     [Test]
 | |
|     public void TestFlexibleCalculateLayout()
 | |
|     {
 | |
|         m_LayoutGroup.constraint = GridLayoutGroup.Constraint.Flexible;
 | |
|         Assert.AreEqual(GridLayoutGroup.Constraint.Flexible, m_LayoutGroup.constraint);
 | |
|         LayoutRebuilder.ForceRebuildLayoutImmediate(m_LayoutGroup.GetComponent<RectTransform>());
 | |
| 
 | |
|         Assert.AreEqual(90, m_LayoutGroup.minWidth, "Expected layout group min width to match but it did not");
 | |
|         Assert.AreEqual(100, m_LayoutGroup.minHeight, "Expected layout group min height to match but it did not");
 | |
|         Assert.AreEqual(290, m_LayoutGroup.preferredWidth, "Expected layout group preferred width to match but it did not");
 | |
|         Assert.AreEqual(100, m_LayoutGroup.preferredHeight, "Expected layout group preferred height to match but it did not");
 | |
|         Assert.AreEqual(-1, m_LayoutGroup.flexibleWidth, "Expected layout group flexiblle width to match but it did not");
 | |
|         Assert.AreEqual(-1, m_LayoutGroup.flexibleHeight, "Expected layout group flexiblle height to match but it did not");
 | |
| 
 | |
|         Vector2[] expectedPositions =
 | |
|         {
 | |
|             new Vector2(0, -50),
 | |
|             new Vector2(100, -50),
 | |
|             new Vector2(200, -50),
 | |
|             new Vector2(300, -50),
 | |
|             new Vector2(0, -100),
 | |
|             new Vector2(100, -100),
 | |
|             new Vector2(200, -100),
 | |
|             new Vector2(300, -100),
 | |
|         };
 | |
| 
 | |
|         Vector2 expectedSize = new Vector2(90, 50);
 | |
| 
 | |
|         for (int i = 0; i < expectedPositions.Length; ++i)
 | |
|         {
 | |
|             var element = m_LayoutGroup.transform.Find("Element" + (i + 1));
 | |
|             var rectTransform = element.GetComponent<RectTransform>();
 | |
| 
 | |
|             Assert.AreEqual(expectedPositions[i], rectTransform.anchoredPosition, $"Expected Element { i + 1 } position to match but it did not");
 | |
|             Assert.AreEqual(expectedSize, rectTransform.sizeDelta, $"Expected Element { i + 1 } size to match but it did not");
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     [Test]
 | |
|     public void TestHorizontallyContrainedCalculateLayoutHorizontal()
 | |
|     {
 | |
|         m_LayoutGroup.constraint = GridLayoutGroup.Constraint.FixedColumnCount;
 | |
|         m_LayoutGroup.constraintCount = 2;
 | |
|         Assert.AreEqual(GridLayoutGroup.Constraint.FixedColumnCount, m_LayoutGroup.constraint, "Expected layout group constraint mode to match but it did not");
 | |
|         Assert.AreEqual(2, m_LayoutGroup.constraintCount, "Expected layout group constraint count mode to match but it did not");
 | |
|         LayoutRebuilder.ForceRebuildLayoutImmediate(m_LayoutGroup.GetComponent<RectTransform>());
 | |
| 
 | |
|         Assert.AreEqual(190, m_LayoutGroup.minWidth, "Expected layout group min width to match but it did not");
 | |
|         Assert.AreEqual(200, m_LayoutGroup.minHeight, "Expected layout group min height to match but it did not");
 | |
|         Assert.AreEqual(190, m_LayoutGroup.preferredWidth, "Expected layout group preferred width to match but it did not");
 | |
|         Assert.AreEqual(200, m_LayoutGroup.preferredHeight, "Expected layout group preferred height to match but it did not");
 | |
|         Assert.AreEqual(-1, m_LayoutGroup.flexibleWidth, "Expected layout group flexiblle width to match but it did not");
 | |
|         Assert.AreEqual(-1, m_LayoutGroup.flexibleHeight, "Expected layout group flexiblle height to match but it did not");
 | |
| 
 | |
|         Vector2[] expectedPositions =
 | |
|         {
 | |
|             new Vector2(0, -50),
 | |
|             new Vector2(100, -50),
 | |
|             new Vector2(0, -100),
 | |
|             new Vector2(100, -100),
 | |
|             new Vector2(0, -150),
 | |
|             new Vector2(100, -150),
 | |
|             new Vector2(0, -200),
 | |
|             new Vector2(100, -200),
 | |
|         };
 | |
| 
 | |
|         Vector2 expectedSize = new Vector2(90, 50);
 | |
| 
 | |
|         for (int i = 0; i < expectedPositions.Length; ++i)
 | |
|         {
 | |
|             var element = m_LayoutGroup.transform.Find("Element" + (i + 1));
 | |
|             var rectTransform = element.GetComponent<RectTransform>();
 | |
| 
 | |
|             Assert.AreEqual(expectedPositions[i], rectTransform.anchoredPosition, $"Expected Element { i + 1 } position to match but it did not");
 | |
|             Assert.AreEqual(expectedSize, rectTransform.sizeDelta, $"Expected Element { i + 1 } size to match but it did not");
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     [Test]
 | |
|     public void TestVerticallyContrainedCalculateLayoutHorizontal()
 | |
|     {
 | |
|         m_LayoutGroup.constraint = GridLayoutGroup.Constraint.FixedRowCount;
 | |
|         m_LayoutGroup.constraintCount = 2;
 | |
|         Assert.AreEqual(GridLayoutGroup.Constraint.FixedRowCount, m_LayoutGroup.constraint, "Expected layout group constraint mode to match but it did not");
 | |
|         Assert.AreEqual(2, m_LayoutGroup.constraintCount, "Expected layout group constraint count mode to match but it did not");
 | |
|         LayoutRebuilder.ForceRebuildLayoutImmediate(m_LayoutGroup.GetComponent<RectTransform>());
 | |
| 
 | |
|         Assert.AreEqual(390, m_LayoutGroup.minWidth, "Expected layout group min width to match but it did not");
 | |
|         Assert.AreEqual(100, m_LayoutGroup.minHeight, "Expected layout group min height to match but it did not");
 | |
|         Assert.AreEqual(390, m_LayoutGroup.preferredWidth, "Expected layout group preferred width to match but it did not");
 | |
|         Assert.AreEqual(100, m_LayoutGroup.preferredHeight, "Expected layout group preferred height to match but it did not");
 | |
|         Assert.AreEqual(-1, m_LayoutGroup.flexibleWidth, "Expected layout group flexiblle width to match but it did not");
 | |
|         Assert.AreEqual(-1, m_LayoutGroup.flexibleHeight, "Expected layout group flexiblle height to match but it did not");
 | |
| 
 | |
|         Vector2[] expectedPositions =
 | |
|         {
 | |
|             new Vector2(0, -50),
 | |
|             new Vector2(100, -50),
 | |
|             new Vector2(200, -50),
 | |
|             new Vector2(300, -50),
 | |
|             new Vector2(0, -100),
 | |
|             new Vector2(100, -100),
 | |
|             new Vector2(200, -100),
 | |
|             new Vector2(300, -100),
 | |
|         };
 | |
| 
 | |
|         Vector2 expectedSize = new Vector2(90, 50);
 | |
| 
 | |
|         for (int i = 0; i < expectedPositions.Length; ++i)
 | |
|         {
 | |
|             var element = m_LayoutGroup.transform.Find("Element" + (i + 1));
 | |
|             var rectTransform = element.GetComponent<RectTransform>();
 | |
| 
 | |
|             Assert.AreEqual(expectedPositions[i], rectTransform.anchoredPosition, $"Expected Element { i + 1 } position to match but it did not");
 | |
|             Assert.AreEqual(expectedSize, rectTransform.sizeDelta, $"Expected Element { i + 1 } size to match but it did not");
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     [Test]
 | |
|     public void TestHorizontallyContrainedCalculateLayoutVertical()
 | |
|     {
 | |
|         m_LayoutGroup.constraint = GridLayoutGroup.Constraint.FixedColumnCount;
 | |
|         m_LayoutGroup.constraintCount = 2;
 | |
|         m_LayoutGroup.startAxis = GridLayoutGroup.Axis.Vertical;
 | |
|         Assert.AreEqual(GridLayoutGroup.Constraint.FixedColumnCount, m_LayoutGroup.constraint, "Expected layout group constraint mode to match but it did not");
 | |
|         Assert.AreEqual(2, m_LayoutGroup.constraintCount, "Expected layout group constraint count mode to match but it did not");
 | |
|         LayoutRebuilder.ForceRebuildLayoutImmediate(m_LayoutGroup.GetComponent<RectTransform>());
 | |
| 
 | |
|         Assert.AreEqual(190, m_LayoutGroup.minWidth, "Expected layout group min width to match but it did not");
 | |
|         Assert.AreEqual(200, m_LayoutGroup.minHeight, "Expected layout group min height to match but it did not");
 | |
|         Assert.AreEqual(190, m_LayoutGroup.preferredWidth, "Expected layout group preferred width to match but it did not");
 | |
|         Assert.AreEqual(200, m_LayoutGroup.preferredHeight, "Expected layout group preferred height to match but it did not");
 | |
|         Assert.AreEqual(-1, m_LayoutGroup.flexibleWidth, "Expected layout group flexiblle width to match but it did not");
 | |
|         Assert.AreEqual(-1, m_LayoutGroup.flexibleHeight, "Expected layout group flexiblle height to match but it did not");
 | |
| 
 | |
|         Vector2[] expectedPositions =
 | |
|         {
 | |
|             new Vector2(0, -50),
 | |
|             new Vector2(0, -100),
 | |
|             new Vector2(0, -150),
 | |
|             new Vector2(0, -200),
 | |
|             new Vector2(100, -50),
 | |
|             new Vector2(100, -100),
 | |
|             new Vector2(100, -150),
 | |
|             new Vector2(100, -200),
 | |
|         };
 | |
| 
 | |
|         Vector2 expectedSize = new Vector2(90, 50);
 | |
| 
 | |
|         for (int i = 0; i < expectedPositions.Length; ++i)
 | |
|         {
 | |
|             var element = m_LayoutGroup.transform.Find("Element" + (i + 1));
 | |
|             var rectTransform = element.GetComponent<RectTransform>();
 | |
| 
 | |
|             Assert.AreEqual(expectedPositions[i], rectTransform.anchoredPosition, $"Expected Element { i + 1 } position to match but it did not");
 | |
|             Assert.AreEqual(expectedSize, rectTransform.sizeDelta, $"Expected Element { i + 1 } size to match but it did not");
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     [Test]
 | |
|     public void TestVerticallyContrainedCalculateLayoutVertical()
 | |
|     {
 | |
|         m_LayoutGroup.constraint = GridLayoutGroup.Constraint.FixedRowCount;
 | |
|         m_LayoutGroup.constraintCount = 2;
 | |
|         m_LayoutGroup.startAxis = GridLayoutGroup.Axis.Vertical;
 | |
|         m_LayoutGroup.startCorner = GridLayoutGroup.Corner.LowerRight;
 | |
|         Assert.AreEqual(GridLayoutGroup.Constraint.FixedRowCount, m_LayoutGroup.constraint, "Expected layout group constraint mode to match but it did not");
 | |
|         Assert.AreEqual(2, m_LayoutGroup.constraintCount, "Expected layout group constraint count mode to match but it did not");
 | |
|         m_LayoutGroup.CalculateLayoutInputHorizontal();
 | |
|         m_LayoutGroup.SetLayoutHorizontal();
 | |
|         m_LayoutGroup.CalculateLayoutInputVertical();
 | |
|         m_LayoutGroup.SetLayoutVertical();
 | |
| 
 | |
|         Assert.AreEqual(390, m_LayoutGroup.minWidth, "Expected layout group min width to match but it did not");
 | |
|         Assert.AreEqual(100, m_LayoutGroup.minHeight, "Expected layout group min height to match but it did not");
 | |
|         Assert.AreEqual(390, m_LayoutGroup.preferredWidth, "Expected layout group preferred width to match but it did not");
 | |
|         Assert.AreEqual(100, m_LayoutGroup.preferredHeight, "Expected layout group preferred height to match but it did not");
 | |
|         Assert.AreEqual(-1, m_LayoutGroup.flexibleWidth, "Expected layout group flexiblle width to match but it did not");
 | |
|         Assert.AreEqual(-1, m_LayoutGroup.flexibleHeight, "Expected layout group flexiblle height to match but it did not");
 | |
| 
 | |
|         Vector2[] expectedPositions =
 | |
|         {
 | |
|             new Vector2(300, -100),
 | |
|             new Vector2(300, -50),
 | |
|             new Vector2(200, -100),
 | |
|             new Vector2(200, -50),
 | |
|             new Vector2(100, -100),
 | |
|             new Vector2(100, -50),
 | |
|             new Vector2(0, -100),
 | |
|             new Vector2(0, -50),
 | |
|         };
 | |
| 
 | |
|         Vector2 expectedSize = new Vector2(90, 50);
 | |
| 
 | |
|         for (int i = 0; i < expectedPositions.Length; ++i)
 | |
|         {
 | |
|             var element = m_LayoutGroup.transform.Find("Element" + (i + 1));
 | |
|             var rectTransform = element.GetComponent<RectTransform>();
 | |
| 
 | |
|             Assert.AreEqual(expectedPositions[i], rectTransform.anchoredPosition, $"Expected Element { i + 1 } position to match but it did not");
 | |
|             Assert.AreEqual(expectedSize, rectTransform.sizeDelta, $"Expected Element { i + 1 } size to match but it did not");
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     [Test]
 | |
|     public void TestHorizontallyContrainedCalculateLayoutHorizontal_WithChildrenToMove()
 | |
|     {
 | |
|         m_LayoutGroup.constraint = GridLayoutGroup.Constraint.FixedRowCount;
 | |
|         m_LayoutGroup.constraintCount = 5;
 | |
|         m_LayoutGroup.startAxis = GridLayoutGroup.Axis.Horizontal;
 | |
|         m_LayoutGroup.startCorner = GridLayoutGroup.Corner.UpperLeft;
 | |
|         Assert.AreEqual(GridLayoutGroup.Constraint.FixedRowCount, m_LayoutGroup.constraint, "Expected layout group constraint mode to match but it did not");
 | |
|         Assert.AreEqual(5, m_LayoutGroup.constraintCount, "Expected layout group constraint count mode to match but it did not");
 | |
|         m_LayoutGroup.CalculateLayoutInputHorizontal();
 | |
|         m_LayoutGroup.SetLayoutHorizontal();
 | |
|         m_LayoutGroup.CalculateLayoutInputVertical();
 | |
|         m_LayoutGroup.SetLayoutVertical();
 | |
| 
 | |
|         Assert.AreEqual(190, m_LayoutGroup.minWidth, "Expected layout group min width to match but it did not");
 | |
|         Assert.AreEqual(250, m_LayoutGroup.minHeight, "Expected layout group min height to match but it did not");
 | |
|         Assert.AreEqual(190, m_LayoutGroup.preferredWidth, "Expected layout group preferred width to match but it did not");
 | |
|         Assert.AreEqual(250, m_LayoutGroup.preferredHeight, "Expected layout group preferred height to match but it did not");
 | |
|         Assert.AreEqual(-1, m_LayoutGroup.flexibleWidth, "Expected layout group flexiblle width to match but it did not");
 | |
|         Assert.AreEqual(-1, m_LayoutGroup.flexibleHeight, "Expected layout group flexiblle height to match but it did not");
 | |
| 
 | |
|         Vector2[] expectedPositions =
 | |
|         {
 | |
|             new Vector2(0, -50),
 | |
|             new Vector2(100, -50),
 | |
|             new Vector2(0, -100),
 | |
|             new Vector2(100, -100),
 | |
|             new Vector2(0, -150),
 | |
|             new Vector2(100, -150),
 | |
|             new Vector2(0, -200),
 | |
|             new Vector2(0, -250)
 | |
|         };
 | |
| 
 | |
|         Vector2 expectedSize = new Vector2(90, 50);
 | |
| 
 | |
|         for (int i = 0; i < expectedPositions.Length; ++i)
 | |
|         {
 | |
|             var element = m_LayoutGroup.transform.Find("Element" + (i + 1));
 | |
|             var rectTransform = element.GetComponent<RectTransform>();
 | |
| 
 | |
|             Assert.AreEqual(expectedPositions[i], rectTransform.anchoredPosition, $"Expected Element { i + 1 } position to match but it did not");
 | |
|             Assert.AreEqual(expectedSize, rectTransform.sizeDelta, $"Expected Element { i + 1 } size to match but it did not");
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     [Test]
 | |
|     public void TestVerticallyContrainedCalculateLayoutVertical_WithChildrenToMove()
 | |
|     {
 | |
|         m_LayoutGroup.constraint = GridLayoutGroup.Constraint.FixedColumnCount;
 | |
|         m_LayoutGroup.constraintCount = 5;
 | |
|         m_LayoutGroup.startAxis = GridLayoutGroup.Axis.Vertical;
 | |
|         m_LayoutGroup.startCorner = GridLayoutGroup.Corner.UpperLeft;
 | |
|         Assert.AreEqual(GridLayoutGroup.Constraint.FixedColumnCount, m_LayoutGroup.constraint, "Expected layout group constraint mode to match but it did not");
 | |
|         Assert.AreEqual(5, m_LayoutGroup.constraintCount, "Expected layout group constraint count mode to match but it did not");
 | |
|         m_LayoutGroup.CalculateLayoutInputHorizontal();
 | |
|         m_LayoutGroup.SetLayoutHorizontal();
 | |
|         m_LayoutGroup.CalculateLayoutInputVertical();
 | |
|         m_LayoutGroup.SetLayoutVertical();
 | |
| 
 | |
|         Assert.AreEqual(490, m_LayoutGroup.minWidth, "Expected layout group min width to match but it did not");
 | |
|         Assert.AreEqual(100, m_LayoutGroup.minHeight, "Expected layout group min height to match but it did not");
 | |
|         Assert.AreEqual(490, m_LayoutGroup.preferredWidth, "Expected layout group preferred width to match but it did not");
 | |
|         Assert.AreEqual(100, m_LayoutGroup.preferredHeight, "Expected layout group preferred height to match but it did not");
 | |
|         Assert.AreEqual(-1, m_LayoutGroup.flexibleWidth, "Expected layout group flexiblle width to match but it did not");
 | |
|         Assert.AreEqual(-1, m_LayoutGroup.flexibleHeight, "Expected layout group flexiblle height to match but it did not");
 | |
| 
 | |
|         Vector2[] expectedPositions =
 | |
|         {
 | |
|             new Vector2(0, -50),
 | |
|             new Vector2(0, -100),
 | |
|             new Vector2(100, -50),
 | |
|             new Vector2(100, -100),
 | |
|             new Vector2(200, -50),
 | |
|             new Vector2(200, -100),
 | |
|             new Vector2(300, -50),
 | |
|             new Vector2(400, -50)
 | |
|         };
 | |
| 
 | |
|         Vector2 expectedSize = new Vector2(90, 50);
 | |
| 
 | |
|         for (int i = 0; i < expectedPositions.Length; ++i)
 | |
|         {
 | |
|             var element = m_LayoutGroup.transform.Find("Element" + (i + 1));
 | |
|             var rectTransform = element.GetComponent<RectTransform>();
 | |
| 
 | |
|             Assert.AreEqual(expectedPositions[i], rectTransform.anchoredPosition, $"Expected Element { i + 1 } position to match but it did not");
 | |
|             Assert.AreEqual(expectedSize, rectTransform.sizeDelta, $"Expected Element { i + 1 } size to match but it did not");
 | |
|         }
 | |
|     }
 | |
| }
 |