docs: def expect(*exprs):
      """Tests given sequence of conditions and stores results.
      
      Parameters
      ----------
      exprs: bool or tuple of (bool, str)
          Variable number of expressions evaluated. If a tuple first element is 
          expression evaluated, second is the message displayed on failure in the report.   
      """
  
      # Catch case of only two arguments where one is expr and other is msg
      if len(exprs) == 2 and (isinstance(exprs[0], (bool, np.bool_)) and isinstance(exprs[1], str)):
          if not exprs[0]:
              _log_failure(arg_num=0, msg=exprs[1])
      else:
          for i, arg in enumerate(exprs):
              if isinstance(arg, (bool, np.bool_)):
                  # Just an epression on its own 
                  if not arg:
                      _log_failure(arg_num=i)
              elif isinstance(arg, (list, tuple)):
                  if len(arg) != 2:
                      raise ValueError('Arguments to "expect" are invalid. They must be either an expression,'
                                       ' or a tuple of length two as (expression, error_message)')
                  expr, msg = arg
                  if not expr:
                      _log_failure(arg_num=i, msg=msg)