// [UnityTest]
        // [UseGltfSampleSetTestCase(localSampleSetJsonPath)]
        // [Performance]
        // public IEnumerator UninterruptedLoadingLocal(SampleSetItem testCase) {
        //     yield return UninterruptedLoadingTemplate(testCase);
        // }

        static IEnumerator UninterruptedLoadingTemplate(SampleSetItem testCase)
        {
            Debug.Log($"Testing {testCase.path}");
            var go         = new GameObject();
            var deferAgent = new UninterruptedDeferAgent();
            var loadTime   = new SampleGroup("LoadTime");
            // First time without measuring
            var task = SampleModelsTest.LoadGltfSampleSetItem(testCase, go, deferAgent, loadTime);

            yield return(Utils.WaitForTask(task));

            using (Measure.Frames().Scope()) {
                for (int i = 0; i < k_Repetitions; i++)
                {
                    task = SampleModelsTest.LoadGltfSampleSetItem(testCase, go, deferAgent, loadTime);
                    yield return(Utils.WaitForTask(task));
                }
            }

            Object.Destroy(go);
        }
        public IEnumerator SmoothLoading(SampleSetItem testCase)
        {
            Debug.Log($"Testing {testCase.path}");
            var         go         = new GameObject();
            var         deferAgent = go.AddComponent <TimeBudgetPerFrameDeferAgent>();
            SampleGroup loadTime   = new SampleGroup("LoadTime");
            // First time without measuring
            var task = SampleModelsTest.LoadGltfSampleSetItem(testCase, go, deferAgent);

            yield return(Utils.WaitForTask(task));

            using (Measure.Frames().Scope()) {
                for (int i = 0; i < k_Repetitions; i++)
                {
                    task = SampleModelsTest.LoadGltfSampleSetItem(testCase, go, deferAgent, loadTime);
                    yield return(Utils.WaitForTask(task));

                    // Wait one more frame. Usually some more action happens in this one.
                    yield return(null);
                }
            }
            Object.Destroy(go);
        }