using System.Collections; namespace Codeforces.Test; public class Tests { [Fact] public void TestText() { IOTester.Start(); string[] input = new[] { "5", "256 42", "1000 1000", "-1000 1000", "-1000 1000", "20 22" }; IOTester.SetInput(input); Program.Main(); string[] expectedOutput = new[] { "298", "2000", "0", "0", "42" }; string[] actualOutput = IOTester.GetOutputLines(); Assert.Equal(expectedOutput.Length, actualOutput.Length); for (int i = 0; i < expectedOutput.Length; i++) { Assert.Equal(expectedOutput[i], actualOutput[i]); } } [Theory] [ClassData(typeof(FileNameGenerator))] public void TestIO(string input, string output) { IOTester.Start(); var lines = File.ReadLines(input); IOTester.SetInput(lines.ToArray()); Program.Main(); string[] expectedOutput = File.ReadLines(output).ToArray(); string[] actualOutput = IOTester.GetOutputLines(); Assert.Equal(expectedOutput.Length, actualOutput.Length); for (int i = 0; i < expectedOutput.Length; i++) { Assert.Equal(expectedOutput[i], actualOutput[i]); } } } public class FileNameGenerator : IEnumerable { private readonly string inputFolder = @"..\..\..\Input"; public IEnumerator GetEnumerator() { foreach (var input in Directory.GetFiles(inputFolder)) { string name = Path.GetFileName(input); string output = $"..\\..\\..\\Output\\{name}.a"; yield return new object[] { input, output }; } } IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); }