public void Test_TRexSpatialMemoryCacheStorageTests_FillWithElementsThenOverflowBy(int numElements, int overflowBy) { var storage = new TRexSpatialMemoryCacheStorage <ITRexMemoryCacheItem>(numElements, numElements / 2); var dummyCache = new TRexSpatialMemoryCacheContext(new TRexSpatialMemoryCache(1000, 1000, 0), storage); // Fill all available slots for (int i = 0; i < numElements; i++) { storage.Add(new TRexSpatialMemoryCacheContextTests_Element { SizeInBytes = 0, CacheOriginX = (int)(2000 + i * SubGridTreeConsts.SubGridTreeDimension), CacheOriginY = (int)(3000 + i * SubGridTreeConsts.SubGridTreeDimension) }, dummyCache); } Assert.False(storage.HasFreeSpace(), "Storage has free space when filled"); for (int i = 0; i < overflowBy; i++) { storage.Add(new TRexSpatialMemoryCacheContextTests_Element { SizeInBytes = 0, CacheOriginX = (int)(2000 + (numElements + i) * SubGridTreeConsts.SubGridTreeDimension), CacheOriginY = (int)(3000 + (numElements + i) * SubGridTreeConsts.SubGridTreeDimension) }, dummyCache); } Assert.True(storage.TokenCount == numElements, $"Element count incorrect (= {storage.TokenCount})"); }
public void Test_TRexSpatialMemoryCacheStorageTests_AddOneElement() { ITRexSpatialMemoryCacheStorage <ITRexMemoryCacheItem> storage = new TRexSpatialMemoryCacheStorage <ITRexMemoryCacheItem>(100, 50); var dummyCache = new TRexSpatialMemoryCacheContext(new TRexSpatialMemoryCache(1000, 1000, 0), storage); storage.Add(new TRexSpatialMemoryCacheContextTests_Element { SizeInBytes = 0, CacheOriginX = 2000, CacheOriginY = 3000 }, dummyCache); Assert.True(storage.HasFreeSpace(), "Storage has no free space when filled with only one element"); Assert.True(storage.TokenCount == 1, $"Element count incorrect (= {storage.TokenCount})"); }