LCOV - code coverage report
Current view: | top level - Modules/clinic - _randommodule.c.h (source / functions) |  |  | Hit | Total | Coverage
Test: | CPython 3.12 LCOV report [commit 5e6661bce9] |  | Lines: | 19 | 24 | 79.2 %
Date: | 2023-03-20 08:15:36 |  | Functions: | 3 | 4 | 75.0 %
|  |  | Branches: | 4 | 12 | 33.3 %

               Branch data     Line data    Source code
           1                 :            : /*[clinic input]
           2                 :            : preserve
           3                 :            : [clinic start generated code]*/
           4                 :            :
           5                 :            : #if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
           6                 :            : #  include "pycore_gc.h"            // PyGC_Head
           7                 :            : #  include "pycore_runtime.h"       // _Py_ID()
           8                 :            : #endif
           9                 :            :
          10                 :            :
          11                 :            : PyDoc_STRVAR(_random_Random_random__doc__,
          12                 :            : "random($self, /)\n"
          13                 :            : "--\n"
          14                 :            : "\n"
          15                 :            : "random() -> x in the interval [0, 1).");
          16                 :            :
          17                 :            : #define _RANDOM_RANDOM_RANDOM_METHODDEF    \
          18                 :            :     {"random", (PyCFunction)_random_Random_random, METH_NOARGS, _random_Random_random__doc__},
          19                 :            :
          20                 :            : static PyObject *
          21                 :            : _random_Random_random_impl(RandomObject *self);
          22                 :            :
          23                 :            : static PyObject *
          24                 :     400400 : _random_Random_random(RandomObject *self, PyObject *Py_UNUSED(ignored))
          25                 :            : {
          26                 :     400400 :     return _random_Random_random_impl(self);
          27                 :            : }
          28                 :            :
          29                 :            : PyDoc_STRVAR(_random_Random_seed__doc__,
          30                 :            : "seed($self, n=None, /)\n"
          31                 :            : "--\n"
          32                 :            : "\n"
          33                 :            : "seed([n]) -> None.\n"
          34                 :            : "\n"
          35                 :            : "Defaults to use urandom and falls back to a combination\n"
          36                 :            : "of the current time and the process identifier.");
          37                 :            :
          38                 :            : #define _RANDOM_RANDOM_SEED_METHODDEF    \
          39                 :            :     {"seed", _PyCFunction_CAST(_random_Random_seed), METH_FASTCALL, _random_Random_seed__doc__},
          40                 :            :
          41                 :            : static PyObject *
          42                 :            : _random_Random_seed_impl(RandomObject *self, PyObject *n);
          43                 :            :
          44                 :            : static PyObject *
          45                 :          1 : _random_Random_seed(RandomObject *self, PyObject *const *args, Py_ssize_t nargs)
          46                 :            : {
          47                 :          1 :     PyObject *return_value = NULL;
          48                 :          1 :     PyObject *n = Py_None;
          49                 :            :
          50   [ +  -  -  +  :          1 :     if (!_PyArg_CheckPositional("seed", nargs, 0, 1)) {
                       -  - ]
          51                 :          0 :         goto exit;
          52                 :            :     }
          53         [ -  + ]:          1 :     if (nargs < 1) {
          54                 :          0 :         goto skip_optional;
          55                 :            :     }
          56                 :          1 :     n = args[0];
          57                 :          1 : skip_optional:
          58                 :          1 :     return_value = _random_Random_seed_impl(self, n);
          59                 :            :
          60                 :          1 : exit:
          61                 :          1 :     return return_value;
          62                 :            : }
          63                 :            :
          64                 :            : PyDoc_STRVAR(_random_Random_getstate__doc__,
          65                 :            : "getstate($self, /)\n"
          66                 :            : "--\n"
          67                 :            : "\n"
          68                 :            : "getstate() -> tuple containing the current state.");
          69                 :            :
          70                 :            : #define _RANDOM_RANDOM_GETSTATE_METHODDEF    \
          71                 :            :     {"getstate", (PyCFunction)_random_Random_getstate, METH_NOARGS, _random_Random_getstate__doc__},
          72                 :            :
          73                 :            : static PyObject *
          74                 :            : _random_Random_getstate_impl(RandomObject *self);
          75                 :            :
          76                 :            : static PyObject *
          77                 :          0 : _random_Random_getstate(RandomObject *self, PyObject *Py_UNUSED(ignored))
          78                 :            : {
          79                 :          0 :     return _random_Random_getstate_impl(self);
          80                 :            : }
          81                 :            :
          82                 :            : PyDoc_STRVAR(_random_Random_setstate__doc__,
          83                 :            : "setstate($self, state, /)\n"
          84                 :            : "--\n"
          85                 :            : "\n"
          86                 :            : "setstate(state) -> None.  Restores generator state.");
          87                 :            :
          88                 :            : #define _RANDOM_RANDOM_SETSTATE_METHODDEF    \
          89                 :            :     {"setstate", (PyCFunction)_random_Random_setstate, METH_O, _random_Random_setstate__doc__},
          90                 :            :
          91                 :            : PyDoc_STRVAR(_random_Random_getrandbits__doc__,
          92                 :            : "getrandbits($self, k, /)\n"
          93                 :            : "--\n"
          94                 :            : "\n"
          95                 :            : "getrandbits(k) -> x.  Generates an int with k random bits.");
          96                 :            :
          97                 :            : #define _RANDOM_RANDOM_GETRANDBITS_METHODDEF    \
          98                 :            :     {"getrandbits", (PyCFunction)_random_Random_getrandbits, METH_O, _random_Random_getrandbits__doc__},
          99                 :            :
         100                 :            : static PyObject *
         101                 :            : _random_Random_getrandbits_impl(RandomObject *self, int k);
         102                 :            :
         103                 :            : static PyObject *
         104                 :     365721 : _random_Random_getrandbits(RandomObject *self, PyObject *arg)
         105                 :            : {
         106                 :     365721 :     PyObject *return_value = NULL;
         107                 :            :     int k;
         108                 :            :
         109                 :     365721 :     k = _PyLong_AsInt(arg);
         110   [ -  +  -  - ]:     365721 :     if (k == -1 && PyErr_Occurred()) {
         111                 :          0 :         goto exit;
         112                 :            :     }
         113                 :     365721 :     return_value = _random_Random_getrandbits_impl(self, k);
         114                 :            :
         115                 :     365721 : exit:
         116                 :     365721 :     return return_value;
         117                 :            : }
         118                 :            : /*[clinic end generated code: output=bc17406a886824fc input=a9049054013a1b77]*/

Generated by: LCOV version 1.14