
    ;eu	                     |    d dl Z d dlZdZej        Z G d de j                  Zedk    r e j                     dS dS )    N)alphabeta	candidatefinalc                       e Zd Zd Zd ZdS )
FutureTestc                 d   t           d d          }t          t                    D ]d}t          t          |d           }|Jt	          |t          j                  r0|                     ||v d|z             |                    |           e|                     t          |          dd|z             d S )Nz(%r should have been in all_feature_namesr   z"all_feature_names has too much: %r)
featuresdir
__future__getattr
isinstance_Feature
assertTrueremoveassertEquallen)selfgiven_feature_namesnameobjs       +/usr/lib/python3.11/test/test___future__.py
test_nameszFutureTest.test_names
   s    &qqqk
OO 	1 	1D*dD11C:c:3F#G#G//>E   $**4000011136II	K 	K 	K 	K 	K    c           	         t           D ]}t          t          |          }|                                }|                                }| j        | j        fd} ||d           | ||d            ||k     d            t          |d          d           t          ddd	|j	                    t          t          |d          t                    d
           d S )Nc                     t          | t                    d|z              t          |           dd|z             | \  }}}}} t          |t                    d|z              t          |t                    d|z              t          |t                    d|z              t          |t                    d|z              |t
          v d|z              t          |t                    d	|z             d S )
Nz%s isn't tuple   z%s isn't 5-tuplez%s major isn't intz%s minor isn't intz%s micro isn't intz%s level isn't stringz!%s level string has unknown valuez%s serial isn't int)r   tupler   intstrGOOD_SERIALS)	tr   majorminormicrolevelserialaes	          r   checkz)FutureTest.test_attributes.<locals>.check!   s1   *Q&&(84(?@@@#a&&!/$6777784ueV*UC((*>$*FGGG*UC((*>*EFFF*UC((*>*EFFF*UC((+d24 4 4%<':TAC C C*VS))+@4+GHHHHHr   optional	mandatoryz8optional not less than mandatory, and mandatory not Nonecompiler_flagz(feature is missing a .compiler_flag attr z<test>execz.compiler_flag isn't int)r
   r   r   getOptionalReleasegetMandatoryReleaser   r   hasattrcompiler-   r   r   )r   featurevaluer+   r,   r*   r(   r)   s         @@r   test_attributeszFutureTest.test_attributes   s>     	/  	/GJ00E//11H1133IA AI I I I I I E(J'''$i---(Y&QS S S Age_--=? ? ? B&%*=>>>Aj88#>>-/ / / /? 	/  	/r   N)__name__
__module____qualname__r   r6    r   r   r   r      s5        K K K!/ !/ !/ !/ !/r   r   __main__)	unittestr   r!   all_feature_namesr
   TestCaser   r7   mainr:   r   r   <module>r@      s{        6'1/ 1/ 1/ 1/ 1/" 1/ 1/ 1/h zHMOOOOO r   