
    i5                         d dl Z d dlZd dlZd dlmZmZmZmZ d dl	m
Z d dlmZ ej                  d        Zej                  d        Zej                  d        Z G d d      Z G d	 d
      Zy)    N)	DataFrameIndexSeriesjson_normalizenested_to_recordc                  n    ddddddddgdd	d
dddddgdgddddddgddddddddgdgdgS )NUSA
CaliforniaSan Francisco90  )namepopLos Angeles:0  )r   citiesOhioColumbus  	Cleveland  )countrystatesGermanyBayernMunich;0  Nordrhein-WestfalenDuesseldorf  Koeln   r#       `/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/io/json/test_normalize.pydeep_nestedr&      s    
  )!0?!.u= #!+D9!,T:	
( !!x.N-OP1!.t<!(6		
)! !r$   c                  N    dddddddddgdd	id
ddddddddgddidddgS )NDader   r   
populationBroward@  
Palm Beach`  governor
Rick ScottFLFlorida)countiesinfo	shortnamestateSummitr   Cuyahoga9  John KasichOHr   r#   r#   r$   r%   
state_datar<   8   sl    
  u5"%8%U;
  .		
 "6#48  /	
 r$   c                  H    dddddddgdd	d
igidddddddgdd	digidgS )NAliceZ%  
Morris St.	Massillonr;   f  )numberstreetcityr6   zipr   	city_nameFoo York City)r   	addressesprevious_residences!  
Spring St.ElizabethtonTN  
Barmingham)rI   rJ   r#   r#   r$   r%   missing_metadatarQ   Q   su      #*'!  %-_/M.N#O	
  #**!  %-\/J.K#L	
 r$   c                   V   e Zd Zd Zd Zd Zd Zej                  j                  dddiddigd	d	fdddiddigidd	fd
d	e
fd	d	e
fg      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej                  j                  ddddddddidd id!ddddddidd id!gfddddddidd id"dddddidd id"gfg      d#        Zej                  j                  d$dd	g      d%        Zd& Zd' Zej                  j                  d(g d)      d*        Zd+ Zd, Zd- Z d. Z!y	)/TestJSONNormalizec                     dddddddddd	d
dddddg}t        |      }t        |      }t        j                  ||       y )N         )abc               	   
         r   r   tmassert_frame_equalselfrecsresultexpecteds       r%   test_simple_recordsz%TestJSONNormalize.test_simple_recordsq   sV    !!$!!$!!$2B'	
  %T?
fh/r$   c                    t        |d   d      }t        |d   d         }t        j                  ||       t        |d      }g }|D ]  }|j	                  |d           t        |      }t        j                  ||       t        |dd      }t        j                  ddg      j                  ddg      |d<   t        j                  ||       y )	Nr   r3   r6   metar2   r   rW   rV   )r   r   re   rf   extendnparrayrepeatrh   r<   rj   rk   recs        r%   test_simple_normalizez'TestJSONNormalize.test_simple_normalize~   s    
1z:Z]:67
fh/
J7 	-COOC
O,	-X&
fh/
JWEHHi%89@@!QH
fh/r$   c                     g ddddgidg}t        |dgddgg      }t        g dddgddgddggd	      }t        j                  ||       y )
NrU   rV   rW   listdatarU   rV   )valuesmetadatarz   r{   record_pathro   )r   zmetadata.listdatard   )rh   parse_metadata_fields_list_typerj   rk   s       r%   test_fields_list_type_normalizez1TestJSONNormalize.test_fields_list_type_normalize   ss     zAq6.BC+
'  +!
z*+

 !Q!Q!Q0HI
 	fh/r$   c                 Z    t        g       }t               }t        j                  ||       y )Nrd   rh   rj   rk   s      r%   test_empty_arrayz"TestJSONNormalize.test_empty_array   s#    #;
fh/r$   z!data, record_path, exception_typerX   r   rU   Nz{"a": [{"a": 0}, {"a": 1}]}c                     |.t        j                  |d      5  t        ||       d d d        y t        ||      }t        ddgdg      }t	        j
                  ||       y # 1 sw Y   y xY w)Nz^$matchr}   r   rU   rX   columns)pytestraisesr   r   re   rf   )rh   datar}   exception_typerj   rk   s         r%   test_accepted_inputz%TestJSONNormalize.test_accepted_input   sl     %~T: >t=> > $DkBF !Q#7H!!&(3> >s   A%%A.c                 l   t        ddddi      }t        ddggddg      }t        j                  |j	                  |      |       t        ddddid	      }t        ddggd
dg      }t        j                  |j	                  |      |       t        ddddid	      }t        ddggddg      }t        j                  |j	                  |      |       t        |ddgdddggd      }t        g d      j                         }|j                  j                         j                  |      sJ y )NArU   rV   )r   BzA.AzA.Br   _sepA_AA_Bu   σu   AσAu   AσBr   r   r   r   )ro   r   )r   r   r   states_name)	r   r   re   rf   reindex_liker   sort_valuesr   equals)rh   r&   rj   rk   s       r%   $test_simple_normalize_with_separatorz6TestJSONNormalize.test_simple_normalize_with_separator   s2   AA&6 78q!fXu~>
f11(;XFAA&6 7SAq!fXu~>
f11(;XFAA&6 7XFq!fX
J/GH
f11(;XFx h/0	
 BCOOQ~~))+228<<<r$   c                     ddgdddd}t        |d      }t        ddgddggg d	      }t        j                  ||       y )
NrU   rV   )rW   r[   )b_1b_2)rX   rY   __r   )rX   b__b_1b__b_2r   rd   rh   r   rj   rk   s       r%   'test_normalize_with_multichar_separatorz9TestJSONNormalize.test_normalize_with_multichar_separator   sL    V!F";<$/1vq&12<UV
fh/r$   c                 x    t        dddgidd      }t        dgdggdg      }t        j                  ||       y )Nr   rU   rV   zPrefix.record_prefixzPrefix.0r   rd   r   s      r%   test_value_array_record_prefixz0TestJSONNormalize.test_value_array_record_prefix   s>    q!fs)LqcA3Z*>
fh/r$   c                     dddddddddd	dgd
d}t        |ddg      }t        ddgddgdd	ggddg      }t        j                  ||       y )Nr2   r0   r(   r   r)   r+   r,   r-   r.   )r/   r3   r6   r4   r4   r3   r   r   r*   r   rd   r   s       r%   test_nested_object_record_pathz0TestJSONNormalize.test_nested_object_record_path   s     (#59&e<)?

  6:2FGe_y%0<2GH\*
 	fh/r$   c                     t        |ddgdddgg      }dgdz  dgd	z  z   g d
g dg dd}t        ||j                        }t        j                  ||       y )Nr   r   r   r   rn   r
   r[   r   rW   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r!   )r   r   r   r   r   r    r"   )r   zstates.namer   r   r   r   r   r   re   rf   )rh   r&   rj   ex_datark   s        r%   test_more_deeply_nestedz)TestJSONNormalize.test_more_deeply_nested   sq    (H-Y6@R4S
 w{i[1_4 A)
. Wfnn=
fh/r$   c                    ddddiddddd	dd
ddgdddddiddddddgdg}t        |dddddgg      }g ddgdz  dgdz  z   g ddgdz  dgdz  z   g dd}t        ||j                        }t        j                  ||       y )Nr2   r1   r/   r0   r(   r   r)   r+   r,   r-   r.   )r6   r5   r4   r3   r   r;   r:   r7   r   r8   r9   r3   r6   r5   r4   r(   r+   r-   r7   r8   rW   rV   )r1   r1   r1   r;   r;   r   r,   r.   r   r9   )r   r6   r5   info.governorr*   r   r   )rh   r   rj   r   rk   s        r%   test_shallow_nestedz%TestJSONNormalize.test_shallow_nested  s     #!#\2#59&e<)?		  !#]3%T:'t<	
,  *wfj5IJ
 L[1_x!|37*^a/=/A2EE;
 Wfnn=
fh/r$   c                     t        |dgddddggd      }g dg d	d
gdz  dgdz  z   dgdz  dgdz  z   dgdz  dgdz  z   d}t        |      }t        j                  ||       y )Nr3   r6   r5   r4   r/   ignorer   r}   ro   errorsr   r   r2   rW   r   rV   r1   r;   r0   r:   )r   r*   r6   r5   r   rd   )rh   r<   rj   r   rk   s        r%   -test_nested_meta_path_with_nested_record_pathz?TestJSONNormalize.test_nested_meta_path_with_nested_record_path0  s    #;(<=	
 L;[1_x!|3!tfqj0*^a/=/A2EE
 W%
fh/r$   c                     ddddddddgdg}d	}t        j                  t        |
      5  t        |dddg       d d d        t        |dddgd      }dD ]  }||v rJ  y # 1 sw Y   (xY w)Nhellothere	somethingelsefoobar
something2else2r   r   r   z?Conflicting metadata name (foo|bar), need distinguishing prefixr   r   r   r   rn   ro   ro   meta_prefixmetafoometabarr   r   )r   r   
ValueErrorr   )rh   r   msgrj   vals        r%   test_meta_name_conflictz)TestJSONNormalize.test_meta_name_conflictD  s     '7(9	
 Q]]:S1 	>4uen=	>  fE5>vV7 	!C&= =	!	> 	>s   A%%A.c                 t    ddddddddgdg}d	d
g}t        |d|d      }|d	d
gk(  sJ dD ]  }||v rJ  y )Nr   r   r   r   r   r   r   r   r   r   r   ro   r   r   )r   )rh   r   COLUMNSrj   r   s        r%    test_meta_parameter_not_modifiedz2TestJSONNormalize.test_meta_parameter_not_modifiedY  ss     '7(9	
 %.f7O5%.(((7 	!C&= =	!r$   c                    t        |d   d      }t        |d   d         }t        j                  ||       t        |ddd      }g }|D ]  }|j	                  |d           t        |      }|j                  d       }t        j                  dd	g      j                  d
dg      |d<   t        j                  ||       y )Nr   r3   r6   county_)ro   r   c                     d| z   S )Nr   r#   )xs    r%   <lambda>z6TestJSONNormalize.test_record_prefix.<locals>.<lambda>z  s
    Y] r$   r   r2   r   rW   rV   )	r   r   re   rf   rp   renamerq   rr   rs   rt   s        r%   test_record_prefixz$TestJSONNormalize.test_record_prefixm  s    
1z:Z]:67
fh/
	
  	-COOC
O,	-X&??+B?CHHi%89@@!QH
fh/r$   c                     t        t        d      D cg c]  }| dd
 c}      }t        |d      }t        ddddddd	ddg      }t	        j
                  ||       y c c}w )
NrW   q)kmzT.r   0)zT.kzT.m12)r   ranger   r   re   rf   )rh   isrj   rk   s        r%   (test_record_prefix_no_record_path_seriesz:TestJSONNormalize.test_record_prefix_no_record_path_series  sl    U1X>QCs+>?6C(C(C(
 	fh/ ?s   A"c                     dj                  d      }dj                  d      ddgdddgdd	d
gi}t        |      }t        t        j                  |            }t        j                  ||       y )NsK   [{"Ünicøde":0,"sub":{"A":1, "B":2}},{"Ünicøde":1,"sub":{"A":3, "B":4}}]utf8s	   Ünicøder   rU   zsub.ArW   zsub.BrV   r[   )decoder   r   jsonloadsre   rf   )rh   testjsontestdatark   rj   s        r%   test_non_ascii_keyz$TestJSONNormalize.test_non_ascii_key  st    A
&. 	 %++F3aVaVaV

 X&

8 45
fh/r$   c                 &   dd idddddddg}t        |      }t        j                  t        j                  t        j                  t        j                  t        j                  d	d ddddd	g}t        |      }t	        j
                  ||       y )
Nr4   
11/08/1993
26/05/2012
created_atlast_updatedJaneDoefirst	last_namer4   author_name)r4   info.created_atinfo.last_updatedauthor_name.firstauthor_name.last_namer   rq   nanr   re   rf   )rh   author_missing_datarj   r   rk   s        r%   test_missing_fieldz$TestJSONNormalize.test_missing_field  s     TN'3\R)/eD
   34 #%66%'VV%'VV)+ #/%1%+).
  W%
fh/r$   zmax_level,expected	Some textID001Name001IdNamer  User001rY   )	TextField	UserField	CreatedByImage)r  zUserField.IdzUserField.Namer  r  c                     ddiddddddddddgdd	id
dddddgdg}t        |dgdgdgg|      }t        ||j                  j                        }t	        j
                  ||       y )Nr  r  r   r   r   r  r  r  rX   rY   r   r   r   r   r   )r  Lookupr  tagsr  r  r  )r}   ro   	max_level)r   r   )r   r   r   rz   re   assert_equal)rh   r  rk   
test_inputrj   expected_dfs         r%    test_max_level_with_records_pathz2TestJSONNormalize.test_max_level_with_records_path  s    Z %i0 &1,3Y%G
 &1,3Y%G	 s'7(9

*  !
-'+	
  Xv~~7L7LM
V,r$   r  c                 :   t         j                  ddiddig}t        ||      }t        dt         j                  ddgi      }t	        j
                  ||       d}t        j                  t        |      5  t        dddig|       d d d        y # 1 sw Y   y xY w)Nidrc      r  z>All items in data must be of type dict or NA-like, found floatr         ?)	rq   r   r   r   re   rf   r   r   	TypeError)rh   r  	data_listrj   rk   r   s         r%   "test_json_normalize_non_dict_itemsz4TestJSONNormalize.test_json_normalize_non_dict_items  s     VVdBZ$4		Y?dRVVR$456
fh/N]]9C0 	CC$,	B	C 	C 	Cs   6BBc                 v    t        dddiig      }t        ddddiigid      }t        j                  ||       y )Nr   r   rU   dummy)r   re   rf   )rh   df1df2s      r%   !test_nested_flattening_consistentz3TestJSONNormalize.test_nested_flattening_consistent  sE    sS!Ho./gsAh'897C 	c3'r$   c                     t        d|ddddigdgdg      }t        ddit        d      	      }t        j                  ||       y )
NTexasr   r2   r   rV   r4   r   rU   index)r   r   r   re   r  )rh   nulls_fixturerj   rk   s       r%   test_nonetype_record_pathz+TestJSONNormalize.test_nonetype_record_path  sT      !=9#sAhZ8  
 c1XU1X6
)r$   value)falsetruez{}r   z"text"c                     t        j                  |      }d|d}d}dt        |      j                   d}t	        j
                  t        |      5  t        |g|g       d d d        y # 1 sw Y   y xY w)Nr   r   r4   z(Path must contain list or null, but got z
 at 'info'r   r   )r   r   type__name__r   r   r  r   )rh   r%  parsed_valuer  	test_pathr   s         r%    test_non_list_record_path_errorsz2TestJSONNormalize.test_non_list_record_path_errors$  sz     zz%(&=
	L)223:? 	 ]]9C0 	BJ<i[A	B 	B 	Bs   A**A3c                     d}t        t        j                  |      dgdg      }t        dgdgt	        j
                  dgt              d	      }t        j                  ||       y )
Nz,[{"id": 99, "data": [{"one": 1, "two": 2}]}]r   r  r|   rU   rV   c   )dtype)onetwor  )	r   r   r   r   rq   rr   objectre   rf   r   s       r%   test_meta_non_iterablez(TestJSONNormalize.test_meta_non_iterable1  sY    A

4 0vhdVTC288RD+GH
 	fh/r$   c                 ~    fd}t         |             }t        d   d         }t        j                  ||       y )Nc               3   2   K    d   d   E d {    y 7 w)Nr   r3   r#   )r<   s   r%   generator_dataz8TestJSONNormalize.test_generator.<locals>.generator_data>  s     !!}Z000s   r   r3   rd   )rh   r<   r7  rj   rk   s    `   r%   test_generatorz TestJSONNormalize.test_generator;  s:    	1   01Z]:67
