def coding_tests(raw_data, encoded_data, bitfield, iters=10): code = CauchyEC(k, m, bitfield=bitfield) for i in xrange(iters): code.encode(raw_data, encoded_data) erasures = random.sample(range(n), m) for i in erasures: if i < k: raw_data[i].fill(-1) else: encoded_data[i - k].fill(-1) code.decode(raw_data, encoded_data, erasures)
code.encode(raw_data, encoded_data) print '\nRAW DATA:' for i,d in enumerate(raw_data): print i,d print '\nPARITY DATA:' for i,d in enumerate(encoded_data): print i,d erasures = random.sample(range(n), m) print '\nERASURES:',erasures for i in erasures: if i<k: raw_data[i].fill(0) else: encoded_data[i-k].fill(0) code.decode(raw_data, encoded_data, erasures) print '\nAFTER REPAIRING:' print '\nRAW DATA:' for i,d in enumerate(raw_data): print i,d print '\nPARITY DATA:' for i,d in enumerate(encoded_data): print i,d