+
    xȇic              
          R t ^ RIt^ RIt^ RIt^ RIt^ RIHt ]P                  R 4       t
]P                  P                  RRRR.RRR	./R. ROR. RO/R
. ROR. RO/.. ROR7      R 4       tR tR tR tR tR t]P                  P                  RR.. RO4      R 4       t]P                  P                  RR.. RO4      R 4       tR tR tR# )ze
A verbatim copy (vendored) of the spec tests.
Taken from https://github.com/data-apis/dataframe-api
Nc                      RR lp V # )Fc                 d    \         P                  ! V 4      pV'       d   VP                  R 4      # T# )category)pd	DataFrameastype)dctis_categoricaldfs   && ~/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/tests/interchange/test_spec_conformance.pymakerdf_from_dict.<locals>.maker   s&    \\#(6ryy$>B>    )F )r   s    r   df_from_dictr      s    ? Lr   	test_dataafoobarbbazquxAB)idsc                 (   \        V P                  4       4      pV! V 4      p\        P                  ! R R7      ;_uu_ 4        VP	                  4       pRRR4       \        W^ ,          ,          4      pV F  pXP                  V4      P                  pV^ 8X  g   Q h\        V\        4      '       g   Q hVP                  V4      P                  4       V8X  g   Q hVP                  V4      P                  ^ 8X  d   K  Q h	  R#   + '       g   i     L; i)InterchangematchN)listkeystmassert_produces_warning__dataframe__lenget_column_by_name
null_count
isinstanceintsizeoffset)r   r   columnsr
   dfXcolumn_sizecolumnr&   s   &&      r   test_only_one_dtyper/      s     9>>#$G	i	 B		#	#-	8	8  
9 i
+,K++F3>>
Q*c****%%f-224CCC%%f-44999 	 
9	8s   DD	c                    V ! R . R	OR. R
OR. ROR. ROR. ROR. RO/4      p\         P                  ! RR7      ;_uu_ 4        VP                  4       pRRR4       R ^ R^ R^R^ R^R^/pVP                  4        F  w  rEXP	                  V4      pVP
                  ^ 8X  g   Q h\        VP
                  \        4      '       g   Q hVP                  4       ^8X  g   Q hVP                  ^ 8X  g   Q hVP                  ^ ,          V8X  d   K  Q h	  XP	                  R4      P                  ^,          ^@8X  g   Q hR#   + '       g   i     L; i)r   r   cdefr   r   N         )r8         g      ?      @      @)	   
      )TFT)r    r1   )r!   r"   r#   itemsr%   r&   r'   r(   r)   r*   dtype)r   r
   r,   r+   r.   kindcolXs   &      r   test_mixed_dtypesrF   0   s,   	$	
	
B 
	#	#-	8	8  
9
 AsAsAsAsBR@G%%f-!###$//3////yy{a{{azz!}$$$ ( !!#&,,Q/2555! 
