File: //usr/local/lib/python3.10/test/__pycache__/test_slice.cpython-310.opt-2.pyc
o
�i�$ � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZ d dl m
Z
dd� Zdd� ZG dd � d e
�ZG d
d� dej�ZedkrIe�� dS dS )
� N)�loads�dumps)�supportc C s t | d�rt�| �S td��)N� __index__zBslice indices must be integers or None or have an __index__ method)�hasattr�operator�index� TypeError)�arg� r �,/usr/local/lib/python3.10/test/test_slice.py�evaluate_slice_index s
�r
c C s� t �|�}| jd u r
dnt| j�}|dk rtd��|dkr"td��|dk r(dnd}|dk r2|d n|}| jd u rB|dk r?|n|}nt| j�}|dk rRt|| |�nt||�}| jd u re|dk rb|n|}nt| j�}|dk rut|| |�nt||�}|||fS )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$
r c @ s e Zd Zdd� Zdd� ZdS )�MyIndexablec C s
|| _ d S �N��value)�selfr r r r �__init__B s
zMyIndexable.__init__c C s | j S r r �r r r r r E s zMyIndexable.__index__N)�__name__�
__module__�__qualname__r r r r r r r A s r c @ sl e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zdd� Zdd� Z
dd� ZdS )� SliceTestc C s$ | � tt� | � ttdddd� d S )Nr � � � )�assertRaisesr r r! r r r �test_constructorK s zSliceTest.test_constructorc C s | � ttddd��d� d S )Nr r&