72 lines
1.5 KiB
C#
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();
|
|
} |