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