1
0
codeforces-template/Codeforces.Test/Tests.cs
2023-08-11 08:04:22 +03:00

72 lines
1.5 KiB
C#

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<object[]>
{
private readonly string inputFolder = @"..\..\..\Input";
public IEnumerator<object[]> 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();
}