From 999c59909b524eae3f17b1d2e5103f28d9b87a28 Mon Sep 17 00:00:00 2001 From: Salvage <29021710+Saalvage@users.noreply.github.com> Date: Wed, 21 Sep 2022 19:03:11 +0200 Subject: [PATCH] Fix @ being used in figlet font --- .../Widgets/Figlet/FigletFontParser.cs | 2 +- test/Spectre.Console.Tests/Data/poison.flf | 1239 +++++++++++++++++ ...am.Output_fontfile=poison.flf.verified.txt | 12 + ...Output_fontfile=starwars.flf.verified.txt} | 0 .../Spectre.Console.Tests.csproj | 2 + .../Unit/Widgets/FigletTests.cs | 11 +- 6 files changed, 1261 insertions(+), 5 deletions(-) create mode 100644 test/Spectre.Console.Tests/Data/poison.flf create mode 100644 test/Spectre.Console.Tests/Expectations/Widgets/Figlet/Load_Stream.Output_fontfile=poison.flf.verified.txt rename test/Spectre.Console.Tests/Expectations/Widgets/Figlet/{Load_Stream.Output.verified.txt => Load_Stream.Output_fontfile=starwars.flf.verified.txt} (100%) diff --git a/src/Spectre.Console/Widgets/Figlet/FigletFontParser.cs b/src/Spectre.Console/Widgets/Figlet/FigletFontParser.cs index 43496c1..0ec352b 100644 --- a/src/Spectre.Console/Widgets/Figlet/FigletFontParser.cs +++ b/src/Spectre.Console/Widgets/Figlet/FigletFontParser.cs @@ -35,7 +35,7 @@ internal static class FigletFontParser throw new InvalidOperationException("Unknown index for FIGlet character"); } - buffer.Add(line.Replace(header.Hardblank, ' ').ReplaceExact("@", string.Empty)); + buffer.Add(line.Replace(header.Hardblank, ' ').TrimEnd('@')); if (line.EndsWith("@@", StringComparison.Ordinal)) { diff --git a/test/Spectre.Console.Tests/Data/poison.flf b/test/Spectre.Console.Tests/Data/poison.flf new file mode 100644 index 0000000..b5a2103 --- /dev/null +++ b/test/Spectre.Console.Tests/Data/poison.flf @@ -0,0 +1,1239 @@ +flf2a$ 12 10 20 -1 14 +poison.flf composed into figlet by Vinney Thai +poison font (numbers & puntuation marks) composed by Vinney Thai +poison font (uppercase characters) composed David Issel +date: Oct 23, 1994 +Explanation of first line: +flf2 - "magic number" for file identification +a - should always be `a', for now +$ - the "hardblank" -- prints as a blank, but can't be smushed +12 - height of a character +10 - height of a character, not including descenders +20 - max line length (excluding comment lines) + a fudge factor +-1 - default smushmode for this font (like "-m 0" on command line) +15 - number of comment lines + +$ $@ +$ $@ +$ $@ +$ $@ +$ $@ +$ $@ +$ $@ +$ $@ +$ $@ +$ $@ +$ $@ +$ $@@ + @ +@@@ $@ +@@@ $@ +@@! $@ +!@ $@ +@!@ $@ +!!! $@ + @ +:!: $@ + :: $@ +::: $@ + @@ + @ +@@@ @@@ $@ +@@@ @@@ $@ +@@! @@! $@ + @! @! $@ + $ $ @ + $ $ @ + $ $ @ + $ $ @ + $ $ @ + $ $ @ + @@ + @ + @@@ @@@ $ @ + @@@ @@@ $ @ +@!@@!@!@@@@! $@ +!@!@!!@@!@!@ $@ + @!@ !@! $ @ + !!! !!! $ @ +!:!!:!:!!!!: $@ +:!:!::!!:!:! $@ + :: ::: $ @ + : : : $ @ + @@ + @ + @@ $ @ + @@@@@@@@@ $@ +!@@!@@!@@! $@ +!@! !@ $ @ +!!!@@!!!! $ @ + !!!@@@!!! $@ + !: !:! $@ +!:!!:!: :! $@ +: :::: :: $ @ + :: $ @ + @@ + @ +@@@@ @@@ $@ +@@@@ @@@ $ @ +@@!@ @@! $ @ + !@! $ @ + @!! $ @ + !!! $ @ + !!: $ @ + ::! ::!: $@ + :: ::: $@ +: : : :: $@ + @@ + @ + @@@@@ $ @ + @@@@@@@ $ @ +@@! @@@ $ @ + !@ @!@ $ @ + @!@!@ $ @ + !!!@ !!! $@ + !!:!!:!!: $ @ +:!: !:!: $ @ +::: :::::: $ @ + ::: :: ::: $@ + @@ + @ +@@@ $@ + @@ $@ +@! $ @ + $ @ + $ @ + $ @ + $ @ + $ @ + $ @ + $ @ + @@ + @ + @@@ $@ + @@@ $ @ + @@! $ @ +!@! $ @ +!!@ $ @ +!!! $ @ +!!: $ @ + :!: $ @ + :: $ @ + : $@ + @@ + @ +@@@ $ @ + @@@ $ @ + @@! $ @ + !@! $@ + !!@ $@ + !!! $@ + !!: $@ + :!: $ @ + :: $ @ +: $ @ + @@ + @ + @ +@@! !@@ $@ + !@! @!! $ @ + !@@!@! $ @ +@!@!@!!@!! $@ + !: :!! $ @ + :!: !:! $ @ +::: ::: $@ + @ + @ + @@ + @ + @ + @ + @@! $ @ + !@! $ @ +@!@!@!@!@ $@ +!!!@!@!!! $@ + !!: $ @ + :!: $ @ + @ + @ + @@ + @ + @ + @ + @ + @ + @ + @ + @ +:!: $@ + :: $@ +:: $ @ + @@ + @ + @ + @ + @ + @ +@!@!@!@!@ $@ +!!!@!@!!! $@ + @ + @ + @ + @ + @@ + @ + @ + @ + @ + @ + @ + @ + @ +:!: $@ +::: $@ +::: $@ + @@ + @ + @@@ $@ + @@@ $ @ + @@! $ @ + !@! $ @ + @!! $ @ + !!! $ @ + !!: $ @ + ::! $ @ + :: $ @ +: : $ @ + @@ + @ + @@@@@@@@ $ @ +@@@@@@@@@@ $@ +@@! @@@@ $@ +!@! @!@!@ $@ +@!@ @! !@! $@ +!@!!! !!! $@ +!!:! !!! $@ +:!: !:! $@ +::::::: :: $@ + : : : : $ @ + @@ + @ + @@@ $@ + @@@@ $@ +@@@!! $@ + !@! $@ + @!@ $@ + !@! $@ + !!: $@ + :!: $@ + ::: $@ + :: $@ + @@ + @ + @@@@@@ $ @ +@@@@@@@@ $@ + @@@ $@ + @!@ $ @ + !!@ $ @ + !!: $ @ + !:! $ @ +:!: $ @ +:: ::::: $@ +:: : ::: $@ + @@ + @ +@@@@@@ $ @ +@@@@@@@ $@ + @@@ $@ + @!@ $@ +@!@!!@ $ @ +!!@!@! $ @ + !!: $@ + :!: $@ +:: :::: $@ + : : : $ @ + @@ + @ + @@@ $ @ + @@@@ $ @ + @@!@! $ @ + !@!!@! $ @ + @!! @!! $ @ +!!! !@! $ @ +:!!:!:!!: $@ +!:::!!::: $@ + ::: $ @ + ::: $ @ + @@ + @ +@@@@@@@ $@ +@@@@@@@ $@ +!@@ $ @ +!@! $ @ +!!@@!! $ @ +@!!@!!! $@ + !:! $@ + !:! $@ +:::: :: $@ +:: : : $ @ + @@ + @ + @@@@@@ $@ + @@@@@@@ $@ +!@@ $ @ +!@! $ @ +!!@@!@! $ @ +@!!@!!!! $@ +!:! !:! $@ +:!: !:! $@ +:::: ::: $@ + :: : : $ @ + @@ + @ +@@@@@@@@ $@ +@@@@@@@@ $@ + @@! $@ + !@! $ @ + @!! $ @ + !!! $ @ + !!: $ @ +:!: $ @ + :: $ @ +: : $ @ + @@ + @ + @@@@@@ $ @ +@@@@@@@@ $@ +@@! @@@ $@ +!@! @!@ $@ + !@!!@! $ @ + !!@!!! $ @ +!!: !!! $@ +:!: !:! $@ +::::: :: $@ + : : : $ @ + @@ + @ + @@@@@@ $ @ +@@@@@@@@ $@ +@@! @@@ $@ +!@! @!@ $@ +!!@!!@!! $@ + !!@!!! $@ + !!! $@ + !:! $@ +::::: :: $@ + : : : $ @ + @@ + @ + @ + @ + @ +@!@ $@ +!@! $@ +!:! $@ + $$ @ +:!: $@ +::: $@ +::: $@ + @@ + @ + @ + @ + @ +@!@ @ +!@! $@ +:!: $@ + $$ @ +:!: $@ + :: $@ +:: $ @ + @@ + @ + @@@ $@ + @@@ $ @ + @@! $ @ + !@! $ @ +!!@ $ @ +!!! $ @ + !!: $ @ + :!: $ @ + :: $ @ + : $ @ + @@ + @ + @ + @ + @ +!@!!@!!@! $@ +@!@!@!@!@ $@ + $ $ @ +!!:!!::!! $@ +::!:!:!!: $@ + @ + @ + @@ + @ +@@@ $ @ + @@@ $ @ + @@! $ @ + !@! $ @ + !!@ $@ + !!! $@ + !!: $ @ + :!: $ @ + :: $ @ +: $ @ + @@ + @ + @@@@@@ $ @ +@@@@@@@@ $@ +@@! @@@ $@ + @!@ $ @ + !!@ $ @ + !!@ $ @ + @ + !:! $ @ + :: $ @ + ::: $ @ + @@ + @ + @@@@@@@@ $ @ +@@@@@@@@@@ $@ +@@! @@@ $@ +!@! @!@!!@ $@ +@!@ !@@!@! $@ +!@! @@!@!! $@ +!!: !:!! $ @ +:!: $ @ +:::::::::: $@ + : : :: : $ @ + @@ + @ + @@@@@@ $ @ +@@@@@@@@ $@ +@@! @@@ $@ +!@! @!@ $@ +@!@!@!@! $@ +!!!@!!!! $@ +!!: !!! $@ +:!: !:! $@ +:: ::: $@ + : : : $@ + @@ + @ +@@@@@@@ $ @ +@@@@@@@@ $@ +@@! @@@ $@ +!@ @!@ $@ +@!@!@!@ $ @ +!!!@!!!! $@ +!!: !!! $@ +:!: !:! $@ + :: :::: $@ +:: : :: $ @ + @@ + @ + @@@@@@@ $@ +@@@@@@@@ $@ +!@@ $ @ +!@! $ @ +!@! $ @ +!!! $ @ +:!! $ @ +:!: $ @ + ::: ::: $@ + :: :: : $@ + @@ + @ +@@@@@@@ $ @ +@@@@@@@@ $@ +@@! @@@ $@ +!@! @!@ $@ +@!@ !@! $@ +!@! !!! $@ +!!: !!! $@ +:!: !:! $@ + :::: :: $@ +:: : : $ @ + @@ + @ +@@@@@@@@ $@ +@@@@@@@@ $@ +@@! $ @ +!@! $ @ +@!!!:! $ @ +!!!!!: $ @ +!!: $ @ +:!: $ @ + :: :::: $@ +: :: :: $ @ + @@ + @ +@@@@@@@@ $@ +@@@@@@@@ $@ +@@! $ @ +!@! $ @ +@!!!:! $ @ +!!!!!: $ @ +!!: $ @ +:!: $ @ + :: $ @ + : $ @ + @@ + @ + @@@@@@@@ $@ +@@@@@@@@@ $@ +!@@ $ @ +!@! $ @ +!@! @!@!@ $@ +!!! !!@!! $@ +:!! !!: $@ +:!: !:: $@ + ::: :::: $@ + :: :: : $ @ + @@ + @ +@@@ @@@ $@ +@@@ @@@ $@ +@@! @@@ $@ +!@! @!@ $@ +@!@!@!@! $@ +!!!@!!!! $@ +!!: !!! $@ +:!: !:! $@ +:: ::: $@ + : : : $@ + @@ + @ +@@@ $@ +@@@ $@ +@@! $@ +!@! $@ +!!@ $@ +!!! $@ +!!: $@ +:!: $@ + :: $@ +: $ @ + @@ + @ + @@@ $@ + @@@ $@ + @@! $@ + !@! $@ + !!@ $@ + !!! $@ + !!: $@ +!!: :!: $@ +::: : :: $@ + : ::: $ @ + @@ + @ +@@@ @@@ $@ +@@@ @@@ $@ +@@! !@@ $@ +!@! @!! $@ +@!@@!@! $ @ +!!@!!! $ @ +!!: :!! $ @ +:!: !:! $@ + :: ::: $@ + : ::: $@ + @@ + @ +@@@ $@ +@@@ $@ +@@! $@ +!@! $@ +@!! $@ +!!! $@ +!!: $@ + :!: $@ + :: :::: $@ +: :: : : $@ + @@ + @ +@@@@@@@@@@ $ @ +@@@@@@@@@@@ $@ +@@! @@! @@! $@ +!@! !@! !@! $@ +@!! !!@ @!@ $@ +!@! ! !@! $@ +!!: !!: $@ +:!: :!: $@ +::: :: $ @ + : : $ @ + @@ + @ +@@@ @@@ $@ +@@@@ @@@ $@ +@@!@!@@@ $@ +!@!!@!@! $@ +@!@ !!@! $@ +!@! !!! $@ +!!: !!! $@ +:!: !:! $@ + :: :: $@ +:: : $ @ + @@ + @ + @@@@@@ $ @ +@@@@@@@@ $@ +@@! @@@ $@ +!@! @!@ $@ +@!@ !@! $@ +!@! !!! $@ +!!: !!! $@ +:!: !:! $@ +::::: :: $@ + : : : $ @ + @@ + @ +@@@@@@@ $ @ +@@@@@@@@ $@ +@@! @@@ $@ +!@! @!@ $@ +@!@@!@! $ @ +!!@!!! $ @ +!!: $ @ +:!: $ @ + :: $ @ + : $ @ + @@ + @ + @@@@@@ $ @ +@@@@@@@@ $ @ +@@! @@@ $ @ +!@! @!@ $ @ +@!@ !@! $ @ +!@! !!! $ @ +!!:!!:!: $ @ +:!: :!: $ @ +::::: :! $ @ + : : ::: $@ + @@ + @ +@@@@@@@ $ @ +@@@@@@@@ $@ +@@! @@@ $@ +!@! @!@ $@ +@!@!!@! $ @ +!!@!@! $ @ +!!: :!! $ @ +:!: !:! $@ +:: ::: $@ + : : : $@ + @@ + @ + @@@@@@ $ @ +@@@@@@@ $ @ +!@@ $ @ +!@! $ @ +!!@@!! $ @ + !!@!!! $ @ + !:! $@ + !:! $ @ +:::: :: $ @ +:: : : $ @ + @@ + @ +@@@@@@@ $@ +@@@@@@@ $@ + @@! $ @ + !@! $ @ + @!! $ @ + !!! $ @ + !!: $ @ + :!: $ @ + :: $ @ + : $ @ + @@ + @ +@@@ @@@ $@ +@@@ @@@ $@ +@@! @@@ $@ +!@! @!@ $@ +@!@ !@! $@ +!@! !!! $@ +!!: !!! $@ +:!: !:! $@ +::::: :: $@ + : : : $ @ + @@ + @ +@@@ @@@ $@ +@@@ @@@ $@ +@@! @@@ $@ +!@! @!@ $@ +@!@ !@! $@ +!@! !!! $@ +:!: !!: $@ + ::!!:! $ @ + :::: $ @ + : $ @ + @@ + @ +@@@ @@@ @@@ $@ +@@@ @@@ @@@ $@ +@@! @@! @@! $@ +!@! !@! !@! $@ +@!! !!@ @!@ $@ +!@! !!! !@! $@ +!!: !!: !!: $@ +:!: :!: :!: $@ + :::: :: ::: $ @ + :: : : : $ @ + @@ + @ +@@@ @@@ $@ +@@@ @@@ $@ +@@! !@@ $@ +!@! @!! $@ + !@@!@! $ @ + @!!! $ @ + !: :!! $ @ +:!: !:! $@ + :: ::: $@ + : :: $ @ + @@ + @ +@@@ @@@ $@ +@@@ @@@ $@ +@@! !@@ $@ +!@! @!! $@ + !@!@! $ @ + @!!! $ @ + !!: $ @ + :!: $ @ + :: $ @ + : $ @ + @@ + @ +@@@@@@@@ $@ +@@@@@@@@ $@ + @@! $@ + !@! $ @ + @!! $ @ + !!! $ @ + !!: $ @ +:!: $ @ + :: :::: $@ +: :: : : $@ + @@ + @ +@@@@@ $@ +@@@@@ $@ +@@! $ @ +!@! $ @ +@!@ $ @ +!!! $ @ +!!: $ @ +:!: $ @ +::::: $@ + : : $ @ + @@ + @ + @@@ $ @ + @@@ $ @ + @@! $ @ + !@! $ @ + @!! $ @ + !!! $ @ + !!: $ @ + ::! $ @ + :: $ @ + : : $@ + @@ + @ +@@@@@ $@ +@@@@@ $@ + @@! $@ + !@! $@ + @!@ $@ + !!! $@ + !!: $@ + :!: $@ +::::: $@ + : : $ @ + @@ + @ + @@@@@ $ @ + @@@@ @@@@ $ @ + @!@! @!@! $@ + $ $ @ + $ $ @ + $ $ @ + $ $ @ + $ $ @ + $ $ @ + $ $ @ + @@ + @ + $@ + $@ + $@ + $@ + $@ + $@ + $@ + $@ +::::::::::::: $@ +::::::::::::: $@ + @@ + @ +@@@ $@ +@@ $ @ + @! $@ + $ @ + $ @ + $ @ + $ @ + $ @ + $ @ + $ @ + @@ + @ + @@@@@@ $ @ +@@@@@@@@ $@ +@@! @@@ $@ +!@! @!@ $@ +@!@!@!@! $@ +!!!@!!!! $@ +!!: !!! $@ +:!: !:! $@ +:: ::: $@ + : : : $@ + @@ + @ +@@@@@@@ $ @ +@@@@@@@@ $@ +@@! @@@ $@ +!@ @!@ $@ +@!@!@!@ $ @ +!!!@!!!! $@ +!!: !!! $@ +:!: !:! $@ + :: :::: $@ +:: : :: $ @ + @@ + @ + @@@@@@@ $@ +@@@@@@@@ $@ +!@@ $ @ +!@! $ @ +!@! $ @ +!!! $ @ +:!! $ @ +:!: $ @ + ::: ::: $@ + :: :: : $@ + @@ + @ +@@@@@@@ $ @ +@@@@@@@@ $@ +@@! @@@ $@ +!@! @!@ $@ +@!@ !@! $@ +!@! !!! $@ +!!: !!! $@ +:!: !:! $@ + :::: :: $@ +:: : : $ @ + @@ + @ +@@@@@@@@ $@ +@@@@@@@@ $@ +@@! $ @ +!@! $ @ +@!!!:! $ @ +!!!!!: $ @ +!!: $ @ +:!: $ @ + :: :::: $@ +: :: :: $ @ + @@ + @ +@@@@@@@@ $@ +@@@@@@@@ $@ +@@! $ @ +!@! $ @ +@!!!:! $ @ +!!!!!: $ @ +!!: $ @ +:!: $ @ + :: $ @ + : $ @ + @@ + @ + @@@@@@@@ $@ +@@@@@@@@@ $@ +!@@ $ @ +!@! $ @ +!@! @!@!@ $@ +!!! !!@!! $@ +:!! !!: $@ +:!: !:: $@ + ::: :::: $@ + :: :: : $ @ + @@ + @ +@@@ @@@ $@ +@@@ @@@ $@ +@@! @@@ $@ +!@! @!@ $@ +@!@!@!@! $@ +!!!@!!!! $@ +!!: !!! $@ +:!: !:! $@ +:: ::: $@ + : : : $@ + @@ + @ +@@@ $@ +@@@ $@ +@@! $@ +!@! $@ +!!@ $@ +!!! $@ +!!: $@ +:!: $@ + :: $@ +: $ @ + @@ + @ + @@@ $@ + @@@ $@ + @@! $@ + !@! $@ + !!@ $@ + !!! $@ + !!: $@ +!!: :!: $@ +::: : :: $@ + : ::: $ @ + @@ + @ +@@@ @@@ $@ +@@@ @@@ $@ +@@! !@@ $@ +!@! @!! $@ +@!@@!@! $ @ +!!@!!! $ @ +!!: :!! $ @ +:!: !:! $@ + :: ::: $@ + : ::: $@ + @@ + @ +@@@ $@ +@@@ $@ +@@! $@ +!@! $@ +@!! $@ +!!! $@ +!!: $@ + :!: $@ + :: :::: $@ +: :: : : $@ + @@ + @ +@@@@@@@@@@ $ @ +@@@@@@@@@@@ $@ +@@! @@! @@! $@ +!@! !@! !@! $@ +@!! !!@ @!@ $@ +!@! ! !@! $@ +!!: !!: $@ +:!: :!: $@ +::: :: $ @ + : : $ @ + @@ + @ +@@@ @@@ $@ +@@@@ @@@ $@ +@@!@!@@@ $@ +!@!!@!@! $@ +@!@ !!@! $@ +!@! !!! $@ +!!: !!! $@ +:!: !:! $@ + :: :: $@ +:: : $ @ + @@ + @ + @@@@@@ $ @ +@@@@@@@@ $@ +@@! @@@ $@ +!@! @!@ $@ +@!@ !@! $@ +!@! !!! $@ +!!: !!! $@ +:!: !:! $@ +::::: :: $@ + : : : $ @ + @@ + @ +@@@@@@@ $ @ +@@@@@@@@ $@ +@@! @@@ $@ +!@! @!@ $@ +@!@@!@! $ @ +!!@!!! $ @ +!!: $ @ +:!: $ @ + :: $ @ + : $ @ + @@ + @ + @@@@@@ $ @ +@@@@@@@@ $ @ +@@! @@@ $ @ +!@! @!@ $ @ +@!@ !@! $ @ +!@! !!! $ @ +!!:!!:!: $ @ +:!: :!: $ @ +::::: :! $ @ + : : ::: $@ + @@ + @ +@@@@@@@ $ @ +@@@@@@@@ $@ +@@! @@@ $@ +!@! @!@ $@ +@!@!!@! $ @ +!!@!@! $ @ +!!: :!! $ @ +:!: !:! $@ +:: ::: $@ + : : : $@ + @@ + @ + @@@@@@ $ @ +@@@@@@@ $ @ +!@@ $ @ +!@! $ @ +!!@@!! $ @ + !!@!!! $ @ + !:! $@ + !:! $ @ +:::: :: $ @ +:: : : $ @ + @@ + @ +@@@@@@@ $@ +@@@@@@@ $@ + @@! $ @ + !@! $ @ + @!! $ @ + !!! $ @ + !!: $ @ + :!: $ @ + :: $ @ + : $ @ + @@ + @ +@@@ @@@ $@ +@@@ @@@ $@ +@@! @@@ $@ +!@! @!@ $@ +@!@ !@! $@ +!@! !!! $@ +!!: !!! $@ +:!: !:! $@ +::::: :: $@ + : : : $ @ + @@ + @ +@@@ @@@ $@ +@@@ @@@ $@ +@@! @@@ $@ +!@! @!@ $@ +@!@ !@! $@ +!@! !!! $@ +:!: !!: $@ + ::!!:! $ @ + :::: $ @ + : $ @ + @@ + @ +@@@ @@@ @@@ $@ +@@@ @@@ @@@ $@ +@@! @@! @@! $@ +!@! !@! !@! $@ +@!! !!@ @!@ $@ +!@! !!! !@! $@ +!!: !!: !!: $@ +:!: :!: :!: $@ + :::: :: ::: $ @ + :: : : : $ @ + @@ + @ +@@@ @@@ $@ +@@@ @@@ $@ +@@! !@@ $@ +!@! @!! $@ + !@@!@! $ @ + @!!! $ @ + !: :!! $ @ +:!: !:! $@ + :: ::: $@ + : :: $ @ + @@ + @ +@@@ @@@ $@ +@@@ @@@ $@ +@@! !@@ $@ +!@! @!! $@ + !@!@! $ @ + @!!! $ @ + !!: $ @ + :!: $ @ + :: $ @ + : $ @ + @@ + @ +@@@@@@@@ $@ +@@@@@@@@ $@ + @@! $@ + !@! $ @ + @!! $ @ + !!! $ @ + !!: $ @ +:!: $ @ + :: :::: $@ +: :: : : $@ + @@ + @ + @@@@@ $@ + @@@@@ $@ + @@! $ @ + !@! $ @ +@!@ $ @ +!!! $ @ + !!: $ @ + :!: $ @ + ::::: $@ + : : $ @ + @@ + @ +@@@ $@ +@@@ $@ +@@! $@ +!@! $@ + $$ @ +!!! $@ +!!: $@ +:!: $@ +:: $ @ + : $ @ + @@ + @ +@@@@@ $ @ +@@@@@ $ @ + @@! $ @ + !@! $ @ + @!@ $@ + !!! $@ + !!: $ @ + :!: $ @ +::::: $ @ + : : $ @ + @@ + @ + @ + !@! @!@ $@ + @!@!@!@!@!@ $ @ +!!! !@! $ @ + $ $ @ + $ $ @ + $ $ @ + $ $ @ + $ $ @ + $ $ @ + @@ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @@ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @@ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @@ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @@ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @@ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @@ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @ + @@ diff --git a/test/Spectre.Console.Tests/Expectations/Widgets/Figlet/Load_Stream.Output_fontfile=poison.flf.verified.txt b/test/Spectre.Console.Tests/Expectations/Widgets/Figlet/Load_Stream.Output_fontfile=poison.flf.verified.txt new file mode 100644 index 0000000..1235447 --- /dev/null +++ b/test/Spectre.Console.Tests/Expectations/Widgets/Figlet/Load_Stream.Output_fontfile=poison.flf.verified.txt @@ -0,0 +1,12 @@ + +@@@@@@@ @@@@@@ @@@@@@@ @@@@@@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@@@@ @@@@@@ @@@ @@@ @@@@@@@@ @@@@@@@ @@@@@@@@ +@@@@@@@@ @@@@@@@@ @@@@@@@ @@@@@@@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@@@@@@ @@@@@@@ @@@ @@@ @@@@@@@@ @@@@@@@@ @@@@@@@@ +@@! @@@ @@! @@@ @@! @@! @@@ @@! @@! !@@ @@! @@! @@! @@! @@@ !@@ @@! @@@ @@! @@! @@@ @@! +!@! @!@ !@! @!@ !@! !@! @!@ !@! !@! @!! !@! !@! !@! !@! @!@ !@! !@! @!@ !@! !@! @!@ !@! +@!@@!@! @!@!@!@! @!! @!@!!@! !!@ @!@@!@! @!! !!@ @!@ @!@!@!@! !!@@!! @!@!@!@! @!!!:! @!@!!@! @!!!:! +!!@!!! !!!@!!!! !!! !!@!@! !!! !!@!!! !@! !!! !@! !!!@!!!! !!@!!! !!!@!!!! !!!!!: !!@!@! !!!!!: +!!: !!: !!! !!: !!: :!! !!: !!: :!! !!: !!: !!: !!: !!! !:! !!: !!! !!: !!: :!! !!: +:!: :!: !:! :!: :!: !:! :!: :!: !:! :!: :!: :!: :!: !:! !:! :!: !:! :!: :!: !:! :!: + :: :: ::: :: :: ::: :: :: ::: :::: :: ::: :: ::: :::: :: :: ::: :: :::: :: ::: :: :::: + : : : : : : : : : : ::: :: : : : : : : :: : : : : : : :: :: : : : : :: :: + diff --git a/test/Spectre.Console.Tests/Expectations/Widgets/Figlet/Load_Stream.Output.verified.txt b/test/Spectre.Console.Tests/Expectations/Widgets/Figlet/Load_Stream.Output_fontfile=starwars.flf.verified.txt similarity index 100% rename from test/Spectre.Console.Tests/Expectations/Widgets/Figlet/Load_Stream.Output.verified.txt rename to test/Spectre.Console.Tests/Expectations/Widgets/Figlet/Load_Stream.Output_fontfile=starwars.flf.verified.txt diff --git a/test/Spectre.Console.Tests/Spectre.Console.Tests.csproj b/test/Spectre.Console.Tests/Spectre.Console.Tests.csproj index b3aa85b..c450b02 100644 --- a/test/Spectre.Console.Tests/Spectre.Console.Tests.csproj +++ b/test/Spectre.Console.Tests/Spectre.Console.Tests.csproj @@ -9,6 +9,8 @@ + + diff --git a/test/Spectre.Console.Tests/Unit/Widgets/FigletTests.cs b/test/Spectre.Console.Tests/Unit/Widgets/FigletTests.cs index 7df7b48..8453901 100644 --- a/test/Spectre.Console.Tests/Unit/Widgets/FigletTests.cs +++ b/test/Spectre.Console.Tests/Unit/Widgets/FigletTests.cs @@ -4,20 +4,23 @@ namespace Spectre.Console.Tests.Unit; [ExpectationPath("Widgets/Figlet")] public sealed class FigletTests { - [Fact] + [Theory] + [InlineData("starwars.flf")] + [InlineData("poison.flf")] [Expectation("Load_Stream")] - public async Task Should_Load_Font_From_Stream() + public async Task Should_Load_Font_From_Stream(string fontfile) { // Given var console = new TestConsole().Width(180); - var font = FigletFont.Load(EmbeddedResourceReader.LoadResourceStream("Spectre.Console.Tests/Data/starwars.flf")); + var font = FigletFont.Load(EmbeddedResourceReader.LoadResourceStream($"Spectre.Console.Tests/Data/{fontfile}")); var text = new FigletText(font, "Patrik was here"); // When console.Write(text); // Then - await Verifier.Verify(console.Output); + await Verifier.Verify(console.Output) + .UseParameters(fontfile); } [Fact]