Solved
Range validation
Posted on 2008-10-06
I need to do a range-validation.
The ranges are composed this way :
Beginnig with a number (max 999) and eventuelally 1 char (max 1 char)=> for example 2a.
They come always in in pairs but the beginpoint can be used as an endpoint too in the same range..
A range is thus expressed this way : from [1 to 3 ] or [1a-1a], or [1a-10]
Verification is needed as described hereby :
- No use of the same is permitted : so the same range must be excluded.
- No overlap is permitted : so the range [2 to 10] is not allowed if range [1-3] already exists
- If range [1 to 3] is given and a second range [4 to 10] exists, another range can still be created between them => 3a - 3f.
- In the same way, if the range is given [1 to 3], 2a is already taken because 2a < 3.
- In the same way, the range [4-10] does not comprise the range [10a-16] : 10a > 10
Is it possible to construct this in an algorithm to verify these ranges?
How do I best proceed for the creation? Any examples?
I already use this code :
class Range<T>
{
public readonly T Start;
public readonly T End;
public Range(T start, T end)
{
this.Start = start;
this.End = end;
}
}
static class Range
{
public static bool Overlap<T>(Range<T> left, Range<T> right)
where T : IComparable<T>
{
if (left.Start.CompareTo(right.Start) == 0)
{
return true;
}
else if (left.Start.CompareTo(right.Start) > 0)
{
return left.Start.CompareTo(right.End) <= 0;
}
else
{
return right.Start.CompareTo(left.End) <= 0;
}
}
}
Tanks for any help.