public void FromCenterAndMaxDeviation()
{
Assert.IsTrue(Range.FromCenterAndMaxDeviation(Dir.AlongPositiveY, Turn.OneTurnClockwise * 0.25).Equals(Range.PositiveY));
var r1 = Range.FromCenterAndMaxDeviation(Dir.AlongPositiveY, Turn.OneDegreeClockwise);
var r2 = Range.FromCenterAndMaxDeviation(Dir.AlongPositiveY, -Turn.OneDegreeClockwise);
Assert.IsTrue(r1.Equals(r2));
Assert.IsTrue(!r1.Contains(Dir.AlongNegativeY));
Assert.IsTrue(!r1.Contains(Dir.AlongPositiveY - Turn.OneDegreeClockwise * 1.0001));
Assert.IsTrue(r1.Contains(Dir.AlongPositiveY - Turn.OneDegreeClockwise * 0.9999));
Assert.IsTrue(r1.Contains(Dir.AlongPositiveY));
Assert.IsTrue(r1.Contains(Dir.AlongPositiveY + Turn.OneDegreeClockwise * 0.9999));
Assert.IsTrue(!r1.Contains(Dir.AlongPositiveY + Turn.OneDegreeClockwise * 1.0001));
var r0 = Range.FromCenterAndMaxDeviation(Dir.AlongNegativeY, Turn.Zero);
Assert.IsTrue(!r0.Contains(Dir.AlongPositiveY));
Assert.IsTrue(r0.Contains(Dir.AlongNegativeY));
Assert.IsTrue(!r0.Contains(Dir.AlongNegativeY + Turn.OneTurnClockwise * 1.0001));
Assert.IsTrue(!r0.Contains(Dir.AlongNegativeY - Turn.OneTurnClockwise * 1.0001));
}