public void RentMany(int amount) { BlockAllocator kb16 = BlockAllocator.KB16; BlockMemory[] data = new BlockMemory[amount]; for (int i = 0; i < amount; i++) { data[i] = kb16.Rent(); Assert.Equal(1024 * 16, data[i].Memory.Length); } for (int i = 0; i < amount; i++) { for (int j = 0; j < amount; j++) { if (i == j) { continue; } Assert.False(data[i].Memory.Span.Overlaps(data[j].Memory.Span)); } } for (int i = 0; i < amount; i++) { data[i].Dispose(); } }
public void RentReturnRent() { BlockAllocator kb16 = BlockAllocator.KB16; BlockMemory block = kb16.Rent(); block.Dispose(); BlockMemory block2 = kb16.Rent(); Assert.True(block.Memory.Span.Overlaps(block2.Memory.Span)); }
public void Alignment(int amount) { BlockAllocator kb16 = BlockAllocator.KB16; BlockMemory[] data = new BlockMemory[amount]; for (int i = 0; i < amount; i++) { data[i] = kb16.Rent(); unsafe { fixed(byte *bytes = data[i].memory.Span) { Assert.True((long)bytes % 32 == 0); } } } for (int i = 0; i < amount; i++) { data[i].Dispose(); } }