public void PoolSizeExceeded(int poolSize) { using (var test = new Perf.PoolBoy <Txt.RegularExpressions.Regex>()) { const string numbersRegexPattern = "[0-9]+"; Perf.Text.RegularExpressions.Regex?priorRegex = null; var created = 0; do { var regexNumbers = new Perf.Text.RegularExpressions.Regex(numbersRegexPattern, poolSize: poolSize); regexNumbers.IsPoolAllocated.Should().BeTrue(); if (priorRegex != null) { regexNumbers.performanceObject.Should().NotBeSameAs(priorRegex.Value.performanceObject); } created++; priorRegex = regexNumbers; } while (created < poolSize); var afterPoolSaturated = new Perf.Text.RegularExpressions.Regex(numbersRegexPattern, poolSize: poolSize); afterPoolSaturated.IsPoolAllocated.Should().BeFalse(); } }
public void SamePattern_SamePool(string poolKey) { using (var test = new Perf.PoolBoy <Txt.RegularExpressions.Regex>()) { const string numbersRegexPattern = "[0-9]+"; var regexNumbers = new Perf.Text.RegularExpressions.Regex(numbersRegexPattern, poolKey); var regexNumbers2 = new Perf.Text.RegularExpressions.Regex(numbersRegexPattern, poolKey); regexNumbers.IsPoolAllocated.Should().BeTrue(); regexNumbers2.IsPoolAllocated.Should().BeTrue(); regexNumbers2._objectPool.Should().BeSameAs(regexNumbers._objectPool); regexNumbers2.performanceObject.Should().NotBeSameAs(regexNumbers.performanceObject); } }