
    -ji                       % S SK Jr  S SKrS SKJr  S SK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KrS SKrS SKrS SKJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJr  S SKJr  S SKJ r   S SKJ!r!  \RD                  S(S j5       r# " S S5      r$\%" \!5      r&SSSSS/S.S.r'S\(S'   S \RR                  \RT                  RV                  \RT                  RV                  * \RT                  RX                  \RT                  RX                  * \-" S5      \-" S5      * \-" S5      S.	r.S)S jr/S*S jr0S*S  jr1S*S! jr2S*S" jr3S*S# jr4S*S$ jr5S*S% jr6 S+           S,S& jjr7S-S' jr8g).    )annotationsN)datetime)sleep)Any)JSONSerializable)CategoricalDistribution)FloatDistribution)UpdateFinishedTrialError)BaseStorage)DEFAULT_STUDY_NAME_PREFIX)FrozenStudy)StudyDirection)FrozenTrial)
TrialStatec                     [         eN)NotImplementedError     X/home/james-whalen/.local/lib/python3.13/site-packages/optuna/testing/pytest_storages.pystorager      s    
r   c                     \ rS rSrS>S jrS>S jrS>S jrS>S jrS>S jrS>S jr	S>S jr
S>S	 jrS>S
 jrS>S jrS>S jrS>S jrS>S jr\R$                  R'                  S\R*                  " 5       \R*                  " 5       4\" SSS5      \" SSS5      4/5              S?S j5       rS>S jrS>S jrS>S jrS>S jrS>S jrS>S jrS>S jrS>S jrS>S jrS>S jr S>S jr!S>S  jr"S>S! jr#S>S" jr$S>S# jr%S>S$ jr&S>S% jr'S>S& jr(\R$                  R'                  S'S(S)/S)S(//5            S@S* j5       r)S>S+ jr*S>S, jr+S>S- jr,S>S. jr-S>S/ jr.\R$                  R'                  S0\/R`                  \/Rb                  /5      \R$                  R'                  S1/ S2QS3\2" S45      S5/S3\2" S65      S5/\2" S45      S3S5\2" S65      /\2" S45      /\2" S65      //5              SAS7 j5       5       r3S>S8 jr4S>S9 jr5S>S: jr6S>S; jr7S<r8g=)BStorageTestCase!   c                   UR                  [        R                  /S9nUR                  5       n[	        U5      S:X  d   eUS   R
                  U:X  d   eUS   R                  R                  [        5      (       d   eUR                  [        R                  /S9nX$:w  d   eUR                  5       n[	        U5      S:X  d   eU Vs1 s H  oUR
                  iM     snX$1:X  d   e[        S U 5       5      (       d   eg s  snf )N
directions   r      c              3  ^   #    U  H#  oR                   R                  [        5      v   M%     g 7fr   )
study_name
startswithr   ).0ss     r   	<genexpr>8StorageTestCase.test_create_new_study.<locals>.<genexpr>0   s!     ^~!<<**+DEE~s   +-)
create_new_studyr   MINIMIZEget_all_studieslen	_study_idr!   r"   r   all)selfr   study_idfrozen_studies	study_id2r$   s         r   test_create_new_study%StorageTestCase.test_create_new_study"   s   ++8O8O7P+Q 002>"a'''a **h666a ++667PQQQQ,,9P9P8Q,R	$$$ 002>"a'''%34^^48MMMM^~^^^^^ 5s   Dc                J   UR                  [        R                  /S9nUR                  [        R                  /S9nUR                  U5        UR                  [        R                  /S9nUR	                  5       nU Vs1 s H  ofR
                  iM     snX$1:X  d   eg s  snf Nr   r'   r   r(   delete_studyr)   r+   )r-   r   r.   r0   	study_id3r/   r$   s          r   test_create_new_study_unique_id/StorageTestCase.test_create_new_study_unique_id2   s    ++8O8O7P+Q,,9P9P8Q,R	Y',,9P9P8Q,R	 002%34^^48MMMM4s    B c                l   U R                   R                  nUnUR                  [        R                  /US9nX1R                  U5      :X  d   e[        R                  " [        R                  R                  5         UR                  [        R                  /US9  S S S 5        g ! , (       d  f       g = f)Nr   r!   )test_create_new_study_with_name__name__r'   r   r(   get_study_name_from_idpytestraisesoptuna
exceptionsDuplicatedStudyErrorr-   r   function_namer!   r.   s        r   r<   /StorageTestCase.test_create_new_study_with_name;   s    <<EE"
++&//0Z , 
 ;;HEEEE]]6,,AAB$$1H1H0IV`$a CBBs   < B%%
B3c                   UR                  [        R                  /S9nUR                  U5        UR	                  U5      n[        U5      S:X  d   e[        R                  " [        5         UR                  US-   5        S S S 5        UR                  U5        UR                  [        R                  /S9nUR	                  U5      n[        U5      S:X  d   eUR                  U5        [        R                  " [        5         UR                  U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   r   r   )
r'   r   r(   create_new_trialget_all_trialsr*   r?   r@   KeyErrorr6   )r-   r   r.   trialss       r   test_delete_study!StorageTestCase.test_delete_studyH   s   ++8O8O7P+Q  *''16{a]]8$  A. % 	X&++8O8O7P+Q''16{aX&]]8$  * %$ %$ %$s   ,D D1 
D.1
D?c                b   UR                  [        R                  /S9nUR                  [        R                  /S9nUR                  [        R                  /S9nUR                  U5        UR	                  5        Vs0 s H  oUR
                  U_M     nnX&;   d   eX6;  d   eXF;   d   eg s  snf r4   r5   )r-   r   	study_id1r0   r7   r$   studiess          r   /test_delete_study_after_create_multiple_studies?StorageTestCase.test_delete_study_after_create_multiple_studies\   s    ,,9P9P8Q,R	,,9P9P8Q,R	,,9P9P8Q,R	Y'+2+B+B+DE+Da;;>+DE###'''### Fs   >B,c                   U R                   R                  nUnUR                  [        R                  /US9nUR                  U5      U:X  d   eUR                  U5      U:X  d   e[        R                  " [        5         UR                  S5        S S S 5        [        R                  " [        5         UR                  US-   5        S S S 5        g ! , (       d  f       NF= f! , (       d  f       g = f)Nr;   z
dummy-namer   )
6test_get_study_id_from_name_and_get_study_name_from_idr=   r'   r   r(   r>   get_study_id_from_namer?   r@   rJ   rD   s        r   rT   FStorageTestCase.test_get_study_id_from_name_and_get_study_name_from_idh   s    SS\\"
++&//0Z , 

 --h7:EEE--j9XEEE ]]8$**<8 % ]]8$**8a<8 %$ %$ %$s    C4C#
