From f11270f3b5d15a4afe5026efa0c0c5406b85c3d5 Mon Sep 17 00:00:00 2001 From: Serghei Cebotari Date: Fri, 11 Aug 2023 10:09:15 +0300 Subject: Move IOTester class --- Codeforces.Test/IOTester.cs | 54 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Codeforces.Test/IOTester.cs (limited to 'Codeforces.Test/IOTester.cs') diff --git a/Codeforces.Test/IOTester.cs b/Codeforces.Test/IOTester.cs new file mode 100644 index 0000000..68a0ebb --- /dev/null +++ b/Codeforces.Test/IOTester.cs @@ -0,0 +1,54 @@ +namespace Codeforces.Test +{ + public class IOTester + { + private static readonly TextReader originalStdIn = Console.In; + private static StringReader? stdIn; + + private static readonly TextWriter originalStdOut = Console.Out; + private static StringWriter? stdOut; + + public static void Start() + { + stdOut = new StringWriter(); + Console.SetOut(stdOut); + } + + public static void End() + { + stdOut = null; + stdIn = null; + Console.SetOut(originalStdOut); + Console.SetIn(originalStdIn); + } + + public static void SetInput(params string[] lines) + { + string input = string.Join(Environment.NewLine, lines); + stdIn = new StringReader(input); + Console.SetIn(stdIn); + } + + public static string GetOutput() + { + if (stdOut == null) + { + return string.Empty; + } + else + { + return stdOut.ToString(); + } + } + + public static string[] GetOutputLines() + { + return GetOutput().Split(Environment.NewLine).SkipLast(1).ToArray(); + } + + public static IList GetOutputLinesAsList() + { + return new List(GetOutputLines()); + } + } +} \ No newline at end of file -- cgit v1.2.3