fh/r$   c                     dddiddd}t        |d      }t        g d	gg d
      }t        j                  ||       y )Nra   l3r   )a1l2r[   )_idggr   r   )r[   ra   r   )r>  _id_a1	_id_l2_l3r   rd   r   s       r%   'test_top_column_with_leading_underscorez9TestJSONNormalize.test_top_column_with_leading_underscoreF  s@     q	2!<#.j\3PQ
fh/r$   c                    t        ddg      }t        ||      }t        |      }t        j                  |j
                  |       t        |d      }t        j                  |j
                  |j                  ddg             y )Nr^   r_   r!  r3   rW   rV   )r   r   r   re   assert_index_equalr"  rs   )rh   r<   idxseriesrj   s        r%   test_series_indexz#TestJSONNormalize.test_series_indexN  sf    QFm
#.'
fllC0
3
fllCJJ1v,>?r$   )"r*  
__module____qualname__rl   rv   r   r   r   markparametrizeNotImplementedErrorr   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r$  r-  r4  r8  rA  rF  r#   r$   r%   rS   rS   p   s   00&00
 [[+Aha!4.S!HsAh'(#t4*D2EF4,-		
44=.000(0<"0H0(!*!(0$00 0: [[  &1,3Y%G&,i%8"%s	 &1,3Y%G&,i%8"%s	$  &1(/*3&,i%8"%s &1(/*3&,i%8"%s%%	
(R-S(R-@ [[[1d)4
C 5
C(* [[W&LM
B N
B0	00@r$   rS   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zej                  j!                  ddddddddgfdddidddddddidgfddddddddgfg      d        Zd Zd Zd Zy) TestNestedToRecordc                 @    ddddddg}t        |      }|}||k(  sJ y )NrU   rV   )flat1flat2rW   r[   )flat3rP  r   rg   s       r%   test_flat_stays_flatz'TestNestedToRecord.test_flat_stays_flatX  s3    a(A*BC!$'!!!r$   c                 D    ddddd}t        |      }dddd}||k(  sJ y )NrU   rV   rZ   d)rO  dict1)dict1.cdict1.drO  r   r   s       r%   test_one_level_deep_flattensz/TestNestedToRecord.test_one_level_deep_flattens^  s5    11%56!$' Q;!!!r$   c                 X    dddddddddd}t        |      }ddddddd}||k(  sJ y )NrU   rV   rT  )erU  )rO  rV  nested)rW  rX  rO  znested.dz
nested.e.cz
nested.e.dr   r   s       r%   test_nested_flattensz'TestNestedToRecord.test_nested_flattensf  sV    1%"#!,15
 "$'
 !!!r$   c                     d}t        j                  t        |      5  t        |ddd       d d d        y # 1 sw Y   y xY w)N^Key 'name' not found. To replace missing values of 'name' with np.nan, pass in errors='ignore'r   rI   r   raiser   r   r   KeyErrorr   rh   rQ   r   s      r%   test_json_normalize_errorsz-TestNestedToRecord.test_json_normalize_errorsy  sE    : 	 ]]83/ 	%'		 	 	s	   7A c                     t        |ddd      }g ddddd	d
t        j                  gg}g d}t        ||      }t	        j
                  ||       y )NrI   r   r   r   )r?   r@   rA   r;   rB   r>   rK   rL   rM   rN   rO   )rC   rD   rE   r6   rF   r   r   r   rh   rQ   rj   r   r   rk   s         r%   test_missing_metaz$TestNestedToRecord.test_missing_meta  s]      !{PX
 D<ubffE
 GWg6
fh/r$   c                    dd ddiddigd}t        |dddd	ggd
      }ddt        j                  gddt        j                  gg}g d}t        ||      j	                  dt
        i      }t        j                  ||       t        j                  t        d      5  t        |dddd	ggd       d d d        y # 1 sw Y   y xY w)Nr   ru   rU   rV   )ro   nested_metar%  r%  ro   ri  leafr   )r}   ro   r   )ru   ro   nested_meta.leafr   rk  z'leaf' not foundr   r`  )r   rq   r   r   astyper3  re   rf   r   r   rb  )rh   r   rj   r   r   rk   s         r%   test_missing_nested_metaz+TestNestedToRecord.test_missing_nested_meta  s     duaj5RS*=UV=&12	
 ubff%5"&&'9:5Wg6==(
 	fh/ ]]8+=> 	#}f56		 	 	s   B::Cc                     d}t        j                  t        |      5  t        |ddgdd       d d d        y # 1 sw Y   y xY w)Nr_  r   rJ   r   r   r`  r   ra  rc  s      r%   5test_missing_meta_multilevel_record_path_errors_raisezHTestNestedToRecord.test_missing_meta_multilevel_record_path_errors_raise  sJ    
: 	 ]]83/ 	%2H=		 	 	s	   9Ac                     t        |ddgdd      }ddgdt        j                  gg}d	dg}t        ||
      }t	        j
                  ||       y )NrJ   r   r   r   r   rH   r>   rP   rG   r   r   rf  s         r%   6test_missing_meta_multilevel_record_path_errors_ignorezITestNestedToRecord.test_missing_meta_multilevel_record_path_errors_ignore  sd      !.9	
 g&266"
 'Wg6
fh/r$   c                 h    d ddddddddd	ddg}t        |      }d ddd
dd	dddg}||k(  sJ y )NSmith	Appleseedr   r   r   r   r   r   r   )r4   r   r   )r   r   r   r   r   r   s       r%   test_donot_drop_nonevaluesz-TestNestedToRecord.test_donot_drop_nonevalues  ss     G+*VW'3\R)/eD
 "$' %,)4 &,).#/%1	
 !!!r$   c           
      `    d ddd d d dddddiid}t        |      }d d d d dddd	}||k(  sJ y )
Nr   r6       gH@   @   ;@)r  regionr   yzr  z	town.infor  location)r  location.country.state.idz#location.country.state.town.info.id'location.country.state.town.info.region"location.country.state.town.info.x"location.country.state.town.info.y"location.country.state.town.info.zr   r   s       r%   $test_nonetype_top_level_bottom_levelz7TestNestedToRecord.test_nonetype_top_level_bottom_level  sr     ""&&*!3!4!3&	
" "$')-377;2D2E2D
 !!!r$   c           	      d    d d d d d dddddddd}t        |      }d d d d d dddd	}||k(  sJ y )
Nrw  rx  ry  )rz  r   r{  r|  r}  )r  r6   )r  r   r~  )r  zlocation.idzlocation.country.idr  r  r  r  r  r   r   s       r%   test_nonetype_multiple_levelsz0TestNestedToRecord.test_nonetype_multiple_levels  sr     "&*!3!4!3	&
$ "$'#')-7;2D2E2D	
 !!!r$   zmax_level, expectedNr  r   r   r   rY   )CreatedBy.NameLookup.TextFieldzLookup.UserField.IdzLookup.UserField.NameImage.ar   r  r  r
  rX   r  r  r  rU   )r  r  zLookup.UserFieldr  c                 N    ddiddddddd	id
g}t        ||      }||k(  sJ y )Nr  r  r   r   r   r  r
  rX   rY   r  r  r   )rh   r  rk   max_level_test_input_dataoutputs        r%   test_with_max_levelz&TestNestedToRecord.test_with_max_level2  sP    Z %i0!,(/!C s	%
! "";yQ!!!r$   c           	      x    d}dddddddd	d
ddidddidiig}dddd	d
ddg}t        ||      }||k(  sJ y )Nd   r  userLeoThomson)	firstnameLastNamefather	Father001	Father002	Father003r  	Father004)r   r  )r  r  )r   family_tree)zCreatedBy.user.name.firstnamezCreatedBy.user.name.LastNamez&CreatedBy.user.family_tree.father.namez-CreatedBy.user.family_tree.father.father.Namez4CreatedBy.user.family_tree.father.father.father.namez;CreatedBy.user.family_tree.father.father.father.father.Namer  r   )rh   r  
input_datark   r  s        r%   test_with_large_max_levelz,TestNestedToRecord.test_with_large_max_levelj  s    	 .3 K$(3,70;39;2G/&+"	'(

. 2709:EALHSOZ	
 "*	B!!!r$   c           	         ddddidddddiddd	d
didd}t        |      }g d|_        t        |      }t        g dg ddt        j
                  t        j
                  gt        j
                  dt        j
                  gt        j
                  t        j
                  dgdg d      }t        j                  ||       y )NrU   FoorX   )r  r   elementsrV   BarrY   rW   BazrZ   )r   rU   rV   rx   )r  r  r  r  g       @g      @)r  r   z
elements.az
elements.bz
elements.cr!  )r   r"  r   r   rq   r   re   rf   )rh   r   r   rj   rk   s        r%   test_series_non_zero_indexz-TestNestedToRecord.test_series_non_zero_index  s     S!H=S!H=S!H=

 4L"-"BFFBFF3!vvsBFF3!vvrvvs3 	
 	fh/r$   c                    ddddigdg}t        j                  t        d      5  t        |dg	       d d d        t        j                  t        d      5  t        |d
gdg       d d d        y # 1 sw Y   >xY w# 1 sw Y   y xY w)NrU   
meta_valuerY   rV   )rX   rc   r\  zmust be stringsr   rc   rn   r\  r|   )r   r   r  r   )rh   r   s     r%   *test_json_normalize_meta_string_validationz=TestNestedToRecord.test_json_normalize_meta_string_validation  s    \sAhZ@A ]]9,=> 	,4rd+	, ]]9,=> 	D4hZrdC	D 	D	, 	,	D 	Ds   A2A>2A;>B)r*  rG  rH  rR  rY  r]  rd  rg  rm  ro  rq  ru  r  r  r   rI  rJ  r  r  r  r  r#   r$   r%   rM  rM  W  s    """&"06 0$"4"@ "D [[  +4,7/61:#&  '-i%8)407)K# #&s	  +4,73:I,N#&	
5%	
(R"S(R"#"J0,	Dr$   rM  )r   numpyrq   r   pandasr   r   r   r   pandas._testing_testingre   pandas.io.json._normalizer   fixturer&   r<   rQ   rS   rM  r#   r$   r%   <module>r     s         6 # #L  0  <d@ d@NWD WDr$   