Remove random Integer class.
Add check if value for intensity and duration is within accepted range.
This commit is contained in:
@ -1,19 +0,0 @@
|
||||
namespace CShocker.Ranges;
|
||||
|
||||
public class DurationRange : RandomIntegerRange
|
||||
{
|
||||
public DurationRange(short min, short max) : base(min ,max , 0, 30000)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override bool Equals(object? obj)
|
||||
{
|
||||
return obj is IntensityRange && base.Equals(obj);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return HashCode.Combine("DR", base.GetHashCode());
|
||||
}
|
||||
}
|
@ -9,4 +9,14 @@ public readonly struct IntegerRange
|
||||
this.Min = min;
|
||||
this.Max = max;
|
||||
}
|
||||
|
||||
public bool ValueWithinLimits(int value)
|
||||
{
|
||||
return value >= this.Min && value <= this.Max;
|
||||
}
|
||||
|
||||
internal string RangeString()
|
||||
{
|
||||
return $"{this.Min}-{this.Max}";
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
namespace CShocker.Ranges;
|
||||
|
||||
public class IntensityRange : RandomIntegerRange
|
||||
{
|
||||
public IntensityRange(short min, short max) : base(min , max, 0, 100)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override bool Equals(object? obj)
|
||||
{
|
||||
return obj is IntensityRange && base.Equals(obj);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return HashCode.Combine("IR", base.GetHashCode());
|
||||
}
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
namespace CShocker.Ranges;
|
||||
|
||||
public abstract class RandomIntegerRange
|
||||
{
|
||||
public readonly short Min, Max;
|
||||
internal RandomIntegerRange(short min, short max, short minLimit, short maxLimit)
|
||||
{
|
||||
if (max - min < 0)
|
||||
throw new ArgumentException("Min has to be less or equal Max");
|
||||
if (min < minLimit || min > maxLimit)
|
||||
throw new ArgumentOutOfRangeException(nameof(min), $"Min has to be withing Range {minLimit}-{maxLimit}");
|
||||
if (max < minLimit || max > maxLimit)
|
||||
throw new ArgumentOutOfRangeException(nameof(max), $"Max has to be withing Range {minLimit}-{maxLimit}");
|
||||
this.Min = min;
|
||||
this.Max = max;
|
||||
}
|
||||
|
||||
public int GetRandomRangeValue()
|
||||
{
|
||||
return Random.Shared.Next(this.Min, this.Max);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"Min: {Min} Max: {Max}";
|
||||
}
|
||||
|
||||
public override bool Equals(object? obj)
|
||||
{
|
||||
return obj is RandomIntegerRange rir && Equals(rir);
|
||||
}
|
||||
|
||||
private bool Equals(RandomIntegerRange other)
|
||||
{
|
||||
return Min == other.Min && Max == other.Max;
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return HashCode.Combine(Min, Max);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user