python (3.11.7)
    e$                         d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZ d dl	m
Z
 d Zd Z G d de
          Z G d d	ej                  Zed
k    r ej                     dS dS )    N)loadsdumps)supportc                 h    t          | d          rt          j        |           S t          d          )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__ method)hasattroperatorindex	TypeError)args    C/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_slice.pyevaluate_slice_indexr      s=     sK   0~c"""
/0 0 	0    c                 ,   t          j        |          }| j        dnt          | j                  }|dk     rt	          d          |dk    rt	          d          |dk     rdnd}|dk     r|dz
  n|}| j        |dk     r|n|}n=t          | j                  }|dk     rt
          ||z   |          nt          ||          }| j        |dk     r|n|}n=t          | j                  }|dk     rt
          ||z   |          nt          ||          }|||fS )zA
    Reference implementation for the slice.indices method.
    N   r   zlength should not be negativezslice step cannot be zero)	r	   r
   stepr   
ValueErrorstartmaxminstop)slicelengthr   lowerupperr   r   s          r
   
slice_indicesr      sA    ^F
#
#F
"11(<UZ(H(HD zz8999qyy4555 ((BBE((FQJJE 
{u$U[11.3aiiEFNE***S=N=N 
zquue#EJ//,01HHs4&=%(((#dE:J:J$r   c                       e Zd Zd Zd ZdS )MyIndexablec                     || _         d S Nvalue)selfr#   s     r
   __init__zMyIndexable.__init__B   s
    
r   c                     | j         S r!   r"