C #
C1c                *  ^^^ [         R                  4[         R                  4[         R                  [         R                  4[         R                  [         R                  4[         R                  [         R                  /[         R                  [         R                  /4 H\  mTR                  TS9mSUUU4S jjnU" 5         TS-   n[        R
                  " [        5         TR                  U5        S S S 5        M^     g ! , (       d  f       Mp  = f)Nr   c                 T   > TR                  T5      n U [        T5      :X  d   S5       eg )NzCDirection of a study should be a tuple of `StudyDirection` objects.)get_study_directionslist)got_directionsr   r.   targets    r   	check_getDStorageTestCase.test_set_and_get_study_directions.<locals>.check_get   s/    !(!=!=h!G%f5 Y5r   r   )returnNone)r   r(   MAXIMIZEr'   r?   r@   rJ   rY   )r-   r   r]   non_existent_study_idr.   r\   s    `  @@r   !test_set_and_get_study_directions1StorageTestCase.test_set_and_get_study_directions{   s    $$&$$&$$n&=&=>$$n&=&=>$$n&=&=>$$n&=&=>
F //6/BH  K %-qL!x(,,-BC )(/
. )(s   $D
D	c                
  ^^ TR                  [        R                  /S9mSUU4S jjn[        R	                  5        H  u  p4U" X45        M     TR                  T5      [        :X  d   eU" SS5        TS-   n[        R                  " [        5         TR                  U5        S S S 5        [        R                  " [        5         TR                  USS5        S S S 5        g ! , (       d  f       NE= f! , (       d  f       g = f)	Nr   keyvaluec                ^   > TR                  TX5        TR                  T5      U    U:X  d   eg r   )set_study_user_attrget_study_user_attrsrf   rg   r   r.   s     r   check_set_and_getLStorageTestCase.test_set_and_get_study_user_attrs.<locals>.check_set_and_get   s1    ''#=//9#>%GGGr   datasetImageNetr   rf   strrg   r   r_   r`   )
r'   r   r(   EXAMPLE_ATTRSitemsrj   r?   r@   rJ   ri   r-   r   rl   rf   rg   rb   r.   s    `    @r   !test_set_and_get_study_user_attrs1StorageTestCase.test_set_and_get_study_user_attrs   s    ++8O8O7P+Q	H 	H
 (--/JCc) 0++H5FFF 	)Z0 !)1]]8$(()>? % ]]8$''(=ugN %$	 %$ %$   C#C4#
C14
Dc                    [        U5        g r   )-_test_set_and_get_study_user_attrs_for_floatsr-   r   s     r   ,test_set_and_get_study_user_attrs_for_floats<StorageTestCase.test_set_and_get_study_user_attrs_for_floats   
    5g>r   c                
  ^^ TR                  [        R                  /S9mSUU4S jjn[        R	                  5        H  u  p4U" X45        M     TR                  T5      [        :X  d   eU" SS5        TS-   n[        R                  " [        5         TR                  U5        S S S 5        [        R                  " [        5         TR                  USS5        S S S 5        g ! , (       d  f       NE= f! , (       d  f       g = f)	Nr   rf   rg   c                ^   > TR                  TX5        TR                  T5      U    U:X  d   eg r   )set_study_system_attrget_study_system_attrsrk   s     r   rl   NStorageTestCase.test_set_and_get_study_system_attrs.<locals>.check_set_and_get   s1    ))(C?11(;C@EIIIr   rn   ro   r   rp   )
r'   r   r(   rr   rs   r   r?   r@   rJ   r   rt   s    `    @r   #test_set_and_get_study_system_attrs3StorageTestCase.test_set_and_get_study_system_attrs   s    ++8O8O7P+Q	J 	J
 (--/JCc) 0--h7=HHH 	)Z0 !)1]]8$**+@A % ]]8$))*?P %$	 %$ %$rw   c                    [        U5        g r   )/_test_set_and_get_study_system_attrs_for_floatsrz   s     r   .test_set_and_get_study_system_attrs_for_floats>StorageTestCase.test_set_and_get_study_system_attrs_for_floats   s
    7@r   c                    UR                  [        R                  /S9n[        R	                  5        H  u  p4UR                  X#U5        M     UR                  U5      [        :X  d   eUR                  U5      0 :X  d   eUR                  [        R                  /S9n[        R	                  5        H  u  p4UR                  X#U5        M     UR                  U5      [        :X  d   eUR                  U5      0 :X  d   eg r4   )	r'   r   r(   rr   rs   r   r   rj   ri   )r-   r   r.   rf   rg   s        r   *test_study_user_and_system_attrs_confusion:StorageTestCase.test_study_user_and_system_attrs_confusion   s    ++8O8O7P+Q'--/JC))(? 0--h7=HHH++H5;;;++8O8O7P+Q'--/JC''u= 0++H5FFF--h72===r   c                               SS jnUR                  [        R                  /S9nSn[        U5       Ho  n[        R
                  " 5       n[        S5        UR                  U5      n[        S5        [        R
                  " 5       nUR                  U5      n	U" XXvU5        Mq     [        R                  " [        5         UR                  US-   5        S S S 5        UR                  [        R                  /S9n
[        U5       H\  nUR                  U
5        UR                  U
5      n	U	 Vs1 s H  oR                  iM     sn[        [        US-   5      5      :X  a  M\   e   UR                  U5      UR                  U
5      -   n	[        U	 Vs1 s H  oR                  iM     sn5      SU-  :X  d   eg ! , (       d  f       N= fs  snf s  snf )Nc                2  ^^^ [        U 5      US-   :X  d   e[        U  Vs1 s H  oUR                  iM     sn5      US-   :X  d   eTU  Vs1 s H  oUR                  iM     sn;   d   eU  Vs1 s H  oUR                  iM     sn[        [	        US-   5      5      :X  d   e[        S U  5       5      (       d   e[        S U  5       5      (       d   e[        S U  5       5      (       d   e[        S U  5       5      (       d   e[        S U  5       5      (       d   e[        UU4S jU  5       5      (       d   e[        UUU4S jU  5       5      (       d   e[        S	 U  5       5      (       d   e[        S
 U  5       5      (       d   eg s  snf s  snf s  snf )Nr   c              3  Z   #    U  H!  oR                   [        R                  :H  v   M#     g 7fr   )stater   RUNNINGr#   ts     r   r%   OStorageTestCase.test_create_new_trial.<locals>._check_trials.<locals>.<genexpr>   s     Efww*"4"44f   )+c              3  >   #    U  H  oR                   0 :H  v   M     g 7fr   paramsr   s     r   r%   r      s     6v!xx2~v   c              3  >   #    U  H  oR                   0 :H  v   M     g 7fr   intermediate_valuesr   s     r   r%   r      s     CFq,,2Fr   c              3  >   #    U  H  oR                   0 :H  v   M     g 7fr   
user_attrsr   s     r   r%   r      s     :6a||r)6r   c              3  >   #    U  H  oR                   0 :H  v   M     g 7fr   system_attrsr   s     r   r%   r      s     <V~~+Vr   c              3     >#    U  H5  nUR                   T:w  d  M  UR                  c  M$  UR                  T:  v   M7     g 7fr   	_trial_iddatetime_start)r#   r   time_before_creationtrial_ids     r   r%   r      s@      A;;(* 8/0/?/? 8  #77s   A A A c              3     >#    U  HE  nUR                   T:X  d  M  UR                  c  M$  TUR                  s=:  =(       a    T:  Os  v   MG     g 7fr   r   )r#   r   time_after_creationr   r   s     r   r%   r      sN      A;;(* N/0/?/? N$q'7'7MM:MMMs   AA&Ac              3  <   #    U  H  oR                   S L v   M     g 7fr   datetime_completer   s     r   r%   r      s     CFq**d2F   c              3  <   #    U  H  oR                   S L v   M     g 7fr   rg   r   s     r   r%   r      s     71ww$r   r*   r   numbersetranger,   )rK   idxr   r   r   r   s     ``` r   _check_trials<StorageTestCase.test_create_new_trial.<locals>._check_trials   s    v;#')))V4VV45q@@@V<VV<<<<&,-fHHf-U37^1DDDDEfEEEEE6v66666CFCCCCC:6:::::<V<<<<<     
      
 CFCCCCC777777' 5<-s   F
F,Fr      MbP?r   r   )rK   list[FrozenTrial]r   intr   r   r   r   r   r   r_   r`   )r'   r   r(   r   r   nowr   rH   rI   r?   r@   rJ   r   r   r*   r   )r-   r   r   r.   n_trial_in_studyir   r   r   rK   r0   r   s               r   test_create_new_trial%StorageTestCase.test_create_new_trial   s   	8%	8	8 	8 #+		8
 "*	8 	8: ++8O8O7P+Q'(A#+<<> %L//9H%L"*,,.++H5F&XEXY ) ]]8$$$X\2 % ,,9P9P8Q,R	'(A$$Y/++I6F&,-fHHf-U1q5\1BBBB ) ''1G4J4J94UU0AKK01Q9I5IIII %$ . 1s   
G9GG
Gzstart_time,complete_timei  	   r   r   c                  ^ [        [        R                  SUUSS0S[        SS5      0SS0SS	0S
SSS.SSS9mSU4S jjnUR	                  [
        R                  /S9nSn[        U5       H-  nUR                  UTS9nUR                  U5      n	U" XU5        M/     [        R                  " [        5         UR                  US-   5        S S S 5        UR	                  [
        R                  /S9n
[        U5       H[  nUR                  U
TS9  UR                  U
5      n	U	 Vs1 s H  oR                  iM     sn[        [        US-   5      5      :X  a  M[   e   UR                  U5      UR                  U
5      -   n	[        U	 Vs1 s H  oR                   iM     sn5      SU-  :X  d   eg ! , (       d  f       N= fs  snf s  snf )Ni'  x      ?r   r   foobarbaz{   
   d   i  )r   r   r   7   )r   rg   r   r   r   distributionsr   r   r   r   r   c                P  > [        U 5      US-   :X  d   e[        U  Vs1 s H  o3R                  iM     sn5      US-   :X  d   eX  Vs1 s H  o3R                  iM     sn;   d   eU  Vs1 s H  o3R                  iM     sn[        [	        US-   5      5      :X  d   e[        U4S jU  5       5      (       d   e[        U4S jU  5       5      (       d   e[        U4S jU  5       5      (       d   e[        U4S jU  5       5      (       d   e[        U4S jU  5       5      (       d   e[        U4S jU  5       5      (       d   e[        U4S jU  5       5      (       d   e[        U4S	 jU  5       5      (       d   e[        U4S
 jU  5       5      (       d   eg s  snf s  snf s  snf )Nr   c              3  T   >#    U  H  oR                   TR                   :H  v   M     g 7fr   r   r#   r   template_trials     r   r%   cStorageTestCase.test_create_new_trial_with_template_trial.<locals>._check_trials.<locals>.<genexpr>-       G1ww."6"66   %(c              3  T   >#    U  H  oR                   TR                   :H  v   M     g 7fr   r   r   s     r   r%   r   .  s     I&Qxx>#8#88&r   c              3  T   >#    U  H  oR                   TR                   :H  v   M     g 7fr   )r   r   s     r   r%   r   /  s      WPV1.*F*FFPVr   c              3  T   >#    U  H  oR                   TR                   :H  v   M     g 7fr   r   r   s     r   r%   r   0  s#     c\bWX,,0R0RR\br   c              3  T   >#    U  H  oR                   TR                   :H  v   M     g 7fr   r   r   s     r   r%   r   1  s     Q&Q||~'@'@@&r   c              3  T   >#    U  H  oR                   TR                   :H  v   M     g 7fr   r   r   s     r   r%   r   2  s     Uf~~)D)DDfr   c              3  T   >#    U  H  oR                   TR                   :H  v   M     g 7fr   )r   r   s     r   r%   r   3  s"     YRXQ''>+H+HHRXr   c              3  T   >#    U  H  oR                   TR                   :H  v   M     g 7fr   r   r   s     r   r%   r   4  s#     _X^ST**n.N.NNX^r   c              3  T   >#    U  H  oR                   TR                   :H  v   M     g 7fr   r   r   s     r   r%   r   5  r   r   r   )rK   r   r   r   r   s       r   r   PStorageTestCase.test_create_new_trial_with_template_trial.<locals>._check_trials(  sj   v;#')))V4VV45q@@@V<VV<<<<&,-fHHf-U37^1DDDDGGGGGGI&IIIIIWPVWWWWWc\bcccccQ&QQQQQUfUUUUUYRXYYYYY_X^_____GGGGGG 5<-s   FF)F#r   r   r   r   )rK   r   r   r   r   r   r_   r`   )r   r   COMPLETEr	   r'   r   r(   r   rH   rI   r?   r@   rJ   r   r   r*   r   )r-   r   
start_timecomplete_timer   r.   r   r   r   rK   r0   r   r   s               @r   )test_create_new_trial_with_template_trial9StorageTestCase.test_create_new_trial_with_template_trial  s    %%%%+: 1!Q 78u~$&34 8
	H ++8O8O7P+Q'(A///XH++H5F&X. ) ]]8$$$X\2 % ,,9P9P8Q,R	'(A$$Y~$N++I6F&,-fHHf-U1q5\1BBBB )
 ''1G4J4J94UU0AKK01Q9I5IIII %$ . 1s   7F.%F?G.
F<c                p   UR                  [        R                  /S9nUR                  U5      nUR	                  U5      S:X  d   eUR                  U5      nUR	                  U5      S:X  d   e[
        R                  " [        5         UR	                  US-   5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   )r'   r   r(   rH   get_trial_number_from_idr?   r@   rJ   r-   r   r.   r   s       r   test_get_trial_number_from_id-StorageTestCase.test_get_trial_number_from_idM  s    ++8O8O7P+Q++H5//9Q>>>++H5//9Q>>>]]8$,,X\: %$$s   	B''
B5c           	     J   UR                  [        R                  /S9n[         Vs/ s H  o1R	                  U5      PM     nn[        U[        5       GH7  u  pVU[        R                  :X  a  M  UR                  U5      R                  [        R                  :X  d   eUR                  U5      R                  nUR                  XVUR                  5       (       a  SOS S9  UR                  U5      R                  U:X  d   eU[        R                  :X  a!  UR                  U5      R                  U:X  d   eUR                  5       (       a!  UR                  U5      R                  c   eGM  UR                  U5      R                  c  GM8   e   [        R                   " ["        5         [%        U5      S-   nUR                  U[        R&                  S9  S S S 5        [         H  nUR                  5       (       d  M  UR	                  U5      nUR                  XVSS9  [         HO  n	S n
U	[        R&                  :X  a  S/n
[        R                   " [(        5         UR                  XYU
S9  S S S 5        MQ     M     g s  snf ! , (       d  f       N= f! , (       d  f       M}  = f)Nr   )        r   valuesr   r   r   )r'   r   r(   
ALL_STATESrH   zipr   WAITING	get_trialr   r   r   set_trial_state_valuesis_finishedr   r?   r@   rJ   maxr   r
   )r-   r   r.   _	trial_idsr   r   datetime_start_prevnon_existent_trial_idstate2r   s              r   %test_set_trial_state_values_for_state5StorageTestCase.test_set_trial_state_values_for_stateZ  sC   ++8O8O7P+QAKLA--h7	L"9j9OH
***$$X.44
8J8JJJJ")"3"3H"="L"L**8I8I8K8KfQU +  $$X.44===
***((2AAEXXXX  ""((2DDPPP((2DDLLL  :$ ]]8$$'	NQ$6!**% )) +  %  E$$&&//9H**8*P$-1Z000!UF]]#;<228RX2Y =< %  7 M( %$" =<s   I=)-JJ
J
J"c                    [        U5        g r   )'_test_set_trial_state_values_for_floatsrz   s     r   &test_set_trial_state_values_for_floats6StorageTestCase.test_set_trial_state_values_for_floats  s
    /8r   c                z   [        USSSS9u  p#UR                  5        H  u  p$UR                  5        H  u  pVUR                  U5      UR                  :X  d   eUR                  R	                  5        HC  nUR                  XW5      UR                  U   R                  UR                  U   5      :X  a  MC   e   M     M     [        S UR                  5        5       5      S-   n[        R                  " [        5         UR                  U5        S S S 5        [        R                  " [        5         UR                  US5        S S S 5        US-
  n	[        R                  " [        5         UR                  U	S5        S S S 5        g ! , (       d  f       N~= f! , (       d  f       NZ= f! , (       d  f       g = f)Nr      r   n_studyn_trialseedc              3  R   #    U  H  oR                  5         H  o"v   M     M     g 7fr   keysr#   tstids      r   r%   LStorageTestCase.test_get_trial_param_and_get_trial_params.<locals>.<genexpr>       L6'')3)6   %'paramAz	dummy-key)_setup_studiesrs   get_trial_paramsr   r  get_trial_paramr   to_internal_reprr   r   r?   r@   rJ   )
r-   r   r   study_to_trialstrial_id_to_trialr   expected_trialrf   r   existent_trial_ids
             r   )test_get_trial_param_and_get_trial_params9StorageTestCase.test_get_trial_param_and_get_trial_params  sr   +GQPQR$3$9$9$; A,=,C,C,E(//9^=R=RRRR)00557C"228A^EaEaF&&~'<'<S'ABC C C 8 -F %< Lo446LLqP 	 ]]8$$$%:; %]]8$##$98D %1A5]]8$##$5{C %$ %$$$ %$s$    F
4F.F,

F
F),
F:c           
     (   UR                  [        R                  /S9nUR                  U5      nUR                  U5      nUR                  UR                  [        R                  /S95      n[	        SSS9n[        SS9n[        SS9n[	        SSS	S
9n	UR                  USSU5        UR                  USSU5        UR                  US5      S:X  d   eUR                  US5      S:X  d   eUR                  U5      R                  SSS.:X  d   eUR                  U5      SSS.:X  d   eUR                  USSU5        UR                  USSU	5        UR                  US5      S:X  d   eUR                  US5      S:X  d   eUR                  U5      R                  SSS.:X  d   eUR                  U5      SSS.:X  d   e[        R                  " [        5         UR                  USSU	5        S S S 5        [        R                  " [        5         UR                  USS[        SS95        S S S 5        UR                  U[        R                   S/S9  [        R                  " ["        5         UR                  USSU5        S S S 5        [        R                  " [$        5         UR                  US5        S S S 5        [        R                  " ["        5         UR                  USSU	5        S S S 5        UR                  USSU5        UR                  US5      S:X  d   eUR                  U5      R                  SS0:X  d   eUR                  U5      SS0:X  d   e['        X4U/5      S-   n
[        R                  " [$        5         UR                  U
SSU5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNO= f! , (       d  f       GN,= f! , (       d  f       GN= f! , (       d  f       g = f)Nr         ?       @lowhigh)ShibuyaEbisuMegurochoices)r  Shinseng      Y@T)r  r  logr   r   yr   r!  )r   r&  333333?z皙?)r   r(  )r!  r  r   r   r   皙?r   r$  )r'   r   r(   rH   r	   r   set_trial_paramr  r   r   r  r?   r@   
ValueErrorr   r   r   r
   rJ   r   )r-   r   r.   
trial_id_1
trial_id_2
trial_id_3distribution_xdistribution_y_1distribution_y_2distribution_zr   s              r   test_set_trial_param$StorageTestCase.test_set_trial_param  s   ++8O8O7P+Q--h7
--h7
--$$1H1H0I$J


 +s=2;YZ2;QR*sDI 	
CnE
C4DE&&z373>>>&&z371<<<  ,33Sx7PPPP''
3Sx7PPPP 	
CnE
CnE&&z373>>>&&z373>>>  ,33Ss7KKKK''
3Ss7KKKK ]]:&##JS.I ' ]]:&##C$;Db$c '
 	&&z9L9LVYUZ&[]]34##JQ8HI 5 ]]8$##J4 % ]]34##JS.I 5 	
C4DE&&z371<<<  ,33Y7GGGG''
3Y7GGGG !$ZZ$H IA M]]8$##$93^T %$7 '& '& 54 %$ 54 %$sH   N)N;0O'OO1P)
N8;
O

O
O.1
P 
Pc                    [        U5        g r   )(_test_set_and_get_trial_param_for_floatsrz   s     r   'test_set_and_get_trial_param_for_floats7StorageTestCase.test_set_and_get_trial_param_for_floats  s
    09r   c                   UR                  [        R                  /S9nUR                  U5      nUR                  U5      nUR                  UR                  [        R                  /S95      nUR                  U5      nUR                  U5      nUR	                  U[
        R                  SS9  UR	                  U[
        R                  [        S5      4S9  UR	                  U[
        R                  SS9  UR	                  U[
        R                  / SQS9  UR                  U5      R                  S:X  d   eUR                  U5      R                  b   eUR                  U5      R                  [        S5      :X  d   eUR                  U5      R                  / SQ:X  d   eUR                  U5      R                  / SQ:X  d   e[        X4XVU5      S-   n[        R                  " [        5         UR	                  U[
        R                  SS9  S S S 5        [        R                  " [         5         UR	                  U[
        R                  SS9  S S S 5        g ! , (       d  f       NQ= f! , (       d  f       g = f)	Nr   )r   r   inf)r)  皙?r'  r   r   )r   )r'   r   r(   rH   r   r   r   floatr   r   rg   r   r   r?   r@   rJ   r
   )	r-   r   r.   r-  r.  r/  
trial_id_4
trial_id_5r   s	            r   &test_set_trial_state_values_for_values6StorageTestCase.test_set_trial_state_values_for_values  s=   ++8O8O7P+Q--h7
--h7
--$$1H1H0I$J

 --h7
--h7
 	&&z9L9LU[&\&&j115</ 	' 	
 	&&j00 	' 	
 	&&j00 	' 	
   ,22c999  ,22:::  ,22eElBBB  ,33FFF  ,33FFF #JJT^ _bc c]]8$**%Z-@-@ +  % ]]34**:Z=P=PY]*^ 54 %$ 54s   1 I3 I-
I*-
I;c                p   UR                  [        R                  /S9nUR                  U5      nUR                  U5      nUR                  UR                  [        R                  /S95      nUR                  U5      nUR	                  USS5        UR	                  USS5        UR	                  USS5        UR	                  USS5        UR	                  USS5        UR	                  US	[        S
5      5        UR	                  US[        S5      5        UR                  U5      R                  SSS.:X  d   eUR                  U5      R                  0 :X  d   eUR                  U5      R                  SSS[        S
5      S.:X  d   e[        R                  " UR                  U5      R                  S   5      (       d   eUR	                  USS5        UR                  U5      R                  SSS.:X  d   e[        X4XV5      S-   n[        R                  " [        5         UR	                  USS5        S S S 5        UR                  U[        R                   S/S9  [        R                  " ["        5         UR	                  USS5        S S S 5        g ! , (       d  f       Ne= f! , (       d  f       g = f)Nr   r   r'  r   r*  r)  r   r   r   r;  nan)r   r   )r   r   r   r   r<  r   r   )r'   r   r(   rH   set_trial_intermediate_valuer=  r   r   npisnanr   r?   r@   rJ   r   r   r   r
   )r-   r   r.   r-  r.  r/  r>  r   s           r   !test_set_trial_intermediate_value1StorageTestCase.test_set_trial_intermediate_value  sv   ++8O8O7P+Q--h7
--h7
--$$1H1H0I$J

 --h7
 	,,ZC@,,ZC@,,ZC@,,ZC@,,ZC@,,ZE%LI,,ZE%LI  ,@@PSDTTTT  ,@@BFFF  ,@@U|	E
 
 	
 
 xx))*5II!LMMMM 	,,ZC@  ,@@PSDTTTT #JJ SVW W]]8$001F3O % 	&&z9L9LVYUZ&[]]3400QD 54 %$
 54s   #J9J'
J$'
J5c                    [        U5        g r   )-_test_set_trial_intermediate_value_for_floatsrz   s     r   ,test_set_trial_intermediate_value_for_floats<StorageTestCase.test_set_trial_intermediate_value_for_floats0  r}   r   c                F  ^ [        TSSSS9u  p#[        U4S jUR                  5        5       5      (       d   e[        S UR                  5        5       5      S-   n[        R
                  " [        5         TR                  U5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   r  c              3     >#    U  H=  nUR                  5         H%  u  p#TR                  U5      UR                  :H  v   M'     M?     g 7fr   )rs   get_trial_user_attrsr   r#   rK   r   trialr   s       r   r%   <StorageTestCase.test_get_trial_user_attrs.<locals>.<genexpr>5  sD      
2#)<<> ((2e6F6FF#1 G2   AAc              3  R   #    U  H  oR                  5         H  o"v   M     M     g 7fr   r  r  s      r   r%   rR  ;  "      ]/GSZSZS\CS\/Gr  r   )r  r,   r   r   r?   r@   rJ   rO  r-   r   r   r  non_existent_trials    `   r   test_get_trial_user_attrs)StorageTestCase.test_get_trial_user_attrs3  s    +GQPRS 
)002
 
 
 	
 
 ! ]/E/E/G ]]`aa]]8$(();< %$$   7B
B c                  ^ TR                  TR                  [        R                  /S95      nSU4S jjn[        R                  5        H  u  pEU" X$U5        M     TR                  U5      R                  [        :X  d   eU" USS5        TR                  TR                  [        R                  /S95      nU" USS5        [        TR                  U5      R                  5      S	:X  d   eTR                  U5      R                  S   S:X  d   e[        X&15      S	-   n[        R                  " [        5         TR                  USS5        S S S 5        TR                  U[        R                   S
/S9  [        R                  " ["        5         TR                  USS5        S S S 5        g ! , (       d  f       Ne= f! , (       d  f       g = f)Nr   rf   rg   c                r   > TR                  XU5        TR                  U 5      R                  U   U:X  d   eg r   )set_trial_user_attrr   r   r   rf   rg   r   s      r   rl   CStorageTestCase.test_set_trial_user_attr.<locals>.check_set_and_getD  s7    ''u=$$X.99#>%GGGr   rn   ro   baseline_scorer   r   r   r   r   r   rf   rq   rg   r   r_   r`   )rH   r'   r   r(   rr   rs   r   r   r*   r   r?   r@   rJ   r]  r   r   r   r
   )r-   r   r-  rl   rf   rg   r.  r   s    `      r   test_set_trial_user_attr(StorageTestCase.test_set_trial_user_attr?  s   --$$1H1H0I$J

	H
 (--/JCju5 0  ,77=HHH 	*i< --$$1H1H0I$J

 	*&6>7$$Z0;;<AAA  ,778HIURRR !$Z$< = A]]8$''(=ugN % 	&&z9L9LVYUZ&[]]34''
E7C 54 %$
 54s   :F-F>-
F;>
Gc                    [        U5        g r   ),_test_set_and_get_trial_user_attr_for_floatsrz   s     r   +test_set_and_get_trial_user_attr_for_floats;StorageTestCase.test_set_and_get_trial_user_attr_for_floatsb  s
    4W=r   c                F  ^ [        TSSSS9u  p#[        U4S jUR                  5        5       5      (       d   e[        S UR                  5        5       5      S-   n[        R
                  " [        5         TR                  U5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   r  c              3     >#    U  H=  nUR                  5         H%  u  p#TR                  U5      UR                  :H  v   M'     M?     g 7fr   )rs   get_trial_system_attrsr   rP  s       r   r%   >StorageTestCase.test_get_trial_system_attrs.<locals>.<genexpr>g  sD      
2#)<<> **848J8JJ#1 K2rS  c              3  R   #    U  H  oR                  5         H  o"v   M     M     g 7fr   r  r  s      r   r%   rk  m  rU  r  r   )r  r,   r   r   r?   r@   rJ   rj  rV  s    `   r   test_get_trial_system_attrs+StorageTestCase.test_get_trial_system_attrse  s    +GQPRS 
)002
 
 
 	
 
 ! ]/E/E/G ]]`aa]]8$**+=> %$$rZ  c                  ^ TR                  [        R                  /S9nTR                  U5      nSU4S jjn[        R                  5        H  u  pVU" X5U5        M     TR                  U5      R                  nU[        :X  d   eU" USS5        TR                  U5      nU" USS5        TR                  U5      R                  nUSS0:X  d   e[        X815      S	-   n	[        R                  " [        5         TR                  U	SS5        S S S 5        TR                  U[        R                  S
/S9  [        R                  " [         5         TR                  USS5        S S S 5        g ! , (       d  f       Ne= f! , (       d  f       g = f)Nr   rf   rg   c                ^   > TR                  XU5        TR                  U 5      U   U:X  d   eg r   )set_trial_system_attrrj  r^  s      r   rl   EStorageTestCase.test_set_trial_system_attr.<locals>.check_set_and_getu  s1    ))(?11(;C@EIIIr   rn   ro   r`  r   r   r   r   ra  )r'   r   r(   rH   rr   rs   r   r   r   r?   r@   rJ   rq  r   r   r   r
   )
r-   r   r.   r-  rl   rf   rg   r   r.  r   s
    `        r   test_set_trial_system_attr*StorageTestCase.test_set_trial_system_attrq  sd   ++8O8O7P+Q--h7
	J
 (--/JCju5 0((4AA},,, 	*i< --h7
*&6>((4AA 0%8888 !$Z$< = A]]8$))*?P % 	&&z9L9LVYUZ&[]]34))*eWE 54 %$
 54s   9E,E=,
E:=
Fc                    [        U5        g r   )._test_set_and_get_trial_system_attr_for_floatsrz   s     r   -test_set_and_get_trial_system_attr_for_floats=StorageTestCase.test_set_and_get_trial_system_attr_for_floats  s
    6w?r   c                   [        USSSS9u  p#UR                  5       n[        U5      [        U5      :X  d   eUR                  5        H  u  p5S nU H!  nUR                  UR                  :X  d  M  Un  O   Uc   eUR
                  UR
                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  a  M   e   g )Nr   .   r  )r  r)   r*   rs   r!   	directionr   r   )r-   r   expected_frozen_studiesr   r/   expected_frozen_studyfrozen_studyr$   s           r   test_get_all_studies$StorageTestCase.test_get_all_studies  s    %3GRQSZ\%]" 002>"c*A&BBBB(?(E(E(G$A/3L#<<#8#C#CC#$L $  +++))-B-L-LLLL**.C.N.NNNN**.C.N.NNNN,,0E0R0RRRR )Hr   c                   [        USSSS9u  p#UR                  5        H>  u  p$UR                  5        H%  nUR                  UR                  5      nXe:X  a  M%   e   M@     [        S UR                  5        5       5      S-   n[        R                  " [        5         UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr      /   r  c              3  R   #    U  H  oR                  5         H  o"v   M     M     g 7fr   r  r  s      r   r%   1StorageTestCase.test_get_trial.<locals>.<genexpr>  r  r  r   )	r  rs   r   r   r   r   r?   r@   rJ   )r-   r   r   r  expected_trialsr  rQ  r   s           r   test_get_trialStorageTestCase.test_get_trial  s    +GQQST"1"7"7"9A"1"8"8":)).*B*BC... #; #: Lo446LLqP 	 ]]8$34 %$$s   B99
Cc                r   [        USSSS9u  p#UR                  5        H4  u  pEUR                  U5      nU H  nXWR                     nXx:X  a  M   e   M6     [	        UR                  5       5      S-   n	[        R                  " [        5         UR                  U	5        S S S 5        g ! , (       d  f       g = f)Nr   r  0   r  r   )	r  rs   rI   r   r   r  r?   r@   rJ   )
r-   r   r   r  r.   r  rK   rQ  r  rb   s
             r   test_get_all_trials#StorageTestCase.test_get_all_trials  s    +GQQST)8)>)>)@%H++H5F!0!A...   *A !$O$8$8$: ;a ?]]8$""#89 %$$s   B((
B6param_namesabc           
     x   UR                  [        R                  /S9nUR                  U[        R
                  R                  [        R                  S95      nU H  nUR                  XES[        SS5      S9  M      UR                  U5      n[        US   R                  R                  5       5      U:X  d   eg )Nr   r   r  r   r  )distributionr   )r'   r   r(   rH   rA   rQ  create_trialr   r   r+  r	   rI   rZ   r   r  )r-   r   r  r.   r   
param_namerK   s          r    test_get_all_trials_params_order0StorageTestCase.test_get_all_trials_params_order  s     ++8O8O7P+Q++fll//j6H6H/I
 &J##c8I#s8S $  &
 ''1F1I$$))+,;;;r   c                   [        USSSS9u  p#U Hn  nUR                  USS9n[        U5      [        X4   5      :X  d   e[        R                  " U5      nSUS   R
                  S	'   UR                  US
S9nXg:X  a  Mn   e   g )Nr   r   1   r  Tdeepcopyr)  r   r   F)r  rI   r*   copyr  r   )r-   r   r/   r  r.   trials0trials0_originaltrials1s           r   #test_get_all_trials_deepcopy_option3StorageTestCase.test_get_all_trials_deepcopy_option  s    *8!UV]_*`'&H,,X,EGw<3'@#AAAA  $}}W5%(GAJc",,X,FG#... 'r   c                   UR                  [        R                  /S9n[        R                  " S5      n[
        R                  [
        R                  [
        R                  4nU HK  n[        U5      nXVl	        UR                  [
        R                  :X  a  S/OS Ul
        UR                  X&S9  MM     UR                  US S9n[        U5      S:X  d   eUR                  U[
        R                  4S9n[        U5      S:X  d   e[        S U 5       5      (       d   eUR                  U[
        R                  [
        R                  4S9n[        U5      S:X  d   e[        S	 U 5       5      (       d   eUR                  US
S9n[        U5      S:X  d   e[         Vs/ s H0  o[
        R                  :w  d  M  U[
        R                  :w  d  M.  UPM2     n	nU	 H$  nUR                  X%4S9n[        U5      S:X  a  M$   e   g s  snf )Nr   3   r   r   )statesr   r   c              3  Z   #    U  H!  oR                   [        R                  :H  v   M#     g 7fr   )r   r   r   r   s     r   r%   CStorageTestCase.test_get_all_trials_state_option.<locals>.<genexpr>  s     B6a77j1116r   c              3  z   #    U  H1  oR                   [        R                  [        R                  4;   v   M3     g 7fr   )r   r   r   PRUNEDr   s     r   r%   r    s*     WPV177z22J4E4EFFPVs   9;r   r   )r'   r   ra   randomRandomr   r   r  _generate_trialr   r   rH   rI   r*   r,   r   )
r-   r   r.   	generatorr  r   r   rK   r$   other_statess
             r    test_get_all_trials_state_option0StorageTestCase.test_get_all_trials_state_option  s   ++8O8O7P+QMM"%	 
 E	*AG !:+>+> >uDAH$$X$@	  '''>6{a''*:M:M9O'P6{aB6BBBBB''*:M:MzO`O`9a'b6{aWPVWWWWW'''<6{a "
!!**=*=%=A!zGXGXBXAz 	 
 "E++HX+FFv;!### "
s    H;HHc                0   [        USSSS9u  p#UR                  5        GH  nUR                  USS9n[        R                  " U5      nU GH  nUR
                  R                  5       (       db  UR                  UR                  SS[        SS	5      5        UR                  UR                  S
S5        UR                  UR                  SS5        UR
                  [        R                  :X  a  UR                  S-  S:X  a.  UR                  UR                  [        R                   S/5        M  UR                  S-  S	:X  aL  UR#                  UR                  SS5        UR                  UR                  [        R$                  S/5        GMC  UR                  UR                  [        R&                  5        GMp  UR
                  [        R(                  :X  d  GM  UR                  UR                  [        R                  5        GM     XV:X  a  GM   e   g )Nr   r  r  r  Fr  paramXr   r   	usr_attrX	sys_attrXr   )r  r  rI   r  r  r   r   r+  r   r	   r]  rq  r   r   r   r   r   rD  r  FAILr   )r-   r   r   r  r.   rK   deepcopied_trialsrQ  s           r    test_get_all_trials_not_modified0StorageTestCase.test_get_all_trials_not_modified  s   +GQQST',,.H++Hu+EF $f 5{{..00++EOOXqJ[\]_`Jab//aP11%//;PQR;;*"4"44||a'1,66u
H[H[^_]`a)Q.<<U__aQRS66u
HYHY\][^_66u
X[[J$6$66225??JDVDVW  " ...+ /r   c                2   [        USSSS9u  p#U H  nUR                  U5      S:X  a  M   e   [        UR                  5       5      S-   n[        R
                  " [        5         UR                  U5      (       d   e S S S 5        g ! , (       d  f       g = f)Nr      2   r  r   )r  get_n_trialsr   r  r?   r@   rJ   )r-   r   study_id_to_frozen_studiesr   r.   rb   s         r   test_get_n_trials!StorageTestCase.test_get_n_trials  s    (6wST[](^%"2H''1Q666 3 !$$>$C$C$E F J]]8$''(=>>>> %$$s   %B
Bc                   UR                  [        R                  4S9n[        R                  " S5      n[
        R                  [
        R                  [
        R                  /nU HK  n[        U5      nXVl	        UR                  [
        R                  :X  a  S/OS Ul
        UR                  X&S9  MM     UR                  U[
        R                  5      S:X  d   eUR                  U[
        R                  5      S:X  d   e[         Vs/ s H0  oU[
        R                  :w  d  M  U[
        R                  :w  d  M.  UPM2     nnU H  nUR                  X%5      S:X  a  M   e   g s  snf )Nr   r  r   r   r   r   r   )r'   r   ra   r  r  r   r   r  r  r   r   rH   r  r   )r-   r   r.   r  r  r$   r   r  s           r   test_get_n_trials_state_option.StorageTestCase.test_get_n_trials_state_option&  s>   ++8O8O7Q+RMM"%	 
 A	*AG !:+>+> >uDAH$$X$@	  ##Hj.A.ABaGGG##Hj.?.?@AEEE "
!!**=*=%=A!zGXGXBXAz 	 
 A''4999 
s   	E#$E#:E#r{  r   )r   r  r  r   r;  r  z-infc                |   UR                  U/S9n[        R                  " [        5         UR	                  U5        S S S 5        [        R                  " [
        5         UR	                  US-   5        S S S 5        [        R                  " S5      nU H8  n[        U5      n[        R                  Ul        Xgl        UR                  XGS9  M:     U[        R                  :X  a  [!        U5      O
[#        U5      nUR	                  U5      R                  U:X  d   eg ! , (       d  f       N= f! , (       d  f       N= f)Nr   r   r  r   )r'   r?   r@   r,  get_best_trialrJ   r  r  r  r   r   r   rg   rH   r   ra   r   min)	r-   r   r{  r   r.   r  vr   expected_values	            r   test_get_best_trial#StorageTestCase.test_get_best_trial?  s     ++	{+C]]:&""8, ' ]]8$""8a<0 % MM"%	A,Y7N#-#6#6N #$ $$X$M	 
 )2^5L5L(LVRUV\R]%%h/55GGG '& %$s   DD-
D*-
D;c                   UR                  [        R                  [        R                  4S9n[        R
                  " S5      n[        S5       H=  n[        U5      n[        R                  Ul
        XDS-   /Ul        UR                  X%S9  M?     [        R                  " [        5         UR!                  U5        S S S 5        g ! , (       d  f       g = f)Nr   r  r   r   r   )r'   r   ra   r(   r  r  r   r  r   r   r   r   rH   r?   r@   RuntimeErrorr  )r-   r   r.   r  r   r   s         r   4test_get_best_trial_for_multi_objective_optimizationDStorageTestCase.test_get_best_trial_for_multi_objective_optimization_  s    ++&//1H1HI , 
 MM"%	qA,Y7N#-#6#6N %&AJN!$$X$M	  ]]<(""8, )((s   *C
Cc                $   [         R                  " [        5         UR                  SSS9  S S S 5        UR	                  [
        R                  /S9n[         R                  " [        5         UR                  USS9  S S S 5        UR                  U5      nX1R                  USS9:X  d   eUR	                  [
        R                  /S9nUR                  U5      nX1R                  USS9:X  d   eg ! , (       d  f       N= f! , (       d  f       N= f)Nr   )r.   trial_numberr   )r  )r?   r@   rJ   'get_trial_id_from_study_id_trial_numberr'   r   r(   rH   r   s       r   ,test_get_trial_id_from_study_id_trial_number<StorageTestCase.test_get_trial_id_from_study_id_trial_numbern  s   ]]8$;;QUV;W % ++8O8O7P+Q]]8$;;HST;U % ++H5JJ1 K 
 
 	
 
 ++8O8O7P+Q++H5JJ1 K 
 
 	
 
) %$
 %$s   C0,D0
C>
Dc                $   UR                  [        R                  /S9nUR                  USS5        [        R
                  " [        R                  " U5      5      nUR                  U5      nUR                  U5      nXEs=:X  a	  SS0:X  d   e   eg )Nr   rf   pickle)r'   r   r(   r   r  loadsdumpsr   )r-   r   r.   restored_storagestorage_system_attrsrestored_storage_system_attrss         r   test_pickle_storage#StorageTestCase.test_pickle_storage  s    ++8O8O7P+Q%%hx@!<<W(=>&==hG(8(O(OPX(Y%#YPXHYYYYYYr   c                   UR                  [        R                  /S9nUR                  U5      nUR	                  U[
        R                  5        UR	                  U[
        R                  5        [        R                  " [        5         UR	                  U[
        R                  5        S S S 5        [        R                  " [        5         UR	                  U[
        R                  5        S S S 5        [        R                  " [        5         UR	                  U[
        R                  5        S S S 5        g ! , (       d  f       N= f! , (       d  f       Nc= f! , (       d  f       g = fr4   )r'   r   r(   rH   check_trial_is_updatabler   r   r   r?   r@   r
   r  r  r   r   s       r   test_check_trial_is_updatable-StorageTestCase.test_check_trial_is_updatable  s    ++8O8O7P+Q++H5((:3E3EF((:3E3EF]]34,,XzG 5 ]]34,,Xz7H7HI 5 ]]34,,Xz7J7JK 54 54 54 54s$   
!D:!E!E:
E
E
E*r   Nr   r   r_   r`   )r   r   r   r   r   r   r_   r`   )r   r   r  z	list[str]r_   r`   )r   r   r{  r   r   zlist[float]r_   r`   )9r=   
__module____qualname____firstlineno__r1   r8   r<   rL   rQ   rT   rc   ru   r{   r   r   r   r   r?   markparametrizer   r   r   r   r   r   r  r4  r8  r@  rG  rK  rX  rb  rf  rm  rs  rw  r  r  r  r  r  r  r  r  r  r   ra   r(   r=  r  r  r  r  r  __static_attributes__r   r   r   r   r   !   sp   _ Nb+(
$9&D6O0?Q0A>8Jt [["
,,.(,,.	)HT1a,@(4QRTUBV+WX4J"4J084JIQ4J	4J	4Jl;(ZT9D,=U~:%_N(ET?
=!DF>
?FB@S 5: [[]c3Z#s,DE<"<1:<	< F</#$J/4?:2 [[[>+B+BND[D[*\][[%,$%-%5\3U6]35\N6]O	

H"H/=HGRH	H
 ^H(-
2ZLr   r   MNISTr   imageclassificationr`  tags)rn   nonejson_serializablezdict[str, JSONSerializable]rr   r;  rC  )	zeropir   znegative maxr  znegative minr;  znegative infrC  c                    [         R                  " U 5      (       a  [         R                  " U5      $ [         R                  " U5      (       a  gX:H  $ )NF)mathrF  )r  r  s     r   is_equal_floatsr    s4    zz!}}zz!}zz!}}6Mr   c                    U R                  [        R                  /S9n[        R	                  5        H<  u  p#U R                  XU5        [        U R                  U5      U   U5      (       a  M<   e   g r4   )r'   r   r(   FLOAT_ATTRSrs   ri   r  rj   r   r.   rf   rg   s       r   ry   ry     sh    ''N4K4K3L'MH "'')
##H59w;;HEcJERRRR *r   c                    U R                  [        R                  /S9n[        R	                  5        H<  u  p#U R                  XU5        [        U R                  U5      U   U5      (       a  M<   e   g r4   )r'   r   r(   r  rs   r   r  r   r  s       r   r   r     sh    ''N4K4K3L'MH "'')
%%hU;w==hGLeTTTT *r   c                v   U R                  [        R                  /S9n[        R	                  5        H  n[
        R                  " U5      (       a  M   U R                  U5      nU R                  U[        R                  U4S9  U R                  U5      R                  nUc   e[        XB5      (       a  M   e   g )Nr   r   )r'   r   r(   r  r   r  rF  rH   r   r   r   r   rg   r  )r   r.   rg   r   	set_values        r   r   r     s    ''N4K4K3L'MH##%::e++H5&&xz7J7JTYS[&\%%h/55	$$$y0000 &r   c                >   U R                  [        R                  /S9nU R                  U5      n[        R                  5        H  u  p4[        XDS9n[        U4S9nXV4 H  n[        U[        5      (       a  [        R                  " U5      (       d  M5  UR                  R                  U-   nUR                  U5      n	U R                  X(X5        [        U R!                  X(5      U	5      (       d   eU R#                  U5      R$                  U   U:X  a  M   e   M     g )Nr   r  r"  )r'   r   r(   rH   r  rs   r	   r   
isinstancer  isfinite	__class__r=   r  r+  r  r  r   r   )
r   r.   r   rf   rg   float_distributioncategorical_distributionr  r  internal_reprs
             r   r7  r7    s   ''N4K4K3L'MH''1H!'')
.5E#:E8#L /JL,(9::4==QVCWCW%//883>J(99%@M##H-V"7#:#:8#PR_````$$X.<<ZHLXXX K *r   c                0   U R                  [        R                  /S9nU R                  U5      n[	        [
        R                  5       5       HF  u  p4U R                  X#U5        [        U R                  U5      R                  U   U5      (       a  MF   e   g r4   )r'   r   r(   rH   	enumerater  r   rD  r  r   r   )r   r.   r   r   rg   s        r   rJ  rJ    s    ''N4K4K3L'MH''1Hk0023,,X%@w00:NNqQSXYYYY 4r   c                   U R                  U R                  [        R                  /S95      n[        R                  5        H<  u  p#U R                  XU5        [        U R                  U5      U   U5      (       a  M<   e   g r4   )	rH   r'   r   r(   r  rs   r]  r  rO  r   r   rf   rg   s       r   re  re    sv    ''  ^-D-D,E FH
 "'')
##H59w;;HEcJERRRR *r   c                   U R                  U R                  [        R                  /S95      n[        R                  5        H<  u  p#U R                  XU5        [        U R                  U5      U   U5      (       a  M<   e   g r4   )	rH   r'   r   r(   r  rs   rq  r  rj  r   s       r   rv  rv    sv    ''  ^-D-D,E FH
 "'')
%%hU;w==hGLeTTTT *r   c           	        [         R                  " U5      n0 n0 n[        U5       H  nSU 3n	Uc/  UR                  [        R
                  [        R                  /5      nU R                  U4U	S9n
U R                  U
SU5        U R                  U
SU5        0 n[        U5       H8  n[        U5      nXl        U R                  X5      Ul        XUR                  '   M:     XU
'   [        U	USU0SU0U
S9Xj'   M     Xg4$ )Nztest-study-name-r;   ur$   )r!   r{  r   r   r.   )r  r  r   choicer   r(   ra   r'   ri   r   r  r   rH   r   r   )r   r  r  r  r{  r  study_id_to_frozen_studystudy_id_to_trialsr   r!   r.   rK   jrQ  s                 r   r  r    s    d#I79<>7^'s+
!((.*A*A>CZCZ)[\I++	|PZ+[##Hc15%%hQ7wA#I.EL%66xGEO&+5??#	  
 (.8$-8!Qxq.
 * * $77r   c                8   U R                  SS5      [        SS5      4U R                  SS5      [        SSSS94U R                  / SQ5      [        S5      4U R                  SS5      [        SS5      4U R                  SS	/5      [        S
5      4S.nSSS SSS/S.S.nU R                  [        5      n0 n0 n0 n0 n0 nUR                  5        H*  u  n	u  pU R                  SS/5      (       d  M"  XU	'   XU	'   M,     UR                  5        HE  u  pU R                  SS/5      (       a  XSU	-   '   U R                  SS/5      (       d  M>  XSU	-   '   MG     [        U R                  SS5      5       H1  nU R                  SS/5      (       d  M  U R                  SS5      X'   M3     [        SUU[        R                  :X  a  U R                  SS5      OS [        R                  " 5       UR                  5       (       a  [        R                  " 5       OS UUUUUSS9$ )Nr   r   r   T)r%  )CatACatBCatCr)  r<  )r)  r<  )r  paramBparamCparamDparamEvalueAr   r  r  r  )attrAattrBattrCattrDFusr_sys_   r   i)r   r   rg   r   r   r   r   r   r   r   r   )uniformr	   r  r   r   rs   r   randintr   r   r   r   r   r   )r  example_paramsexample_attrsr   r   r   r   r   r   rf   rg   distr   s                r   r  r  /  s2   $$Q*,=a,CD$$Q*,=a,MN56#$<=
 $$R+->r1-EF##S#J/1H1TU	N $)G=M3NO	M Z(EFMJ#%L,224]eT5M**3K!%# 5 $))+
T5M**',v|$T5M**).#&	 ,
 9$$Q+,T5M**%.%6%6sB%?" - ,1Z5H5H,HiR(d||~,1,=,=,?,?(,,.T#!/ r   )r_   r   )r  r=  r  r=  r_   boolr  r   )r   r   r  r   r  r   r  r   r{  zStudyDirection | Noner_   z@tuple[dict[int, FrozenStudy], dict[int, dict[int, FrozenTrial]]])r  zrandom.Randomr_   r   )9
__future__r   r  r   r  r  r  systimer   typingr   numpyrE  r?   rA   optuna._typingr   optuna.distributionsr   r	   optuna.exceptionsr
   optuna.storagesr   optuna.storages._baser   optuna.study._frozenr   optuna.study._study_directionr   optuna.trialr   r   fixturer   r   rZ   r   rr   __annotations__r  
float_infor   r  r=  r  r  ry   r   r   r7  rJ  re  rv  r  r  r   r   r   <module>r/     sz   "      
      + 8 2 6 ' ; , 8 $ #  ~L ~LB *
 ,1GEU;VW.*  
''>>^^'''>>^^'''<5\M<
SU	1Y$ZSU  (,888 8 	8
 %8 F8D/r   