import string
import random
import sys

class TestGenerator:
    def __init__(self,numNodes, avgDataPerNode):
        random.seed()
        self.numNodes = numNodes
        self.avgDataPerNode = avgDataPerNode
        self.tag = "-"+repr(self.numNodes)+"-"+repr(self.avgDataPerNode)

    def generateSetup(self):
        f = file("setup"+self.tag+".ev", "w")
        for i in range(0,self.numNodes):
            f.write("join "+repr(i)+" \n")
            
        for j in range(0,self.avgDataPerNode*self.numNodes):
            node = random.randint(0,self.numNodes-1)
            oid = random.randint(0,2**128)
            f.write("insert "+repr(node)+" "+repr(oid)+" \n")

        f.write("save setup"+self.tag+".state \n")
        f.write("exit \n")
        f.close()
        print "Done generating setup file: setup"+self.tag

    def generateTest(self, numTests):
        f = file("test"+self.tag+".ev", "w")
        f.write("load setup"+self.tag+".state \n")

        for i in range(0,numTests):
            node = random.randint(0,self.numNodes-1)
            oid = random.randint(0,2**128)
            f.write("find "+repr(node)+" "+repr(oid)+" \n")

        f.write("exit \n")
        f.close()
        print "Done generating test file: test"+self.tag

for i in range(1,11):
    t = TestGenerator(i*100, 10)
    t.generateSetup()
    t.generateTest(100)