9	8s    D55E	c                 ^   V ! R R\         P                  R./4      p\        P                  ! RR7      ;_uu_ 4        VP	                  4       pRRR4       XP                  R 4      pVP                  ^8X  g   Q h\        VP                  \        4      '       g   Q hR#   + '       g   i     LX; i)r   g      ?g       @r   r   N)	mathnanr!   r"   r#   r%   r&   r'   r(   r   r
   r,   rE   s   &   r   test_na_floatrK   N   s    	sS$((C01	2B		#	#-	8	8  
9!!#&D??adoos++++	 
9	8s   BB,	c                 p   V ! R . RO/4      p\         P                  ! RR7      ;_uu_ 4        VP                  4       pRRR4       XP                  R 4      p\        P
                  ! \        RR7      ;_uu_ 4        VP                   RRR4       R#   + '       g   i     L\; i  + '       g   i     R# ; i)r   r   r   Nz.*categorical.*r5   )r!   r"   r#   r%   pytestraises	TypeErrordescribe_categoricalrJ   s   &   r   test_noncategoricalrQ   W   s}    	sI&	'B		#	#-	8	8  
9!!#&D	y(9	:	:!! 
;	: 
9	8 
;	:	:s   B:B$B!	$B5	c                 j   V ! R . RO/RR7      p\         P                  ! RR7      ;_uu_ 4        VP                  4       P                  R 4      pRRR4       XP                  p\        VR,          \        4      '       g   Q h\        VR,          \        4      '       g   Q hR#   + '       g   i     L\; i)	weekdayT)r	   r   r   N
is_orderedis_dictionary)	MonTuerV   WedrV   ThuFriSatSun)r!   r"   r#   r%   rP   r'   bool)r   r
   rE   categoricals   &   r   test_categoricalr_   `   s    		ST
B
 
	#	#-	8	8!44Y? 
9++Kk,/6666k/2D9999	 
9	8s    B""B2	c           	      <   V ! R . ROR. ROR. RO/4      p\         P                  ! RR7      ;_uu_ 4        VP                  4       pRRR4       XP                  4       ^8X  g   Q hVP	                  4       ^8X  g   Q hVP                  4       ^8X  g   Q h\        VP                  4       4      . R	O8X  g   Q h\        VP                  R
4      P                  4       4      \        VP                  R4      P                  4       4      8X  g   Q hR#   + '       g   i     L; i)xyzr   r   N)TTF)r6   r7       gffffff"@g      %@g'@)ra   rb   rc   )rd   r7   )ra   rc   )
r!   r"   r#   num_columnsnum_rows
num_chunksr   column_namesselect_columnsselect_columns_by_name)r   r
   r,   s   &  r   test_dataframerl   m   s    		!3	38IJ
B 
	#	#-	8	8  
9 ??!!!<<>Q>>q     "#666""6*779:d"":.;;=?    
9	8s   DD	r)   n_chunksc                 ^   V! R \        \        V 4      4      /4      p\        P                  ! RR7      ;_uu_ 4        VP	                  4       pRRR4       \        XP                  V4      4      p\        V4      V8X  g   Q h\        R V 4       4      V 8X  g   Q hR#   + '       g   i     LW; i)ra   r   r   Nc              3   @   "   T F  qP                  4       x  K  	  R # 5iN)rg   .0chunks   & r   	<genexpr>%test_df_get_chunks.<locals>.<genexpr>   s     4VE~~V   )r   ranger!   r"   r#   
get_chunksr$   sumr)   rm   r   r
   r,   chunkss   &&&   r   test_df_get_chunksr|   }   s    	sDt-.	/B		#	#-	8	8  
9#..*+Fv;("""4V44<<<	 
9	8s   BB,	c                 |   V! R \        \        V 4      4      /4      p\        P                  ! RR7      ;_uu_ 4        VP	                  4       pRRR4       \        XP                  ^ 4      P                  V4      4      p\        V4      V8X  g   Q h\        R V 4       4      V 8X  g   Q hR#   + '       g   i     Lf; i)ra   r   r   Nc              3   @   "   T F  qP                  4       x  K  	  R # 5irp   )r)   rq   s   & r   rt   )test_column_get_chunks.<locals>.<genexpr>   s     0zz||rv   )	r   rw   r!   r"   r#   
get_columnrx   r$   ry   rz   s   &&&   r   test_column_get_chunksr      s    	sDt-.	/B		#	#-	8	8  
9#..#..x89Fv;("""000D888	 
9	8s   B++B;	c                    V ! R ^ ^.RRR./4      p\         P                  ! RR7      ;_uu_ 4        VP                  4       pRRR4       XP                  4        F1  pVP	                  4       ^8X  g   Q hVP                  4       ^8X  d   K1  Q h	  VP                  ^ 4      P                  ^ ,          ^ 8X  g   Q hVP                  ^4      P                  ^ ,          ^8X  g   Q hR#   + '       g   i     L; i)r   r   r<   r=   r   r   N)r!   r"   r#   get_columnsr)   rh   r   rC   rJ   s   &   r   test_get_columnsr      s    	sQFC#s4	5B		#	#-	8	8  
9!yy{a A%%% "
 >>!""1%***>>!""1%*** 
9	8s   C""C2	c                    . ROpV ! RV/4      p\         P                  ! RR7      ;_uu_ 4        VP                  4       pRRR4       XP                  ^ 4      pVP	                  4       pVR,          w  rgVP
                  ^ 8  g   Q hVP                  ^ 8w  g   Q hVP                  4       w  rV^ ,          ^ 8X  g   Q hV^8X  d   V^,          p
^\        P                  ^\        P                  ^ \        P                  ^@\        P                  /V
,          p\        V4       FO  w  rVP                  VP                  W^,          ,          ,           4      P                  pW8X  d   KF  Q RV R24       h	  R# R#   + '       g   i     EL@; i)	rd   r   r   r   NdatazBuffer at index z	 mismatch)rd   r6   )r!   r"   r#   r   get_buffersbufsizeptr__dlpack_device__ctypesc_int8c_int16c_int32c_int64	enumeratefrom_addressvalue)r   arrr
   r,   rE   bufXdataBuf	dataDtypedevice_bitwidthctypeidxtruthvals   &              r   test_bufferr      sP   
C	sCj	!B		#	#-	8	8  
9>>!DDfG??Q;;!))+IF Q<1{Q<v}}	

  $C.JC$$W[[3a-3H%HIOOC<B#3C5	!BB< )  
9	8	8s   E66F	r;   re   )r6   r7   r8   r9   )str_data
float_dataint_data))r?   r8   )   r8   )r   r:   )__doc__r   rH   rM   pandasr   pandas._testing_testingr!   fixturer   markparametrizer/   rF   rK   rQ   r_   rl   r|   r   r   r   r   r   r   <module>r      s  
        	uencE5>2	os$56	lC.
 	/  ::6<,"
:  &*-/JK= L= &*-/JK9 L9
+Cr   