File: //usr/local/lib/python3.7/test/__pycache__/test_slice.cpython-37.pyc
B
��g� � @ s� d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlm Z dd� Z
dd� ZG dd � d e�Z
G d
d� dej�Zedkr�e�� dS )
� N)�loads�dumps)�supportc C s t | d�rt�| �S td��dS )z�
Helper function to convert a slice argument to an integer, and raise
TypeError with a suitable message on failure.
� __index__zBslice indices must be integers or None or have an __index__ methodN)�hasattr�operator�index� TypeError)�arg� r �+/usr/local/lib/python3.7/test/test_slice.py�evaluate_slice_index
s
r
c C s� t �|�}| jdkrdnt| j�}|dk r2td��|dkrBtd��|dk rNdnd}|dk rb|d n|}| jdkr�|dk r||n|}n*t| j�}|dk r�t|| |�nt||�}| jdkr�|dk r�|n|}n*t| j�}|dk r�t|| |�nt||�}|||fS )zA
Reference implementation for the slice.indices method.
N� r zlength should not be negativezslice step cannot be zero���) r r �stepr
�
ValueError�start�max�min�stop)�slice�lengthr �lower�upperr r r r r �
slice_indices s"