|
@@ -11,6 +11,46 @@ public class ToScreenTests (ITestOutputHelper output)
|
|
{
|
|
{
|
|
private readonly ITestOutputHelper _output = output;
|
|
private readonly ITestOutputHelper _output = output;
|
|
|
|
|
|
|
|
+
|
|
|
|
+ // Test FrameToScreen
|
|
|
|
+ [Theory]
|
|
|
|
+ [InlineData (0, 0, 0, 0)]
|
|
|
|
+ [InlineData (1, 0, 1, 0)]
|
|
|
|
+ [InlineData (0, 1, 0, 1)]
|
|
|
|
+ [InlineData (1, 1, 1, 1)]
|
|
|
|
+ [InlineData (10, 10, 10, 10)]
|
|
|
|
+ public void FrameToScreen_NoSuperView (int frameX, int frameY, int expectedScreenX, int expectedScreenY)
|
|
|
|
+ {
|
|
|
|
+ var view = new View { X = frameX, Y = frameY, Width = 10, Height = 10 };
|
|
|
|
+ var expected = new Rectangle (expectedScreenX, expectedScreenY, 10, 10);
|
|
|
|
+ Rectangle actual = view.FrameToScreen ();
|
|
|
|
+ Assert.Equal (expected, actual);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ [Theory]
|
|
|
|
+ [InlineData (0, 0, 0, 0, 0)]
|
|
|
|
+ [InlineData (1, 0, 0, 1, 1)]
|
|
|
|
+ [InlineData (2, 0, 0, 2, 2)]
|
|
|
|
+ [InlineData (1, 1, 0, 2, 1)]
|
|
|
|
+ [InlineData (1, 0, 1, 1, 2)]
|
|
|
|
+ [InlineData (1, 1, 1, 2, 2)]
|
|
|
|
+ [InlineData (1, 10, 10, 11, 11)]
|
|
|
|
+ public void FrameToScreen_SuperView (
|
|
|
|
+ int superOffset,
|
|
|
|
+ int frameX,
|
|
|
|
+ int frameY,
|
|
|
|
+ int expectedScreenX,
|
|
|
|
+ int expectedScreenY
|
|
|
|
+ )
|
|
|
|
+ {
|
|
|
|
+ var super = new View { X = superOffset, Y = superOffset, Width = 20, Height = 20 };
|
|
|
|
+
|
|
|
|
+ var view = new View { X = frameX, Y = frameY, Width = 10, Height = 10 };
|
|
|
|
+ super.Add (view);
|
|
|
|
+ var expected = new Rectangle (expectedScreenX, expectedScreenY, 10, 10);
|
|
|
|
+ Rectangle actual = view.FrameToScreen ();
|
|
|
|
+ Assert.Equal (expected, actual);
|
|
|
|
+ }
|
|
[Theory]
|
|
[Theory]
|
|
[InlineData (0, 0)]
|
|
[InlineData (0, 0)]
|
|
[InlineData (1, 1)]
|
|
[InlineData (1, 1)]
|
|
@@ -205,14 +245,30 @@ public class ToScreenTests (ITestOutputHelper output)
|
|
Assert.Equal (expectedX, screen.X);
|
|
Assert.Equal (expectedX, screen.X);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // ViewportToScreen tests ----------------------
|
|
|
|
|
|
|
|
+ [Fact]
|
|
|
|
+ public void ViewportToScreen_With_Positive_Viewport_Location ()
|
|
|
|
+ {
|
|
|
|
+ View view = new ()
|
|
|
|
+ {
|
|
|
|
+ Width = 10,
|
|
|
|
+ Height = 10
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ Rectangle testRect = new Rectangle (0, 0, 1, 1);
|
|
|
|
+ Assert.Equal (new Point (0, 0), view.ViewportToScreen (testRect).Location);
|
|
|
|
+ view.Viewport = view.Viewport with { Location = new Point (1, 1) };
|
|
|
|
+ Assert.Equal (new Rectangle (1, 1, 10, 10), view.Viewport);
|
|
|
|
+ Assert.Equal (new Point (1, 1), view.ViewportToScreen (testRect).Location);
|
|
|
|
+ }
|
|
|
|
|
|
[Theory]
|
|
[Theory]
|
|
[InlineData (0, 0, 0)]
|
|
[InlineData (0, 0, 0)]
|
|
[InlineData (1, 0, 1)]
|
|
[InlineData (1, 0, 1)]
|
|
[InlineData (-1, 0, -1)]
|
|
[InlineData (-1, 0, -1)]
|
|
[InlineData (11, 0, 11)]
|
|
[InlineData (11, 0, 11)]
|
|
- public void BoundsToScreen_NoSuperView_WithoutAdornments (int frameX, int boundsX, int expectedX)
|
|
|
|
|
|
+ public void ViewportToScreen_NoSuperView_WithoutAdornments (int frameX, int viewportX, int expectedX)
|
|
{
|
|
{
|
|
// We test with only X because Y is equivalent. Height/Width are irrelevant.
|
|
// We test with only X because Y is equivalent. Height/Width are irrelevant.
|
|
// Arrange
|
|
// Arrange
|
|
@@ -222,7 +278,7 @@ public class ToScreenTests (ITestOutputHelper output)
|
|
view.Frame = frame;
|
|
view.Frame = frame;
|
|
|
|
|
|
// Act
|
|
// Act
|
|
- var screen = view.ViewportToScreen (new (boundsX, 0, 0, 0));
|
|
|
|
|
|
+ var screen = view.ViewportToScreen (new (viewportX, 0, 0, 0));
|
|
|
|
|
|
// Assert
|
|
// Assert
|
|
Assert.Equal (expectedX, screen.X);
|
|
Assert.Equal (expectedX, screen.X);
|
|
@@ -243,7 +299,7 @@ public class ToScreenTests (ITestOutputHelper output)
|
|
[InlineData (1, -1, 1)]
|
|
[InlineData (1, -1, 1)]
|
|
[InlineData (-1, -1, -1)]
|
|
[InlineData (-1, -1, -1)]
|
|
[InlineData (11, -1, 11)]
|
|
[InlineData (11, -1, 11)]
|
|
- public void BoundsToScreen_NoSuperView_WithAdornments (int frameX, int boundsX, int expectedX)
|
|
|
|
|
|
+ public void ViewportToScreen_NoSuperView_WithAdornments (int frameX, int viewportX, int expectedX)
|
|
{
|
|
{
|
|
// We test with only X because Y is equivalent. Height/Width are irrelevant.
|
|
// We test with only X because Y is equivalent. Height/Width are irrelevant.
|
|
// Arrange
|
|
// Arrange
|
|
@@ -254,7 +310,7 @@ public class ToScreenTests (ITestOutputHelper output)
|
|
view.Frame = frame;
|
|
view.Frame = frame;
|
|
|
|
|
|
// Act
|
|
// Act
|
|
- var screen = view.ViewportToScreen (new (boundsX, 0, 0, 0));
|
|
|
|
|
|
+ var screen = view.ViewportToScreen (new (viewportX, 0, 0, 0));
|
|
|
|
|
|
// Assert
|
|
// Assert
|
|
Assert.Equal (expectedX, screen.X);
|
|
Assert.Equal (expectedX, screen.X);
|
|
@@ -275,7 +331,7 @@ public class ToScreenTests (ITestOutputHelper output)
|
|
[InlineData (1, -1, 0)]
|
|
[InlineData (1, -1, 0)]
|
|
[InlineData (-1, -1, -2)]
|
|
[InlineData (-1, -1, -2)]
|
|
[InlineData (11, -1, 10)]
|
|
[InlineData (11, -1, 10)]
|
|
- public void BoundsToScreen_SuperView_WithoutAdornments (int frameX, int boundsX, int expectedX)
|
|
|
|
|
|
+ public void ViewportToScreen_SuperView_WithoutAdornments (int frameX, int viewportX, int expectedX)
|
|
{
|
|
{
|
|
// We test with only X because Y is equivalent. Height/Width are irrelevant.
|
|
// We test with only X because Y is equivalent. Height/Width are irrelevant.
|
|
// Arrange
|
|
// Arrange
|
|
@@ -296,7 +352,7 @@ public class ToScreenTests (ITestOutputHelper output)
|
|
superView.LayoutSubviews ();
|
|
superView.LayoutSubviews ();
|
|
|
|
|
|
// Act
|
|
// Act
|
|
- var screen = view.ViewportToScreen (new (boundsX, 0, 0, 0));
|
|
|
|
|
|
+ var screen = view.ViewportToScreen (new (viewportX, 0, 0, 0));
|
|
|
|
|
|
// Assert
|
|
// Assert
|
|
Assert.Equal (expectedX, screen.X);
|
|
Assert.Equal (expectedX, screen.X);
|
|
@@ -317,7 +373,7 @@ public class ToScreenTests (ITestOutputHelper output)
|
|
[InlineData (1, -1, 1)]
|
|
[InlineData (1, -1, 1)]
|
|
[InlineData (-1, -1, -1)]
|
|
[InlineData (-1, -1, -1)]
|
|
[InlineData (11, -1, 11)]
|
|
[InlineData (11, -1, 11)]
|
|
- public void BoundsToScreen_SuperView_WithAdornments (int frameX, int boundsX, int expectedX)
|
|
|
|
|
|
+ public void ViewportToScreen_SuperView_WithAdornments (int frameX, int viewportX, int expectedX)
|
|
{
|
|
{
|
|
// We test with only X because Y is equivalent. Height/Width are irrelevant.
|
|
// We test with only X because Y is equivalent. Height/Width are irrelevant.
|
|
// Arrange
|
|
// Arrange
|
|
@@ -339,7 +395,7 @@ public class ToScreenTests (ITestOutputHelper output)
|
|
superView.LayoutSubviews ();
|
|
superView.LayoutSubviews ();
|
|
|
|
|
|
// Act
|
|
// Act
|
|
- var screen = view.ViewportToScreen (new (boundsX, 0, 0, 0));
|
|
|
|
|
|
+ var screen = view.ViewportToScreen (new (viewportX, 0, 0, 0));
|
|
|
|
|
|
// Assert
|
|
// Assert
|
|
Assert.Equal (expectedX, screen.X);
|
|
Assert.Equal (expectedX, screen.X);
|
|
@@ -360,7 +416,7 @@ public class ToScreenTests (ITestOutputHelper output)
|
|
[InlineData (1, -1, 0)]
|
|
[InlineData (1, -1, 0)]
|
|
[InlineData (-1, -1, -2)]
|
|
[InlineData (-1, -1, -2)]
|
|
[InlineData (11, -1, 10)]
|
|
[InlineData (11, -1, 10)]
|
|
- public void BoundsToScreen_NestedSuperView_WithoutAdornments (int frameX, int boundsX, int expectedX)
|
|
|
|
|
|
+ public void ViewportToScreen_NestedSuperView_WithoutAdornments (int frameX, int viewportX, int expectedX)
|
|
{
|
|
{
|
|
// We test with only X because Y is equivalent. Height/Width are irrelevant.
|
|
// We test with only X because Y is equivalent. Height/Width are irrelevant.
|
|
// Arrange
|
|
// Arrange
|
|
@@ -391,7 +447,7 @@ public class ToScreenTests (ITestOutputHelper output)
|
|
superView.LayoutSubviews ();
|
|
superView.LayoutSubviews ();
|
|
|
|
|
|
// Act
|
|
// Act
|
|
- var screen = view.ViewportToScreen (new (boundsX, 0, 0, 0));
|
|
|
|
|
|
+ var screen = view.ViewportToScreen (new (viewportX, 0, 0, 0));
|
|
|
|
|
|
// Assert
|
|
// Assert
|
|
Assert.Equal (expectedX, screen.X);
|
|
Assert.Equal (expectedX, screen.X);
|
|
@@ -412,7 +468,7 @@ public class ToScreenTests (ITestOutputHelper output)
|
|
[InlineData (1, -1, 2)]
|
|
[InlineData (1, -1, 2)]
|
|
[InlineData (-1, -1, 0)]
|
|
[InlineData (-1, -1, 0)]
|
|
[InlineData (11, -1, 12)]
|
|
[InlineData (11, -1, 12)]
|
|
- public void BoundsToScreen_NestedSuperView_WithAdornments (int frameX, int boundsX, int expectedX)
|
|
|
|
|
|
+ public void ViewportToScreen_NestedSuperView_WithAdornments (int frameX, int viewportX, int expectedX)
|
|
{
|
|
{
|
|
// We test with only X because Y is equivalent. Height/Width are irrelevant.
|
|
// We test with only X because Y is equivalent. Height/Width are irrelevant.
|
|
// Arrange
|
|
// Arrange
|
|
@@ -445,7 +501,7 @@ public class ToScreenTests (ITestOutputHelper output)
|
|
superView.LayoutSubviews ();
|
|
superView.LayoutSubviews ();
|
|
|
|
|
|
// Act
|
|
// Act
|
|
- var screen = view.ViewportToScreen (new (boundsX, 0, 0, 0));
|
|
|
|
|
|
+ var screen = view.ViewportToScreen (new (viewportX, 0, 0, 0));
|
|
|
|
|
|
// Assert
|
|
// Assert
|
|
Assert.Equal (expectedX, screen.X);
|
|
Assert.Equal (expectedX, screen.X);
|