diff options
Diffstat (limited to 'Codeforces.Test/IOTester.cs')
-rw-r--r-- | Codeforces.Test/IOTester.cs | 54 |
1 files changed, 54 insertions, 0 deletions
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<string> GetOutputLinesAsList() + { + return new List<string>(GetOutputLines()); + } + } +}
\ No newline at end of file |