public static IEnumerator RunTest(Slider sizeSlider, VisualElement gridContainer, Test test, bool justDoSetup = false) { var grid = test.CreateFunc(); gridContainer.Add(grid); // Setup slider EventCallback <ChangeEvent <float> > sliderCB; sizeSlider.RegisterValueChangedCallback(sliderCB = (val) => grid.SetElementSize(val.newValue)); sizeSlider.value = (sizeSlider.highValue - sizeSlider.lowValue) / 2; //if (!justDoSetup) // Debug.Log("----- running tests for " + test.Name); yield return(null); TestPopulateElements(grid, test, justDoSetup); if (justDoSetup) { yield break; } yield return(TestScrollSpeed(sizeSlider, grid, test)); yield return(TestResizeSpeed(sizeSlider, test)); test.Results.NumTimesRun++; // cleanup sizeSlider.UnregisterValueChangedCallback(sliderCB); gridContainer.Remove(grid); }
static internal IEnumerator TestScrollSpeed(Slider sizeSlider, BaseGrid grid, Test test) { sizeSlider.value = sizeSlider.lowValue; yield return(null); startTestTimer(); var scrollSpeed = new Vector2(0, 250); int steps = 0, maxSteps = 40; var scrollView = grid.ScrollView; var elementContainer = grid.ScrollView.contentContainer; while (scrollView.scrollOffset.y < elementContainer.worldBound.height - scrollView.worldBound.height && steps++ < maxSteps) { scrollView.scrollOffset += scrollSpeed; yield return(null); } steps = 0; while (scrollView.scrollOffset.y > 0 && steps++ < maxSteps) { scrollView.scrollOffset -= scrollSpeed; yield return(null); } test.Results.ScrollTime += endTestTimer(); }