Merge pull request #34 from BDisp/tig_v2_2432-DimAuto

Fix unit test error.
This commit is contained in:
Tig
2024-05-03 11:15:41 -06:00
committed by GitHub
4 changed files with 455 additions and 50 deletions

View File

@@ -199,8 +199,6 @@ public class JustifierTests (ITestOutputHelper output)
[InlineData (Justification.FirstLeftRestRight, new [] { 10, 20, 30 }, 101, new [] { 0, 50, 71 })]
[InlineData (Justification.FirstLeftRestRight, new [] { 10, 20, 30, 40 }, 101, new [] { 0, 10, 30, 61 })]
[InlineData (Justification.FirstLeftRestRight, new [] { 10, 20, 30, 40, 50 }, 151, new [] { 0, 10, 30, 60, 101 })]
[InlineData (Justification.FirstLeftRestRight, new [] { 3, 3, 3 }, 21, new [] { 0, 14, 18 })]
[InlineData (Justification.FirstLeftRestRight, new [] { 3, 4, 5 }, 21, new [] { 0, 11, 16 })]
public void TestJustifications_PutSpaceBetweenItems (Justification justification, int [] sizes, int containerSize, int [] expected)
{
int [] positions = new Justifier

View File

@@ -4083,6 +4083,75 @@ B")]
//FIXED: Expand this test to cover Vertical Alignment as well
[SetupFakeDriver]
[Theory]
// LeftRight_TopBottom
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Top, TextDirection.LeftRight_TopBottom, @"
0 2 4**
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 2 4", TextAlignment.Right, VerticalTextAlignment.Top, TextDirection.LeftRight_TopBottom, @"
**0 2 4
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 2 4", TextAlignment.Centered, VerticalTextAlignment.Top, TextDirection.LeftRight_TopBottom, @"
*0 2 4*
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 2 4", TextAlignment.Justified, VerticalTextAlignment.Top, TextDirection.LeftRight_TopBottom, @"
0 2 4
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 你 4", TextAlignment.Left, VerticalTextAlignment.Top, TextDirection.LeftRight_TopBottom, @"
0 你 4*
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 你 4", TextAlignment.Right, VerticalTextAlignment.Top, TextDirection.LeftRight_TopBottom, @"
*0 你 4
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 你 4", TextAlignment.Centered, VerticalTextAlignment.Top, TextDirection.LeftRight_TopBottom, @"
0 你 4*
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 你 4", TextAlignment.Justified, VerticalTextAlignment.Top, TextDirection.LeftRight_TopBottom, @"
0 你 4
*******
*******
*******
*******
*******
*******")]
// LeftRight_BottomTop
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Top, TextDirection.LeftRight_BottomTop, @"
0 2 4**
*******
@@ -4149,6 +4218,208 @@ B")]
*******
*******")]
// RightLeft_TopBottom
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Top, TextDirection.RightLeft_TopBottom, @"
4 2 0**
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 2 4", TextAlignment.Right, VerticalTextAlignment.Top, TextDirection.RightLeft_TopBottom, @"
**4 2 0
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 2 4", TextAlignment.Centered, VerticalTextAlignment.Top, TextDirection.RightLeft_TopBottom, @"
*4 2 0*
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 2 4", TextAlignment.Justified, VerticalTextAlignment.Top, TextDirection.RightLeft_TopBottom, @"
4 2 0
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 你 4", TextAlignment.Left, VerticalTextAlignment.Top, TextDirection.RightLeft_TopBottom, @"
4 你 0*
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 你 4", TextAlignment.Right, VerticalTextAlignment.Top, TextDirection.RightLeft_TopBottom, @"
*4 你 0
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 你 4", TextAlignment.Centered, VerticalTextAlignment.Top, TextDirection.RightLeft_TopBottom, @"
4 你 0*
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 你 4", TextAlignment.Justified, VerticalTextAlignment.Top, TextDirection.RightLeft_TopBottom, @"
4 你 0
*******
*******
*******
*******
*******
*******")]
// RightLeft_BottomTop
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Top, TextDirection.RightLeft_BottomTop, @"
4 2 0**
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 2 4", TextAlignment.Right, VerticalTextAlignment.Top, TextDirection.RightLeft_BottomTop, @"
**4 2 0
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 2 4", TextAlignment.Centered, VerticalTextAlignment.Top, TextDirection.RightLeft_BottomTop, @"
*4 2 0*
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 2 4", TextAlignment.Justified, VerticalTextAlignment.Top, TextDirection.RightLeft_BottomTop, @"
4 2 0
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 你 4", TextAlignment.Left, VerticalTextAlignment.Top, TextDirection.RightLeft_BottomTop, @"
4 你 0*
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 你 4", TextAlignment.Right, VerticalTextAlignment.Top, TextDirection.RightLeft_BottomTop, @"
*4 你 0
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 你 4", TextAlignment.Centered, VerticalTextAlignment.Top, TextDirection.RightLeft_BottomTop, @"
4 你 0*
*******
*******
*******
*******
*******
*******")]
[InlineData ("0 你 4", TextAlignment.Justified, VerticalTextAlignment.Top, TextDirection.RightLeft_BottomTop, @"
4 你 0
*******
*******
*******
*******
*******
*******")]
// TopBottom_LeftRight
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Top, TextDirection.TopBottom_LeftRight, @"
0******
******
2******
******
4******
*******
*******")]
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Bottom, TextDirection.TopBottom_LeftRight, @"
*******
*******
0******
******
2******
******
4******")]
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Middle, TextDirection.TopBottom_LeftRight, @"
*******
0******
******
2******
******
4******
*******")]
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Justified, TextDirection.TopBottom_LeftRight, @"
0******
******
******
2******
******
******
4******")]
[InlineData ("0 你 4", TextAlignment.Left, VerticalTextAlignment.Top, TextDirection.TopBottom_LeftRight, @"
0******
******
你*****
******
4******
*******
*******")]
[InlineData ("0 你 4", TextAlignment.Left, VerticalTextAlignment.Bottom, TextDirection.TopBottom_LeftRight, @"
*******
*******
0******
******
你*****
******
4******")]
[InlineData ("0 你 4", TextAlignment.Left, VerticalTextAlignment.Middle, TextDirection.TopBottom_LeftRight, @"
*******
0******
******
你*****
******
4******
*******")]
[InlineData ("0 你 4", TextAlignment.Left, VerticalTextAlignment.Justified, TextDirection.TopBottom_LeftRight, @"
0******
******
******
你*****
******
******
4******")]
// TopBottom_RightLeft
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Top, TextDirection.TopBottom_RightLeft, @"
0******
******
@@ -4214,6 +4485,140 @@ B")]
******
******
4******")]
// BottomTop_LeftRight
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Top, TextDirection.BottomTop_LeftRight, @"
4******
******
2******
******
0******
*******
*******")]
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Bottom, TextDirection.BottomTop_LeftRight, @"
*******
*******
4******
******
2******
******
0******")]
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Middle, TextDirection.BottomTop_LeftRight, @"
*******
4******
******
2******
******
0******
*******")]
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Justified, TextDirection.BottomTop_LeftRight, @"
4******
******
******
2******
******
******
0******")]
[InlineData ("0 你 4", TextAlignment.Left, VerticalTextAlignment.Top, TextDirection.BottomTop_LeftRight, @"
4******
******
你*****
******
0******
*******
*******")]
[InlineData ("0 你 4", TextAlignment.Left, VerticalTextAlignment.Bottom, TextDirection.BottomTop_LeftRight, @"
*******
*******
4******
******
你*****
******
0******")]
[InlineData ("0 你 4", TextAlignment.Left, VerticalTextAlignment.Middle, TextDirection.BottomTop_LeftRight, @"
*******
4******
******
你*****
******
0******
*******")]
[InlineData ("0 你 4", TextAlignment.Left, VerticalTextAlignment.Justified, TextDirection.BottomTop_LeftRight, @"
4******
******
******
你*****
******
******
0******")]
// BottomTop_RightLeft
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Top, TextDirection.BottomTop_RightLeft, @"
4******
******
2******
******
0******
*******
*******")]
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Bottom, TextDirection.BottomTop_RightLeft, @"
*******
*******
4******
******
2******
******
0******")]
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Middle, TextDirection.BottomTop_RightLeft, @"
*******
4******
******
2******
******
0******
*******")]
[InlineData ("0 2 4", TextAlignment.Left, VerticalTextAlignment.Justified, TextDirection.BottomTop_RightLeft, @"
4******
******
******
2******
******
******
0******")]
[InlineData ("0 你 4", TextAlignment.Left, VerticalTextAlignment.Top, TextDirection.BottomTop_RightLeft, @"
4******
******
你*****
******
0******
*******
*******")]
[InlineData ("0 你 4", TextAlignment.Left, VerticalTextAlignment.Bottom, TextDirection.BottomTop_RightLeft, @"
*******
*******
4******
******
你*****
******
0******")]
[InlineData ("0 你 4", TextAlignment.Left, VerticalTextAlignment.Middle, TextDirection.BottomTop_RightLeft, @"
*******
4******
******
你*****
******
0******
*******")]
[InlineData ("0 你 4", TextAlignment.Left, VerticalTextAlignment.Justified, TextDirection.BottomTop_RightLeft, @"
4******
******
******
你*****
******
******
0******")]
public void Draw_Text_Alignment (string text, TextAlignment horizontalTextAlignment, VerticalTextAlignment verticalTextAlignment, TextDirection textDirection, string expectedText)
{
TextFormatter tf = new ()

View File

@@ -102,5 +102,7 @@ public class TitleTests
┌┤Hello World├──────────┐
│This text will incremen│
└───────────────────────┘", _output);
top.Dispose ();
}
}

View File

@@ -215,66 +215,66 @@ public class LabelTests
Assert.Equal (KeyCode.Null, label.HotKey);
}
// [Fact]
// [AutoInitShutdown]
// public void Label_Draw_Fill_Remaining_AutoSize_True ()
// {
// var label = new Label { Text = "This label needs to be cleared before rewritten." };
[Fact]
[AutoInitShutdown]
public void Label_Draw_Fill_Remaining_AutoSize_False ()
{
Size tfSize = new Size (80, 1);
// var tf1 = new TextFormatter { Direction = TextDirection.LeftRight_TopBottom };
// tf1.Text = "This TextFormatter (tf1) without fill will not be cleared on rewritten.";
// Size tf1Size = tf1.Size;
var label = new Label { Text = "This label needs to be cleared before rewritten.", Width = tfSize.Width, Height = tfSize.Height };
// var tf2 = new TextFormatter { Direction = TextDirection.LeftRight_TopBottom, FillRemaining = true };
// tf2.Text = "This TextFormatter (tf2) with fill will be cleared on rewritten.";
// Size tf2Size = tf2.Size;
var tf1 = new TextFormatter { Direction = TextDirection.LeftRight_TopBottom, Size = tfSize };
tf1.Text = "This TextFormatter (tf1) without fill will not be cleared on rewritten.";
// var top = new Toplevel ();
// top.Add (label);
// Application.Begin (top);
var tf2 = new TextFormatter { Direction = TextDirection.LeftRight_TopBottom, Size = tfSize, FillRemaining = true };
tf2.Text = "This TextFormatter (tf2) with fill will be cleared on rewritten.";
// Assert.True (label.AutoSize);
var top = new Toplevel ();
top.Add (label);
Application.Begin (top);
// tf1.Draw (
// new Rectangle (new Point (0, 1), tf1Size),
// label.GetNormalColor (),
// label.ColorScheme.HotNormal
// );
Assert.False (label.TextFormatter.AutoSize);
Assert.False (tf1.AutoSize);
Assert.False (tf2.AutoSize);
Assert.False (label.TextFormatter.FillRemaining);
Assert.False (tf1.FillRemaining);
Assert.True (tf2.FillRemaining);
// tf2.Draw (new Rectangle (new Point (0, 2), tf2Size), label.GetNormalColor (), label.ColorScheme.HotNormal);
tf1.Draw (new Rectangle (new Point (0, 1), tfSize), label.GetNormalColor (), label.ColorScheme.HotNormal);
// TestHelpers.AssertDriverContentsWithFrameAre (
// @"
//This label needs to be cleared before rewritten.
//This TextFormatter (tf1) without fill will not be cleared on rewritten.
//This TextFormatter (tf2) with fill will be cleared on rewritten.
//",
// _output
// );
tf2.Draw (new Rectangle (new Point (0, 2), tfSize), label.GetNormalColor (), label.ColorScheme.HotNormal);
// label.Text = "This label is rewritten.";
// label.Draw ();
TestHelpers.AssertDriverContentsWithFrameAre (
@"
This label needs to be cleared before rewritten.
This TextFormatter (tf1) without fill will not be cleared on rewritten.
This TextFormatter (tf2) with fill will be cleared on rewritten. ",
_output
);
// tf1.Text = "This TextFormatter (tf1) is rewritten.";
Assert.False (label.NeedsDisplay);
Assert.False (label.LayoutNeeded);
Assert.False (label.SubViewNeedsDisplay);
label.Text = "This label is rewritten.";
Assert.True (label.NeedsDisplay);
Assert.True (label.LayoutNeeded);
Assert.False (label.SubViewNeedsDisplay);
label.Draw ();
// tf1.Draw (
// new Rectangle (new Point (0, 1), tf1Size),
// label.GetNormalColor (),
// label.ColorScheme.HotNormal
// );
tf1.Text = "This TextFormatter (tf1) is rewritten.";
tf1.Draw (new Rectangle (new Point (0, 1), tfSize), label.GetNormalColor (), label.ColorScheme.HotNormal);
// tf2.Text = "This TextFormatter (tf2) is rewritten.";
// tf2.Draw (new Rectangle (new Point (0, 2), tf2Size), label.GetNormalColor (), label.ColorScheme.HotNormal);
tf2.Text = "This TextFormatter (tf2) is rewritten.";
tf2.Draw (new Rectangle (new Point (0, 2), tfSize), label.GetNormalColor (), label.ColorScheme.HotNormal);
// TestHelpers.AssertDriverContentsWithFrameAre (
// @"
//This label is rewritten.
//This TextFormatter (tf1) is rewritten.will not be cleared on rewritten.
//This TextFormatter (tf2) is rewritten.
//",
// _output
// );
// }
TestHelpers.AssertDriverContentsWithFrameAre (
@"
This label is rewritten.
This TextFormatter (tf1) is rewritten.will not be cleared on rewritten.
This TextFormatter (tf2) is rewritten. ",
_output
);
}
[Fact]
[AutoInitShutdown]