public void IJobEntityBatch_WithNoBatching_HasCorrectIndices( [Values(ScheduleMode.Parallel, ScheduleMode.Single, ScheduleMode.Run, ScheduleMode.RunWithoutJobs)] ScheduleMode scheduleMode) { var archetypeA = m_Manager.CreateArchetype(typeof(EcsTestData), typeof(EcsTestSharedComp)); using (var query = m_Manager.CreateEntityQuery(typeof(EcsTestData), typeof(EcsTestSharedComp))) using (var entities = m_Manager.CreateEntity(archetypeA, 100, Allocator.TempJob)) { var val = 0; foreach (var entity in entities) { m_Manager.SetComponentData(entity, new EcsTestData() { value = val }); m_Manager.SetSharedComponentData(entity, new EcsTestSharedComp() { value = val }); val++; } var job = new CheckBatchIndices { EcsTestDataTypeHandle = EmptySystem.GetComponentTypeHandle <EcsTestData>() }; var jobWithIndex = new CheckBatchAndFirstEntityIndices { EcsTestDataTypeHandle = EmptySystem.GetComponentTypeHandle <EcsTestData>() }; switch (scheduleMode) { case ScheduleMode.Parallel: job.ScheduleParallel(query).Complete(); jobWithIndex.ScheduleParallel(query).Complete(); break; case ScheduleMode.Single: job.Schedule(query).Complete(); jobWithIndex.Schedule(query).Complete(); break; case ScheduleMode.Run: job.Run(query); jobWithIndex.Run(query); break; case ScheduleMode.RunWithoutJobs: JobEntityBatchExtensions.RunWithoutJobs(ref job, query); JobEntityBatchIndexExtensions.RunWithoutJobs(ref jobWithIndex, query); break; } } }