print 'Testing without adding noise...' if (message == decoded).all() == True: print 'Successfully decoded no-noise Test 0: congratulations!' print else: print 'Oops... error in decoding no-noise Test', i print 'Decoded as ', decoded print 'Correct is', message sys.exit(1) # second batch of test cases: different constraint lengths, generators nbits = 29 message = numpy.random.random_integers(0,1,nbits) for (constraint_len, glist) in ((3, (7,5)), (4, (0xD,0xE))): i = i + 1 print 'TEST', i d = ViterbiDecoder(constraint_len, glist) received = PS3_tests.convolutional_encoder(message, constraint_len, glist) decoded = numpy.array(d.decode(received, debug=True)) if (message == decoded).all() == True: print 'Successfully decoded no-noise Test', i, ': congratulations!' print else: print 'Oops... error in decoding no-noise Test', i print 'Decoded as', decoded print 'Correct is', message sys.exit(1) # now try some tests with noise PS3_tests.test_hard_metrics(ViterbiDecoder)