import string
import time
import idlib
import cryptutil
import blocksharez

for k in range(1,6):
    K = 2 ** k
    M = K * 2
    msgsize = 65536 * K
    msg = "foo to you" * 100
    msg = msg + ((msgsize - len(msg)) * '~')
    msg_id = idlib.make_id(msg)
    start_time = time.clock()
    shares = blocksharez.split(msg, encrypt=cryptutil.dummy_encrypt, totalsharesneeded=K, totalsharesinpiece=M)
    end_time = time.clock()
    tot_time = end_time - start_time
    print "  time to split %d/%d to 64k shares:   %f (%f K/s)" % (K, M, tot_time, msgsize / tot_time / 1024)
    sharenum = 0
    sharemap = {}
    for shareid, sharedata in shares:
        sharemap[sharenum] = sharedata
        sharenum = sharenum + 1
    sharetuples = sharemap.items()
    start_time = time.clock()
    output = blocksharez.unsplit(sharetuples[:K], msg_id, totalsharesneeded=K, totalsharesinpiece=M)
    end_time = time.clock()
    tot_time = end_time - start_time
    print "time to unsplit %d/%d from 64k shares: %f (%f K/s)" % (K, M, tot_time, msgsize / tot_time / 1024)

