Program to test solutions to interactive problems
Difference between en2 and en3, changed 424 character(s)
It's difficult to test solutions to interactive problems during or after a contest. For non-interactive problems, I usually redirect input from a file. For interactive problems I have to type out input manually, since input depends on output. If the interaction is long, this can take time.↵

A more automated way will require 2 more programs:↵

1. A judge program with whom our solution will interact.↵
2. A program which connects `stdout` of solution to `stdin` of judge and `stdout` of judge to `stdin` of solution. I call this program a '[croupier](https://en.wikipedia.org/wiki/Croupier)'.↵

The judge program will have to be written by the user each time since it's problem-specific. But the croupier is generic and can be reused.↵

My implementation of the croupier, apart from connecting inputs and outputs of the two programs, also prints the output from each program so that it's easier to debug.↵

You can find my implementation here:↵
https://github.com/sharmaeklavya2/croupier↵

I wrote the croupier so that it could help me debug [problem:750F]. The croupier helped me find out many mistakes in my solution, but it seems like there are more, because I can't get my solution accepted. Here is the judge program I used for it: https://gist.github.com/sharmaeklavya2/fb9751ba0d9d5df883d4d29288db8315


Update: There was a small bug in croupier because of which it sometimes printed output incorrectly. Thanks you [user:PikMike,2017-01-03] for reporting this. [user:PikMike,2017-01-03] also tested this program on Windows, which I couldn't do myself because I don't have Windows. You can find a detailed description of the bug here: https://github.com/sharmaeklavya2/croupier/commit/a2fcd82a52a83df71518dfec248271d752a55b66

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en3 English eku 2017-01-03 17:37:45 424 Add info about bug and thank PikMike
en2 English eku 2017-01-02 15:54:10 322 Added judge program for 750F (published)
en1 English eku 2017-01-02 00:23:25 1043 Initial revision (saved to drafts)