def test3(self):

        pw = PowerWind()
        pw.Uref = 10.0
        pw.zref = 100.0
        pw.z0 = 0.0
        pw.z = np.linspace(-10.0, 90.0, 20)
        pw.shearExp = 0.2
        pw.betaWind = 5.0

        names, errors = check_gradient(pw)

        tol = 1e-6
        for name, err in zip(names, errors):

            try:
                self.assertLessEqual(err, tol)
            except AssertionError, e:
                print "*** error in:", name
                raise e
    def test3(self):

        pw = PowerWind()
        pw.Uref = 10.0
        pw.zref = 100.0
        pw.z0 = 0.0
        pw.z = np.linspace(-10.0, 90.0, 20)
        pw.shearExp = 0.2
        pw.betaWind = 5.0


        names, errors = check_gradient(pw)

        tol = 1e-6
        for name, err in zip(names, errors):

            try:
                self.assertLessEqual(err, tol)
            except AssertionError, e:
                print '*** error in:', name
                raise e
    def test1(self):

        pw = PowerWind()
        pw.Uref = 10.0
        pw.zref = 100.0
        pw.z0 = 0.0
        pw.z = np.linspace(0.0, 100.0, 20)
        pw.shearExp = 0.2
        pw.betaWind = 0.0

        names, errors = check_gradient(pw)

        tol = 1e-6
        for name, err in zip(names, errors):

            if name == "d_U[0] / d_z[0]":
                continue  # the derivative at z==0 is a discontinuity.  this node must not move in the optimization

            try:
                self.assertLessEqual(err, tol)
            except AssertionError, e:
                print "*** error in:", name
                raise e
    def test1(self):

        pw = PowerWind()
        pw.Uref = 10.0
        pw.zref = 100.0
        pw.z0 = 0.0
        pw.z = np.linspace(0.0, 100.0, 20)
        pw.shearExp = 0.2
        pw.betaWind = 0.0

        names, errors = check_gradient(pw)

        tol = 1e-6
        for name, err in zip(names, errors):

            if name == 'd_U[0] / d_z[0]':
                continue  # the derivative at z==0 is a discontinuity.  this node must not move in the optimization

            try:
                self.assertLessEqual(err, tol)
            except AssertionError, e:
                print '*** error in:', name
                raise e