prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Document simplemodels API
  # Description
  
  In discussion today with @coolalexzb, I realized that the [`pyhf.simplemodels`](https://github.com/scikit-hep/pyhf/blob/79984be837ef6e53bdd12a82163c34d47d507dba/src/pyhf/simplemodels.py) API is not documented in our docs. Even thought this isn't something we want people to really use, we still show it in our examples and so it needs documentation.
  
  </issue>
  <code>
  [start of src/pyhf/simplemodels.py]
  1 from . import Model
  2 
  3 
  4 def hepdata_like(signal_data, bkg_data, bkg_uncerts, batch_size=None):
  5     spec = {
  6         'channels': [
  7             {
  8                 'name': 'singlechannel',
  9                 'samples': [
  10                     {
  11                         'name': 'signal',
  12                         'data': signal_data,
  13                         'modifiers': [
  14                             {'name': 'mu', 'type': 'normfactor', 'data': None}
  15                         ],
  16                     },
  17                     {
  18                         'name': 'background',
  19                         'data': bkg_data,
  20                         'modifiers': [
  21                             {
  22                                 'name': 'uncorr_bkguncrt',
  23                                 'type': 'shapesys',
  24                                 'data': bkg_uncerts,
  25                             }
  26                         ],
  27                     },
  28                 ],
  29             }
  30         ]
  31     }
  32     return Model(spec, batch_size=batch_size)
  33
  [end of src/pyhf/simplemodels.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/src/pyhf/simplemodels.py b/src/pyhf/simplemodels.py
  --- a/src/pyhf/simplemodels.py
  +++ b/src/pyhf/simplemodels.py
  @@ -2,6 +2,38 @@
   
   
   def hepdata_like(signal_data, bkg_data, bkg_uncerts, batch_size=None):
  +    """
  +    Construct a simple single channel :class:`~pyhf.pdf.Model` with a
  +    :class:`~pyhf.modifiers.shapesys` modifier representing an uncorrelated
  +    background uncertainty.
  +
  +    Example:
  +        >>> import pyhf
  +        >>> pyhf.set_backend("numpy")
  +        >>> model = pyhf.simplemodels.hepdata_like(
  +        ...     signal_data=[12.0, 11.0], bkg_data=[50.0, 52.0], bkg_uncerts=[3.0, 7.0]
  +        ... )
  +        >>> model.schema
  +        'model.json'
  +        >>> model.config.channels
  +        ['singlechannel']
  +        >>> model.config.samples
  +        ['background', 'signal']
  +        >>> model.config.parameters
  +        ['mu', 'uncorr_bkguncrt']
  +        >>> model.expected_data(model.config.suggested_init())
  +        array([ 62.        ,  63.        , 277.77777778,  55.18367347])
  +
  +    Args:
  +        signal_data (`list`): The data in the signal sample
  +        bkg_data (`list`): The data in the background sample
  +        bkg_uncerts (`list`): The statistical uncertainty on the background sample counts
  +        batch_size (`None` or `int`): Number of simultaneous (batched) Models to compute
  +
  +    Returns:
  +        ~pyhf.pdf.Model: The statistical model adhering to the :obj:`model.json` schema
  +
  +    """
       spec = {
           'channels': [
               {
  
verification_info: {"golden_diff": "diff --git a/src/pyhf/simplemodels.py b/src/pyhf/simplemodels.py\n--- a/src/pyhf/simplemodels.py\n+++ b/src/pyhf/simplemodels.py\n@@ -2,6 +2,38 @@\n \n \n def hepdata_like(signal_data, bkg_data, bkg_uncerts, batch_size=None):\n+    \"\"\"\n+    Construct a simple single channel :class:`~pyhf.pdf.Model` with a\n+    :class:`~pyhf.modifiers.shapesys` modifier representing an uncorrelated\n+    background uncertainty.\n+\n+    Example:\n+        >>> import pyhf\n+        >>> pyhf.set_backend(\"numpy\")\n+        >>> model = pyhf.simplemodels.hepdata_like(\n+        ...     signal_data=[12.0, 11.0], bkg_data=[50.0, 52.0], bkg_uncerts=[3.0, 7.0]\n+        ... )\n+        >>> model.schema\n+        'model.json'\n+        >>> model.config.channels\n+        ['singlechannel']\n+        >>> model.config.samples\n+        ['background', 'signal']\n+        >>> model.config.parameters\n+        ['mu', 'uncorr_bkguncrt']\n+        >>> model.expected_data(model.config.suggested_init())\n+        array([ 62.        ,  63.        , 277.77777778,  55.18367347])\n+\n+    Args:\n+        signal_data (`list`): The data in the signal sample\n+        bkg_data (`list`): The data in the background sample\n+        bkg_uncerts (`list`): The statistical uncertainty on the background sample counts\n+        batch_size (`None` or `int`): Number of simultaneous (batched) Models to compute\n+\n+    Returns:\n+        ~pyhf.pdf.Model: The statistical model adhering to the :obj:`model.json` schema\n+\n+    \"\"\"\n     spec = {\n         'channels': [\n             {\n", "issue": "Document simplemodels API\n# Description\r\n\r\nIn discussion today with @coolalexzb, I realized that the [`pyhf.simplemodels`](https://github.com/scikit-hep/pyhf/blob/79984be837ef6e53bdd12a82163c34d47d507dba/src/pyhf/simplemodels.py) API is not documented in our docs. Even thought this isn't something we want people to really use, we still show it in our examples and so it needs documentation.\n", "before_files": [{"content": "from . import Model\n\n\ndef hepdata_like(signal_data, bkg_data, bkg_uncerts, batch_size=None):\n    spec = {\n        'channels': [\n            {\n                'name': 'singlechannel',\n                'samples': [\n                    {\n                        'name': 'signal',\n                        'data': signal_data,\n                        'modifiers': [\n                            {'name': 'mu', 'type': 'normfactor', 'data': None}\n                        ],\n                    },\n                    {\n                        'name': 'background',\n                        'data': bkg_data,\n                        'modifiers': [\n                            {\n                                'name': 'uncorr_bkguncrt',\n                                'type': 'shapesys',\n                                'data': bkg_uncerts,\n                            }\n                        ],\n                    },\n                ],\n            }\n        ]\n    }\n    return Model(spec, batch_size=batch_size)\n", "path": "src/pyhf/simplemodels.py"}]}