Template for Testing Interactive Questions

Правка en1, от George_Ogden, 2022-03-07 15:17:41

For a while, I've been trying to test interactive problems manually and anyone's who's tried this will know that it's mundane, difficult and gives you a lot of errors. Hence, I wrote some Python code to interact with my compiled .exe files and check that they work for large or complex testcases within the time limit:

from subprocess import Popen, PIPE
import time

t = time.time()
n = 100000
# open exe file for interaction
pipe = Popen(['main.exe'],stdin=PIPE,stdout=PIPE,stderr=PIPE)
# write initial value
pipe.stdin.write(bytes(str(n)+"\n",encoding="ascii"))
pipe.stdin.flush()
q = 0
while True:
    # get input
    y = pipe.stdout.readline().strip().decode().split()
    print(y)
    if y[0] == "?":
        # process query
        q += 1
        pipe.stdin.write(bytes("" + "\n",encoding="ascii"))
        pipe.stdin.flush()
    else:
        # check answer
        print("Correct" if True else "Incorrect")
        break
# display runtime and query number
print("Time:",time.time() - t,"Queries:",q) 

It doesn't check that all formats are valid, but you can add your own logic for whatever you need. Please, feel free to use and hopefully, get more ACs in interactive problems.

Теги interactive, template

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
en1 Английский George_Ogden 2022-03-07 15:17:41 1272 Initial revision (published)