public void Cumulative() { var moduleVersionId = Guid.NewGuid(); const int methodToken = 0x06000001; const int methodVersion = 1; var builder = new MethodContextReuseConstraints.Builder(moduleVersionId, methodToken, methodVersion, ilOffset: 5, areRangesEndInclusive: false); Assert.True(builder.Build().HasExpectedSpan(0u, uint.MaxValue)); builder.AddRange(1, 10); Assert.True(builder.Build().HasExpectedSpan(1, 10)); builder = new MethodContextReuseConstraints.Builder(builder.Build(), ilOffset: 5, areRangesEndInclusive: true); builder.AddRange(2, 8); Assert.True(builder.Build().HasExpectedSpan(2, 9)); builder = new MethodContextReuseConstraints.Builder(builder.Build(), ilOffset: 5, areRangesEndInclusive: false); builder.AddRange(1, 3); Assert.True(builder.Build().HasExpectedSpan(3, 9)); builder = new MethodContextReuseConstraints.Builder(builder.Build(), ilOffset: 5, areRangesEndInclusive: true); builder.AddRange(7, 9); Assert.True(builder.Build().HasExpectedSpan(3, 7)); }
public void EndExclusive() { const int methodToken = 0x06000001; const int methodVersion = 1; var builder = new MethodContextReuseConstraints.Builder(methodToken, methodVersion, ilOffset: 5, areRangesEndInclusive: false); Assert.True(builder.Build().HasExpectedSpan(0u, uint.MaxValue)); builder.AddRange(1, 9); Assert.True(builder.Build().HasExpectedSpan(1, 9)); builder.AddRange(2, 8); Assert.True(builder.Build().HasExpectedSpan(2, 8)); builder.AddRange(1, 3); Assert.True(builder.Build().HasExpectedSpan(3, 8)); builder.AddRange(7, 9); Assert.True(builder.Build().HasExpectedSpan(3, 7)); }