def test_overload_power(): x = DualNumber(2,2) y = DualNumber(3,4) assert (x**y).val == 8 and (x**y).der == 8*(3/2*2+4*np.log(2)) assert (x.__rpow__(y)).val == 9 and (x.__rpow__(y)).der == 9*(2/3*4+2*np.log(3)) assert (x**2).val == 4 and (x**2).der == 8 assert (x**2.0).val == 4 and (x**2.0).der == 8 assert (2**x).val == 4 and (2**x).der == np.log(2)*4*2 assert (2.0**x).val == 4 and (2.0**x).der == np.log(2)*4*2
def rm_test_overload_power(): x = DualNumber(2,Reverse=True) y = DualNumber(3,Reverse=True) assert (x**y).val == 8 and (x**y).der == 0 assert (x.__rpow__(y)).val == 9 and (x.__rpow__(y)).der == 0 assert (x**2).val == 4 and (x**2).der == 0 assert (x**2.0).val == 4 and (x**2.0).der == 0 assert (2**x).val == 4 and (2**x).der == 0 assert (2.0**x).val == 4 and (2.0**x).der == 0