public void Resize() { const int initialLength = 8; var shared = new SharedArray <Vector3>(initialLength); Vector3[] asManaged = shared; for (int i = 0; i < asManaged.Length; i++) { asManaged[i] = Vector3.one * i; } Assert.AreEqual(initialLength, shared.Length); Assert.AreEqual(initialLength, ((NativeArray <Vector3>)shared).Length); const int resizedLength = 16; shared.Resize(resizedLength); Vector3[] managedAfterResize = shared; // did data from before resize get preserved ? for (int i = 0; i < initialLength; i++) { Assert.AreEqual(Vector3.one * i, managedAfterResize[i]); } Assert.AreEqual(resizedLength, managedAfterResize.Length); Assert.AreEqual(resizedLength, ((NativeArray <Vector3>)shared).Length); }
public void Resize_ThrowsIf_AnyJobsAreUsingData() { var shared = new SharedArray <Vector2>(4); AssertSafety.ThrowsIfAnyDataUsers_SingleCall(shared, () => shared.Resize(8)); }