def testOrdInvFHWTForNumItersGivenNumFwdIters(signal, num_fwd_iters, num_inv_iters): if num_inv_iters > num_fwd_iters: raise Exception('num_inv_iters > num_fwd_iters') num_avail_iters = NumUtils.intLog2(len(signal)) if num_inv_iters > num_avail_iters: raise Exception('num_inv_iters > num_avail_iters') orig_signal = copy.deepcopy(signal) sig_copy = copy.deepcopy(signal) print('num_fwd_iters = %d' % num_fwd_iters) print('num_inv_iters = %d' % num_inv_iters) OneDHWT.ordFHWTForNumIters(signal, num_fwd_iters) OneDHWT.ordFHWTForNumIters(sig_copy, num_fwd_iters - num_inv_iters) OneDHWT.ordInvFHWTForNumItersGivenNumFwdIters(signal, num_fwd_iters, num_inv_iters) rslt = NumUtils.areEqualLists(signal, sig_copy) print(signal) print(sig_copy) print('signal equality: %s' % str(rslt)) return rslt