#!/usr/bin/env python3 import sys, random, subprocess ntimes=10000 maxn=1e100 def check(desc,x,y): if x==y: return print("{}: {} != {}".format(desc,x,y)) assert False def gendata(): for _ in range(ntimes): yield random.randint(-maxn,maxn), random.randint(-maxn,maxn) def proctest(): proc=subprocess.Popen(["./main"],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=sys.stderr) for (a,b) in gendata(): proc.stdin.write("div {} {}\n".format(a,b).encode("ascii")) proc.stdin.write("mod {} {}\n".format(a,b).encode("ascii")) proc.stdin.flush() q=int(proc.stdout.readline()) r=int(proc.stdout.readline()) if r<0 or r>=abs(b) or a!=q*b+r: print("Error: {} divmod {}".format(a,b)) print("Diff: {}".format(a-q*b-r)) sys.exit(1) proc.kill() def justprint(): for (a,b) in gendata(): print("div {} {}".format(a,b)) print("mod {} {}".format(a,b)) #justprint() proctest()