diff --git a/Codeforces.Console/IOTester.cs b/Codeforces.Console/IOTester.cs new file mode 100644 index 0000000..c5ffc77 --- /dev/null +++ b/Codeforces.Console/IOTester.cs @@ -0,0 +1,54 @@ +namespace Codeforces +{ + 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 ""; + } + else + { + return stdOut.ToString(); + } + } + + public static string[] GetOutputLines() + { + return GetOutput().Split(Environment.NewLine); + } + + public static IList GetOutputLinesAsList() + { + return new List(GetOutputLines()); + } + } +} \ No newline at end of file diff --git a/Codeforces.Console/Program.cs b/Codeforces.Console/Program.cs index 3751555..21ac3e9 100644 --- a/Codeforces.Console/Program.cs +++ b/Codeforces.Console/Program.cs @@ -1,2 +1,17 @@ -// See https://aka.ms/new-console-template for more information -Console.WriteLine("Hello, World!"); +namespace Codeforces +{ + public class Program + { + public static void Main(string[] args) + { + int count = int.Parse(Console.ReadLine()!); + for (int i = 0; i < count; i++) + { + var numbers = Console.ReadLine()! + .Split(' ') + .Select(x => int.Parse(x)); + Console.WriteLine(numbers.Sum()); + } + } + } +} \ No newline at end of file diff --git a/Codeforces.Test/Tests.cs b/Codeforces.Test/Tests.cs new file mode 100644 index 0000000..db4dace --- /dev/null +++ b/Codeforces.Test/Tests.cs @@ -0,0 +1,40 @@ +namespace Codeforces.Test; + +public class Tests +{ + [Fact] + public void TestIO() + { + IOTester.Start(); + + string[] input = new string[] + { + "5", + "256 42", + "1000 1000", + "-1000 1000", + "-1000 1000", + "20 22" + }; + IOTester.SetInput(input); + + Program.Main(new string[0]); + + string[] output = new string[] + { + "298", + "2000", + "0", + "0", + "42" + }; + + string[] actualOutput = IOTester.GetOutputLines(); + Assert.Equal(output.Length, actualOutput.Length - 1); + for (int i = 0; i< output.Length; i++) + { + Assert.Equal(output[i], actualOutput[i]); + } + } + +} \ No newline at end of file diff --git a/Codeforces.Test/UnitTest1.cs b/Codeforces.Test/UnitTest1.cs deleted file mode 100644 index 8f7b9b7..0000000 --- a/Codeforces.Test/UnitTest1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Codeforces.Test; - -public class UnitTest1 -{ - [Fact] - public void Test1() - { - - } -} \ No newline at end of file diff --git a/Codeforces.Test/Usings.cs b/Codeforces.Test/Usings.cs index 8c927eb..c1ede49 100644 --- a/Codeforces.Test/Usings.cs +++ b/Codeforces.Test/Usings.cs @@ -1 +1,2 @@ -global using Xunit; \ No newline at end of file +global using Xunit; +global using Codeforces; \ No newline at end of file