/// <summary>Note: The neededBounds iterator must be unsigned (easier understanding what's happening) </summary>
protected internal virtual void AssertIntRangeSplit(int lower, int upper, int precisionStep, bool useBitSet, System.Collections.IEnumerator neededBounds)
{
OpenBitSet bits = useBitSet?new OpenBitSet(upper - lower + 1):null;
NumericUtils.SplitIntRange(new AnonymousClassIntRangeBuilder(lower, upper, useBitSet, bits, neededBounds, this), precisionStep, lower, upper);
if (useBitSet)
{
// after flipping all bits in the range, the cardinality should be zero
bits.Flip(0, upper - lower + 1);
Assert.IsTrue(bits.IsEmpty(), "The sub-range concenated should match the whole range");
}
}