CpLibrary

This documentation is automatically generated by competitive-verifier/competitive-verifier

View the Project on GitHub fairy-lettuce/CpLibrary

:heavy_check_mark: CpLibrary.Test/Judge/Hacker/HackerTest.cs

Depends on

Code

using System;
using System.IO;
using System.Linq;
using Xunit;
using CpLibrary.Judge.Hacker;
using CpLibrary.Judge.Checker;
using FluentAssertions;

namespace CpLibrary.Test.Judge.Checker
{
	public class HackerTest
	{
		[Fact]
		public static void EdgeCaseTest()
		{
			static void Actual(StreamReader reader, StreamWriter writer)
			{
				var sr = new Scanner(reader);
				var n = sr.ReadInt();
				writer.WriteLine("Yes");
			}

			static void Naive(StreamReader reader, StreamWriter writer)
			{
				var _sr = new Scanner(reader);
				var n = _sr.ReadInt();
				if (n == 2)
				{
					writer.WriteLine("No");
					return;
				}
				writer.WriteLine("Yes");
			}

			static void Generate(StreamWriter writer)
			{
				var rand = new System.Random();
				var n = rand.Next(1, 10);
				writer.WriteLine(n);
			}

			var hacker = new Hacker(new NormalChecker(Actual), Generate, Naive);
			var res = hacker.FindHackCase();
			res.Seek(0, SeekOrigin.Begin);
			var input = new StreamReader(res).ReadToEnd();

			input.Trim().Should().Be("2");
		}
	}
}
Back to top page