class_docstr: Dolan objective function.
  
  This class defines the Dolan [1]_ global optimization problem. This
  is a multimodal minimization problem defined as follows:
  
  .. math::
  
      f_{\text{Dolan}}(x) = \lvert (x_1 + 1.7 x_2)\sin(x_1) - 1.5 x_3
      - 0.1 x_4\cos(x_5 + x_5 - x_1) + 0.2 x_5^2 - x_2 - 1 \rvert
  
  
  with :math:`x_i \in [-100, 100]` for :math:`i = 1, ..., 5`.
  
  *Global optimum*: :math:`f(x_i) = 10^{-5}` for
  :math:`x = [8.39045925, 4.81424707, 7.34574133, 68.88246895, 3.85470806]`
  
  .. [1] Gavana, A. Global Optimization Benchmarks and AMPGO retrieved 2015
  
  TODO Jamil equation is missing the absolute brackets around the entire
  expression.
code: def fun(self, x, *args):
      self.nfev += 1
  
      return abs(
          (x[0] + 1.7 * x[1]) * sin(x[0])
          - 1.5 * x[2]
          - 0.1 * x[3] * cos(x[3] + x[4] - x[0])
          + 0.2 * x[4] ** 2
          - x[1]
          - 1
      )
  
imports: import numpy
  from numpy import abs, cos, exp, arange, pi, sin, sqrt, sum, zeros, tanh
  from numpy.testing import assert_almost_equal
  from .go_benchmark import Benchmark
label_desc: Use image node_id 2 for calling the Dolan obj's underlying member method code with example usage: obj.fun(x) and returns: abs