public void TestSparseArraySimple() { // intialize. var array = new SparseArray <int>(10); // fill and resize in the process. for (int idx = 0; idx < 1000; idx++) { if (idx >= array.Length) { array.Resize(idx + 100); } array[idx] = idx; } for (int idx = 5000; idx < 10000; idx++) { if (idx >= array.Length) { array.Resize(idx + 100); } array[idx] = idx; } // test content. for (int idx = 0; idx < 1000; idx++) { Assert.AreEqual(idx, array[idx]); } for (int idx = 1001; idx < 5000; idx++) { Assert.AreEqual(0, array[idx]); } for (int idx = 5000; idx < 10000; idx++) { Assert.AreEqual(idx, array[idx]); } // test enumerator. var list = new List <int>(array); for (int idx = 0; idx < 1000; idx++) { Assert.AreEqual(idx, list[idx]); } for (int idx = 1001; idx < 5000; idx++) { Assert.AreEqual(0, list[idx]); } for (int idx = 5000; idx < 10000; idx++) { Assert.AreEqual(idx, list[idx]); } }
public void TestSparseArraySimple() { // intialize. var array = new SparseArray<int>(10); // fill and resize in the process. for (int idx = 0; idx < 1000; idx++) { if (idx >= array.Length) { array.Resize(idx + 100); } array[idx] = idx; } for (int idx = 5000; idx < 10000; idx++) { if (idx >= array.Length) { array.Resize(idx + 100); } array[idx] = idx; } // test content. for (int idx = 0; idx < 1000; idx++) { Assert.AreEqual(idx, array[idx]); } for (int idx = 1001; idx < 5000; idx++) { Assert.AreEqual(0, array[idx]); } for (int idx = 5000; idx < 10000; idx++) { Assert.AreEqual(idx, array[idx]); } // test enumerator. var list = new List<int>(array); for (int idx = 0; idx < 1000; idx++) { Assert.AreEqual(idx, list[idx]); } for (int idx = 1001; idx < 5000; idx++) { Assert.AreEqual(0, list[idx]); } for (int idx = 5000; idx < 10000; idx++) { Assert.AreEqual(idx, list[idx]); } }
/// <summary> /// Resize if needed. /// </summary> /// <param name="size"></param> private void Resize(uint size) { if (_coordinates.Length < size) { _coordinates.Resize((int)size); // increasing a sparse array size is very cheap. _vertices.Resize((int)size); // increasing a sparse array size is very cheap. } }