
    wbj)                         S r SSKrSSKrSSKrSSKJr  SSKJr   " S S\R                  5      r	\
S:X  a  \R                  " 5         gg)z>Microbenchmarks for JSON format parsing and custom enum names.    N)json_format)json_enumval_custom_string_pb2c                       \ rS rSrSrS rSrg)JsonFormatBenchmark   z(Microbenchmarks for JSON format parsing.c                   ^,^-^.^/^0^1^2^3 / SQm-/ SQm,/ SQm3SSR                  / SQS-  5      -   S-   m1SSR                  / S	QS-  5      -   S-   m0SSR                  / S
QS-  5      -   S-   m2SnSnSm/Sn[        R                  " 5       m.[        S5       H3  nT, H*  nT.R	                  5         [
        R                  " UT.5        M,     M5     U-U.U/4S jnU,U.U/4S jnU.U/U34S jnU.U/U14S jn	U.U/U04S jn
U.U/U24S jnS[        R                  " UT.R                  S9[        T-5      T/-  4S[        R                  " UT.R                  S9[        T,5      T/-  4S[        R                  " UT.R                  S9[        T35      T/-  4S[        R                  " U	T.R                  S9UT/-  4S[        R                  " U
T.R                  S9UT/-  4S[        R                  " UT.R                  S9UT/-  4/nU VVs0 s H	  u  n  oM/ _M     nnn[        U5       H<  nU H3  u  pnUU-  nUR                  US9nX   R                  US-  U-  5        M5     M>     S nU" US   5      u  nnnnU" US   5      u  nnnnU" US   5      u  nnnnU" US   5      u  n n!n"n#U" US   5      u  n$n%n&n'U" US   5      u  n(n)n*n+[        SUS  S!US  S"US  S#US  S$3	5        [        S%US  S!US  S"US  S#US  S$3	5        [        S&US  S!US  S"US  S#US  S$3	5        [        S'U!S  S(U S  S)U"S  S#U#S  S*3	5        [        S+U%S  S(U$S  S)U&S  S#U'S  S*3	5        [        S,U)S  S(U(S  S)U*S  S#U+S  S*3	5        g-s  snnf ).zFBenchmarks parsing of default, custom, and unknown enum names in JSON.)z{"armor":"ARMOR_GREAT_HELM"}z{"armor":"ARMOR_GAUNTLET"}z{"armor":"ARMOR_PLATE"}z{"armor":"ARMOR_COIF"}z{"armor":"ARMOR_PAULDRON"}z{"armor":"ARMOR_SABATON"}z{"armor":"ARMOR_HACHI_MAI_DO"})z{"armor":"gr8 helm"}z{"armor":"a\"b"}z{"armor":"\"plate\""}z{"armor":""}z{"armor":"p\taul\ndron"}z{"armor":"sabaton"}z{"armor":"8"})z{"armor":"UNKNOWN_1"}z{"armor":"UNKNOWN_2"}z{"armor":"UNKNOWN_3"}z{"armor":"UNKNOWN_4"}z{"armor":"UNKNOWN_5"}z{"armor":"UNKNOWN_6"}z{"armor":"UNKNOWN_7"}z{"armors":[,)z"ARMOR_GREAT_HELM"z"ARMOR_GAUNTLET"z"ARMOR_PLATE"z"ARMOR_COIF"z"ARMOR_PAULDRON"z"ARMOR_SABATON"z"ARMOR_HACHI_MAI_DO"   z]})z
"gr8 helm"z"a\"b"z"\"plate\""z""z"p\taul\ndron"z	"sabaton"z"8")z"UNKNOWN_1"z"UNKNOWN_2"z"UNKNOWN_3"z"UNKNOWN_4"z"UNKNOWN_5"z"UNKNOWN_6"z"UNKNOWN_7"
   d   b      c                     > T H<  n [        T5       H*  nTR                  5         [        R                  " U T5        M,     M>     g NrangeClearr   Parse)p_default_payloadsmsg
num_parsess     ڪ/tmp/claude-0/-home-danvics-docker-quiz/c1e0577a-e42c-4a3d-b1ea-3edd61103a4e/scratchpad/stt/lib/python3.13/site-packages/google/protobuf/internal/json_format_benchmark.pyrun_def>JsonFormatBenchmark.test_benchmark_parse_json.<locals>.run_defr   s5    !z"A
))+


As
# #      c                     > T H<  n [        T5       H*  nTR                  5         [        R                  " U T5        M,     M>     g r   r   )r   r   custom_payloadsr   r   s     r   run_cust?JsonFormatBenchmark.test_benchmark_parse_json.<locals>.run_custx   s5    !z"A
))+


As
# # r   c                     > T H;  n [        T5       H)  nTR                  5         [        R                  " U TSS9  M+     M=     g NT)ignore_unknown_fieldsr   )r   r   r   r   unknown_payloadss     r   run_unk>JsonFormatBenchmark.test_benchmark_parse_json.<locals>.run_unk~   s7    !z"A
))+


As$
? #  r   c                  x   > [        T5       H*  n TR                  5         [        R                  " TT5        M,     g r   r   )r   r   r   repeated_default_payloads    r   run_rep_defBJsonFormatBenchmark.test_benchmark_parse_json.<locals>.run_rep_def   s,    Z !		2C8 !r   c                  x   > [        T5       H*  n TR                  5         [        R                  " TT5        M,     g r   r   )r   r   r   repeated_custom_payloads    r   run_rep_custCJsonFormatBenchmark.test_benchmark_parse_json.<locals>.run_rep_cust   s,    Z !		137 !r   c                  v   > [        T5       H)  n TR                  5         [        R                  " TTSS9  M+     g r#   r   )r   r   r   repeated_unknown_payloads    r   run_rep_unkBJsonFormatBenchmark.test_benchmark_parse_json.<locals>.run_rep_unk   s0    Z !		$c	
 !r   r   )setupr    r&   r*   r.   r2   )numberg    .Ac                    [        U 5      S:  a  [        S[        U 5       S35      e[        R                  " U 5      n[        R                  " U 5      n[        R
                  " U 5      n[        R                  " U SS9S   nXAX#4$ )Nr   zInsufficient samples (zB) for statistical calculations. At least 100 samples are required.)nr   )len
ValueError
statisticsmedianmeanstdev	quantiles)samplesmed_valmean_val	stdev_valp99_vals        r   stats<JsonFormatBenchmark.test_benchmark_parse_json.<locals>.stats   s    	W	$S\N 3@ @
 	
 !!'*g)h""7+i$$W4R8gx22r   z2
[BENCHMARK] ParseJsonDefault:                med z.2fz us/op | p99 z us/op | mean u    ± z us/opz1[BENCHMARK] ParseJsonCustom:                 med z1[BENCHMARK] ParseJsonUnknownIgnored:         med z1[BENCHMARK] ParseRepeatedJsonDefault:        med z us/item | p99 z us/item | mean z us/itemz1[BENCHMARK] ParseRepeatedJsonCustom:         med z1[BENCHMARK] ParseRepeatedJsonUnknownIgnored: med N)joinr   Knightr   r   r   r   timeitTimerr8   appendprint)4self
iterationstrials	num_itemsr   r   r   r    r&   r*   r.   r2   
benchmarksnamebenchmark_samplestimernum_ops_per_batch	total_opselapsedrD   p99_defmed_defmean_defstd_defp99_custmed_cust	mean_custstd_custp99_unkmed_unkmean_unkstd_unkp99_rep_defmed_rep_defmean_rep_defstd_rep_defp99_rep_custmed_rep_custmean_rep_custstd_rep_custp99_rep_unkmed_rep_unkmean_rep_unkstd_rep_unkr   r   r   r   r-   r)   r1   r%   s4                                               @@@@@@@@r   test_benchmark_parse_json-JsonFormatBenchmark.test_benchmark_parse_json   s   O 	
(( 	
	
 	 " 	
(( 	
	
 	 " 	
(( 	
	
 	 " JFJI
(
/
/
1C 3Z!		!S!  
$$@9
8

 LL		2 !J.	
 LL3 :-	
 LL		2 !J.	
 LLCII6
"	
 LLSYY7
"	
 LLCII6
"	
5JD 5??JjdAqrJ?6],6
($(!22	,,j,1&&w}y'@A -7 
3 +00A)0L*M'GWh.3*%/+Hh	8 +00A)0L*M'GWh:?-(;7KlK ?D.)?;L,| ;@-(;7KlK 

=gc]
}N8C. AC=	 
 

;HS> J3~i_D#	
 
	}M'# 7S>gc]&	2
 
	C C/@ Ac"${3&7x	A
 
	S!c0B Cs#4S'9	C
 
	C C/@ Ac"${3&7x	Aw @s   2M N)__name__
__module____qualname____firstlineno____doc__ro   __static_attributes__rq   r   r   r   r      s    0`r   r   __main__)rv   r:   rH   unittestgoogle.protobufr   google.protobuf.jsonr   TestCaser   rr   mainrq   r   r   <module>r~      sG    E    ' ?c(++ cL z
--/ r   