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.