Remove the Rectangle tests

This commit is contained in:
Brandon Thetford
2024-02-20 23:40:46 -07:00
parent 42abe6ece5
commit 0e5e7e84e7

View File

@@ -1,468 +0,0 @@
namespace Terminal.Gui.TypeTests;
public class RectangleTests
{
[Theory]
// Empty
[InlineData (
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
)]
[InlineData (
0,
0,
0,
0,
1,
0,
-1,
0,
2,
0
)]
[InlineData (
0,
0,
0,
0,
0,
1,
0,
-1,
0,
2
)]
[InlineData (
0,
0,
0,
0,
1,
1,
-1,
-1,
2,
2
)]
// Zero location, Size of 1
[InlineData (
0,
0,
1,
1,
0,
0,
0,
0,
1,
1
)]
[InlineData (
0,
0,
1,
1,
1,
0,
-1,
0,
3,
1
)]
[InlineData (
0,
0,
1,
1,
0,
1,
0,
-1,
1,
3
)]
[InlineData (
0,
0,
1,
1,
1,
1,
-1,
-1,
3,
3
)]
// Positive location, Size of 1
[InlineData (
1,
1,
1,
1,
0,
0,
1,
1,
1,
1
)]
[InlineData (
1,
1,
1,
1,
1,
0,
0,
1,
3,
1
)]
[InlineData (
1,
1,
1,
1,
0,
1,
1,
0,
1,
3
)]
[InlineData (
1,
1,
1,
1,
1,
1,
0,
0,
3,
3
)]
public void Inflate (
int x,
int y,
int width,
int height,
int inflateWidth,
int inflateHeight,
int expectedX,
int exptectedY,
int expectedWidth,
int expectedHeight
)
{
var rect = new Rectangle (x, y, width, height);
rect.Inflate (inflateWidth, inflateHeight);
Assert.Equal (expectedWidth, rect.Width);
Assert.Equal (expectedHeight, rect.Height);
Assert.Equal (expectedX, rect.X);
Assert.Equal (exptectedY, rect.Y);
// Use the other overload (Size)
rect = new Rectangle (x, y, width, height);
rect.Inflate (new Size (inflateWidth, inflateHeight));
Assert.Equal (expectedWidth, rect.Width);
Assert.Equal (expectedHeight, rect.Height);
Assert.Equal (expectedX, rect.X);
Assert.Equal (exptectedY, rect.Y);
}
[Fact]
public void Negative_X_Y_Positions ()
{
var rect = new Rectangle (-10, -5, 100, 50);
int yCount = 0, xCount = 0, yxCount = 0;
for (int line = rect.Y; line < rect.Y + rect.Height; line++)
{
yCount++;
xCount = 0;
for (int col = rect.X; col < rect.X + rect.Width; col++)
{
xCount++;
yxCount++;
}
}
Assert.Equal (yCount, rect.Height);
Assert.Equal (xCount, rect.Width);
Assert.Equal (yxCount, rect.Height * rect.Width);
}
[Fact]
public void Positive_X_Y_Positions ()
{
var rect = new Rectangle (10, 5, 100, 50);
int yCount = 0, xCount = 0, yxCount = 0;
for (int line = rect.Y; line < rect.Y + rect.Height; line++)
{
yCount++;
xCount = 0;
for (int col = rect.X; col < rect.X + rect.Width; col++)
{
xCount++;
yxCount++;
}
}
Assert.Equal (yCount, rect.Height);
Assert.Equal (xCount, rect.Width);
Assert.Equal (yxCount, rect.Height * rect.Width);
}
[Fact]
public void Rect_Contains ()
{
var rect = new Rectangle (0, 0, 3, 3);
Assert.True (rect.Contains (new Point (1, 1)));
Assert.True (rect.Contains (new Point (1, 2)));
Assert.True (rect.Contains (new Point (2, 1)));
Assert.True (rect.Contains (new Point (2, 2)));
Assert.False (rect.Contains (new Point (-1, 1)));
Assert.False (rect.Contains (new Point (1, -1)));
Assert.False (rect.Contains (new Point (3, 2)));
Assert.False (rect.Contains (new Point (2, 3)));
Assert.False (rect.Contains (new Point (3, 3)));
Assert.True (rect.Contains (new Rectangle (1, 1, 2, 2)));
Assert.True (rect.Contains (new Rectangle (1, 2, 2, 1)));
Assert.True (rect.Contains (new Rectangle (2, 1, 1, 2)));
Assert.True (rect.Contains (new Rectangle (2, 2, 1, 1)));
Assert.True (rect.Contains (new Rectangle (0, 0, 3, 3)));
Assert.False (rect.Contains (new Rectangle (-1, 1, 3, 3)));
Assert.False (rect.Contains (new Rectangle (1, -1, 3, 3)));
Assert.False (rect.Contains (new Rectangle (3, 2, 3, 3)));
Assert.False (rect.Contains (new Rectangle (2, 3, 3, 3)));
Assert.False (rect.Contains (new Rectangle (3, 3, 3, 3)));
Assert.True (rect.Contains (1, 1));
Assert.True (rect.Contains (1, 2));
Assert.True (rect.Contains (2, 1));
Assert.True (rect.Contains (2, 2));
Assert.False (rect.Contains (-1, 1));
Assert.False (rect.Contains (1, -1));
Assert.False (rect.Contains (3, 2));
Assert.False (rect.Contains (2, 3));
Assert.False (rect.Contains (3, 3));
}
[Fact]
public void Rect_Equals ()
{
var rect1 = new Rectangle ();
var rect2 = new Rectangle ();
Assert.Equal (rect1, rect2);
rect1 = new Rectangle (1, 2, 3, 4);
rect2 = new Rectangle (1, 2, 3, 4);
Assert.Equal (rect1, rect2);
rect1 = new Rectangle (1, 2, 3, 4);
rect2 = new Rectangle (-1, 2, 3, 4);
Assert.NotEqual (rect1, rect2);
}
[Fact]
public void Rect_New ()
{
var rect = new Rectangle ();
Assert.True (rect.IsEmpty);
rect = new Rectangle (new Point (), new Size ());
Assert.True (rect.IsEmpty);
rect = new Rectangle (1, 2, 3, 4);
Assert.False (rect.IsEmpty);
rect = new Rectangle (-1, -2, 3, 4);
Assert.False (rect.IsEmpty);
}
[Fact]
public void Rect_SetsValue ()
{
var rect = new Rectangle { X = 0, Y = 0 };
Assert.True (rect.IsEmpty);
rect = new Rectangle { X = -1, Y = -2 };
Assert.False (rect.IsEmpty);
rect = new Rectangle { Width = 3, Height = 4 };
Assert.False (rect.IsEmpty);
rect = new Rectangle { X = -1, Y = -2, Width = 3, Height = 4 };
Assert.False (rect.IsEmpty);
}
[Fact]
public void Union_EmptyRectangles ()
{
var r1 = new Rectangle (0, 0, 0, 0);
var r2 = new Rectangle (1, 1, 0, 0);
Rectangle result = Rectangle.Union (r1, r2);
Assert.Equal (new Rectangle (0, 0, 1, 1), result);
}
[Fact]
public void Union_NegativeCoords ()
{
// arrange
var rect1 = new Rectangle (-2, -2, 4, 4);
var rect2 = new Rectangle (-1, -1, 5, 5);
// act
Rectangle result = Rectangle.Union (rect1, rect2);
// assert
Assert.Equal (new Rectangle (-2, -2, 6, 6), result);
}
[Fact]
public void Union_PositiveCoords ()
{
var r1 = new Rectangle (0, 0, 2, 2);
var r2 = new Rectangle (1, 1, 2, 2);
Rectangle result = Rectangle.Union (r1, r2);
Assert.Equal (new Rectangle (0, 0, 3, 3), result);
}
[Fact]
public void Union_RectangleAHasNegativeCoordinates_ReturnsCombinedRectangle ()
{
// arrange
var rect1 = new Rectangle (-2, -2, 5, 5);
var rect2 = new Rectangle (3, 3, 4, 4);
// act
Rectangle result = Rectangle.Union (rect1, rect2);
// assert
Assert.Equal (new Rectangle (-2, -2, 9, 9), result);
}
[Fact]
public void Union_RectangleAIsLarger_ReturnsA ()
{
// arrange
var rect1 = new Rectangle (1, 1, 6, 6);
var rect2 = new Rectangle (2, 2, 3, 3);
// act
Rectangle result = Rectangle.Union (rect1, rect2);
// assert
Assert.Equal (new Rectangle (1, 1, 6, 6), result);
}
[Fact]
public void Union_RectangleBIsLarger_ReturnsB ()
{
// arrange
var rect1 = new Rectangle (1, 1, 3, 3);
var rect2 = new Rectangle (2, 2, 6, 6);
// act
Rectangle result = Rectangle.Union (rect1, rect2);
// assert
Assert.Equal (new Rectangle (1, 1, 7, 7), result);
}
[Fact]
public void Union_RectanglesDoNotOverlap_ReturnsCombinedRectangle ()
{
// arrange
var rect1 = new Rectangle (1, 1, 3, 3);
var rect2 = new Rectangle (5, 5, 3, 3);
// act
Rectangle result = Rectangle.Union (rect1, rect2);
// assert
Assert.Equal (new Rectangle (1, 1, 7, 7), result);
}
[Fact]
public void Union_RectanglesOverlap_ReturnsCombinedRectangle ()
{
// arrange
var rect1 = new Rectangle (1, 1, 3, 3);
var rect2 = new Rectangle (2, 2, 3, 3);
// act
Rectangle result = Rectangle.Union (rect1, rect2);
// assert
Assert.Equal (new Rectangle (1, 1, 4, 4), result);
}
[Fact]
public void Union_RectanglesTouchHorizontally_ReturnsCombinedRectangle ()
{
// arrange
var rect1 = new Rectangle (1, 1, 3, 3);
var rect2 = new Rectangle (4, 2, 3, 3);
// act
Rectangle result = Rectangle.Union (rect1, rect2);
// assert
Assert.Equal (new Rectangle (1, 1, 6, 4), result);
}
[Fact]
public void Union_RectanglesTouchVertically_ReturnsCombinedRectangle ()
{
// arrange
var rect1 = new Rectangle (1, 1, 3, 3);
var rect2 = new Rectangle (2, 4, 3, 3);
// act
Rectangle result = Rectangle.Union (rect1, rect2);
// assert
Assert.Equal (new Rectangle (1, 1, 4, 6), result);
}
[Fact]
public void Union_SameRectangle ()
{
var r1 = new Rectangle (0, 0, 2, 2);
var r2 = new Rectangle (0, 0, 2, 2);
Rectangle result = Rectangle.Union (r1, r2);
Assert.Equal (new Rectangle (0, 0, 2, 2), result);
}
[Theory]
[CombinatorialData]
public void ToString_ReturnsExpectedString ([CombinatorialValues(-1,0,1)]int x, [CombinatorialValues(-1,0,1)]int y, [CombinatorialValues(1,10)]int width, [CombinatorialValues(1,10)]int height)
{
Rectangle r = new (x, y, width, height);
string expectedString = $"{{X={r.X},Y={r.Y},Width={r.Width},Height={r.Height}}}";
Assert.Equal (expectedString, r.ToString ());
}
}