Files
Terminal.Gui/Tests/UnitTestsParallelizable/Text/TextFormatterJustificationTests.cs
BDisp 1bd5e3761a Fixes #4391. Weird situation where ForceDriver with args doesn't persists on open scenario (#4395)
* Fixes #4391. Weird situation where ForceDriver with args doesn't persists on open scenario

* Prevents change ForceDriver if app it's already initialized and allowing also initialize with driver instead of only by driver name.

* Add dispose into FakeDriverBase and reset ForceDriver

* Moving test to Application folder

* Fix unit test

* Remove unnecessary GlobalTestSetup

* Add GC.SuppressFinalize

* Revert "Add GC.SuppressFinalize"

This reverts commit 2bd7cd7791.

* Reset MouseGrabView

* Avoid CI warnings

* Add GlobalTestSetup in all test that use Application

* Trying to fix unit test

* Reverting scope changes

* Remove UICatalog testing Run

* Force re-run CI test

* Fix merge errors

* Fix ansi for the red background color code

* Fix more ANSI color code unit tests

---------

Co-authored-by: Tig <tig@users.noreply.github.com>
2025-11-19 21:05:05 -05:00

3430 lines
67 KiB
C#

using System.Text;
using UnitTests;
using Xunit.Abstractions;
// Alias Console to MockConsole so we don't accidentally use Console
namespace UnitTests_Parallelizable.TextTests;
public class TextFormatterJustificationTests (ITestOutputHelper output) : FakeDriverBase
{
[Theory]
// Horizontal with Alignment.Start
// LeftRight_TopBottom
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Start,
TextDirection.LeftRight_TopBottom,
@"
0 2 4**
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Start,
TextDirection.LeftRight_TopBottom,
@"
**0 2 4
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Start,
TextDirection.LeftRight_TopBottom,
@"
*0 2 4*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Start,
TextDirection.LeftRight_TopBottom,
@"
0 2 4
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Start,
TextDirection.LeftRight_TopBottom,
@"
0 你 4*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Start,
TextDirection.LeftRight_TopBottom,
@"
*0 你 4
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Start,
TextDirection.LeftRight_TopBottom,
@"
0 你 4*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Start,
TextDirection.LeftRight_TopBottom,
@"
0 你 4
*******
*******
*******
*******
*******
*******")]
// LeftRight_BottomTop
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Start,
TextDirection.LeftRight_BottomTop,
@"
0 2 4**
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Start,
TextDirection.LeftRight_BottomTop,
@"
**0 2 4
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Start,
TextDirection.LeftRight_BottomTop,
@"
*0 2 4*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Start,
TextDirection.LeftRight_BottomTop,
@"
0 2 4
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Start,
TextDirection.LeftRight_BottomTop,
@"
0 你 4*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Start,
TextDirection.LeftRight_BottomTop,
@"
*0 你 4
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Start,
TextDirection.LeftRight_BottomTop,
@"
0 你 4*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Start,
TextDirection.LeftRight_BottomTop,
@"
0 你 4
*******
*******
*******
*******
*******
*******")]
// RightLeft_TopBottom
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Start,
TextDirection.RightLeft_TopBottom,
@"
4 2 0**
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Start,
TextDirection.RightLeft_TopBottom,
@"
**4 2 0
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Start,
TextDirection.RightLeft_TopBottom,
@"
*4 2 0*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Start,
TextDirection.RightLeft_TopBottom,
@"
4 2 0
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Start,
TextDirection.RightLeft_TopBottom,
@"
4 你 0*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Start,
TextDirection.RightLeft_TopBottom,
@"
*4 你 0
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Start,
TextDirection.RightLeft_TopBottom,
@"
4 你 0*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Start,
TextDirection.RightLeft_TopBottom,
@"
4 你 0
*******
*******
*******
*******
*******
*******")]
// RightLeft_BottomTop
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Start,
TextDirection.RightLeft_BottomTop,
@"
4 2 0**
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Start,
TextDirection.RightLeft_BottomTop,
@"
**4 2 0
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Start,
TextDirection.RightLeft_BottomTop,
@"
*4 2 0*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Start,
TextDirection.RightLeft_BottomTop,
@"
4 2 0
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Start,
TextDirection.RightLeft_BottomTop,
@"
4 你 0*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Start,
TextDirection.RightLeft_BottomTop,
@"
*4 你 0
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Start,
TextDirection.RightLeft_BottomTop,
@"
4 你 0*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Start,
TextDirection.RightLeft_BottomTop,
@"
4 你 0
*******
*******
*******
*******
*******
*******")]
// Horizontal with Alignment.End
// LeftRight_TopBottom
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.End,
TextDirection.LeftRight_TopBottom,
@"
*******
*******
*******
*******
*******
*******
0 2 4**")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.End,
TextDirection.LeftRight_TopBottom,
@"
*******
*******
*******
*******
*******
*******
**0 2 4")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.End,
TextDirection.LeftRight_TopBottom,
@"
*******
*******
*******
*******
*******
*******
*0 2 4*")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.End,
TextDirection.LeftRight_TopBottom,
@"
*******
*******
*******
*******
*******
*******
0 2 4")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.End,
TextDirection.LeftRight_TopBottom,
@"
*******
*******
*******
*******
*******
*******
0 你 4*")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.End,
TextDirection.LeftRight_TopBottom,
@"
*******
*******
*******
*******
*******
*******
*0 你 4")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.End,
TextDirection.LeftRight_TopBottom,
@"
*******
*******
*******
*******
*******
*******
0 你 4*")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.End,
TextDirection.LeftRight_TopBottom,
@"
*******
*******
*******
*******
*******
*******
0 你 4")]
// LeftRight_BottomTop
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.End,
TextDirection.LeftRight_BottomTop,
@"
*******
*******
*******
*******
*******
*******
0 2 4**")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.End,
TextDirection.LeftRight_BottomTop,
@"
*******
*******
*******
*******
*******
*******
**0 2 4")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.End,
TextDirection.LeftRight_BottomTop,
@"
*******
*******
*******
*******
*******
*******
*0 2 4*")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.End,
TextDirection.LeftRight_BottomTop,
@"
*******
*******
*******
*******
*******
*******
0 2 4")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.End,
TextDirection.LeftRight_BottomTop,
@"
*******
*******
*******
*******
*******
*******
0 你 4*")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.End,
TextDirection.LeftRight_BottomTop,
@"
*******
*******
*******
*******
*******
*******
*0 你 4")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.End,
TextDirection.LeftRight_BottomTop,
@"
*******
*******
*******
*******
*******
*******
0 你 4*")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.End,
TextDirection.LeftRight_BottomTop,
@"
*******
*******
*******
*******
*******
*******
0 你 4")]
// RightLeft_TopBottom
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.End,
TextDirection.RightLeft_TopBottom,
@"
*******
*******
*******
*******
*******
*******
4 2 0**")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.End,
TextDirection.RightLeft_TopBottom,
@"
*******
*******
*******
*******
*******
*******
**4 2 0")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.End,
TextDirection.RightLeft_TopBottom,
@"
*******
*******
*******
*******
*******
*******
*4 2 0*")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.End,
TextDirection.RightLeft_TopBottom,
@"
*******
*******
*******
*******
*******
*******
4 2 0")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.End,
TextDirection.RightLeft_TopBottom,
@"
*******
*******
*******
*******
*******
*******
4 你 0*")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.End,
TextDirection.RightLeft_TopBottom,
@"
*******
*******
*******
*******
*******
*******
*4 你 0")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.End,
TextDirection.RightLeft_TopBottom,
@"
*******
*******
*******
*******
*******
*******
4 你 0*")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.End,
TextDirection.RightLeft_TopBottom,
@"
*******
*******
*******
*******
*******
*******
4 你 0")]
// RightLeft_BottomTop
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.End,
TextDirection.RightLeft_BottomTop,
@"
*******
*******
*******
*******
*******
*******
4 2 0**")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.End,
TextDirection.RightLeft_BottomTop,
@"
*******
*******
*******
*******
*******
*******
**4 2 0")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.End,
TextDirection.RightLeft_BottomTop,
@"
*******
*******
*******
*******
*******
*******
*4 2 0*")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.End,
TextDirection.RightLeft_BottomTop,
@"
*******
*******
*******
*******
*******
*******
4 2 0")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.End,
TextDirection.RightLeft_BottomTop,
@"
*******
*******
*******
*******
*******
*******
4 你 0*")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.End,
TextDirection.RightLeft_BottomTop,
@"
*******
*******
*******
*******
*******
*******
*4 你 0")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.End,
TextDirection.RightLeft_BottomTop,
@"
*******
*******
*******
*******
*******
*******
4 你 0*")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.End,
TextDirection.RightLeft_BottomTop,
@"
*******
*******
*******
*******
*******
*******
4 你 0")]
// Horizontal with alignment.Centered
// LeftRight_TopBottom
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Center,
TextDirection.LeftRight_TopBottom,
@"
*******
*******
*******
0 2 4**
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Center,
TextDirection.LeftRight_TopBottom,
@"
*******
*******
*******
**0 2 4
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Center,
TextDirection.LeftRight_TopBottom,
@"
*******
*******
*******
*0 2 4*
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Center,
TextDirection.LeftRight_TopBottom,
@"
*******
*******
*******
0 2 4
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Center,
TextDirection.LeftRight_TopBottom,
@"
*******
*******
*******
0 你 4*
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Center,
TextDirection.LeftRight_TopBottom,
@"
*******
*******
*******
*0 你 4
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Center,
TextDirection.LeftRight_TopBottom,
@"
*******
*******
*******
0 你 4*
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Center,
TextDirection.LeftRight_TopBottom,
@"
*******
*******
*******
0 你 4
*******
*******
*******")]
// LeftRight_BottomTop
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Center,
TextDirection.LeftRight_BottomTop,
@"
*******
*******
*******
0 2 4**
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Center,
TextDirection.LeftRight_BottomTop,
@"
*******
*******
*******
**0 2 4
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Center,
TextDirection.LeftRight_BottomTop,
@"
*******
*******
*******
*0 2 4*
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Center,
TextDirection.LeftRight_BottomTop,
@"
*******
*******
*******
0 2 4
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Center,
TextDirection.LeftRight_BottomTop,
@"
*******
*******
*******
0 你 4*
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Center,
TextDirection.LeftRight_BottomTop,
@"
*******
*******
*******
*0 你 4
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Center,
TextDirection.LeftRight_BottomTop,
@"
*******
*******
*******
0 你 4*
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Center,
TextDirection.LeftRight_BottomTop,
@"
*******
*******
*******
0 你 4
*******
*******
*******")]
// RightLeft_TopBottom
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Center,
TextDirection.RightLeft_TopBottom,
@"
*******
*******
*******
4 2 0**
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Center,
TextDirection.RightLeft_TopBottom,
@"
*******
*******
*******
**4 2 0
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Center,
TextDirection.RightLeft_TopBottom,
@"
*******
*******
*******
*4 2 0*
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Center,
TextDirection.RightLeft_TopBottom,
@"
*******
*******
*******
4 2 0
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Center,
TextDirection.RightLeft_TopBottom,
@"
*******
*******
*******
4 你 0*
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Center,
TextDirection.RightLeft_TopBottom,
@"
*******
*******
*******
*4 你 0
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Center,
TextDirection.RightLeft_TopBottom,
@"
*******
*******
*******
4 你 0*
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Center,
TextDirection.RightLeft_TopBottom,
@"
*******
*******
*******
4 你 0
*******
*******
*******")]
// RightLeft_BottomTop
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Center,
TextDirection.RightLeft_BottomTop,
@"
*******
*******
*******
4 2 0**
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Center,
TextDirection.RightLeft_BottomTop,
@"
*******
*******
*******
**4 2 0
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Center,
TextDirection.RightLeft_BottomTop,
@"
*******
*******
*******
*4 2 0*
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Center,
TextDirection.RightLeft_BottomTop,
@"
*******
*******
*******
4 2 0
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Center,
TextDirection.RightLeft_BottomTop,
@"
*******
*******
*******
4 你 0*
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Center,
TextDirection.RightLeft_BottomTop,
@"
*******
*******
*******
*4 你 0
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Center,
TextDirection.RightLeft_BottomTop,
@"
*******
*******
*******
4 你 0*
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Center,
TextDirection.RightLeft_BottomTop,
@"
*******
*******
*******
4 你 0
*******
*******
*******")]
// Horizontal with alignment.Justified
// LeftRight_TopBottom
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Fill,
TextDirection.LeftRight_TopBottom,
@"
0 2 4**
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Fill,
TextDirection.LeftRight_TopBottom,
@"
**0 2 4
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Fill,
TextDirection.LeftRight_TopBottom,
@"
*0 2 4*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Fill,
TextDirection.LeftRight_TopBottom,
@"
0 2 4
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Fill,
TextDirection.LeftRight_TopBottom,
@"
0 你 4*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Fill,
TextDirection.LeftRight_TopBottom,
@"
*0 你 4
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Fill,
TextDirection.LeftRight_TopBottom,
@"
0 你 4*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Fill,
TextDirection.LeftRight_TopBottom,
@"
0 你 4
*******
*******
*******
*******
*******
*******")]
// LeftRight_BottomTop
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Fill,
TextDirection.LeftRight_BottomTop,
@"
0 2 4**
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Fill,
TextDirection.LeftRight_BottomTop,
@"
**0 2 4
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Fill,
TextDirection.LeftRight_BottomTop,
@"
*0 2 4*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Fill,
TextDirection.LeftRight_BottomTop,
@"
0 2 4
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Fill,
TextDirection.LeftRight_BottomTop,
@"
0 你 4*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Fill,
TextDirection.LeftRight_BottomTop,
@"
*0 你 4
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Fill,
TextDirection.LeftRight_BottomTop,
@"
0 你 4*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Fill,
TextDirection.LeftRight_BottomTop,
@"
0 你 4
*******
*******
*******
*******
*******
*******")]
// RightLeft_TopBottom
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Fill,
TextDirection.RightLeft_TopBottom,
@"
4 2 0**
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Fill,
TextDirection.RightLeft_TopBottom,
@"
**4 2 0
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Fill,
TextDirection.RightLeft_TopBottom,
@"
*4 2 0*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Fill,
TextDirection.RightLeft_TopBottom,
@"
4 2 0
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Fill,
TextDirection.RightLeft_TopBottom,
@"
4 你 0*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Fill,
TextDirection.RightLeft_TopBottom,
@"
*4 你 0
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Fill,
TextDirection.RightLeft_TopBottom,
@"
4 你 0*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Fill,
TextDirection.RightLeft_TopBottom,
@"
4 你 0
*******
*******
*******
*******
*******
*******")]
// RightLeft_BottomTop
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Fill,
TextDirection.RightLeft_BottomTop,
@"
4 2 0**
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Fill,
TextDirection.RightLeft_BottomTop,
@"
**4 2 0
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Fill,
TextDirection.RightLeft_BottomTop,
@"
*4 2 0*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Fill,
TextDirection.RightLeft_BottomTop,
@"
4 2 0
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Fill,
TextDirection.RightLeft_BottomTop,
@"
4 你 0*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Fill,
TextDirection.RightLeft_BottomTop,
@"
*4 你 0
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Fill,
TextDirection.RightLeft_BottomTop,
@"
4 你 0*
*******
*******
*******
*******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Fill,
TextDirection.RightLeft_BottomTop,
@"
4 你 0
*******
*******
*******
*******
*******
*******")]
// Vertical with alignment.Left
// TopBottom_LeftRight
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Start,
TextDirection.TopBottom_LeftRight,
@"
0******
******
2******
******
4******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.End,
TextDirection.TopBottom_LeftRight,
@"
*******
*******
0******
******
2******
******
4******")]
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Center,
TextDirection.TopBottom_LeftRight,
@"
*******
0******
******
2******
******
4******
*******")]
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Fill,
TextDirection.TopBottom_LeftRight,
@"
0******
******
******
2******
******
******
4******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Start,
TextDirection.TopBottom_LeftRight,
@"
0******
******
你*****
******
4******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.End,
TextDirection.TopBottom_LeftRight,
@"
*******
*******
0******
******
你*****
******
4******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Center,
TextDirection.TopBottom_LeftRight,
@"
*******
0******
******
你*****
******
4******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Fill,
TextDirection.TopBottom_LeftRight,
@"
0******
******
******
你*****
******
******
4******")]
// TopBottom_RightLeft
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Start,
TextDirection.TopBottom_RightLeft,
@"
0******
******
2******
******
4******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.End,
TextDirection.TopBottom_RightLeft,
@"
*******
*******
0******
******
2******
******
4******")]
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Center,
TextDirection.TopBottom_RightLeft,
@"
*******
0******
******
2******
******
4******
*******")]
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Fill,
TextDirection.TopBottom_RightLeft,
@"
0******
******
******
2******
******
******
4******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Start,
TextDirection.TopBottom_RightLeft,
@"
0******
******
你*****
******
4******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.End,
TextDirection.TopBottom_RightLeft,
@"
*******
*******
0******
******
你*****
******
4******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Center,
TextDirection.TopBottom_RightLeft,
@"
*******
0******
******
你*****
******
4******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Fill,
TextDirection.TopBottom_RightLeft,
@"
0******
******
******
你*****
******
******
4******")]
// BottomTop_LeftRight
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Start,
TextDirection.BottomTop_LeftRight,
@"
4******
******
2******
******
0******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.End,
TextDirection.BottomTop_LeftRight,
@"
*******
*******
4******
******
2******
******
0******")]
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Center,
TextDirection.BottomTop_LeftRight,
@"
*******
4******
******
2******
******
0******
*******")]
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Fill,
TextDirection.BottomTop_LeftRight,
@"
4******
******
******
2******
******
******
0******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Start,
TextDirection.BottomTop_LeftRight,
@"
4******
******
你*****
******
0******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.End,
TextDirection.BottomTop_LeftRight,
@"
*******
*******
4******
******
你*****
******
0******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Center,
TextDirection.BottomTop_LeftRight,
@"
*******
4******
******
你*****
******
0******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Fill,
TextDirection.BottomTop_LeftRight,
@"
4******
******
******
你*****
******
******
0******")]
// BottomTop_RightLeft
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Start,
TextDirection.BottomTop_RightLeft,
@"
4******
******
2******
******
0******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.End,
TextDirection.BottomTop_RightLeft,
@"
*******
*******
4******
******
2******
******
0******")]
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Center,
TextDirection.BottomTop_RightLeft,
@"
*******
4******
******
2******
******
0******
*******")]
[InlineData (
"0 2 4",
Alignment.Start,
Alignment.Fill,
TextDirection.BottomTop_RightLeft,
@"
4******
******
******
2******
******
******
0******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Start,
TextDirection.BottomTop_RightLeft,
@"
4******
******
你*****
******
0******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.End,
TextDirection.BottomTop_RightLeft,
@"
*******
*******
4******
******
你*****
******
0******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Center,
TextDirection.BottomTop_RightLeft,
@"
*******
4******
******
你*****
******
0******
*******")]
[InlineData (
"0 你 4",
Alignment.Start,
Alignment.Fill,
TextDirection.BottomTop_RightLeft,
@"
4******
******
******
你*****
******
******
0******")]
// Vertical with alignment.Right
// TopBottom_LeftRight
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Start,
TextDirection.TopBottom_LeftRight,
@"
******0
******
******2
******
******4
*******
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.End,
TextDirection.TopBottom_LeftRight,
@"
*******
*******
******0
******
******2
******
******4")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Center,
TextDirection.TopBottom_LeftRight,
@"
*******
******0
******
******2
******
******4
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Fill,
TextDirection.TopBottom_LeftRight,
@"
******0
******
******
******2
******
******
******4")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Start,
TextDirection.TopBottom_LeftRight,
@"
*****0*
***** *
*****你
***** *
*****4*
*******
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.End,
TextDirection.TopBottom_LeftRight,
@"
*******
*******
*****0*
***** *
*****你
***** *
*****4*")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Center,
TextDirection.TopBottom_LeftRight,
@"
*******
*****0*
***** *
*****你
***** *
*****4*
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Fill,
TextDirection.TopBottom_LeftRight,
@"
*****0*
***** *
***** *
*****你
***** *
***** *
*****4*")]
// TopBottom_RightLeft
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Start,
TextDirection.TopBottom_RightLeft,
@"
******0
******
******2
******
******4
*******
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.End,
TextDirection.TopBottom_RightLeft,
@"
*******
*******
******0
******
******2
******
******4")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Center,
TextDirection.TopBottom_RightLeft,
@"
*******
******0
******
******2
******
******4
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Fill,
TextDirection.TopBottom_RightLeft,
@"
******0
******
******
******2
******
******
******4")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Start,
TextDirection.TopBottom_RightLeft,
@"
*****0*
***** *
*****你
***** *
*****4*
*******
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.End,
TextDirection.TopBottom_RightLeft,
@"
*******
*******
*****0*
***** *
*****你
***** *
*****4*")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Center,
TextDirection.TopBottom_RightLeft,
@"
*******
*****0*
***** *
*****你
***** *
*****4*
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Fill,
TextDirection.TopBottom_RightLeft,
@"
*****0*
***** *
***** *
*****你
***** *
***** *
*****4*")]
// BottomTop_LeftRight
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Start,
TextDirection.BottomTop_LeftRight,
@"
******4
******
******2
******
******0
*******
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.End,
TextDirection.BottomTop_LeftRight,
@"
*******
*******
******4
******
******2
******
******0")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Center,
TextDirection.BottomTop_LeftRight,
@"
*******
******4
******
******2
******
******0
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Fill,
TextDirection.BottomTop_LeftRight,
@"
******4
******
******
******2
******
******
******0")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Start,
TextDirection.BottomTop_LeftRight,
@"
*****4*
***** *
*****你
***** *
*****0*
*******
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.End,
TextDirection.BottomTop_LeftRight,
@"
*******
*******
*****4*
***** *
*****你
***** *
*****0*")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Center,
TextDirection.BottomTop_LeftRight,
@"
*******
*****4*
***** *
*****你
***** *
*****0*
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Fill,
TextDirection.BottomTop_LeftRight,
@"
*****4*
***** *
***** *
*****你
***** *
***** *
*****0*")]
// BottomTop_RightLeft
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Start,
TextDirection.BottomTop_RightLeft,
@"
******4
******
******2
******
******0
*******
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.End,
TextDirection.BottomTop_RightLeft,
@"
*******
*******
******4
******
******2
******
******0")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Center,
TextDirection.BottomTop_RightLeft,
@"
*******
******4
******
******2
******
******0
*******")]
[InlineData (
"0 2 4",
Alignment.End,
Alignment.Fill,
TextDirection.BottomTop_RightLeft,
@"
******4
******
******
******2
******
******
******0")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Start,
TextDirection.BottomTop_RightLeft,
@"
*****4*
***** *
*****你
***** *
*****0*
*******
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.End,
TextDirection.BottomTop_RightLeft,
@"
*******
*******
*****4*
***** *
*****你
***** *
*****0*")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Center,
TextDirection.BottomTop_RightLeft,
@"
*******
*****4*
***** *
*****你
***** *
*****0*
*******")]
[InlineData (
"0 你 4",
Alignment.End,
Alignment.Fill,
TextDirection.BottomTop_RightLeft,
@"
*****4*
***** *
***** *
*****你
***** *
***** *
*****0*")]
// Vertical with alignment.Centered
// TopBottom_LeftRight
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Start,
TextDirection.TopBottom_LeftRight,
@"
***0***
*** ***
***2***
*** ***
***4***
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.End,
TextDirection.TopBottom_LeftRight,
@"
*******
*******
***0***
*** ***
***2***
*** ***
***4***")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Center,
TextDirection.TopBottom_LeftRight,
@"
*******
***0***
*** ***
***2***
*** ***
***4***
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Fill,
TextDirection.TopBottom_LeftRight,
@"
***0***
*** ***
*** ***
***2***
*** ***
*** ***
***4***")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Start,
TextDirection.TopBottom_LeftRight,
@"
**0****
** ****
**你***
** ****
**4****
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.End,
TextDirection.TopBottom_LeftRight,
@"
*******
*******
**0****
** ****
**你***
** ****
**4****")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Center,
TextDirection.TopBottom_LeftRight,
@"
*******
**0****
** ****
**你***
** ****
**4****
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Fill,
TextDirection.TopBottom_LeftRight,
@"
**0****
** ****
** ****
**你***
** ****
** ****
**4****")]
// TopBottom_RightLeft
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Start,
TextDirection.TopBottom_RightLeft,
@"
***0***
*** ***
***2***
*** ***
***4***
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.End,
TextDirection.TopBottom_RightLeft,
@"
*******
*******
***0***
*** ***
***2***
*** ***
***4***")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Center,
TextDirection.TopBottom_RightLeft,
@"
*******
***0***
*** ***
***2***
*** ***
***4***
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Fill,
TextDirection.TopBottom_RightLeft,
@"
***0***
*** ***
*** ***
***2***
*** ***
*** ***
***4***")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Start,
TextDirection.TopBottom_RightLeft,
@"
**0****
** ****
**你***
** ****
**4****
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.End,
TextDirection.TopBottom_RightLeft,
@"
*******
*******
**0****
** ****
**你***
** ****
**4****")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Center,
TextDirection.TopBottom_RightLeft,
@"
*******
**0****
** ****
**你***
** ****
**4****
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Fill,
TextDirection.TopBottom_RightLeft,
@"
**0****
** ****
** ****
**你***
** ****
** ****
**4****")]
// BottomTop_LeftRight
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Start,
TextDirection.BottomTop_LeftRight,
@"
***4***
*** ***
***2***
*** ***
***0***
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.End,
TextDirection.BottomTop_LeftRight,
@"
*******
*******
***4***
*** ***
***2***
*** ***
***0***")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Center,
TextDirection.BottomTop_LeftRight,
@"
*******
***4***
*** ***
***2***
*** ***
***0***
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Fill,
TextDirection.BottomTop_LeftRight,
@"
***4***
*** ***
*** ***
***2***
*** ***
*** ***
***0***")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Start,
TextDirection.BottomTop_LeftRight,
@"
**4****
** ****
**你***
** ****
**0****
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.End,
TextDirection.BottomTop_LeftRight,
@"
*******
*******
**4****
** ****
**你***
** ****
**0****")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Center,
TextDirection.BottomTop_LeftRight,
@"
*******
**4****
** ****
**你***
** ****
**0****
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Fill,
TextDirection.BottomTop_LeftRight,
@"
**4****
** ****
** ****
**你***
** ****
** ****
**0****")]
// BottomTop_RightLeft
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Start,
TextDirection.BottomTop_RightLeft,
@"
***4***
*** ***
***2***
*** ***
***0***
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.End,
TextDirection.BottomTop_RightLeft,
@"
*******
*******
***4***
*** ***
***2***
*** ***
***0***")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Center,
TextDirection.BottomTop_RightLeft,
@"
*******
***4***
*** ***
***2***
*** ***
***0***
*******")]
[InlineData (
"0 2 4",
Alignment.Center,
Alignment.Fill,
TextDirection.BottomTop_RightLeft,
@"
***4***
*** ***
*** ***
***2***
*** ***
*** ***
***0***")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Start,
TextDirection.BottomTop_RightLeft,
@"
**4****
** ****
**你***
** ****
**0****
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.End,
TextDirection.BottomTop_RightLeft,
@"
*******
*******
**4****
** ****
**你***
** ****
**0****")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Center,
TextDirection.BottomTop_RightLeft,
@"
*******
**4****
** ****
**你***
** ****
**0****
*******")]
[InlineData (
"0 你 4",
Alignment.Center,
Alignment.Fill,
TextDirection.BottomTop_RightLeft,
@"
**4****
** ****
** ****
**你***
** ****
** ****
**0****")]
// Vertical with alignment.Justified
// TopBottom_LeftRight
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Start,
TextDirection.TopBottom_LeftRight,
@"
0******
******
2******
******
4******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.End,
TextDirection.TopBottom_LeftRight,
@"
*******
*******
0******
******
2******
******
4******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Center,
TextDirection.TopBottom_LeftRight,
@"
*******
0******
******
2******
******
4******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Fill,
TextDirection.TopBottom_LeftRight,
@"
0******
******
******
2******
******
******
4******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Start,
TextDirection.TopBottom_LeftRight,
@"
0******
******
你*****
******
4******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.End,
TextDirection.TopBottom_LeftRight,
@"
*******
*******
0******
******
你*****
******
4******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Center,
TextDirection.TopBottom_LeftRight,
@"
*******
0******
******
你*****
******
4******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Fill,
TextDirection.TopBottom_LeftRight,
@"
0******
******
******
你*****
******
******
4******")]
// TopBottom_RightLeft
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Start,
TextDirection.TopBottom_RightLeft,
@"
0******
******
2******
******
4******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.End,
TextDirection.TopBottom_RightLeft,
@"
*******
*******
0******
******
2******
******
4******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Center,
TextDirection.TopBottom_RightLeft,
@"
*******
0******
******
2******
******
4******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Fill,
TextDirection.TopBottom_RightLeft,
@"
0******
******
******
2******
******
******
4******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Start,
TextDirection.TopBottom_RightLeft,
@"
0******
******
你*****
******
4******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.End,
TextDirection.TopBottom_RightLeft,
@"
*******
*******
0******
******
你*****
******
4******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Center,
TextDirection.TopBottom_RightLeft,
@"
*******
0******
******
你*****
******
4******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Fill,
TextDirection.TopBottom_RightLeft,
@"
0******
******
******
你*****
******
******
4******")]
// BottomTop_LeftRight
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Start,
TextDirection.BottomTop_LeftRight,
@"
4******
******
2******
******
0******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.End,
TextDirection.BottomTop_LeftRight,
@"
*******
*******
4******
******
2******
******
0******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Center,
TextDirection.BottomTop_LeftRight,
@"
*******
4******
******
2******
******
0******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Fill,
TextDirection.BottomTop_LeftRight,
@"
4******
******
******
2******
******
******
0******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Start,
TextDirection.BottomTop_LeftRight,
@"
4******
******
你*****
******
0******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.End,
TextDirection.BottomTop_LeftRight,
@"
*******
*******
4******
******
你*****
******
0******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Center,
TextDirection.BottomTop_LeftRight,
@"
*******
4******
******
你*****
******
0******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Fill,
TextDirection.BottomTop_LeftRight,
@"
4******
******
******
你*****
******
******
0******")]
// BottomTop_RightLeft
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Start,
TextDirection.BottomTop_RightLeft,
@"
4******
******
2******
******
0******
*******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.End,
TextDirection.BottomTop_RightLeft,
@"
*******
*******
4******
******
2******
******
0******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Center,
TextDirection.BottomTop_RightLeft,
@"
*******
4******
******
2******
******
0******
*******")]
[InlineData (
"0 2 4",
Alignment.Fill,
Alignment.Fill,
TextDirection.BottomTop_RightLeft,
@"
4******
******
******
2******
******
******
0******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Start,
TextDirection.BottomTop_RightLeft,
@"
4******
******
你*****
******
0******
*******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.End,
TextDirection.BottomTop_RightLeft,
@"
*******
*******
4******
******
你*****
******
0******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Center,
TextDirection.BottomTop_RightLeft,
@"
*******
4******
******
你*****
******
0******
*******")]
[InlineData (
"0 你 4",
Alignment.Fill,
Alignment.Fill,
TextDirection.BottomTop_RightLeft,
@"
4******
******
******
你*****
******
******
0******")]
public void Draw_Text_Justification (string text, Alignment horizontalTextAlignment, Alignment alignment, TextDirection textDirection, string expectedText)
{
IDriver driver = CreateFakeDriver ();
TextFormatter tf = new ()
{
Alignment = horizontalTextAlignment,
VerticalAlignment = alignment,
Direction = textDirection,
ConstrainToSize = new (7, 7),
Text = text
};
driver.FillRect (new (0, 0, 7, 7), (Rune)'*');
tf.Draw (driver: driver, screen: new (0, 0, 7, 7), normalColor: Attribute.Default, hotColor: Attribute.Default);
DriverAssert.AssertDriverContentsWithFrameAre (expectedText, output, driver);
}
}