§
    ¨éUgèq ã                   ó   — U d Z ddlZddlZddlZddlZddlZddlmZmZ ddl	Z	ddl
ZddlZddlmZ ddlmZ ddlmZmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZmZ ddlm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z&m'Z'm(Z(m)Z) ddl*m+Z+m,Z,m-Z-m.Z. ddl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 ddl/m6Z7 ddl8m9Z9 ddl:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@ ddlAmBZB ddlCmDZDmEZEmFZFmGZG ddlHmIZI dZJdZKe&e(dœZLe'e)dœZM eN¦   «         ZOeNePd<   eO Q                    eL¦  «         eO Q                    eM¦  «         g d¢ZR ejS        g d¢g d¢g d¢g d¢g d ¢g d!¢g d"¢g d#¢g d$¢g d%¢g d&¢g d'¢g d(¢g d)¢g d*¢g d+¢g d,¢g d-¢g d.¢g d/¢g d0¢g d1¢g d2¢g¦  «        ZTg d3¢ZUg d4¢ZVd5d6gd6d6gd6d5gd7d7gd7d8gd8d7ggZWg d9¢ZXd6d6gd8d8gd:d8ggZYg d;¢ZZ ej[        ¦   «         Z\ej]         ^                    d7¦  «        Z_e_ `                    e\ja        jb        ¦  «        Zce\jd        ec         e\_d        e\ja        ec         e\_a         eje        ¦   «         Zfe_ `                    efja        jb        ¦  «        Zcefjd        ec         ef_d        efja        ec         ef_a         ejg        ¦   «         Zhe_ `                    ehja        jb        ¦  «        Zcehjd        ec         eh_d        ehja        ec         eh_a         eId¦  «        Zi ejj        dd<d=¬>¦  «        \  ZkZlei m                    d?¬@¦  «        ZndAenendBk    <   ei o                    ddCdD¬@¦  «        Zp e$dEd=dFd¬G¦  «         q                    ¦   «         Zre\jd        e\ja        dHœefjd        efja        dHœehjd        ehja        dHœeWeXdHœeTeUdHœeTeVdHœekeldHœenepdHœen epdHœerepdHœ ejs        dI¦  «        epdHœdJœZtdK„ ZudL„ ZvdM„ Zwejx         y                    dNeM z                    ¦   «         ¦  «        ejx         y                    dOeK¦  «        dP„ ¦   «         ¦   «         Z{dQ„ Z|dR„ Z}ejx         y                    dSeM ~                    ¦   «         ¦  «        ejx         y                    dOeK¦  «        dT„ ¦   «         ¦   «         Ze@ejx         y                    dSeM ~                    ¦   «         ¦  «        ejx         y                    dUdVdWedXfdYdEedXfdZdWedXfd[dWed<fg¦  «        d\„ ¦   «         ¦   «         ¦   «         Z€d]„ Z�d^„ Z‚d_„ Zƒd`„ Z„da„ Z…db„ Z†dc„ Z‡dd„ Zˆde„ Z‰df„ ZŠdg„ Z‹dÚdh„ZŒejx         y                    dieO¦  «        dj„ ¦   «         Z�ejx         y                    dieR¦  «        ejx         y                    dkeF¦  «        dl„ ¦   «         ¦   «         ZŽ	 dÚdm„Z�ejx         y                    dieO¦  «        dn„ ¦   «         Z�ejx         y                    dieR¦  «        ejx         y                    dkeF¦  «        do„ ¦   «         ¦   «         Z‘dp„ Z’dq„ Z“dr„ Z”ds„ Z•dt„ Z–du„ Z—dv„ Z˜dw„ Z™ejx         y                    dieL¦  «        dx„ ¦   «         Zšejx         y                    dieL¦  «        dy„ ¦   «         Z›dz„ Zœd{„ Z�d|„ Zžd}„ ZŸd~„ Z d„ Z¡d€„ Z¢d�„ Z£d‚„ Z¤dÚdƒ„Z¥ejx         y                    d„eR¦  «        ejx         y                    d…d†¦  «        d‡„ ¦   «         ¦   «         Z¦ejx         y                    d„ e§ e¨eR¦  «         ©                    eM¦  «        ¦  «        ¦  «        ejx         y                    d…dˆd‰g¦  «        dŠ„ ¦   «         ¦   «         Zªejx         y                    d„eR¦  «        ejx         y                    d…g d‹¢¦  «        ejx         y                    dkeF¦  «        dŒ„ ¦   «         ¦   «         ¦   «         Z«ejx         y                    d� e¬ edŽ„ eRD ¦   «         eK¦  «        ¦  «         e¬ ed�„ eRD ¦   «         eJ¦  «        ¦  «        z   ¦  «        ejx         y                    d…g d‹¢¦  «        ejx         y                    dkeF¦  «        d�„ ¦   «         ¦   «         ¦   «         Z­ejx         y                    d„eR¦  «        ejx         y                    d‘ e®eFeG¦  «        ¦  «        d’„ ¦   «         ¦   «         Z¯e?d“„ ¦   «         Z°ejx         y                    dieO¦  «        d”„ ¦   «         Z±ejx         y                    dieO¦  «        ejx         y                    d•dgeFz   ¦  «        d–„ ¦   «         ¦   «         Z²ejx         y                    dieO¦  «        d—„ ¦   «         Z³ejx         y                    dieR¦  «        ejx         y                    d˜eG¦  «        d™„ ¦   «         ¦   «         Z´dš„ Zµejx         y                    dieO¦  «        d›„ ¦   «         Z¶ejx         y                    dieO¦  «        ejx         y                    d˜eG¦  «        dœ„ ¦   «         ¦   «         Z·d�„ Z¸dž„ Z¹ejx         y                    d•dgeFz   ¦  «        dŸ„ ¦   «         Zºejx         y                    d… e§ e¨et »                    ¦   «         ¦  «        d‰dˆhz
  ¦  «        ¦  «        ejx         y                    d e&e(g¦  «        d¡„ ¦   «         ¦   «         Z¼ejx         y                    d…et »                    ¦   «         ¦  «        ejx         y                    d e'e)g¦  «        d¢„ ¦   «         ¦   «         Z½d£„ Z¾d¤„ Z¿d¥„ ZÀejx         y                    dieO¦  «        ejx         y                    d¦d§d¨g¦  «        ejx         y                    d•dgeFz   eGz   ¦  «        d©„ ¦   «         ¦   «         ¦   «         ZÁejx         y                    dOg dª¢¦  «        ejx         y                    dNeM z                    ¦   «         ¦  «        d«„ ¦   «         ¦   «         ZÂejx         y                    d¬ eÃd:¦  «        ¦  «        d­„ ¦   «         ZÄd®„ ZÅejx         y                    dOeK¦  «        d¯„ ¦   «         ZÆejx         y                    dNe&e(g¦  «        ejx         y                    d°d8dCg¦  «        d±„ ¦   «         ¦   «         ZÇd²„ ZÈd³„ ZÉd´„ ZÊdµ„ ZËd¶„ ZÌd·„ ZÍd¸„ ZÎd¹„ ZÏdº„ ZÐd»„ ZÑejx         y                    d¼ e e-jz        ¦   «          e.jz        ¦   «         ¦  «        ¦  «        d½„ ¦   «         ZÒd¾„ ZÓejx         y                    dNeO z                    ¦   «         ¦  «        d¿„ ¦   «         ZÔejx         y                    dOdVdZg¦  «        dÀ„ ¦   «         ZÕejx         y                    dOdÁdÂg¦  «        dÃ„ ¦   «         ZÖejx         y                    dOdÁdÂg¦  «        dÄ„ ¦   «         Z×ejx         y                    dOdÁdÂg¦  «        dÅ„ ¦   «         ZØejx         y                    dOdÁdÂg¦  «        dÆ„ ¦   «         ZÙejx         y                    d•dgeGz   ¦  «        ejx         y                    dÇ e&d¨¬È¦  «         e'dY¬É¦  «        g¦  «        dÊ„ ¦   «         ¦   «         ZÚdË„ ZÛdÌ„ ZÜejx         y                    dÍejÝ        e'feÜe&fg¦  «        ejx         y                    dÎddÏg¦  «        dÐ„ ¦   «         ¦   «         ZÞdÑ„ Zßejx         y                    dÒejà        e'fejá        e&fg¦  «        dÓ„ ¦   «         ZâdÔ„ Zãejx         y                    dÕ ejS        ejä        d8ejä        dCdÖd×g¦  «         ejS        ejä        ejä        d:dCdÖd×g¦  «         ejS        d7d8d:dCejä        ejä        g¦  «         ejS        d7d8d:ejä        d×ejä        g¦  «        g¦  «        ejx         y                    dOdVdZg¦  «        dØ„ ¦   «         ¦   «         ZådÙ„ ZædS )Ûz-
Testing for the tree module (sklearn.tree).
é    N)ÚchainÚproduct)ÚNumpyPickler)Úassert_allclose)ÚcloneÚdatasetsÚtree)ÚDummyRegressor)ÚNotFittedError)ÚSimpleImputer)Úaccuracy_scoreÚmean_poisson_devianceÚmean_squared_error)Útrain_test_split)Úmake_pipeline)Ú_sparse_random_matrix)ÚDecisionTreeClassifierÚDecisionTreeRegressorÚExtraTreeClassifierÚExtraTreeRegressor)ÚCRITERIA_CLFÚCRITERIA_REGÚDENSE_SPLITTERSÚSPARSE_SPLITTERS)Ú
NODE_DTYPEÚ	TREE_LEAFÚTREE_UNDEFINEDÚ_check_n_classesÚ_check_node_ndarrayÚ_check_value_ndarray)ÚTree)Úcompute_sample_weight)Úassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚcreate_memmap_backed_dataÚignore_warningsÚskip_if_32bit)Úcheck_sample_weights_invariance)Ú	_IS_32BITÚCOO_CONTAINERSÚCSC_CONTAINERSÚCSR_CONTAINERS)Úcheck_random_state)ÚginiÚlog_loss)Úsquared_errorÚabsolute_errorÚfriedman_mseÚpoisson)r   r   )r   r   Ú	ALL_TREES)r   r   é   r   r   r   é   iòÿÿÿr   éüÿÿÿr   r   r   r   )r   r   é   é   r   r8   r   r   r7   éûÿÿÿçš™™™™™É?r   r6   r7   )éÿÿÿÿr=   r   r   ç      Àr   r   çÍÌÌÌÌÌ @r7   r   r   r>   r   r7   )r=   r=   r   g333333ó¿r   r   r   r   r   r   r<   r   r   r7   )r=   r=   r   r   r   r   r   r:   r   r   r   r   r   r7   )r=   éþÿÿÿr   r6   éýÿÿÿé
   r6   r   çš™™™™™	Àr   r6   r:   r8   r7   )çáz®Gá @r   éúÿÿÿç      à¿r   é   r   r   rC   é   ç      à?r   rA   r7   )rD   r   rE   rF   r   rG   r   r   rC   rH   r   r   r@   r7   )rD   é   rE   rF   r   rG   r   r   rC   rH   r   r   r@   r7   )rD   rJ   rE   rF   r   rG   r   r   rC   rH   rI   r   r=   r   )é   rJ   r9   r7   rI   r8   rB   r   r7   r;   r:   r   rK   r   )rK   r   r7   r7   r7   r=   r7   r   r   r@   r:   r   r7   r   )rK   r   r7   rK   r:   r=   rB   rK   r   r=   r7   rK   rK   r   )r7   r7   r   rK   rK   r=   r7   rK   r   r;   r7   rK   r:   r   )r:   r7   r   r:   r   r8   rB   r   r7   r;   r:   r   r:   r7   )rD   rJ   rE   rF   r   r7   r   r   rC   rH   rI   r   rA   r7   )rD   rJ   rE   rF   r   r7   r   r   rC   rH   ç      ø?r7   r=   r=   )rD   rJ   rE   rF   r   rB   r   r   rC   rH   rI   r   r=   r=   )rK   r   r9   r7   rI   r@   rB   r   r7   r;   r:   r7   r   r=   )rK   r   r7   r7   r7   r@   r7   r   r   r@   r   r   r   r7   )rK   r7   r7   r7   rK   r=   rB   rK   r   r=   r   rK   r7   r7   )r7   r7   r   r   r7   rA   r7   rK   r   r;   r7   rK   r7   r7   )r:   r7   r   r7   r   r8   r7   r   r7   r@   r   r   r7   r   )r7   r7   r   r   r   r   r7   r7   r7   r7   r7   r7   r   r   r   r7   r   r   r7   r   r   r   r   )ç      ð?r?   ç333333ó?çš™™™™™©?rB   g333333@çÍÌÌÌÌÌ@g)\�Âõ(ð?ç{®Gáz„?g×£p=
×@rP   gš™™™™™ñ?ç        rN   rK   rG   r   r   ç      @gî|?5^ºÉ?gö(\�Âõð?çÍÌÌÌÌÌì?r   r@   r=   r7   rK   )r=   r=   r=   r7   r7   r7   r:   )r=   r7   r7   é   rB   )Úrandom_stateÚ	n_samplesÚ
n_features)é   r9   ©ÚsizerR   gš™™™™™é?r6   )rY   rY   g      Ð?)ÚdensityrV   ©ÚXÚy)rY   r:   )ÚirisÚdiabetesÚdigitsÚtoyÚ	clf_smallÚ	reg_smallÚ
multilabelú
sparse-posú
sparse-negú
sparse-mixÚzerosc                 ó4  — |j         | j         k    s)J d                     ||j         | j         ¦  «        ¦   «         ‚t          | j        |j        |dz   ¦  «         t          | j        |j        |dz   ¦  «         | j        t
          k    }t          j        |¦  «        }t          | j        |         |j        |         |dz   ¦  «         t          | j	        |         |j	        |         |dz   ¦  «         t          | j
                             ¦   «         |j
                             ¦   «         |dz   ¦  «         t          | j
        |j
        |dz   ¦  «         t          | j        |j        |dz   ¬	¦  «         t          | j        |         |j        |         |d
z   ¬	¦  «         d S )Nz({0}: inequal number of node ({1} != {2})z: inequal children_rightz: inequal children_leftz: inequal featuresz: inequal thresholdz: inequal sum(n_node_samples)z: inequal n_node_samplesz: inequal impurity©Úerr_msgz: inequal value)Ú
node_countÚformatr%   Úchildren_rightÚchildren_leftr   ÚnpÚlogical_notÚfeatureÚ	thresholdÚn_node_samplesÚsumr#   Úimpurityr$   Úvalue)ÚdÚsÚmessageÚexternalÚinternals        ú[/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/tree/tests/test_tree.pyÚassert_tree_equalr€   Æ   sÈ  € à	Œ˜œÒ$Ð$Ð$Ø1×8Ò8Ø�”˜qœ|ñô ñ 	%Ô$Ð$õ
 Ø	Ô˜!Ô*¨GÐ6PÑ,Pñô ð õ Ø	Œ˜œ¨'Ð4MÑ*Mñô ð ð Ô¥9Ò,€HÝŒ~˜hÑ'Ô'€HåØ	Œ	�(Ô˜QœY xÔ0°'Ð<PÑ2Pñô ð õ Ø	Œ�HÔ˜qœ{¨8Ô4°gÐ@UÑ6Uñô ð õ Ø	Ô×ÒÑÔØ	Ô×ÒÑÔØÐ1Ñ1ñô ð õ
 Ø	Ô˜!Ô*¨GÐ6PÑ,Pñô ð õ ˜œ
 A¤J¸ÐBVÑ8VÐWÑWÔWÐWåØ	Œ�Ô˜1œ7 8Ô,°gÐ@QÑ6Qðñ ô ð ð ð ó    c                  óú  — t                                ¦   «         D ]à\  } } |d¬¦  «        }|                     t          t          ¦  «         t          |                     t          ¦  «        t          d 	                    | ¦  «        ¦  «          |dd¬¦  «        }|                     t          t          ¦  «         t          |                     t          ¦  «        t          d 	                    | ¦  «        ¦  «         Œád S )Nr   ©rV   úFailed with {0}r7   )Úmax_featuresrV   )
Ú	CLF_TREESÚitemsÚfitr^   r_   r%   ÚpredictÚTÚtrue_resultro   ©Únamer!   Úclfs      r   Útest_classification_toyr�   í   sÐ   € å—o’oÑ'Ô'ð Xð X‰
ˆˆdØˆd Ð"Ñ"Ô"ˆØ�Š••1‰ŒˆÝ˜3Ÿ;š;¥q™>œ>­;Ð8I×8PÒ8PÐQUÑ8VÔ8VÑWÔWÐWàˆd °Ð2Ñ2Ô2ˆØ�Š••1‰ŒˆÝ˜3Ÿ;š;¥q™>œ>­;Ð8I×8PÒ8PÐQUÑ8VÔ8VÑWÔWÐWÐWðXð Xr�   c            
      ó~  — t                                ¦   «         D �]!\  } } |d¬¦  «        }|                     t          t          t          j        t          t          ¦  «        ¦  «        ¬¦  «         t          | 	                    t          ¦  «        t          d                     | ¦  «        ¦  «         |                     t          t          t          j        t          t          ¦  «        d¦  «        ¬¦  «         t          | 	                    t          ¦  «        t          d                     | ¦  «        ¦  «         �Œ#d S )Nr   rƒ   ©Úsample_weightr„   rI   )r†   r‡   rˆ   r^   r_   rr   ÚonesÚlenr%   r‰   rŠ   r‹   ro   ÚfullrŒ   s      r   Ú test_weighted_classification_toyr–   ù   sê   € å—o’oÑ'Ô'ð Xñ X‰
ˆˆdØˆd Ð"Ñ"Ô"ˆà�Š••1¥B¤G­Cµ©F¬F¡O¤OˆÑ4Ô4Ð4Ý˜3Ÿ;š;¥q™>œ>­;Ð8I×8PÒ8PÐQUÑ8VÔ8VÑWÔWÐWà�Š••1¥B¤G­Cµ©F¬F°CÑ$8Ô$8ˆÑ9Ô9Ð9Ý˜3Ÿ;š;¥q™>œ>­;Ð8I×8PÒ8PÐQUÑ8VÔ8VÑWÔWÐWÑWðXð Xr�   r!   Ú	criterionc                 ó>  — |dk    rgt          j        t          j        t          ¦  «        ¦  «        dz   }t          j        t          ¦  «        |z   }t          j        t
          ¦  «        |z   }nt          }t
          } | |d¬¦  «        }|                     t          |¦  «         t          | 	                    t          ¦  «        |¦  «          | |dd¬¦  «        }|                     t          |¦  «         t          | 	                    t          ¦  «        |¦  «         d S )Nr4   r7   ©r—   rV   ©r—   r…   rV   )rr   ÚabsÚminr_   Úarrayr‹   rˆ   r^   r   r‰   rŠ   )r!   r—   ÚaÚy_trainÚy_testÚregrŽ   s          r   Útest_regression_toyr¢     sê   € ð �IÒÐõ ŒF•2”6�!‘9”9ÑÔ Ñ!ˆÝ”(�1‘+”+ ‘/ˆÝ”�+Ñ&Ô&¨Ñ*ˆˆåˆÝˆà
ˆ$˜°Ð
3Ñ
3Ô
3€CØ‡G‚G�AˆwÑÔÐÝ�C—K’K¥‘N”N FÑ+Ô+Ð+à
ˆ$˜°ÀÐ
CÑ
CÔ
C€CØ‡G‚G�AˆwÑÔÐÝ�C—K’K¥‘N”N FÑ+Ô+Ð+Ð+Ð+r�   c                  óÜ  — t          j        d¦  «        } d| d d…d d…f<   d| dd …dd …f<   t          j        | j        ¦  «        \  }}t          j        |                     ¦   «         |                     ¦   «         g¦  «        j        }|                      ¦   «         } t                               ¦   «         D ]¸\  }} |d¬¦  «        }| 	                    || ¦  «         | 
                    || ¦  «        dk    sJ d                     |¦  «        ¦   «         ‚ |dd¬¦  «        }| 	                    || ¦  «         | 
                    || ¦  «        dk    sJ d                     |¦  «        ¦   «         ‚Œ¹d S )	N)rB   rB   r7   r9   r   rƒ   rM   r„   ©rV   r…   )rr   rj   ÚindicesÚshapeÚvstackÚravelrŠ   r†   r‡   rˆ   Úscorero   )r_   ÚgridxÚgridyr^   r�   r!   rŽ   s          r   Útest_xorr¬     sb  € å
Œ�ÑÔ€AØ€A€b€q€bˆ"ˆ1ˆ"€f�IØ€A€a€b€bˆ!ˆ"ˆ"€f�Iå”:˜aœgÑ&Ô&�L€Eˆ5å
Œ	�5—;’;‘=”= %§+¢+¡-¤-Ð0Ñ1Ô1Ô3€AØ	�Š‰	Œ	€Aå—o’oÑ'Ô'ð Fð F‰
ˆˆdØˆd Ð"Ñ"Ô"ˆØ�Š��1‰ŒˆØ�yŠy˜˜A‰Œ #Ò%Ð%Ð%Ð'8×'?Ò'?ÀÑ'EÔ'EÑ%Ô%Ð%àˆd °Ð2Ñ2Ô2ˆØ�Š��1‰ŒˆØ�yŠy˜˜A‰Œ #Ò%Ð%Ð%Ð'8×'?Ò'?ÀÑ'EÔ'EÑ%Ô%Ð%Ð%ðFð Fr�   c                  óÂ  — t          t                               ¦   «         t          ¦  «        D �]0\  \  } }} ||d¬¦  «        }|                     t
          j        t
          j        ¦  «         t          | 	                    t
          j        ¦  «        t
          j        ¦  «        }|dk    sJ d 
                    | ||¦  «        ¦   «         ‚ ||dd¬¦  «        }|                     t
          j        t
          j        ¦  «         t          | 	                    t
          j        ¦  «        t
          j        ¦  «        }|dk    sJ d 
                    | ||¦  «        ¦   «         ‚�Œ2d S )Nr   r™   rT   z0Failed with {0}, criterion = {1} and score = {2}rK   rš   rI   )r   r†   r‡   ÚCLF_CRITERIONSrˆ   r`   ÚdataÚtargetr   r‰   ro   )r�   r!   r—   rŽ   r©   s        r   Ú	test_irisr±   1  s*  € å#*­9¯?ª?Ñ+<Ô+<½nÑ#MÔ#Mð 
ñ 
Ñ‰ˆˆt�iØˆd˜Y°QÐ7Ñ7Ô7ˆØ�Š•”	�4œ;Ñ'Ô'Ð'Ý˜sŸ{š{­4¬9Ñ5Ô5µt´{ÑCÔCˆØ�sŠ{ˆ{ˆ{ÐN×UÒUØ�)˜Uñ
ô 
‰{Œ{ˆ{ð ˆd˜Y°QÀQÐGÑGÔGˆØ�Š•”	�4œ;Ñ'Ô'Ð'Ý˜sŸ{š{­4¬9Ñ5Ô5µt´{ÑCÔCˆØ�sŠ{ˆ{ˆ{ÐN×UÒUØ�)˜Uñ
ô 
‰{Œ{ˆ{‰{ð
ð 
r�   z
name, Treec                 ó8  —  ||d¬¦  «        }|                      t          j        t          j        ¦  «         t	          t          j        |                     t          j        ¦  «        ¦  «        }|t          j        d¦  «        k    sJ d| › d|› d|› �¦   «         ‚d S )Nr   r™   zFailed with z, criterion = z and score = )rˆ   ra   r¯   r°   r   r‰   ÚpytestÚapprox)r�   r!   r—   r¡   r©   s        r   Útest_diabetes_overfitrµ   C  s¦   € ð
 ˆ$˜°Ð
3Ñ
3Ô
3€CØ‡G‚G�HŒM�8œ?Ñ+Ô+Ð+Ý�xœ°·²½H¼MÑ0JÔ0JÑKÔK€EØ•F”MØ	ñô ò ð ð àI�dÐIÐI¨)ÐIÐIÀ%ÐIÐIñô ð ð ð r�   z&criterion, max_depth, metric, max_lossr1   é   é<   r2   r3   r4   c                 ó   —  |||dd¬¦  «        }|                      t          j        t          j        ¦  «          |t          j        |                     t          j        ¦  «        ¦  «        }d|cxk     r|k     sn J ‚d S )NrH   r   )r—   Ú	max_depthr…   rV   )rˆ   ra   r¯   r°   r‰   )r�   r!   r—   r¹   ÚmetricÚmax_lossr¡   Úlosss           r   Útest_diabetes_underfitr½   P  s�   € ð ˆ$˜¨iÀaÐVWÐ
XÑ
XÔ
X€CØ‡G‚G�HŒM�8œ?Ñ+Ô+Ð+Øˆ6•(”/ 3§;¢;­x¬}Ñ#=Ô#=Ñ>Ô>€DØˆtÐÐÒÐ�hÒÐÐÐÐÐÐÐr�   c            	      óB  — t                                ¦   «         D �]ƒ\  } } |ddd¬¦  «        }|                     t          j        t          j        ¦  «         |                     t          j        ¦  «        }t          t          j	        |d¦  «        t          j
        t          j        j        d         ¦  «        d                     | ¦  «        ¬¦  «         t          t          j        |d¦  «        |                     t          j        ¦  «        d                     | ¦  «        ¬¦  «         t!          |                     t          j        ¦  «        t          j        |                     t          j        ¦  «        ¦  «        dd                     | ¦  «        ¬¦  «         �Œ…d S )Nr7   é*   ©r¹   r…   rV   r   r„   rl   rJ   )r†   r‡   rˆ   r`   r¯   r°   Úpredict_probar$   rr   rw   r“   r¦   ro   r%   Úargmaxr‰   r#   ÚexpÚpredict_log_proba)r�   r!   rŽ   Úprob_predicts       r   Útest_probabilityrÆ   e  sg  € õ  —o’oÑ'Ô'ð 
ñ 
‰
ˆˆdØˆd˜Q¨Q¸RÐ@Ñ@Ô@ˆØ�Š•”	�4œ;Ñ'Ô'Ð'à×(Ò(­¬Ñ3Ô3ˆÝ!ÝŒF�< Ñ#Ô#ÝŒG•D”I”O AÔ&Ñ'Ô'Ø%×,Ò,¨TÑ2Ô2ð	
ñ 	
ô 	
ð 	
õ
 	ÝŒI�l AÑ&Ô&Ø�KŠK�œ	Ñ"Ô"Ø%×,Ò,¨TÑ2Ô2ð	
ñ 	
ô 	
ð 	
õ
 	Ø×Ò�dœiÑ(Ô(ÝŒF�3×(Ò(­¬Ñ3Ô3Ñ4Ô4ØØ%×,Ò,¨TÑ2Ô2ð		
ñ 	
ô 	
ð 	
ñ 	
ð
ð 
r�   c                  ó  — t          j        d¦  «        d d …t           j        f         } t          j        d¦  «        }t                               ¦   «         D ](\  }} |d d¬¦  «        }|                     | |¦  «         Œ)d S )Ni'  r   ©r¹   rV   )rr   ÚarangeÚnewaxisÚ	REG_TREESr‡   rˆ   ©r^   r_   r�   r!   r¡   s        r   Útest_arrayreprrÍ     s   € õ 	Œ	�%ÑÔ˜˜˜�BœJ˜Ô'€AÝ
Œ	�%ÑÔ€Aå—o’oÑ'Ô'ð ð ‰
ˆˆdØˆd˜T°Ð2Ñ2Ô2ˆØ�Š��1‰Œˆˆðð r�   c                  ó  — ddgddgddgddgddgddgg} g d¢}t                                ¦   «         D ]_\  }} |d¬¦  «        }|                     | |¦  «         t          |                     | ¦  «        |d                     |¦  «        ¬	¦  «         Œ`t                               ¦   «         D ]_\  }} |d¬¦  «        }|                     | |¦  «         t          |                     | ¦  «        |d                     |¦  «        ¬	¦  «         Œ`d S )
Nr@   r=   r7   rK   )r7   r7   r7   r7   r7   r7   r   rƒ   r„   rl   )r†   r‡   rˆ   r%   r‰   ro   rË   r#   )r^   r_   r�   ÚTreeClassifierrŽ   ÚTreeRegressorr¡   s          r   Útest_pure_setrÑ   Š  s,  € à
ˆbˆ�B˜�8˜b "˜X¨¨1 v°°1¨v¸¸1°vÐ>€AØÐÐ€Aå )§¢Ñ 1Ô 1ð Vð VÑˆˆnØˆn¨!Ð,Ñ,Ô,ˆØ�Š��1‰ŒˆÝ˜3Ÿ;š; q™>œ>¨1Ð6G×6NÒ6NÈtÑ6TÔ6TÐUÑUÔUÐUÐUå(ŸšÑ0Ô0ð Wð WÑˆˆmØˆm¨Ð+Ñ+Ô+ˆØ�Š��1‰ŒˆÝ˜CŸKšK¨™NœN¨AÐ7H×7OÒ7OÐPTÑ7UÔ7UÐVÑVÔVÐVÐVðWð Wr�   c            
      óð  — t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        } t          j        g d¢¦  «        }t          j        d	¬
¦  «        5  t                               ¦   «         D ]m\  }} |d¬¦  «        }|                     | |¦  «         |                     | | ¦  «         |                     |  |¦  «         |                     |  | ¦  «         Œn	 d d d ¦  «         d S # 1 swxY w Y   d S )N)gsþ_—c@çdÀ	�a@ç±› `8`@çëÆý?õüc@)gŒÁý_9Ða@gþ 8ú`@g-Výßu]@g    @Xd@)gSW jÒ_@rÓ   rÔ   rÕ   )gÓ Ù‹`@ç4Tÿÿ÷a@ç	£þlKa@çÁ{ýÿ»c@)gç|@�ÆY@g~G`÷a@gwIÿ?lKa@g/"þ»c@)gƒ÷úÿ�í_@rÖ   r×   rØ   )g®û¿‘:^@rÓ   rÔ   rÕ   )rM   g¿½A‹wæ?gtúQ?5?á?rR   g7G€¶í?g”�ÞÛº¼Þ?g™¥b'Âß?Úraise)Úallr   rƒ   )rr   r�   ÚerrstaterË   r‡   rˆ   rÌ   s        r   Útest_numerical_stabilityrÜ   š  sh  € å
ŒàDÐDÐDØDÐDÐDØDÐDÐDØDÐDÐDØDÐDÐDØDÐDÐDØDÐDÐDð	
ñ
	ô 
	€Aõ 	ŒÐWÐWÐWÑXÔX€Aå	Œ˜Ð	!Ñ	!Ô	!ð ð Ý#Ÿ/š/Ñ+Ô+ð 	ð 	‰JˆD�$Ø�$ AÐ&Ñ&Ô&ˆCØ�GŠG�A�q‰MŒMˆMØ�GŠG�A˜�r‰NŒNˆNØ�GŠG�Q�B˜‰NŒNˆNØ�GŠG�Q�B˜˜‰OŒOˆOˆOð	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁBC+Ã+C/Ã2C/c            	      óð  — t          j        ddddddd¬¦  «        \  } }t                               ¦   «         D ]—\  }} |d¬¦  «        }|                     | |¦  «         |j        }t          j        |dk    ¦  «        }|j        d         dk    sJ d	 	                    |¦  «        ¦   «         ‚|dk    sJ d	 	                    |¦  «        ¦   «         ‚Œ˜t          d¬¦  «        }|                     t          j        t          j        ¦  «         t          dt          t          j        ¦  «        ¬
¦  «        }|                     t          j        t          j        ¦  «         t          |j        |j        ¦  «         d S )Néˆ  rB   r:   r   F©rW   rX   Ún_informativeÚn_redundantÚ
n_repeatedÚshufflerV   rƒ   çš™™™™™¹?r„   ©rV   Úmax_leaf_nodes)r   Úmake_classificationr†   r‡   rˆ   Úfeature_importances_rr   rw   r¦   ro   r   r`   r¯   r°   r”   r%   )r^   r_   r�   r!   rŽ   ÚimportancesÚn_importantÚclf2s           r   Útest_importancesrì   ³  se  € åÔ'ØØØØØØØðñ ô �D€A€qõ  —o’oÑ'Ô'ð @ð @‰
ˆˆdØˆd Ð"Ñ"Ô"ˆà�Š��1‰ŒˆØÔ.ˆÝ”f˜[¨3Ò.Ñ/Ô/ˆàÔ  Ô# rÒ)Ð)Ð)Ð+<×+CÒ+CÀDÑ+IÔ+IÑ)Ô)Ð)Ø˜aÒÐÐÐ!2×!9Ò!9¸$Ñ!?Ô!?ÑÔÐÐõ !¨aÐ
0Ñ
0Ô
0€CØ‡G‚G�DŒI•t”{Ñ#Ô#Ð#Ý!¨qÅÅTÄYÁÄÐPÑPÔP€DØ‡H‚H�TŒY�œÑ$Ô$Ð$å�sÔ/°Ô1JÑKÔKÐKÐKÐKr�   c                  ó¦   — t          ¦   «         } t          j        t          ¦  «        5  t	          | d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrè   )r   r³   ÚraisesÚ
ValueErrorÚgetattr)rŽ   s    r   Útest_importances_raisesrñ   Ò  s’   € å
 Ñ
"Ô
"€CÝ	Œ•zÑ	"Ô	"ð -ð -Ý�Ð+Ñ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð -ð -s   ¨AÁA
ÁA
c            	      ó.  — t          j        ddddddd¬¦  «        \  } }t          ddd¬	¦  «                             | |¦  «        }t	          d
dd¬	¦  «                             | |¦  «        }t          |j        |j        ¦  «         t          |j        j	        |j        j	        ¦  «         t          |j        j
        |j        j
        ¦  «         t          |j        j        |j        j        ¦  «         t          |j        j        |j        j        ¦  «         d S )NiÐ  rB   r:   r   Frß   r/   r9   )r—   r¹   rV   r1   )r   rç   r   rˆ   r   r#   rè   r%   Útree_rt   rq   rp   rv   )r^   r_   rŽ   r¡   s       r   Ú)test_importances_gini_equal_squared_errorrô   Ù  s  € õ Ô'ØØØØØØØðñ ô �D€A€qõ !¨6¸QÈQÐ
OÑ
OÔ
O×
SÒ
SØ	ˆ1ñô €Cõ  Ø!¨Q¸Qðñ ô ç	‚cˆ!ˆQ�i„ið õ ˜Ô0°#Ô2JÑKÔKÐKÝ�s”yÔ(¨#¬)Ô*;Ñ<Ô<Ð<Ý�s”yÔ.°´	Ô0GÑHÔHÐHÝ�s”yÔ/°´Ô1IÑJÔJÐJÝ�s”yÔ/°´Ô1IÑJÔJÐJÐJÐJr�   c                  óæ  — t                                ¦   «         D �]Õ\  } } |d¬¦  «        }|                     t          j        t          j        ¦  «         |j        t          t          j	        t          j        j
        d         ¦  «        ¦  «        k    sJ ‚ |d¬¦  «        }|                     t          j        t          j        ¦  «         |j        t          t          j        t          j        j
        d         ¦  «        ¦  «        k    sJ ‚ |d¬¦  «        }|                     t          j        t          j        ¦  «         |j        dk    sJ ‚ |d¬¦  «        }|                     t          j        t          j        ¦  «         |j        dk    sJ ‚ |d¬¦  «        }|                     t          j        t          j        ¦  «         |j        dk    sJ ‚ |d¬¦  «        }|                     t          j        t          j        ¦  «         |j        t          dt          j        j
        d         z  ¦  «        k    sJ ‚ |d¬¦  «        }|                     t          j        t          j        ¦  «         |j        t          j        j
        d         k    sJ ‚ |d ¬¦  «        }|                     t          j        t          j        ¦  «         |j        t          j        j
        d         k    sJ ‚�Œ×d S )	NÚsqrt)r…   r7   Úlog2r:   rQ   rI   rM   )r5   r‡   rˆ   r`   r¯   r°   Úmax_features_Úintrr   rö   r¦   r÷   )r�   ÚTreeEstimatorÚests      r   Útest_max_featuresrü   ÷  s{  € å(ŸšÑ0Ô0ð 7ñ 7ÑˆˆmØˆm¨Ð0Ñ0Ô0ˆØ�Š•”	�4œ;Ñ'Ô'Ð'ØÔ ¥C­¬µ´	´ÀÔ0BÑ(CÔ(CÑ$DÔ$DÒDÐDÐDÐDàˆm¨Ð0Ñ0Ô0ˆØ�Š•”	�4œ;Ñ'Ô'Ð'ØÔ ¥C­¬µ´	´ÀÔ0BÑ(CÔ(CÑ$DÔ$DÒDÐDÐDÐDàˆm¨Ð+Ñ+Ô+ˆØ�Š•”	�4œ;Ñ'Ô'Ð'ØÔ  AÒ%Ð%Ð%Ð%àˆm¨Ð+Ñ+Ô+ˆØ�Š•”	�4œ;Ñ'Ô'Ð'ØÔ  AÒ%Ð%Ð%Ð%àˆm¨Ð.Ñ.Ô.ˆØ�Š•”	�4œ;Ñ'Ô'Ð'ØÔ  AÒ%Ð%Ð%Ð%àˆm¨Ð-Ñ-Ô-ˆØ�Š•”	�4œ;Ñ'Ô'Ð'ØÔ ¥C¨­d¬i¬o¸aÔ.@Ñ(@Ñ$AÔ$AÒAÐAÐAÐAàˆm¨Ð-Ñ-Ô-ˆØ�Š•”	�4œ;Ñ'Ô'Ð'ØÔ ¥D¤I¤O°AÔ$6Ò6Ð6Ð6Ð6àˆm¨Ð.Ñ.Ô.ˆØ�Š•”	�4œ;Ñ'Ô'Ð'ØÔ ¥D¤I¤O°AÔ$6Ò6Ð6Ð6Ð6Ñ6ð?7ð 7r�   c                  óz
  — t                                ¦   «         D �]r\  } } |¦   «         }t          j        t          ¦  «        5  |                     t          ¦  «         d d d ¦  «         n# 1 swxY w Y   |                     t          t          ¦  «         g d¢g}t          j        t          ¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y    |¦   «         }t          d d…         }t          j        t          ¦  «        5  |                     t          |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        } |¦   «         }|                     |t          ¦  «         t          |                     t          ¦  «        t          ¦  «          |¦   «         }t          j        t          ¦  «        5  |                     t          ¦  «         d d d ¦  «         n# 1 swxY w Y   |                     t          t          ¦  «         t          j        t          ¦  «        }t          j        t          ¦  «        5  |                     |d d …dd …f         ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        j        } |¦   «         }|                     t          j        t          |¦  «        t          ¦  «         t          j        t          ¦  «        5  |                     t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |                     t          ¦  «         d d d ¦  «         n# 1 swxY w Y    |¦   «         }|                     t          t          ¦  «         t          j        t          ¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y    |¦   «         }t          j        t          ¦  «        5  |                     t          ¦  «         d d d ¦  «         n# 1 swxY w Y   �Œtt)          d¬¦  «        }t          j        t          d¬¦  «        5  |                     g d¢gg d	¢¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d
¬¦  «        5  |                     g d¢gg d¢¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r@   r=   r7   r=   r7   r4   ©r—   zy is not positive.*Poisson©Úmatch©r   r7   rK   )r   r   r   zSome.*y are negative.*Poisson)r9   gš™™™™™¹¿rK   )r†   r‡   r³   rî   r   rÁ   r^   rˆ   r_   rï   rr   Úasfortranarrayr#   r‰   rŠ   r‹   Úasarrayr�   ÚdotÚapplyr   )	r�   rú   rû   ÚX2Úy2ÚXfÚtÚXtrŽ   s	            r   Ú
test_errorr    s  € å(ŸšÑ0Ô0ð 6ñ 6Ñˆˆmàˆm‰oŒoˆÝŒ]�>Ñ*Ô*ð 	!ð 	!Ø×Ò�aÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	�Š••1‰ŒˆØˆkˆkˆ]ˆÝŒ]�:Ñ&Ô&ð 	"ð 	"Ø×Ò˜bÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð ˆm‰oŒoˆÝˆs�ˆsŒVˆÝŒ]�:Ñ&Ô&ð 	ð 	Ø�GŠG•A�r‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Ô�qÑ!Ô!ˆØˆm‰oŒoˆØ�Š�•A‰ŒˆÝ˜CŸKšK­™NœN­KÑ8Ô8Ð8ð ˆm‰oŒoˆÝŒ]�>Ñ*Ô*ð 	ð 	Ø�KŠK�‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�Š••1‰ŒˆÝŒJ•q‰MŒMˆÝŒ]�:Ñ&Ô&ð 	"ð 	"Ø�KŠK˜˜!˜!˜!˜Q˜R˜R˜%œÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"õ ŒX•a‰[Œ[Œ]ˆàˆm‰oŒoˆØ�Š•”•q˜"‘”�qÑ!Ô!Ð!ÝŒ]�:Ñ&Ô&ð 	ð 	Ø�KŠK�‰NŒNˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]�:Ñ&Ô&ð 	ð 	Ø�IŠI•a‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ˆm‰oŒoˆØ�Š••1‰ŒˆÝŒ]�:Ñ&Ô&ð 	ð 	Ø�KŠK˜‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]�:Ñ&Ô&ð 	ð 	Ø�IŠI�b‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ˆm‰oŒoˆÝŒ]�>Ñ*Ô*ð 	ð 	Ø�IŠI•a‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ùõ  ¨)Ð
4Ñ
4Ô
4€CÝ	Œ•zÐ)EÐ	FÑ	FÔ	Fð (ð (Ø�Š����˜Y˜Y˜YÑ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (å	Œ•zÐ)HÐ	IÑ	IÔ	Ið +ð +Ø�Š����˜\˜\˜\Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +sØ   ÁA*Á*A.	Á1A.	Â3CÃC	ÃC	ÄD:Ä:D>	ÅD>	ÇG:Ç:G>	ÈG>	É"JÊJ		ÊJ		ÌL+Ì+L/	Ì2L/	ÍM6Í6M:	Í=M:	ÏO&Ï&O*	Ï-O*	Ð
P,Ð,P0	Ð3P0	ÑRÒR	ÒR	Ò9S!Ó!S%Ó(S%ÔT0Ô0T4Ô7T4c                  óØ  — t          j        t          j        t          j        j        ¬¦  «        } t          j        }t          dt           
                    ¦   «         ¦  «        D �]\  }}t          |         } |d|d¬¦  «        }|                     | |¦  «         |j        j        |j        j        dk             }t          j        |¦  «        dk    sJ d                     |¦  «        ¦   «         ‚ |d	|d¬¦  «        }|                     | |¦  «         |j        j        |j        j        dk             }t          j        |¦  «        dk    sJ d                     |¦  «        ¦   «         ‚�Œd
S )z Test min_samples_split parameter©Údtype©Néè  rB   r   )Úmin_samples_splitræ   rV   r=   é	   r„   r<   N)rr   r  r`   r¯   r	   Ú_treeÚDTYPEr°   r   r5   Úkeysrˆ   ró   rv   rq   rœ   ro   )r^   r_   ræ   r�   rú   rû   Únode_sampless          r   Útest_min_samples_splitr  ]  sc  € å
Ô�$œ)­4¬:Ô+;Ð<Ñ<Ô<€AÝŒ€Aõ !(¨µi·n²nÑ6FÔ6FÑ GÔ Gð Hñ HÑˆ˜Ý! $œˆð ˆmØ °Èað
ñ 
ô 
ˆð 	�Š��1‰Œˆà”yÔ/°´	Ô0GÈ2Ò0MÔNˆåŒv�lÑ#Ô# aÒ'Ð'Ð'Ð):×)AÒ)AÀ$Ñ)GÔ)GÑ'Ô'Ð'ð ˆmØ!°.Èqð
ñ 
ô 
ˆð 	�Š��1‰Œˆà”yÔ/°´	Ô0GÈ2Ò0MÔNˆåŒv�lÑ#Ô# aÒ'Ð'Ð'Ð):×)AÒ)AÀ$Ñ)GÔ)GÑ'Ô'Ð'Ñ'ð+Hð Hr�   c                  ó@  — t          j        t          j        t          j        j        ¬¦  «        } t          j        }t          dt           
                    ¦   «         ¦  «        D �]9\  }}t          |         } |d|d¬¦  «        }|                     | |¦  «         |j                             | ¦  «        }t          j        |¦  «        }||dk             }t          j        |¦  «        dk    sJ d                     |¦  «        ¦   «         ‚ |d|d¬¦  «        }|                     | |¦  «         |j                             | ¦  «        }t          j        |¦  «        }||dk             }t          j        |¦  «        dk    sJ d                     |¦  «        ¦   «         ‚�Œ;d S )	Nr  r  r9   r   )Úmin_samples_leafræ   rV   r6   r„   rä   )rr   r  r`   r¯   r	   r  r  r°   r   r5   r  rˆ   ró   r  Úbincountrœ   ro   )	r^   r_   ræ   r�   rú   rû   ÚoutÚnode_countsÚ
leaf_counts	            r   Útest_min_samples_leafr  |  s“  € å
Ô�$œ)­4¬:Ô+;Ð<Ñ<Ô<€AÝŒ€Aõ !(¨µi·n²nÑ6FÔ6FÑ GÔ Gð Fñ FÑˆ˜Ý! $œˆð ˆmØ¨~ÈAð
ñ 
ô 
ˆð 	�Š��1‰ŒˆØŒi�oŠo˜aÑ Ô ˆÝ”k #Ñ&Ô&ˆà  °Ò!1Ô2ˆ
ÝŒv�jÑ!Ô! AÒ%Ð%Ð%Ð'8×'?Ò'?ÀÑ'EÔ'EÑ%Ô%Ð%ð ˆmØ °Èað
ñ 
ô 
ˆð 	�Š��1‰ŒˆØŒi�oŠo˜aÑ Ô ˆÝ”k #Ñ&Ô&ˆà  °Ò!1Ô2ˆ
ÝŒv�jÑ!Ô! AÒ%Ð%Ð%Ð'8×'?Ò'?ÀÑ'EÔ'EÑ%Ô%Ð%Ñ%ð/Fð Fr�   c                 ó<  — t           |         d                              t          j        ¦  «        }|� ||¦  «        }t           |         d         }t                               |j        d         ¦  «        }t          j        |¦  «        }t          |          }t          dt          j
        ddd¦  «        ¦  «        D ]Ù\  }}	 ||	|d¬¦  «        }
|
                     |||¬	¦  «         |�-|
j                             |                     ¦   «         ¦  «        }n|
j                             |¦  «        }t          j        ||¬
¦  «        }||dk             }t          j        |¦  «        ||
j        z  k    s#J d                     | |
j        ¦  «        ¦   «         ‚ŒÚ|j        d         }t          dt          j
        ddd¦  «        ¦  «        D ]Õ\  }}	 ||	|d¬¦  «        }
|
                     ||¦  «         |�-|
j                             |                     ¦   «         ¦  «        }n|
j                             |¦  «        }t          j        |¦  «        }||dk             }t          j        |¦  «        ||
j        z  k    s#J d                     | |
j        ¦  «        ¦   «         ‚ŒÖdS )zPTest if leaves contain at least min_weight_fraction_leaf of the
    training setr^   Nr_   r   r  rI   rH   )Úmin_weight_fraction_leafræ   rV   r‘   )Úweightsz,Failed with {0} min_weight_fraction_leaf={1})ÚDATASETSÚastyperr   Úfloat32ÚrngÚrandr¦   rw   r5   r   Úlinspacerˆ   ró   r  Útocsrr  rœ   r   ro   )r�   r   Úsparse_containerr^   r_   r!  Útotal_weightrú   ræ   Úfracrû   r  Únode_weightsÚleaf_weightss                 r   Úcheck_min_weight_fraction_leafr.  �  s�  € õ 	�Ô˜3Ô×&Ò&¥r¤zÑ2Ô2€AØÐ#ØÐ˜QÑÔˆÝ�Ô˜3Ô€Aå�hŠh�q”w˜q”zÑ"Ô"€GÝ”6˜'‘?”?€Lå˜d”O€Mõ !(¨µb´kÀ!ÀSÈ!Ñ6LÔ6LÑ MÔ Mð 
ð 
Ñˆ˜ØˆmØ%)¸.ÐWXð
ñ 
ô 
ˆð 	�Š��1 GˆÑ,Ô,Ð,àÐ'Ø”)—/’/ !§'¢'¡)¤)Ñ,Ô,ˆCˆCà”)—/’/ !Ñ$Ô$ˆCå”{ 3°Ð8Ñ8Ô8ˆà# L°AÒ$5Ô6ˆåŒF�<Ñ Ô  L°3Ô3OÑ$OÒOÐOÐOØ9×@Ò@Ø�#Ô.ñ
ô 
ñ PÔOÐOÐOð ”7˜1”:€Lå '¨µb´kÀ!ÀSÈ!Ñ6LÔ6LÑ MÔ Mð 
ð 
Ñˆ˜ØˆmØ%)¸.ÐWXð
ñ 
ô 
ˆð 	�Š��1‰ŒˆàÐ'Ø”)—/’/ !§'¢'¡)¤)Ñ,Ô,ˆCˆCà”)—/’/ !Ñ$Ô$ˆCå”{ 3Ñ'Ô'ˆà# L°AÒ$5Ô6ˆåŒF�<Ñ Ô  L°3Ô3OÑ$OÒOÐOÐOØ9×@Ò@Ø�#Ô.ñ
ô 
ñ PÔOÐOÐOð
ð 
r�   r�   c                 ó&   — t          | d¦  «         d S ©Nr`   ©r.  ©r�   s    r   Ú,test_min_weight_fraction_leaf_on_dense_inputr3  Ø  s   € å" 4¨Ñ0Ô0Ð0Ð0Ð0r�   Úcsc_containerc                 ó*   — t          | d|¬¦  «         d S ©Nrf   )r)  r1  ©r�   r4  s     r   Ú-test_min_weight_fraction_leaf_on_sparse_inputr8  Ý  s   € õ # 4¨ÈÐVÑVÔVÐVÐVÐVr�   c                 ó&  — t           |         d                              t          j        ¦  «        }|� ||¦  «        }t           |         d         }|j        d         }t
          |          }t          dt          j        ddd¦  «        ¦  «        D ]ê\  }} |||dd¬	¦  «        }	|	                     ||¦  «         |�-|	j	         
                    |                     ¦   «         ¦  «        }
n|	j	         
                    |¦  «        }
t          j        |
¦  «        }||dk             }t          j        |¦  «        t          ||	j        z  d¦  «        k    s)J d
                     | |	j        |	j        ¦  «        ¦   «         ‚Œët          dt          j        ddd¦  «        ¦  «        D ]ò\  }} |||dd¬	¦  «        }	|	                     ||¦  «         |�-|	j	         
                    |                     ¦   «         ¦  «        }
n|	j	         
                    |¦  «        }
t          j        |
¦  «        }||dk             }t          j        |¦  «        t          ||	j        z  ||	j        z  ¦  «        k    s)J d
                     | |	j        |	j        ¦  «        ¦   «         ‚ŒódS )zzTest the interaction between min_weight_fraction_leaf and
    min_samples_leaf when sample_weights is not provided in fit.r^   Nr_   r   r  rI   r:   r9   )r   ræ   r  rV   zBFailed with {0} min_weight_fraction_leaf={1}, min_samples_leaf={2}rä   )r"  r#  rr   r$  r¦   r5   r   r'  rˆ   ró   r  r(  r  rœ   Úmaxr   ro   r  )r�   r   r)  r^   r_   r*  rú   ræ   r+  rû   r  r,  r-  s                r   Ú4check_min_weight_fraction_leaf_with_min_samples_leafr;  ã  s°  € õ
 	�Ô˜3Ô×&Ò&¥r¤zÑ2Ô2€AØÐ#ØÐ˜QÑÔˆÝ�Ô˜3Ô€Aà”7˜1”:€LÝ˜d”O€MÝ '¨µb´kÀ!ÀSÈ!Ñ6LÔ6LÑ MÔ Mð 
ð 
Ñˆ˜àˆmØ%)Ø)ØØð	
ñ 
ô 
ˆð 	�Š��1‰ŒˆàÐ'Ø”)—/’/ !§'¢'¡)¤)Ñ,Ô,ˆCˆCà”)—/’/ !Ñ$Ô$ˆCå”{ 3Ñ'Ô'ˆà# L°AÒ$5Ô6ˆÝŒv�lÑ#Ô#¥sØ˜CÔ8Ñ8¸1ñ(
ô (
ò 
ð 
ð 
àO×VÒVØ�#Ô.°Ô0Dñ
ô 
ñ
ô 
ð 
ð 
õ
 !(¨µb´kÀ!ÀSÈ!Ñ6LÔ6LÑ MÔ Mð 
ð 
Ñˆ˜àˆmØ%)Ø)Ø Øð	
ñ 
ô 
ˆð 	�Š��1‰ŒˆàÐ'Ø”)—/’/ !§'¢'¡)¤)Ñ,Ô,ˆCˆCà”)—/’/ !Ñ$Ô$ˆCå”{ 3Ñ'Ô'ˆà# L°AÒ$5Ô6ˆÝŒv�lÑ#Ô#¥sØ˜CÔ8Ñ8Ø˜CÔ0Ñ0ñ(
ô (
ò 
ð 
ð 
ð P×VÒVØ�#Ô.°Ô0Dñ
ô 
ñ
ô 
ð 
ð 
ð%
ð 
r�   c                 ó&   — t          | d¦  «         d S r0  ©r;  r2  s    r   ÚBtest_min_weight_fraction_leaf_with_min_samples_leaf_on_dense_inputr>     s   € å8¸¸vÑFÔFÐFÐFÐFr�   c                 ó*   — t          | d|¬¦  «         d S r6  r=  r7  s     r   ÚCtest_min_weight_fraction_leaf_with_min_samples_leaf_on_sparse_inputr@  %  s,   € õ
 9Øˆl¨]ðñ ô ð ð ð r�   c                 ó$  — t          j        d| ¬¦  «        \  }}t          dt                               ¦   «         ¦  «        D �]Í\  }}t          |         } ||d¬¦  «        } ||dd¬¦  «        } ||dd¬¦  «        } ||d	d¬¦  «        }	|d
f|df|df|	d	ffD �]s\  }
}|
j        |k    s#J d                     |
j        |¦  «        ¦   «         ‚|
                     ||¦  «         t          |
j	        j
        ¦  «        D �]}|
j	        j        |         t          k    rð|
j	        j        |         }|
j	        j        |         }|
j	        j        |         }|
j	        j        |         }|
j	        j        |         }||z  }|
j	        j        |         }|
j	        j        |         }|
j	        j        |         }||z  }||z   }||z  }|
j	        j        |         |j        d         z  }|||z
  z  }||k    sJ d                     ||¦  «        ¦   «         ‚�Œ�Œu�ŒÏd S )Néd   ©rW   rV   r  r   ©ræ   rV   rO   )ræ   Úmin_impurity_decreaserV   g-Cëâ6?rä   gH¯¼šò×z>z)Failed, min_impurity_decrease = {0} > {1}z2Failed with {0} expected min_impurity_decrease={1})r   rç   r   r5   r  rE  ro   rˆ   Úrangeró   rn   rq   r   rx   Úweighted_n_node_samplesrp   r¦   )Úglobal_random_seedr^   r_   ræ   r�   rú   Úest1Úest2Úest3Úest4rû   Úexpected_decreaseÚnodeÚ
imp_parentÚ
wtd_n_nodeÚleftÚ
wtd_n_leftÚimp_leftÚwtd_imp_leftÚrightÚwtd_n_rightÚ	imp_rightÚwtd_imp_rightÚwtd_avg_left_right_impÚfractional_node_weightÚactual_decreases                             r   Útest_min_impurity_decreaser\  /  s›  € õ Ô'°#ÐDVÐWÑWÔW�D€A€qõ !(¨µi·n²nÑ6FÔ6FÑ GÔ Gð >ñ >Ñˆ˜Ý! $œˆð ˆ}¨NÈÐKÑKÔKˆàˆ}Ø)ÀÐTUð
ñ 
ô 
ˆð ˆ}Ø)ÀÐVWð
ñ 
ô 
ˆð ˆ}Ø)ÀÐSTð
ñ 
ô 
ˆð
 �4ˆLØ�4ˆLØ�6ˆNØ�3ˆKð	'
ð ,	ñ ,	Ñ"ˆCÐ"ð Ô)Ð->Ò>Ð>Ð>Ø:×AÒAØÔ)Ð+<ñô ñ ?Ô>Ð>ð �GŠG�A�q‰MŒMˆMÝ˜cœiÔ2Ñ3Ô3ð  ñ  �ð ”9Ô*¨4Ô0µIÒ=Ð=Ø!$¤Ô!3°DÔ!9�JØ!$¤Ô!BÀ4Ô!H�Jàœ9Ô2°4Ô8�DØ!$¤Ô!BÀ4Ô!H�JØ"œyÔ1°$Ô7�HØ#-°Ñ#8�LàœIÔ4°TÔ:�EØ"%¤)Ô"CÀEÔ"J�KØ #¤	Ô 2°5Ô 9�IØ$/°)Ñ$;�Mà-:¸\Ñ-IÐ*Ø*¨jÑ8Ð*ð œ	Ô9¸$Ô?À!Ä'È!Ä*ÑLð +ð '=Ø"Ð%;Ñ;ñ'�Oð
 (Ð+<Ò<Ð<Ð<ØK×RÒRØ'Ð):ñô ñ =Ô<Ð<ùñ; ñ,	ð%>ð >r�   c            
      óª  ‡— t                                ¦   «         D �]6\  } }d| v rt          j        t          j        }}nt
          j        t
          j        }} |d¬¦  «        Š‰                     ||¦  «         ‰                     ||¦  «        }g d¢}ˆfd„|D ¦   «         }t          j	        ‰¦  «        }t          j
        |¦  «        }t          |¦  «        ‰j        k    sJ ‚|                     ||¦  «        }	||	k    sJ d                     | ¦  «        ¦   «         ‚|D ]3}
t          t          |j        |
¦  «        ||
         d|
› d| › �¬	¦  «         Œ4�Œ8d
S )z8Test pickling preserves Tree properties and performance.Ú
Classifierr   rƒ   )r¹   rn   ÚcapacityÚ	n_classesrq   rp   Ún_leavesrt   ru   rx   rv   rG  ry   c                 ó<   •— i | ]}|t          ‰j        |¦  «        “ŒS © )rð   ró   )Ú.0Ú	attributerû   s     €r   ú
<dictcomp>ztest_pickle.<locals>.<dictcomp>“  s4   ø€ ð 
ð 
ð 
Ø9BˆI•w˜sœy¨)Ñ4Ô4ð
ð 
ð 
r�   z6Failed to generate same score  after pickling with {0}z"Failed to generate same attribute z after pickling with rl   N)r5   r‡   r`   r¯   r°   ra   rˆ   r©   ÚpickleÚdumpsÚloadsÚtypeÚ	__class__ro   r%   rð   ró   )r�   rú   r^   r_   r©   Ú
attributesÚfitted_attributeÚserialized_objectrJ  Úscore2re  rû   s              @r   Útest_picklerp  w  s™  ø€ å(ŸšÑ0Ô0ð .ñ .ÑˆˆmØ˜4ÐÐÝ”9�dœkˆqˆAˆAå”=¥(¤/ˆqˆAàˆm¨Ð+Ñ+Ô+ˆØ�Š��1‰ŒˆØ—	’	˜!˜Q‘”ˆð
ð 
ð 
ˆ
ð
ð 
ð 
ð 
ØFPð
ñ 
ô 
Ðõ #œL¨Ñ-Ô-ÐÝŒ|Ð-Ñ.Ô.ˆÝ�D‰zŒz˜Sœ]Ò*Ð*Ð*Ð*à—’˜A˜qÑ!Ô!ˆà�VŠOˆOˆOØC×JÒJÈ4ÑPÔPñ ŒOˆOà)ð 	ð 	ˆIÝÝ˜œ
 IÑ.Ô.Ø  Ô+ð¸ð ð Øðð ð	ñ ô ð ð ñ	ðM.ð .r�   c                  óÚ  — ddgddgddgddgddgddgddgddgddgddgddgddgg} ddgddgddgddgddgddgddgddgddgddgddgddgg}ddgddgddgddgg}ddgddgddgddgg}t                                ¦   «         D ]÷\  }} |d¬¦  «        }|                     | |¦  «                             |¦  «        }t	          ||¦  «         |j        dk    sJ ‚|                     |¦  «        }t          |¦  «        dk    sJ ‚|d         j        dk    sJ ‚|d         j        d	k    sJ ‚|                     |¦  «        }	t          |	¦  «        dk    sJ ‚|	d         j        dk    sJ ‚|	d         j        d	k    sJ ‚Œøt                               ¦   «         D ]W\  }}
 |
d¬¦  «        }|                     | |¦  «                             |¦  «        }t          ||¦  «         |j        dk    sJ ‚ŒXd S )
Nr@   r=   r7   rK   r   r:   rƒ   ©r6   rK   )r6   r6   )r†   r‡   rˆ   r‰   r%   r¦   rÁ   r”   rÄ   rË   r#   )r^   r_   rŠ   Úy_truer�   rÏ   rŽ   Úy_hatÚprobaÚ	log_probarÐ   r¡   s               r   Útest_multioutputrw  ª  s   € ð 
ˆRˆØ	ˆRˆØ	ˆRˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	ˆQˆØ	ˆQˆØ	ˆQˆØ	
ˆBˆØ	
ˆBˆØ	
ˆBˆð	€Að  
ˆQˆØ	ˆQˆØ	ˆQˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	ˆQˆØ	ˆQˆØ	ˆQˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆð	€Að ˆbˆ�A�q�6˜B ˜7 Q¨ GÐ,€AØ�1ˆg˜˜1�v  A˜w¨¨A¨Ð/€Fõ !*§¢Ñ 1Ô 1ð ,ð ,ÑˆˆnØˆn¨!Ð,Ñ,Ô,ˆØ—’˜˜1‘”×%Ò% aÑ(Ô(ˆÝ˜5 &Ñ)Ô)Ð)ØŒ{˜fÒ$Ð$Ð$Ð$à×!Ò! !Ñ$Ô$ˆÝ�5‰zŒz˜QŠˆˆˆØ�QŒxŒ~ Ò'Ð'Ð'Ð'Ø�QŒxŒ~ Ò'Ð'Ð'Ð'à×)Ò)¨!Ñ,Ô,ˆ	Ý�9‰~Œ~ Ò"Ð"Ð"Ð"Ø˜Œ|Ô! VÒ+Ð+Ð+Ð+Ø˜Œ|Ô! VÒ+Ð+Ð+Ð+Ð+õ  )ŸšÑ0Ô0ð %ð %ÑˆˆmØˆm¨Ð+Ñ+Ô+ˆØ—’˜˜1‘”×%Ò% aÑ(Ô(ˆÝ˜E 6Ñ*Ô*Ð*ØŒ{˜fÒ$Ð$Ð$Ð$Ð$ð	%ð %r�   c                  óv  — t                                ¦   «         D �]\  } } |d¬¦  «        }|                     t          t          ¦  «         |j        dk    sJ ‚t          |j        ddg¦  «         t          j	        t          t          j
        t          ¦  «        dz  f¦  «        j        } |d¬¦  «        }|                     t          |¦  «         t          |j        ¦  «        dk    sJ ‚t          |j        ¦  «        dk    sJ ‚t          |j        ddg¦  «         t          |j        ddgddgg¦  «         �Œd S )Nr   rƒ   rK   r=   r7   r@   )r†   r‡   rˆ   r^   r_   Ú
n_classes_r%   Úclasses_rr   r§   r�   rŠ   r”   )r�   rÏ   rŽ   Ú_ys       r   Útest_classes_shaper|  æ  s,  € å )§¢Ñ 1Ô 1ð =ñ =Ñˆˆnàˆn¨!Ð,Ñ,Ô,ˆØ�Š••1‰ŒˆàŒ~ Ò"Ð"Ð"Ð"Ý˜3œ<¨"¨a¨Ñ1Ô1Ð1õ ŒY��2œ8¥A™;œ;¨™?Ð+Ñ,Ô,Ô.ˆØˆn¨!Ð,Ñ,Ô,ˆØ�Š•�2‰ŒˆÝ�3”>Ñ"Ô" aÒ'Ð'Ð'Ð'Ý�3”<Ñ Ô  AÒ%Ð%Ð%Ð%Ý˜3œ>¨A¨q¨6Ñ2Ô2Ð2Ý˜3œ<¨2¨q¨'°B¸°7Ð);Ñ<Ô<Ð<Ñ<ð=ð =r�   c                  óB  — t           j        d d…         } t           j        d d…         }t          d|¦  «        }t                               ¦   «         D ]L\  }} |d¬¦  «        }|                     | ||¬¦  «         t          |                     | ¦  «        |¦  «         ŒMd S )Né}   Úbalancedr   rƒ   r‘   )	r`   r¯   r°   r"   r†   r‡   rˆ   r#   r‰   )Úunbalanced_XÚunbalanced_yr’   r�   rÏ   rŽ   s         r   Útest_unbalanced_irisr‚  ú  s¥   € å”9˜T˜c˜T”?€LÝ”;˜t ˜tÔ$€LÝ)¨*°lÑCÔC€Må )§¢Ñ 1Ô 1ð Eð EÑˆˆnØˆn¨!Ð,Ñ,Ô,ˆØ�Š�˜l¸-ˆÑHÔHÐHÝ˜CŸKšK¨Ñ5Ô5°|ÑDÔDÐDÐDðEð Er�   c                  óD  — t          t                               ¦   «         t          j        t          j        g¦  «        D �]à\  \  } }} |d¬¦  «        }t          j        t          j        |¬¦  «        }t          j	        }t          |                     ||¦  «                             |¦  «        |¦  «         t          j        t          j        d|¬¦  «        }t          j	        }t          |                     ||¦  «                             |¦  «        |¦  «         t          j        t          j        d|¬¦  «        }t          j	        }t          |                     ||¦  «                             |¦  «        |¦  «         t          j        t          j        |¬¦  «        }t          j	        }t          |                     ||¦  «                             |¦  «        |¦  «         t          D ]\} |t          j        |¬¦  «        }t          j	        }t          |                     ||¦  «                             |¦  «        |¦  «         Œ]t          D ]\} |t          j        |¬¦  «        }t          j	        }t          |                     ||¦  «                             |¦  «        |¦  «         Œ]t          j        t          j        d d d…         |¬¦  «        }t          j	        d d d…         }t          |                     ||¦  «                             |¦  «        |¦  «         �Œâd S )Nr   rƒ   r  ÚC)Úorderr  ÚFr:   )r   r5   r‡   rr   Úfloat64r$  r  r`   r¯   r°   r%   rˆ   r‰   Úascontiguousarrayr-   r,   )r�   rú   r  rû   r^   r_   Úcsr_containerr4  s           r   Útest_memory_layoutrŠ    sœ  € å(/Ý�ŠÑÔ�BœJ­¬
Ð3ñ)ô )ð (8ñ (8Ñ$Ñˆˆ}˜uð ˆm¨Ð+Ñ+Ô+ˆõ ŒJ•t”y¨Ð.Ñ.Ô.ˆÝŒKˆÝ˜3Ÿ7š7 1 a™=œ=×0Ò0°Ñ3Ô3°QÑ7Ô7Ð7õ ŒJ•t”y¨°5Ð9Ñ9Ô9ˆÝŒKˆÝ˜3Ÿ7š7 1 a™=œ=×0Ò0°Ñ3Ô3°QÑ7Ô7Ð7õ ŒJ•t”y¨°5Ð9Ñ9Ô9ˆÝŒKˆÝ˜3Ÿ7š7 1 a™=œ=×0Ò0°Ñ3Ô3°QÑ7Ô7Ð7õ Ô ¥¤°%Ð8Ñ8Ô8ˆÝŒKˆÝ˜3Ÿ7š7 1 a™=œ=×0Ò0°Ñ3Ô3°QÑ7Ô7Ð7õ ,ð 	<ð 	<ˆMØ��dœi¨uÐ5Ñ5Ô5ˆAÝ”ˆAÝ˜sŸwšw q¨!™}œ}×4Ò4°QÑ7Ô7¸Ñ;Ô;Ð;Ð;õ ,ð 	<ð 	<ˆMØ��dœi¨uÐ5Ñ5Ô5ˆAÝ”ˆAÝ˜sŸwšw q¨!™}œ}×4Ò4°QÑ7Ô7¸Ñ;Ô;Ð;Ð;õ ŒJ•t”y   1 ”~¨UÐ3Ñ3Ô3ˆÝŒK˜˜˜!˜ÔˆÝ˜3Ÿ7š7 1 a™=œ=×0Ò0°Ñ3Ô3°QÑ7Ô7Ð7Ñ7ðQ(8ð (8r�   c                  óˆ  — t          j        d¦  «        d d …t           j        f         } t          j        d¦  «        }d|d d…<   t          j        d¦  «        }d||dk    <   t	          d¬¦  «        }|                     | ||¬¦  «         t          |                     | ¦  «        t          j        d¦  «        ¦  «         t          j        d¦  «        d d …t           j        f         } t          j        d¦  «        }d|dd…<   d	|dd…<   d| dd…df<   t          j        d¦  «        }d
||d	k    <   t	          dd¬¦  «        }|                     | ||¬¦  «         |j	        j
        d         dk    sJ ‚d||d	k    <   t	          dd¬¦  «        }|                     | ||¬¦  «         |j	        j
        d         dk    sJ ‚t          j        } t          j        }t                               d| j        d         d¦  «        }t	          d¬¦  «        }|                     | |         ||         ¦  «         t          j        || j        d         ¬¦  «        }t	          d¬¦  «        }|                     | ||¬¦  «         |j	        j        t&          j        j        k    }t-          |j	        j
        |         |j	        j
        |         ¦  «         d S )NrB  rR   é2   r   rƒ   r‘   éÈ   r7   rK   gR¸…ëQà?rÈ   g     °b@rI   g     ÀH@)Ú	minlength)rr   rÉ   rÊ   r“   r   rˆ   r%   r‰   rj   ró   ru   r`   r¯   r°   r%  Úrandintr¦   r  rq   r	   r  r   r$   )r^   r_   r’   rŽ   Ú
duplicatesrë   r~   s          r   Útest_sample_weightr‘  3  sŠ  € õ 	Œ	�#‰Œ�q�q�q�"œ*�}Ô%€AÝ
Œ�‰Œ€AØ€A€c€r€c�Få”G˜C‘L”L€MØ€M�!�q’&Ñå
 ¨aÐ
0Ñ
0Ô
0€CØ‡G‚GˆAˆq €GÑ.Ô.Ð.Ý�s—{’{ 1‘~”~¥r¤w¨s¡|¤|Ñ4Ô4Ð4õ 	Œ	�#‰Œ�q�q�q�"œ*�}Ô%€AÝ
Œ�‰Œ€AØ€A€bˆ€f�IØ€A€cˆ#€g�JØ€A€cˆ#€gˆq€j�Må”G˜C‘L”L€Mà €M�!�q’&ÑÝ
 ¨1¸1Ð
=Ñ
=Ô
=€CØ‡G‚GˆAˆq €GÑ.Ô.Ð.ØŒ9Ô˜qÔ! UÒ*Ð*Ð*Ð*à€M�!�q’&ÑÝ
 ¨1¸1Ð
=Ñ
=Ô
=€CØ‡G‚GˆAˆq €GÑ.Ô.Ð.ØŒ9Ô˜qÔ! TÒ)Ð)Ð)Ð)õ 	Œ	€AÝŒ€Aå—’˜Q ¤¨¤
¨CÑ0Ô0€Jå
 ¨aÐ
0Ñ
0Ô
0€CØ‡G‚GˆAˆjŒM˜1˜Zœ=Ñ)Ô)Ð)å”K 
°a´g¸a´jÐAÑAÔA€MÝ!¨qÐ1Ñ1Ô1€DØ‡H‚HˆQ� €HÑ/Ô/Ð/àŒyÔ&­$¬*Ô*>Ò>€HÝØŒ	Ô˜HÔ% t¤zÔ';¸HÔ'Eñô ð ð ð r�   c                  óB  — t          j        d¦  «        d d …t           j        f         } t          j        d¦  «        }d|d d…<   t	          d¬¦  «        }t           j                             dd¦  «        }t          j        t          ¦  «        5  | 
                    | ||¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d¦  «        }d}t          j        t          |¬	¦  «        5  | 
                    | ||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
NrB  rR   rŒ  r   rƒ   r7   r‘   z3Singleton.* cannot be considered a valid collectionrÿ   )rr   rÉ   rÊ   r“   r   Úrandomr&  r³   rî   rï   rˆ   r�   Ú	TypeError)r^   r_   rŽ   r’   Úexpected_errs        r   Útest_sample_weight_invalidr–  g  s  € å
Œ	�#‰Œ�q�q�q�"œ*�}Ô%€AÝ
Œ�‰Œ€AØ€A€c€r€c�Få
 ¨aÐ
0Ñ
0Ô
0€Cå”I—N’N 3¨Ñ*Ô*€MÝ	Œ•zÑ	"Ô	"ð 3ð 3Ø�Š��1 MˆÑ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3õ ”H˜Q‘K”K€MØI€LÝ	Œ•y¨Ð	5Ñ	5Ô	5ð 3ð 3Ø�Š��1 MˆÑ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3s$   ÂB2Â2B6Â9B6Ã.DÄDÄDc                 ó’  — t           |          } |d¬¦  «        }|                     t          j        t          j        ¦  «          |dd¬¦  «        }|                     t          j        t          j        ¦  «         t          |j        |j        ¦  «         t          j        t          j        t          j        t          j        f¦  «        j	        } |ddddœddddœddddœgd¬¦  «        }|                     t          j        |¦  «         t          |j        |j        ¦  «          |dd¬¦  «        }|                     t          j        |¦  «         t          |j        |j        ¦  «         t          j
        t          j        j        ¦  «        }|t          j        dk    xx         d	z  cc<   dd
ddœ} |d¬¦  «        }|                     t          j        t          j        |¦  «          ||d¬¦  «        }|                     t          j        t          j        ¦  «         t          |j        |j        ¦  «          |d¬¦  «        }|                     t          j        t          j        |dz  ¦  «          ||d¬¦  «        }|                     t          j        t          j        |¦  «         t          |j        |j        ¦  «         d S )Nr   rƒ   r  ©Úclass_weightrV   g       @rM   r  r7   rB  g      Y@rK   )r†   rˆ   r`   r¯   r°   r#   rè   rr   r§   rŠ   r“   r¦   )	r�   rÏ   Úclf1rë   Ú
iris_multiÚclf3Úclf4r’   r™  s	            r   Útest_class_weightsrž  y  s„  € õ ˜t”_€Nð ˆ> qÐ)Ñ)Ô)€DØ‡H‚H�TŒY�œÑ$Ô$Ð$Øˆ> zÀÐBÑBÔB€DØ‡H‚H�TŒY�œÑ$Ô$Ð$Ý˜Ô1°4Ô3LÑMÔMÐMõ ”�DœK­¬µd´kÐBÑCÔCÔE€Jàˆ>à˜ Ð$Ð$Ø˜ Ð$Ð$Ø˜ Ð$Ð$ð
ð
 ðñ ô €Dð 	‡H‚H�TŒY˜
Ñ#Ô#Ð#Ý˜Ô1°4Ô3LÑMÔMÐMàˆ> zÀÐBÑBÔB€DØ‡H‚H�TŒY˜
Ñ#Ô#Ð#Ý˜Ô1°4Ô3LÑMÔMÐMõ ”G�DœKÔ-Ñ.Ô.€MØ•$”+ Ò"Ð#Ð#Ô# sÑ*Ð#Ð#Ñ#Ø˜u¨Ð-Ð-€LØˆ> qÐ)Ñ)Ô)€DØ‡H‚H�TŒY�œ ]Ñ3Ô3Ð3Øˆ> |À!ÐDÑDÔD€DØ‡H‚H�TŒY�œÑ$Ô$Ð$Ý˜Ô1°4Ô3LÑMÔMÐMð ˆ> qÐ)Ñ)Ô)€DØ‡H‚H�TŒY�œ ]°AÑ%5Ñ6Ô6Ð6Øˆ> |À!ÐDÑDÔD€DØ‡H‚H�TŒY�œ ]Ñ3Ô3Ð3Ý˜Ô1°4Ô3LÑMÔMÐMÐMÐMr�   c                 óX  — t           |          }t          j        t          t          j        t          ¦  «        dz  f¦  «        j        } |dddœgd¬¦  «        }d}t          j        t          |¬¦  «        5  | 	                    t          |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NrK   rI   rM   ©r=   r7   r   r˜  zBnumber of elements in class_weight should match number of outputs.rÿ   )r†   rr   r§   r_   r�   rŠ   r³   rî   rï   rˆ   r^   )r�   rÏ   r{  rŽ   rm   s        r   Útest_class_weight_errorsr¡  ©  sà   € õ ˜t”_€NÝ	Œ•A•r”x¥‘{”{ Q‘Ð'Ñ	(Ô	(Ô	*€Bð ˆ.¨C°CÐ'8Ð'8Ð&9ÈÐ
JÑ
JÔ
J€CØR€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø�Š•�2‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á6BÂB#Â&B#c                  óü   — t          j        dd¬¦  «        \  } }d}t                               ¦   «         D ]F\  }} |d |dz   ¬¦  «                             | |¦  «        }|                     ¦   «         |dz   k    sJ ‚ŒGd S ©NrB  r7   rC  r6   )r¹   ræ   )r   Úmake_hastie_10_2r5   r‡   rˆ   Úget_n_leaves©r^   r_   Úkr�   rú   rû   s         r   Útest_max_leaf_nodesr¨  ¶  s”   € åÔ$¨sÀÐCÑCÔC�D€A€qØ	€AÝ(ŸšÑ0Ô0ð +ð +ÑˆˆmØˆm d¸1¸q¹5ÐAÑAÔA×EÒEÀaÈÑKÔKˆØ×ÒÑ!Ô! Q¨¡UÒ*Ð*Ð*Ð*Ð*ð+ð +r�   c                  óð   — t          j        dd¬¦  «        \  } }d}t                               ¦   «         D ]@\  }} |d|¬¦  «                             | |¦  «        }|                     ¦   «         dk    sJ ‚ŒAd S r£  )r   r¤  r5   r‡   rˆ   Ú	get_depthr¦  s         r   Útest_max_leaf_nodes_max_depthr«  ¿  sˆ   € åÔ$¨sÀÐCÑCÔC�D€A€qØ	€AÝ(ŸšÑ0Ô0ð $ð $ÑˆˆmØˆm a¸Ð:Ñ:Ô:×>Ò>¸qÀ!ÑDÔDˆØ�}Š}‰Œ !Ò#Ð#Ð#Ð#Ð#ð$ð $r�   c                  óÎ   — dD ]a} t          t          ¦   «                              dgdggddg¦  «        j        | ¦  «        }d|j        d         cxk    rdk     sn J d¦   «         ‚Œbd S )N)r`  ry   rq   rp   ru   rx   rt   rv   r   r7   rA   r:   z Array points to arbitrary memory)rð   r   rˆ   ró   Úflat)Úattrry   s     r   Útest_arrays_persistr¯  È  s�   € ð	ð Kð Kˆõ Õ.Ñ0Ô0×4Ò4°q°c¸A¸3°ZÀ!ÀQÀÑHÔHÔNÐPTÑUÔUˆà�U”Z ”]Ð&Ð&Ò&Ð& QÒ&Ð&Ð&Ð&Ð&Ð(JÑ&Ô&Ð&Ð&ðKð Kr�   c                  ó   — t          d¦  «        } t          j        d¦  «        }|                      ddd¦  «        }t                               ¦   «         D ]9\  }} |d¬¦  «        }|                     ||¦  «         |j        j        dk    sJ ‚Œ:d S )Nr   )rB   rY   rK   )rB   rƒ   )	r.   rr   rj   r�  r5   r‡   rˆ   ró   r¹   )rV   r^   r_   r�   rú   rû   s         r   Útest_only_constant_featuresr±  Ú  s™   € Ý% aÑ(Ô(€LÝ
Œ�ÑÔ€AØ×Ò˜Q  5Ñ)Ô)€AÝ(ŸšÑ0Ô0ð (ð (ÑˆˆmØˆm¨Ð+Ñ+Ô+ˆØ�Š��1‰ŒˆØŒyÔ" aÒ'Ð'Ð'Ð'Ð'ð(ð (r�   c                  ó\  — t          j        t          j        g d¢gt          j        d¦  «        f¦  «        ¦  «        } g d¢}t                               ¦   «         D ]P\  }}d|vrG |dd¬¦  «        }|                     | |¦  «         |j        j        dk    sJ ‚|j        j	        d	k    sJ ‚ŒQd S )
N)r   r   r   r   r   r7   rK   r6   r9   rH   é   )r6   rG   )r   r   r   r7   r7   rK   rK   rK   r:   r:   r:   Ú	ExtraTreer   r7   r¤   rK   r9   )
rr   Ú	transposer§   rj   r5   r‡   rˆ   ró   r¹   rn   ©r^   r_   r�   rú   rû   s        r   Ú,test_behaviour_constant_feature_after_splitsr·  ä  sË   € Ý
ŒÝ
Œ	Ð5Ð5Ð5Ð6½¼ÀÑ8IÔ8IÐJÑKÔKñ	ô 	€Að 	*Ð)Ð)€AÝ(ŸšÑ0Ô0ð -ð -Ñˆˆmà˜dÐ"Ð"Ø�-¨Q¸QÐ?Ñ?Ô?ˆCØ�GŠG�A�q‰MŒMˆMØ”9Ô&¨!Ò+Ð+Ð+Ð+Ø”9Ô'¨1Ò,Ð,Ð,Ð,øð-ð -r�   c                  óÞ  — t          j        t          j        dgdgdgdgg¦  «        t          j        d¦  «        g¦  «        } t          j        g d¢¦  «        }t                               ¦   «         D ]p\  }} |dd¬¦  «        }|                     | |¦  «         |j        j        dk    sJ ‚t          | 
                    | ¦  «        t          j        dd	¦  «        ¦  «         Œqt                               ¦   «         D ]p\  }} |dd¬¦  «        }|                     | |¦  «         |j        j        dk    sJ ‚t          |                     | ¦  «        t          j        d
d	¦  «        ¦  «         Œqd S )NrM   rR   )r6   r  )rR   rM   rR   rM   r   r7   r¤   rr  rI   )r6   )rr   Úhstackr�   rj   r†   r‡   rˆ   ró   r¹   r%   rÁ   r•   rË   r‰   r¶  s        r   Ú(test_with_only_one_non_constant_featuresrº  ò  se  € Ý
Œ	•2”8˜c˜U S E¨C¨5°3°%Ð8Ñ9Ô9½2¼8ÀIÑ;NÔ;NÐOÑPÔP€Aå
ŒÐ%Ð%Ð%Ñ&Ô&€AÝ(ŸšÑ0Ô0ð Gð GÑˆˆmØˆm¨¸Ð;Ñ;Ô;ˆØ�Š��1‰ŒˆØŒyÔ" aÒ'Ð'Ð'Ð'Ý˜3×,Ò,¨QÑ/Ô/µ´¸ÀÑ1EÔ1EÑFÔFÐFÐFå(ŸšÑ0Ô0ð ?ð ?ÑˆˆmØˆm¨¸Ð;Ñ;Ô;ˆØ�Š��1‰ŒˆØŒyÔ" aÒ'Ð'Ð'Ð'Ý˜3Ÿ;š; q™>œ>­2¬7°4¸Ñ+=Ô+=Ñ>Ô>Ð>Ð>ð	?ð ?r�   c                  óF  — t          j        dd¦  «                             t           j        ¦  «                             dd¦  «        } t          ¦   «         }t          j        t          d¬¦  «        5  | 	                    | g d¢¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ng¥\Ãñ)c=Hr6   r=   r7   r$  rÿ   )r   r7   r   r7   )
rr   Úrepeatr#  r‡  Úreshaper   r³   rî   rï   rˆ   )r^   rŽ   s     r   Útest_big_inputr¾    sÏ   € å
Œ	�(˜AÑÔ×%Ò%¥b¤jÑ1Ô1×9Ò9¸"¸aÑ@Ô@€AÝ
 Ñ
"Ô
"€CÝ	Œ•z¨Ð	3Ñ	3Ô	3ð !ð !Ø�Š��<�<�<Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !s   Á0BÂBÂBc                  óŠ   — ddl m}  t          j        t          ¦  «        5   | ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr   ©Ú_realloc_test)Úsklearn.tree._utilsrÁ  r³   rî   ÚMemoryErrorrÀ  s    r   Útest_reallocrÄ    s“   € Ø1Ð1Ð1Ð1Ð1Ð1å	Œ•{Ñ	#Ô	#ð ð Øˆ‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s    8¸<¿<c                  ó>  — dt          j        d¦  «        z  } t          j                             dd¦  «        }t          j                             ddd¦  «        }d| dz   z  }t          d|¬¦  «        }t          j        t          ¦  «        5  | 
                    ||¦  «         d d d ¦  «         n# 1 swxY w Y   d| dz
  z  dz
  }t          d|¬¦  «        }t          j        t          ¦  «        5  | 
                    ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NrJ   ÚPrB   rK   r   r7   Úbest)Úsplitterræ   )ÚstructÚcalcsizerr   r“  Úrandnr�  r   r³   rî   Ú	Exceptionrˆ   rÃ  )Ún_bitsr^   r_   ÚhugerŽ   s        r   Útest_huge_allocationsrÏ    sˆ  € Ø•” Ñ%Ô%Ñ%€Få
Œ	�Š˜˜AÑÔ€AÝ
Œ	×Ò˜!˜Q Ñ#Ô#€Að �˜!‘Ñ€DÝ
 ¨&ÀÐ
FÑ
FÔ
F€CÝ	Œ•yÑ	!Ô	!ð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð
 �˜!‘Ñ˜qÑ €DÝ
 ¨&ÀÐ
FÑ
FÔ
F€CÝ	Œ•{Ñ	#Ô	#ð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   ÂB.Â.B2Â5B2Ã.DÄDÄDc                 óÀ  — t           |          }t          |         d         }t          |         d         }|dv r$|j        d         dz  }|d |…         }|d |…         }t          t          z   t
          z   D �]i} ||¦  «        } |d|¬¦  «                             ||¦  «        }	 |d|¬¦  «                             ||¦  «        }
t          |	j        |
j        d 	                    | ¦  «        ¦  «         |	 
                    |¦  «        }| t          v r*|	                     |¦  «        }|	                     |¦  «        }t          t
          z   t          z   D ]‹} ||t          j        ¬¦  «        }t!          |
 
                    |¦  «        |¦  «         | t          v rFt!          |
                     |¦  «        |¦  «         t!          |
                     |¦  «        |¦  «         ŒŒ�Œkd S )	Nr^   r_   )rb   ra   r   r9   ©rV   r¹   ú5{0} with dense and sparse format gave different treesr  )r5   r"  r¦   r+   r,   r-   rˆ   r€   ró   ro   r‰   r†   rÁ   rÄ   rr   r$  r$   )r	   Údatasetr¹   rú   r^   r_   rW   r)  ÚX_sparserz   r{   Úy_predÚy_probaÚy_log_probaÚsparse_container_testÚX_sparse_tests                   r   Úcheck_sparse_inputrÚ  '  sê  € Ý˜d”O€MÝ�Ô˜#Ô€AÝ�Ô˜#Ô€Að Ð(Ð(Ð(Ø”G˜A”J !‘Oˆ	ØˆjˆyˆjŒMˆØˆjˆyˆjŒMˆå*­^Ñ;½nÑLð ñ ÐØ#Ð# AÑ&Ô&ˆð ˆM q°IÐ>Ñ>Ô>×BÒBÀ1ÀaÑHÔHˆØˆM q°IÐ>Ñ>Ô>×BÒBÀ8ÈQÑOÔOˆåØŒGØŒGØC×JÒJÈ4ÑPÔPñ	
ô 	
ð 	
ð —’˜1‘”ˆØ•9ÐÐØ—o’o aÑ(Ô(ˆGØ×-Ò-¨aÑ0Ô0ˆKå%3µnÑ%DÅ~Ñ%Uð 		ð 		Ð!Ø1Ð1°(Å"Ä*ÐMÑMÔMˆMå% a§i¢i°Ñ&>Ô&>ÀÑGÔGÐGà•yÐ Ð Ý)¨!¯/ª/¸-Ñ*HÔ*HÈ'ÑRÔRÐRÝ)Ø×'Ò'¨Ñ6Ô6¸ñô ð øñ		ð%ð r�   Ú	tree_typerÓ  )rd   rc   rb   rf   rg   rh   ri   rj   c                 ó<   — |dk    rdnd }t          | ||¦  «         d S )Nrb   r:   ©rÚ  )rÛ  rÓ  r¹   s      r   Útest_sparse_inputrÞ  P  s/   € ð  Ò(Ð(��¨d€IÝ�y '¨9Ñ5Ô5Ð5Ð5Ð5r�   ra   re   c                 ó(   — t          | |d¦  «         d S )NrK   rÝ  )rÛ  rÓ  s     r   Útest_sparse_input_reg_treesrà  c  s   € õ
 �y '¨1Ñ-Ô-Ð-Ð-Ð-r�   )rg   rh   ri   rj   c                 óò  — t           |          }t          |         d         } ||¦  «        }t          |         d         } |ddd¬¦  «                             ||¦  «        } |ddd¬¦  «                             ||¦  «        }t          |j        |j        d                     | ¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «          |ddd¬	¦  «                             ||¦  «        } |ddd¬	¦  «                             ||¦  «        }t          |j        |j        d                     | ¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «          |d|j        d         dz  ¬
¦  «                             ||¦  «        } |d|j        d         dz  ¬
¦  «                             ||¦  «        }t          |j        |j        d                     | ¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «          |dd¬¦  «                             ||¦  «        } |dd¬¦  «                             ||¦  «        }t          |j        |j        d                     | ¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         d S )Nr^   r_   r   r7   rK   )rV   r…   r¹   rÒ  rB   )rV   r…   r  )rV   r  r:   rå   )	r5   r"  rˆ   r€   ró   ro   r$   r‰   r¦   )	rÛ  rÓ  r4  rú   r^   rÔ  r_   rz   r{   s	            r   Útest_sparse_parametersrâ  k  sè  € õ ˜iÔ(€MÝ�Ô˜#Ô€AØˆ}˜QÑÔ€HÝ�Ô˜#Ô€Að 	ˆ 1°1ÀÐBÑBÔB×FÒFÀqÈ!ÑLÔL€AØˆ 1°1ÀÐBÑBÔB×FÒFÀxÐQRÑSÔS€AÝØ	ŒØ	ŒØ?×FÒFÀyÑQÔQñô ð õ
 ˜aŸiši¨™lœl¨A¯IªI°a©L¬LÑ9Ô9Ð9ð 	ˆ 1°1ÈÐKÑKÔK×OÒOÐPQÐSTÑUÔU€AØˆ 1°1ÈÐKÑKÔK×OÒOØ�!ñ	ô 	€Aõ Ø	ŒØ	ŒØ?×FÒFÀyÑQÔQñô ð õ
 ˜aŸiši¨™lœl¨A¯IªI°a©L¬LÑ9Ô9Ð9ð 	ˆ 1°x´~ÀaÔ7HÈAÑ7MÐNÑNÔN×RÒRÐSTÐVWÑXÔX€AØˆ 1°x´~ÀaÔ7HÈAÑ7MÐNÑNÔN×RÒRØ�!ñ	ô 	€Aõ Ø	ŒØ	ŒØ?×FÒFÀyÑQÔQñô ð õ
 ˜aŸiši¨™lœl¨A¯IªI°a©L¬LÑ9Ô9Ð9ð 	ˆ 1°QÐ7Ñ7Ô7×;Ò;¸A¸qÑAÔA€AØˆ 1°QÐ7Ñ7Ô7×;Ò;¸HÀaÑHÔH€AÝØ	ŒØ	ŒØ?×FÒFÀyÑQÔQñô ð õ
 ˜aŸiši¨™lœl¨A¯IªI°a©L¬LÑ9Ô9Ð9Ð9Ð9r�   ztree_type, criterionc                 ó$   — g | ]}|t           v ¯|‘ŒS rc  )rË   ©rd  r	   s     r   ú
<listcomp>rå  £  s"   € ÐEÐEÐE˜4°4½9Ð3DÐ3D�$Ð3DÐ3DÐ3Dr�   c                 ó$   — g | ]}|t           v ¯|‘ŒS rc  )r†   rä  s     r   rå  rå  ¥  s"   € ÐDÐDÐD˜$°$½)Ð2CÐ2C�Ð2CÐ2CÐ2Cr�   c                 óÒ  — t           |          }t          |         d         } ||¦  «        }t          |         d         } |dd|¬¦  «                             ||¦  «        } |dd|¬¦  «                             ||¦  «        }	t          |j        |	j        d                     | ¦  «        ¦  «         t          |	                     |¦  «        |                     |¦  «        ¦  «         d S )Nr^   r_   r   r:   ©rV   r¹   r—   rÒ  )r5   r"  rˆ   r€   ró   ro   r$   r‰   )
rÛ  rÓ  r4  r—   rú   r^   rÔ  r_   rz   r{   s
             r   Útest_sparse_criteriaré  ¡  sá   € õ ˜iÔ(€MÝ�Ô˜#Ô€AØˆ}˜QÑÔ€HÝ�Ô˜#Ô€Aàˆ 1°¸YÐGÑGÔG×KÒKÈAÈqÑQÔQ€AØˆ 1°¸YÐGÑGÔG×KÒKÈHÐVWÑXÔX€AåØ	ŒØ	ŒØ?×FÒFÀyÑQÔQñô ð õ
 ˜aŸiši¨™lœl¨A¯IªI°a©L¬LÑ9Ô9Ð9Ð9Ð9r�   zcsc_container,csr_containerc                 ó
  — t           |          }d}d}|}t          j        |¦  «        }t          d¦  «        }g }	g }
d}|g}t	          |¦  «        D ]•}|                     |d¦  «        }|                     |¦  «        d |…         }|	                     |¦  «         |                     dd|f¬¦  «        dz
  }|
                     |¦  «         ||z  }|                     |¦  «         Œ–t          j        |	¦  «         	                    t          j
        ¦  «        }	t          j        |t          j
        ¬¦  «        }t          j        t          j        |
¦  «        t          j        ¬¦  «        }
 ||
|	|f||f¬¦  «        }|                     ¦   «         } ||
|	|f||f¬¦  «        }|                     ¦   «         }|                     dd|f¬¦  «        }|                     ¦   «         }|j        d	k                         ¦   «         dk    sJ ‚|j        d	k                         ¦   «         dk    sJ ‚ |d|¬
¦  «                             ||¦  «        } |d|¬
¦  «                             ||¦  «        }t'          |j        |j        d                     t,          ¦  «        ¦  «         ||f}t/          ||¦  «        D �]N\  }}t1          |j                             |¦  «        |j                             |¦  «        ¦  «         t1          |                     |¦  «        |                     |¦  «        ¦  «         t1          |                     |¦  «        |j                             |¦  «        ¦  «         t1          |j                             |¦  «                             ¦   «         |j                             |¦  «                             ¦   «         ¦  «         t1          |                     |¦  «                             ¦   «         |                     |¦  «                             ¦   «         ¦  «         t1          |                     |¦  «                             ¦   «         |j                             |¦  «                             ¦   «         ¦  «         t1          |                     |¦  «        |                     |¦  «        ¦  «         t,          t8          v r6t1          |                     |¦  «        |                     |¦  «        ¦  «         �ŒPd S )Nr:   rB   r   rI   rZ   r7   r  ©r¦   rR   rÑ  rÒ  )r5   rr   rÉ   r.   rF  ÚbinomialÚpermutationÚappendÚconcatenater#  Úint32r�   r$  Útoarrayr�  Úcopyr¯   rw   rˆ   r€   ró   ro   r	   r   r$   r  Údecision_pathr‰   r†   rÁ   )rÛ  r4  r‰  rú   r¹   rX   rW   ÚsamplesrV   r¥   r¯   ÚoffsetÚindptrÚiÚn_nonzero_iÚ	indices_iÚdata_irÔ  r^   rÙ  ÚX_testr_   rz   r{   ÚXsÚX1r  s                              r   Útest_explicit_sparse_zerosrþ  »  sœ  € õ
 ˜iÔ(€MØ€IØ€Jð €IÝŒi˜	Ñ"Ô"€Gõ & aÑ(Ô(€LØ€GØ€DØ€FØˆX€FÝ�:ÑÔð ð ˆØ"×+Ò+¨I°sÑ;Ô;ˆØ ×,Ò,¨WÑ5Ô5°l°{°lÔCˆ	Ø�Š�yÑ!Ô!Ð!Ø×&Ò& q¨#°[°NÐ&ÑCÔCÀaÑGˆØ�Š�FÑÔÐØ�+ÑˆØ�Š�fÑÔÐÐåŒn˜WÑ%Ô%×,Ò,­R¬XÑ6Ô6€GÝŒX�f¥B¤HÐ-Ñ-Ô-€FÝŒ8•B”N 4Ñ(Ô(µ´
Ð;Ñ;Ô;€DØˆ}˜d G¨VÐ4¸YÈ
Ð<SÐTÑTÔT€HØ×ÒÑÔ€AØ!�MØ	ˆw˜Ð¨	°:Ð'>ðñ ô €Mð ×"Ò"Ñ$Ô$€FØ×Ò˜Q ¨¨ÐÑ5Ô5€Að "×&Ò&Ñ(Ô(€Mð ŒM˜SÒ ×%Ò%Ñ'Ô'¨!Ò+Ð+Ð+Ð+ØÔ #Ò%×*Ò*Ñ,Ô,¨qÒ0Ð0Ð0Ð0ð 	ˆ 1°	Ð:Ñ:Ô:×>Ò>¸qÀ!ÑDÔD€AØˆ 1°	Ð:Ñ:Ô:×>Ò>¸xÈÑKÔK€AåØ	ŒØ	ŒØ?×FÒFÅtÑLÔLñô ð ð �-Ð	 €BÝ˜"˜b‘/”/ð Pñ P‰ˆˆBÝ! !¤'§-¢-°Ñ"3Ô"3°Q´W·]²]À2Ñ5FÔ5FÑGÔGÐGÝ! !§'¢'¨"¡+¤+¨q¯wªw°r©{¬{Ñ;Ô;Ð;Ý! !§'¢'¨"¡+¤+¨q¬w¯}ª}¸RÑ/@Ô/@ÑAÔAÐAå!ØŒG×!Ò! "Ñ%Ô%×-Ò-Ñ/Ô/°´×1FÒ1FÀrÑ1JÔ1J×1RÒ1RÑ1TÔ1Tñ	
ô 	
ð 	
õ 	"Ø�OŠO˜BÑÔ×'Ò'Ñ)Ô)¨1¯?ª?¸2Ñ+>Ô+>×+FÒ+FÑ+HÔ+Hñ	
ô 	
ð 	
õ 	"Ø�OŠO˜BÑÔ×'Ò'Ñ)Ô)¨1¬7×+@Ò+@ÀÑ+DÔ+D×+LÒ+LÑ+NÔ+Nñ	
ô 	
ð 	
õ 	" !§)¢)¨B¡-¤-°·²¸2±´Ñ?Ô?Ð?å•9ÐÐÝ% a§o¢o°bÑ&9Ô&9¸1¿?º?È2Ñ;NÔ;NÑOÔOÐOùð%Pð Pr�   c                 óP  — t           |          }t          j        d d …df                              ¦   «         }t          j        d d …df                              d¦  «        }t          j        }t          j        t          ¦  «        5   |d¬¦  «         	                    ||¦  «         d d d ¦  «         n# 1 swxY w Y    |d¬¦  «        }| 	                    ||¦  «         t          j        t          ¦  «        5  | 
                    |g¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   rƒ   )r5   r`   r¯   r¨   r½  r°   r³   rî   rï   rˆ   r‰   )r�   rú   r^   ÚX_2dr_   rû   s         r   Úcheck_raise_error_on_1d_inputr  
  sŠ  € å˜d”O€MåŒ	�!�!�!�Q�$Œ×ÒÑÔ€AÝŒ9�Q�Q�Q˜�TŒ?×"Ò" 7Ñ+Ô+€DÝŒ€Aå	Œ•zÑ	"Ô	"ð 0ð 0Øˆ 1Ð%Ñ%Ô%×)Ò)¨!¨QÑ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð ˆ- QÐ
'Ñ
'Ô
'€CØ‡G‚GˆD�!ÑÔÐÝ	Œ•zÑ	"Ô	"ð ð Ø�Š�Q�CÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   Â!B1Â1B5Â8B5Ã7DÄDÄ"Dc                 ór   — t          ¦   «         5  t          | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©N)r'   r  r2  s    r   Útest_1d_inputr    s€   € å	Ñ	Ô	ð ,ð ,Ý% dÑ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,s   �,¬0³0r)  c                 ó`  — t           |          }t          j        dgdgdgdgdgg¦  «        }g d¢}g d¢}|� ||¦  «        } |d¬¦  «        }|                     |||¬¦  «         |j        j        dk    sJ ‚ |dd¬¦  «        }|                     |||¬¦  «         |j        j        dk    sJ ‚d S )	Nr   r7   )r   r   r   r   r7   )r<   r<   r<   r<   r<   rƒ   r‘   gš™™™™™Ù?)rV   r   )r5   rr   r�   rˆ   ró   r¹   )r�   r)  rú   r^   r_   r’   rû   s          r   Ú test_min_weight_leaf_split_levelr  !  sã   € õ ˜d”O€Må
Œ�1�#˜�s˜Q˜C !  q cÐ*Ñ+Ô+€AØˆˆ€AØ-Ð-Ð-€MØÐ#ØÐ˜QÑÔˆà
ˆ- QÐ
'Ñ
'Ô
'€CØ‡G‚GˆAˆq €GÑ.Ô.Ð.ØŒ9Ô !Ò#Ð#Ð#Ð#à
ˆ- QÀÐ
EÑ
EÔ
E€CØ‡G‚GˆAˆq €GÑ.Ô.Ð.ØŒ9Ô !Ò#Ð#Ð#Ð#Ð#Ð#r�   c                 óD  — t                                t          j        j        d¬¦  «        }t          |          ¦   «         }|                     t           t          ¦  «         t          | 	                    t           ¦  «        |j
         	                    |¦  «        ¦  «         d S ©NF©rò  ©ÚX_smallr#  r	   r  r  r5   rˆ   Úy_smallr%   r  ró   )r�   Ú	X_small32rû   s      r   Útest_public_apply_all_treesr  5  so   € å—’�tœzÔ/°e�Ñ<Ô<€Iå
�DŒ/Ñ
Ô
€CØ‡G‚G�G•WÑÔÐÝ�s—y’y¥Ñ)Ô)¨3¬9¯?ª?¸9Ñ+EÔ+EÑFÔFÐFÐFÐFr�   r‰  c                 óV  —  |t                                t          j        j        d¬¦  «        ¦  «        }t          |          ¦   «         }|                     t           t          ¦  «         t          | 	                    t           ¦  «        |j
         	                    |¦  «        ¦  «         d S r  r
  )r�   r‰  r  rû   s       r   Útest_public_apply_sparse_treesr  >  s{   € ð ��gŸnšn­T¬ZÔ-=ÀE˜nÑJÔJÑKÔK€Iå
�DŒ/Ñ
Ô
€CØ‡G‚G�G•WÑÔÐÝ�s—y’y¥Ñ)Ô)¨3¬9¯?ª?¸9Ñ+EÔ+EÑFÔFÐFÐFÐFr�   c                  ó
  — t           j        } t           j        }t          dd¬¦  «                             | |¦  «        }|                     | d d…         ¦  «                             ¦   «         }t          |g d¢g d¢g¦  «         d S )Nr   r7   rÑ  rK   )r7   r7   r   ©r7   r   r7   )r`   r¯   r°   r   rˆ   ró  rñ  r%   )r^   r_   rû   Únode_indicators       r   Útest_decision_path_hardcodedr  H  s|   € ÝŒ	€AÝŒ€AÝ
 ¨a¸1Ð
=Ñ
=Ô
=×
AÒ
AÀ!ÀQÑ
GÔ
G€CØ×&Ò& q¨¨!¨¤uÑ-Ô-×5Ò5Ñ7Ô7€NÝ�~¨	¨	¨	°9°9°9Ð'=Ñ>Ô>Ð>Ð>Ð>r�   c                 óæ  ‡— t           j        }t           j        }|j        d         }t          |          } |dd¬¦  «        }|                     ||¦  «         |                     |¦  «        }|                     ¦   «         Š‰j        ||j        j	        fk    sJ ‚| 
                    |¦  «        }ˆfd„t          |¦  «        D ¦   «         }t          |t          j        |¬¦  «        ¦  «         |j        j        t           k    }	t          t          j        ‰|	¦  «        t          j        |¬¦  «        ¦  «         ‰                     d¬¦  «                             ¦   «         }
|j        j        |
k    sJ ‚d S )Nr   rK   rÑ  c                 ó*   •— g | ]\  }}‰||f         ‘ŒS rc  rc  )rd  r÷  Újr  s      €r   rå  z&test_decision_path.<locals>.<listcomp>`  s&   ø€ ÐJÐJÐJ±°°1�~ a¨ dÔ+ÐJÐJÐJr�   rë  r7   ©Úaxis)r`   r¯   r°   r¦   r5   rˆ   ró  rñ  ró   rn   r  Ú	enumerater$   rr   r“   rq   r   r  rw   r:  r¹   )r�   r^   r_   rW   rú   rû   Únode_indicator_csrÚleavesÚleave_indicatorÚ
all_leavesr¹   r  s              @r   Útest_decision_pathr  P  s]  ø€ åŒ	€AÝŒ€AØ”˜”
€Iå˜d”O€MØ
ˆ- Q°!Ð
4Ñ
4Ô
4€CØ‡G‚GˆAˆq�M„M€Mà×*Ò*¨1Ñ-Ô-ÐØ'×/Ò/Ñ1Ô1€NØÔ I¨s¬yÔ/CÐ#DÒDÐDÐDÐDð �YŠY�q‰\Œ\€FØJÐJÐJÐJ½	À&Ñ8IÔ8IÐJÑJÔJ€OÝ˜o­r¬w¸YÐ/GÑ/GÔ/GÑHÔHÐHð ”Ô(­IÒ5€JÝÝ
Œˆ~˜zÑ*Ô*­B¬G¸)Ð,DÑ,DÔ,Dñô ð ð
 ×"Ò"¨Ð"Ñ*Ô*×.Ò.Ñ0Ô0€IØŒ9Ô )Ò+Ð+Ð+Ð+Ð+Ð+r�   c                 óò   — t            |t          ¦  «        }}t          |          }t          j        t
          ¦  «        5   |d¬¦  «                             ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©Nr   rƒ   )ÚX_multilabelÚy_multilabelr5   r³   rî   r”  rˆ   )r�   r‰  r^   r_   rú   s        r   Útest_no_sparse_y_supportr$  n  s·   € õ ˜˜¥|Ñ4Ô4€q€AÝ˜d”O€MÝ	Œ•yÑ	!Ô	!ð 0ð 0Øˆ 1Ð%Ñ%Ô%×)Ò)¨!¨QÑ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0s   ¾!A,Á,A0Á3A0c                  ó–  — t          ddd¬¦  «        } |                      dgdgdgdgdggg d¢g d	¢¬
¦  «         t          | j        j        g d¢¦  «         t          | j        j        j        g d¢¦  «         |                      dgdgdgdgdggg d¢t          j	        d¦  «        ¬
¦  «         t          | j        j        g d¢¦  «         t          | j        j        j        g d¢¦  «         |                      dgdgdgdgdggg d¢¬¦  «         t          | j        j        g d¢¦  «         t          | j        j        j        g d¢¦  «         dS )aQ	  Check MAE criterion produces correct results on small toy dataset:

    ------------------
    | X | y | weight |
    ------------------
    | 3 | 3 |  0.1   |
    | 5 | 3 |  0.3   |
    | 8 | 4 |  1.0   |
    | 3 | 6 |  0.6   |
    | 5 | 7 |  0.3   |
    ------------------
    |sum wt:|  2.3   |
    ------------------

    Because we are dealing with sample weights, we cannot find the median by
    simply choosing/averaging the centre value(s), instead we consider the
    median where 50% of the cumulative weight is found (in a y sorted data set)
    . Therefore with regards to this test data, the cumulative weight is >= 50%
    when y = 4.  Therefore:
    Median = 4

    For all the samples, we can get the total error by summing:
    Absolute(Median - y) * weight

    I.e., total error = (Absolute(4 - 3) * 0.1)
                      + (Absolute(4 - 3) * 0.3)
                      + (Absolute(4 - 4) * 1.0)
                      + (Absolute(4 - 6) * 0.6)
                      + (Absolute(4 - 7) * 0.3)
                      = 2.5

    Impurity = Total error / total weight
             = 2.5 / 2.3
             = 1.08695652173913
             ------------------

    From this root node, the next best split is between X values of 3 and 5.
    Thus, we have left and right child nodes:

    LEFT                    RIGHT
    ------------------      ------------------
    | X | y | weight |      | X | y | weight |
    ------------------      ------------------
    | 3 | 3 |  0.1   |      | 5 | 3 |  0.3   |
    | 3 | 6 |  0.6   |      | 8 | 4 |  1.0   |
    ------------------      | 5 | 7 |  0.3   |
    |sum wt:|  0.7   |      ------------------
    ------------------      |sum wt:|  1.6   |
                            ------------------

    Impurity is found in the same way:
    Left node Median = 6
    Total error = (Absolute(6 - 3) * 0.1)
                + (Absolute(6 - 6) * 0.6)
                = 0.3

    Left Impurity = Total error / total weight
            = 0.3 / 0.7
            = 0.428571428571429
            -------------------

    Likewise for Right node:
    Right node Median = 4
    Total error = (Absolute(4 - 3) * 0.3)
                + (Absolute(4 - 4) * 1.0)
                + (Absolute(4 - 7) * 0.3)
                = 1.2

    Right Impurity = Total error / total weight
            = 1.2 / 1.6
            = 0.75
            ------
    r   r2   rK   )rV   r—   ræ   r:   r9   rJ   )rH   r³  r:   r6   r:   )ç333333ã?ç333333Ó?rä   rM   r'  )r^   r_   r’   )g²�…,dñ?gÜ¶mÛ¶mÛ?gÿÿÿÿÿÿç?)ç      @g      @r(  )çffffffö?rL   gUUUUUUõ?)r6   rS   r(  r]   N)
r   rˆ   r   ró   rx   r%   ry   r­  rr   r“   )Údt_maes    r   Útest_maer+  x  sƒ  € õT #ØÐ"2À1ðñ ô €Fð
 ‡J‚JØˆ3���a�S˜1˜# ˜sÐ
#Ø
ˆ/ˆ/Ø/Ð/Ð/ð ñ ô ð õ
 �F”LÔ)Ð+LÐ+LÐ+LÑMÔMÐMÝ�v”|Ô)Ô.°°°Ñ@Ô@Ð@ð ‡J‚J�1�#˜�s˜Q˜C !  q cÐ*¨o¨o¨oÍRÌWÐUVÉZÌZ€JÑXÔXÐXÝ�v”|Ô,Ð.CÐ.CÐ.CÑDÔDÐDÝ�v”|Ô)Ô.°°°Ñ>Ô>Ð>ð
 ‡J‚J�1�#˜�s˜Q˜C !  q cÐ*¨o¨o¨o€JÑ>Ô>Ð>Ý�v”|Ô,Ð.CÐ.CÐ.CÑDÔDÐDÝ�v”|Ô)Ô.°°°Ñ>Ô>Ð>Ð>Ð>r�   c                  ó(  — d} t          j        dt           j        ¬¦  «        }d}d„ }t          j        t          j        |fD ]Ð}t          j        ¦   «         D ]W\  }} || |¦  «        } ||¦  «                             ¦   «         }|\  }	\  }
}}||	k    sJ ‚| |
k    sJ ‚t          ||¦  «         ŒXt          j        ¦   «         D ]O\  }} || |¦  «        } ||¦  «                             ¦   «         }|\  }	\  }
}}||	k    sJ ‚| |
k    sJ ‚||k    sJ ‚ŒPŒÑd S )Nr:   r  rB  c                 óN   — t          j        t          j        | ¦  «        ¦  «        S r  )rg  ri  rh  )Úobjs    r   Ú_pickle_copyz)test_criterion_copy.<locals>._pickle_copyã  s   € ÝŒ|�FœL¨Ñ-Ô-Ñ.Ô.Ð.r�   )
rr   rÉ   Úintprò  Údeepcopyr   r‡   Ú
__reduce__r%   r   )Ú	n_outputsr`  rW   r/  Ú	copy_funcÚ_ÚtypenameÚcriteriaÚresultÚ	typename_Ú
n_outputs_ry  Ú
n_samples_s                r   Útest_criterion_copyr<  Ü  s{  € ð €IÝ”	˜!¥2¤7Ð+Ñ+Ô+€IØ€Ið/ð /ð /õ ”i¥¤°Ð=ð +ð +ˆ	Ý'Ô-Ñ/Ô/ð 	6ð 	6‰KˆAˆxØ�x 	¨9Ñ5Ô5ˆHØ�Y˜xÑ(Ô(×3Ò3Ñ5Ô5ˆFØ5;Ñ2ˆIÑ/˜
 J°Ø˜yÒ(Ð(Ð(Ð(Ø 
Ò*Ð*Ð*Ð*Ý˜y¨*Ñ5Ô5Ð5Ð5å'Ô-Ñ/Ô/ð 	+ð 	+‰KˆAˆxØ�x 	¨9Ñ5Ô5ˆHØ�Y˜xÑ(Ô(×3Ò3Ñ5Ô5ˆFØ5;Ñ2ˆIÑ/˜
 J°Ø˜yÒ(Ð(Ð(Ð(Ø 
Ò*Ð*Ð*Ð*Ø 
Ò*Ð*Ð*Ð*Ð*ð	+ð+ð +r�   c                 óÖ  — t           j                             d¦  «                             dd¦  «        dz  }t          j        |                     d¦  «        ¦  «        }|d d …d d…f         }| � | |¦  «        }|d d …df         }t          d¬¦  «                             ||¦  «        } |j        |¦  «        }t          t          j
        |j        j        t          k    ¦  «        d         ¦  «        }|                     |¦  «        }t          j
        t          j        |j        j        ¦  «         ¦  «        d         }t#          |¦  «        dk    sJ ‚t#          |¦  «        dk    sJ ‚d S )Nr   rB  rG   g±¡*ÓÎâGr$  r=   rƒ   )rr   r“  ÚRandomStaterË  Ú
nan_to_numr#  r   rˆ   r  ÚsetÚwhereró   rq   r   Ú
differenceÚisfiniteru   r”   )	r)  r¯   r^   r_   r	   Úterminal_regionsÚ	left_leafÚ
empty_leafÚinfinite_thresholds	            r   Ú"test_empty_leaf_infinite_thresholdrH  ø  sM  € õ Œ9× Ò  Ñ#Ô#×)Ò)¨#¨rÑ2Ô2°TÑ9€DÝŒ=˜Ÿš YÑ/Ô/Ñ0Ô0€DØˆQˆQˆQ���ˆVŒ€AØÐ#ØÐ˜QÑÔˆØˆQˆQˆQ�ˆUŒ€Aå ¨aÐ0Ñ0Ô0×4Ò4°Q¸Ñ:Ô:€DØ!�t”z !‘}”}ÐÝ•B”H˜TœZÔ5½ÒBÑCÔCÀAÔFÑGÔG€IØ×%Ò%Ð&6Ñ7Ô7€JÝœ¥2¤;¨t¬zÔ/CÑ#DÔ#DÐ"DÑEÔEÀaÔHÐÝÐ!Ñ"Ô" aÒ'Ð'Ð'Ð'Ýˆz‰?Œ?˜aÒÐÐÐÐÐr�   Útree_clsc                 óv  — t           |          } | d         | d         }} |dd¬¦  «        }|                     ||¦  «        }|j        }|j        }t	          j        t	          j        |¦  «        dk    ¦  «        sJ ‚t	          j        t	          j        |¦  «        dk    ¦  «        sJ ‚t          ||||¦  «         d S ©Nr^   r_   rY   r   rD  ©r"  Úcost_complexity_pruning_pathÚ
ccp_alphasÚ
impuritiesrr   rÚ   ÚdiffÚassert_pruning_creates_subtree©rÓ  rI  r^   r_   rû   ÚinfoÚpruning_pathrO  s           r   Ú'test_prune_tree_classifier_are_subtreesrU    sº   € õ
 �wÔ€GØ�3Œ<˜ œ€q€AØ
ˆ( "°1Ð
5Ñ
5Ô
5€CØ×+Ò+¨A¨qÑ1Ô1€Dà”?€LØ”€JÝŒ6•"”'˜,Ñ'Ô'¨1Ò,Ñ-Ô-Ð-Ð-Ð-ÝŒ6•"”'˜*Ñ%Ô%¨Ò*Ñ+Ô+Ð+Ð+Ð+å" 8¨Q°°<Ñ@Ô@Ð@Ð@Ð@r�   c                 óv  — t           |          } | d         | d         }} |dd¬¦  «        }|                     ||¦  «        }|j        }|j        }t	          j        t	          j        |¦  «        dk    ¦  «        sJ ‚t	          j        t	          j        |¦  «        dk    ¦  «        sJ ‚t          ||||¦  «         d S rK  rL  rR  s           r   Ú'test_prune_tree_regression_are_subtreesrW    sº   € õ �wÔ€GØ�3Œ<˜ œ€q€Aà
ˆ( "°1Ð
5Ñ
5Ô
5€CØ×+Ò+¨A¨qÑ1Ô1€Dà”?€LØ”€JÝŒ6•"”'˜,Ñ'Ô'¨1Ò,Ñ-Ô-Ð-Ð-Ð-ÝŒ6•"”'˜*Ñ%Ô%¨Ò*Ñ+Ô+Ð+Ð+Ð+å" 8¨Q°°<Ñ@Ô@Ð@Ð@Ð@r�   c                  óì   — t          d¬¦  «        } |                      dgdggddg¦  «         t          dd¬¦  «        }|                     dgdggddg¦  «         t          | j        |j        ¦  «         d S )Nr   rƒ   r7   rB   )rV   Ú	ccp_alpha)r   rˆ   Úassert_is_subtreeró   )rš  rë   s     r   Útest_prune_single_node_treer[  .  s€   € å!¨qÐ1Ñ1Ô1€DØ‡H‚Hˆqˆc�A�3ˆZ˜!˜Q˜Ñ Ô Ð õ "¨q¸BÐ?Ñ?Ô?€DØ‡H‚Hˆqˆc�A�3ˆZ˜!˜Q˜Ñ Ô Ð å�d”j $¤*Ñ-Ô-Ð-Ð-Ð-r�   c                 óò   — g }|D ]9} | d|d¬¦  «                              ||¦  «        }|                     |¦  «         Œ:t          ||dd …         ¦  «        D ]\  }}t          |j        |j        ¦  «         Œ d S )NrY   r   )ræ   rY  rV   r7   )rˆ   rî  ÚziprZ  ró   )	Úestimator_clsr^   r_   rT  Ú
estimatorsrY  rû   Úprev_estÚnext_ests	            r   rQ  rQ  :  s¤   € à€JØ!ð ð ˆ	Øˆm¨2¸ÐQRÐSÑSÔS×WÒWØˆqñ
ô 
ˆð 	×Ò˜#ÑÔÐÐõ " *¨j¸¸¸¬nÑ=Ô=ð :ð :Ñˆ�(Ý˜(œ.¨(¬.Ñ9Ô9Ð9Ð9ð:ð :r�   c                 ó8  — | j         |j         k    sJ ‚| j        |j        k    sJ ‚| j        }| j        }|j        }|j        }dg}|�rS|                     ¦   «         \  }}t          | j        |         |j        |         ¦  «         t          | j        |         |j        |         ¦  «         t          | j	        |         |j	        |         ¦  «         t          | j
        |         |j
        |         ¦  «         ||         ||         k    r!t          t          |j        |         ¦  «         nlt          | j        |         |j        |         ¦  «         |                     ||         ||         f¦  «         |                     ||         ||         f¦  «         |�°Qd S d S )N)r   r   )rn   r¹   rq   rp   Úpopr$   ry   r#   rx   rv   rG  r   ru   rî  )	r	   ÚsubtreeÚtree_c_leftÚtree_c_rightÚsubtree_c_leftÚsubtree_c_rightÚstackÚtree_node_idxÚsubtree_node_idxs	            r   rZ  rZ  I  sÝ  € ØŒ?˜gÔ0Ò0Ð0Ð0Ð0ØŒ>˜WÔ.Ò.Ð.Ð.Ð.àÔ$€KØÔ&€LØÔ*€NØÔ,€OàˆH€EØ
ñ Ø*/¯)ª)©+¬+Ñ'ˆÐ'Ý!ØŒJ�}Ô% w¤}Ð5EÔ'Fñ	
ô 	
ð 	
õ 	ØŒM˜-Ô(¨'Ô*:Ð;KÔ*Lñ	
ô 	
ð 	
õ 	ØÔ Ô.°Ô0FÐGWÔ0Xñ	
ô 	
ð 	
õ 	ØÔ(¨Ô7ØÔ+Ð,<Ô=ñ	
ô 	
ð 	
ð
 Ð*Ô+¨Ð?OÔ/PÒPÐPå¥°Ô0AÐBRÔ0SÑTÔTÐTÐTõ  Ø”˜}Ô-¨wÔ/@ÐAQÔ/Rñô ð ð �LŠL˜+ mÔ4°nÐEUÔ6VÐWÑXÔXÐXØ�LŠLØ˜mÔ,¨oÐ>NÔ.OÐPñô ð ð3 ñ ð ð ð ð r�   rÈ  rÇ  r“  c                 ój  — t           d         }|d                              t          j        j        d¬¦  «        }|€t          |¦  «        }nt ||d         ¦  «        }t          j        |j        t          j        j        ¬¦  «        |_        t          |j        |j	        |j
        f¦  «        \  |_        |_	        |_
        t          t          j        t          t          j        j        ¬¦  «        ¦  «        }t          |          |¬¦  «        }|                     ||¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         t          |                     |¦  «                             ¦   «         |                     |¦  «                             ¦   «         ¦  «         d S )Nrd   r^   Fr	  r  ©rÈ  )r"  r#  r	   r  r  r&   rr   r�   r¯   r¥   rö  r  r5   rˆ   r%   r‰   ró  Útodense)r�   rÈ  r)  rÓ  r  Ú
X_readonlyÚ
y_readonlyrû   s           r   Ú"test_apply_path_readonly_all_treesrq  q  st  € õ �{Ô#€GØ�cŒl×!Ò!¥$¤*Ô"2¸Ð!Ñ?Ô?€GØÐÝ.¨wÑ7Ô7ˆ
ˆ
à%Ð% g¨c¤lÑ3Ô3ˆ
åœ( :¤?½$¼*Ô:JÐKÑKÔKˆ
Œõ
 &ØŒ_˜jÔ0°*Ô2CÐDñ
ô 
ñ		
ØŒOØÔØÔõ
 +­2¬8µGÅ4Ä:ÔCSÐ+TÑ+TÔ+TÑUÔU€JÝ
�DŒ/ 8Ð
,Ñ
,Ô
,€CØ‡G‚GˆJ˜
Ñ#Ô#Ð#Ý�s—{’{ :Ñ.Ô.°·²¸GÑ0DÔ0DÑEÔEÐEÝØ×Ò˜*Ñ%Ô%×-Ò-Ñ/Ô/°×1BÒ1BÀ7Ñ1KÔ1K×1SÒ1SÑ1UÔ1Uñô ð ð ð r�   )r1   r3   r4   c                 ó  — t           j        t           j        }} || ¬¦  «        }|                     ||¦  «         t	          j        |                     |¦  «        ¦  «        t          j        t	          j        |¦  «        ¦  «        k    sJ ‚d S )Nrþ   )	ra   r¯   r°   rˆ   rr   rw   r‰   r³   r´   )r—   r!   r^   r_   r¡   s        r   Útest_balance_propertyrs  Ž  sq   € õ Œ=�(œ/€q€AØ
ˆ$˜Ð
#Ñ
#Ô
#€CØ‡G‚GˆAˆq�M„M€MÝŒ6�#—+’+˜a‘.”.Ñ!Ô!¥V¤]µ2´6¸!±9´9Ñ%=Ô%=Ò=Ð=Ð=Ð=Ð=Ð=r�   Úseedc           	      óØ  — ddgddgddgddgddgddgddgddgg}g d¢}t          d| ¬¦  «        }|                     ||¦  «         t          j        |                     |¦  «        ¦  «        dk    sJ ‚t          d| ¬¦  «        }|                     ||¦  «         t          j        |                     |¦  «        dk    ¦  «        sJ ‚d	}t          j        |dz  dz  d
d||dz  dz  | ¬¦  «        \  }}d|d|k     |dk     z  <   t          j        |¦  «        }t          d| ¬¦  «        }|                     ||¦  «         t          j        |                     |¦  «        dk    ¦  «        sJ ‚d S )Nr   r7   rK   r:   )r   r   r   r   r7   rK   r:   r6   r1   r™   r4   rB   r&  r  )Úeffective_rankÚtail_strengthrW   rX   rà   rV   r=   )	r   rˆ   rr   Úaminr‰   rÚ   r   Úmake_regressionr›   )rt  r^   r_   r¡   rX   s        r   Útest_poisson_zero_nodesrz  œ  s‘  € ð ˆQˆ�!�Q�˜!˜Q˜ ! Q ¨!¨Q¨°!°Q°¸!¸Q¸À!ÀQÀÐH€AØ Ð Ð €Aõ  ¨/ÈÐ
MÑ
MÔ
M€CØ‡G‚GˆAˆq�M„M€MÝŒ7�3—;’;˜q‘>”>Ñ"Ô" aÒ'Ð'Ð'Ð'å
¨)À$Ð
GÑ
GÔ
G€CØ‡G‚GˆAˆq�M„M€MÝŒ6�#—+’+˜a‘.”. 1Ò$Ñ%Ô%Ð%Ð%Ð%ð €JÝÔ#Ø! A‘~¨Ñ*ØØØØ  1‘n¨Ñ)Øðñ ô �D€A€qð €A€rˆA‚v�!�a’%ÑÑå
Œˆq‰	Œ	€AÝ
¨)À$Ð
GÑ
GÔ
G€CØ‡G‚GˆAˆq�M„M€MÝŒ6�#—+’+˜a‘.”. 1Ò$Ñ%Ô%Ð%Ð%Ð%Ð%Ð%r�   c            	      ó¤  — t           j                             d¦  «        } d\  }}}t          j        ||z   || ¬¦  «        }|                      dd|¬¦  «        t          j        |d¬¦  «        z  }|                      t          j        ||z  ¦  «        ¬	¦  «        }t          |||| ¬
¦  «        \  }}}	}
t          dd| ¬¦  «        }t          dd| ¬¦  «        }|                     ||	¦  «         |                     ||	¦  «         t          d¬¦  «                             ||	¦  «        }||	df||
dffD ]Ÿ\  }}}t          ||                     |¦  «        ¦  «        }t          |t          j        |                     |¦  «        dd ¦  «        ¦  «        }t          ||                     |¦  «        ¦  «        }|dk    r|d|z  k     sJ ‚|d|z  k     sJ ‚Œ d S )Nr¿   )éô  r|  rB   ©rW   rX   rV   r@   rK   )ÚlowÚhighr[   r   r  )Úlam)Ú	test_sizerV   r4   rB   )r—   r  rV   r1   Úmean)ÚstrategyÚtrainÚtestgVçž¯Ò<rI   g      è?)rr   r“  r>  r   Úmake_low_rank_matrixÚuniformr:  r4   rÃ   r   r   rˆ   r
   r   r‰   Úclip)r%  Ún_trainÚn_testrX   r^   Úcoefr_   ÚX_trainrû  rŸ   r    Útree_poiÚtree_mseÚdummyÚvalÚ
metric_poiÚ
metric_mseÚmetric_dummys                     r   Útest_poisson_vs_mser”  ¾  s  € õ
 Œ)×
Ò
 Ñ
#Ô
#€CØ".Ñ€GˆV�ZÝÔ%Ø˜FÑ"¨zÈð	ñ 	ô 	€Að
 �;Š;˜2 A¨Jˆ;Ñ7Ô7½"¼&ÀÈÐ:KÑ:KÔ:KÑK€DØ�Š�œ˜q 4™xÑ(Ô(ˆÑ)Ô)€AÝ'7Ø	ˆ1˜¨Sð(ñ (ô (Ñ$€GˆV�W˜fõ %Ø¨rÀðñ ô €Hõ %Ø!°RÀcðñ ô €Hð ‡L‚L�˜'Ñ"Ô"Ð"Ø‡L‚L�˜'Ñ"Ô"Ð"Ý FÐ+Ñ+Ô+×/Ò/°¸ÑAÔA€Eà ¨Ð1°F¸FÀFÐ3KÐLð 
0ð 
0‰	ˆˆ1ˆcÝ*¨1¨h×.>Ò.>¸qÑ.AÔ.AÑBÔBˆ
å*¨1­b¬g°h×6FÒ6FÀqÑ6IÔ6IÈ5ÐRVÑ.WÔ.WÑXÔXˆ
Ý,¨Q°·²¸aÑ0@Ô0@ÑAÔAˆð �&Š=ˆ=Ø  jÑ 0Ò0Ð0Ð0Ð0Ø˜D <Ñ/Ò/Ð/Ð/Ð/Ð/ð
0ð 
0r�   c                 ó„  — t          | ¬¦  «        }t          di |¤ddi¤Ž}dD ]}t          d| z   |d¬¦  «         Œt          j                             d¦  «        }d	\  }}|                     ||¦  «        }t          j        |d
¬¦  «        |                     |¦  «        z   }|t          j        |¦  «        dz   z  }t          j	        ||d|dz  …         gd¬¦  «        }	t          j	        ||d|dz  …         g¦  «        }
t          j
        t          |¦  «        ¦  «        }d|d|dz  …<   t          di |¤Ž                     |||¬¦  «        }t          di |¤Ž                     |	|
d¬¦  «        }|j        j        |j        j        k    sJ ‚t          |                     |¦  «        |                     |¦  «        ¦  «         dS )z4Test that the impact of sample_weight is consistent.rþ   rV   r¿   )rj   r“   ÚDecisionTreeRegressor_rj   )Úkindr   )rB   r9   r7   r  rä   NrK   r‘   rc  )Údictr   r)   rr   r“  r>  r&  r‚  rœ   rï  r“   r”   rˆ   ró   rn   r   r‰   )r—   Útree_paramsr	   r—  r%  rW   rX   r^   r_   r  r  Úsample_weight_1Útree1Útree2s                 r   Ú6test_decision_tree_regressor_sample_weight_consistencyr�  è  sð  € õ  Ð+Ñ+Ô+€KÝ Ð@Ð@ ;Ð@Ð@¸RÐ@Ð@Ð@€DØ!ð 
ð 
ˆÝ'Ø$ yÑ0°$¸Wð	
ñ 	
ô 	
ð 	
ð 	
õ Œ)×
Ò
 Ñ
"Ô
"€CØ!Ñ€Iˆzà�Š�˜JÑ'Ô'€AÝ
Œ�˜ÐÑÔ˜SŸXšX iÑ0Ô0Ñ0€Aà�Œ�‰Œ�S‰Ñ€Aõ 
Œ˜˜AÐ. 	¨Q¡Ð.Ô/Ð0°qÐ	9Ñ	9Ô	9€BÝ	Œ˜˜AÐ. 	¨Q¡Ð.Ô/Ð0Ñ	1Ô	1€BÝ”g�c !™fœf‘o”o€OØ()€OÐ$�i 1‘nÐ$Ñ%å!Ð0Ð0 KÐ0Ð0×4Ò4Ø	ˆ1˜Oð 5ñ ô €Eõ "Ð0Ð0 KÐ0Ð0×4Ò4°R¸È4Ð4ÑPÔP€EàŒ;Ô! U¤[Ô%;Ò;Ð;Ð;Ð;õ �E—M’M !Ñ$Ô$ e§m¢m°AÑ&6Ô&6Ñ7Ô7Ð7Ð7Ð7r�   r`  c                 óv  — d\  }}t          j        ||||dd¬¦  «        \  }} | dd¬¦  «                             ||¦  «        } | dd¬¦  «                             ||¦  «        }t          |j        |j        | ›d	�¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         d
S )z3Test that criterion=entropy gives same as log_loss.)rŒ  r9   r   r¿   )r`  rW   rX   rà   rá   rV   r0   é+   r™   Úentropyz> with criterion 'entropy' and 'log_loss' gave different trees.N)r   rç   rˆ   r€   ró   r   r‰   )r!   r`  rW   rX   r^   r_   Útree_log_lossÚtree_entropys           r   Ú'test_criterion_entropy_same_as_log_lossr£    sã   € ð "Ñ€IˆzÝÔ'ØØØØ ØØðñ ô �D€A€qð �D :¸BÐ?Ñ?Ô?×CÒCÀAÀqÑIÔI€MØ�4 )¸"Ð=Ñ=Ô=×AÒAÀ!ÀQÑGÔG€LåØÔØÔØÐQÐQÐQñô ð õ
 �M×)Ò)¨!Ñ,Ô,¨l×.BÒ.BÀ1Ñ.EÔ.EÑFÔFÐFÐFÐFr�   c                  óX  ‡‡— t          j        d¬¦  «        \  } }t          dd¬¦  «        Š‰                     | |¦  «         ‰                     | |¦  «        }d„ Šˆˆfd„}t          j         |¦   «         ¦  «        }|                     | |¦  «        }t          j        ||¦  «        sJ ‚d S )Nr   rƒ   r:   rÑ  c                 ó¢   — |                       ¦   «                              | j                             ¦   «         ¦  «                             ¦   «         S r  )ÚbyteswapÚviewr  Únewbyteorderr2  )Úarrs    r   Úreduce_ndarrayz8test_different_endianness_pickle.<locals>.reduce_ndarray-  s8   € Ø�|Š|‰~Œ~×"Ò" 3¤9×#9Ò#9Ñ#;Ô#;Ñ<Ô<×GÒGÑIÔIÐIr�   c                  ó  •— t          j        ¦   «         } t          j        | ¦  «        }t          j                             ¦   «         |_        ‰|j        t          j        <   | 	                    ‰¦  «         |  
                    d¦  «         | S ©Nr   )ÚioÚBytesIOrg  ÚPicklerÚcopyregÚdispatch_tablerò  rr   ÚndarrayÚdumpÚseek)ÚfÚprŽ   rª  s     €€r   Ú get_pickle_non_native_endiannesszJtest_different_endianness_pickle.<locals>.get_pickle_non_native_endianness0  sf   ø€ ÝŒJ‰LŒLˆÝŒN˜1ÑÔˆÝ"Ô1×6Ò6Ñ8Ô8ˆÔØ'5ˆÔ�œÑ$à	�Šˆs‰ŒˆØ	�Šˆq‰	Œ	ˆ	Øˆr�   )	r   rç   r   rˆ   r©   rg  Úloadrr   Úisclose)r^   r_   r©   r·  Únew_clfÚ	new_scorerŽ   rª  s         @@r   Ú test_different_endianness_pickler¼  &  sË   øø€ ÝÔ'°QÐ7Ñ7Ô7�D€A€qå
 ¨a¸1Ð
=Ñ
=Ô
=€CØ‡G‚GˆAˆq�M„M€MØ�IŠI�a˜‰OŒO€EðJð Jð Jðð ð ð ð ð õ ŒkÐ:Ð:Ñ<Ô<Ñ=Ô=€GØ—’˜a Ñ#Ô#€IÝŒ:�e˜YÑ'Ô'Ð'Ð'Ð'Ð'Ð'r�   c                  óx  ‡‡— t          j        d¬¦  «        \  } }t          dd¬¦  «        Š‰                     | |¦  «         ‰                     | |¦  «        } G d„ dt
          ¦  «        Šˆˆfd„}t          j         |¦   «         ¦  «        }|                     | |¦  «        }t          j	        ||¦  «        sJ ‚d S )Nr   rƒ   r:   rÑ  c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )úPtest_different_endianness_joblib_pickle.<locals>.NonNativeEndiannessNumpyPicklerc                 óú   •— t          |t          j        ¦  «        r>|                     ¦   «                              |j                             ¦   «         ¦  «        }t          ¦   «                              |¦  «         d S r  )	Ú
isinstancerr   r²  r¦  r§  r  r¨  ÚsuperÚsave)Úselfr.  rk  s     €r   rÃ  zUtest_different_endianness_joblib_pickle.<locals>.NonNativeEndiannessNumpyPickler.saveG  s]   ø€ Ý˜#�rœzÑ*Ô*ð DØ—l’l‘n”n×)Ò)¨#¬)×*@Ò*@Ñ*BÔ*BÑCÔC�Ý‰GŒG�LŠL˜ÑÔÐÐÐr�   )Ú__name__Ú
__module__Ú__qualname__rÃ  Ú__classcell__)rk  s   @r   ÚNonNativeEndiannessNumpyPicklerr¿  F  s8   ø€ € € € € ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r�   rÉ  c                  ó˜   •— t          j        ¦   «         }  ‰| ¦  «        }|                     ‰¦  «         |                      d¦  «         | S r¬  )r­  r®  r³  r´  )rµ  r¶  rÉ  rŽ   s     €€r   Ú'get_joblib_pickle_non_native_endiannesszXtest_different_endianness_joblib_pickle.<locals>.get_joblib_pickle_non_native_endiannessL  sA   ø€ ÝŒJ‰LŒLˆØ+Ð+¨AÑ.Ô.ˆà	�Šˆs‰ŒˆØ	�Šˆq‰	Œ	ˆ	Øˆr�   )
r   rç   r   rˆ   r©   r   Újoblibr¸  rr   r¹  )r^   r_   r©   rË  rº  r»  rÉ  rŽ   s         @@r   Ú'test_different_endianness_joblib_picklerÍ  ?  sã   øø€ ÝÔ'°QÐ7Ñ7Ô7�D€A€qå
 ¨a¸1Ð
=Ñ
=Ô
=€CØ‡G‚GˆAˆq�M„M€MØ�IŠI�a˜‰OŒO€Eðð ð ð ð ­,ñ ô ð ðð ð ð ð ð õ ŒkÐAÐAÑCÔCÑDÔD€GØ—’˜a Ñ#Ô#€IÝŒ:�e˜YÑ'Ô'Ð'Ð'Ð'Ð'Ð'r�   c                 ó„  — t           rt          j        nt          j        }g d¢}d„ | j        j                             ¦   «         D ¦   «         }|D ]}|||<   Œt          j        t          |                     ¦   «         ¦  «        t          | 	                    ¦   «         ¦  «        dœ¦  «        }|  
                    |d¬¦  «        S )N)Ú
left_childÚright_childrt   rv   c                 ó    — i | ]\  }\  }}||“ŒS rc  rc  ©rd  r�   r  r5  s       r   rf  z6get_different_bitness_node_ndarray.<locals>.<dictcomp>_  ó/   € ð ð ð Ù(˜™j˜u aˆˆeðð ð r�   ©ÚnamesÚformatsÚ	same_kind©Úcasting)r*   rr   Úint64rð  r  Úfieldsr‡   Úlistr  Úvaluesr#  )Únode_ndarrayÚnew_dtype_for_indexing_fieldsÚindexing_field_namesÚnew_dtype_dictr�   Ú	new_dtypes         r   Ú"get_different_bitness_node_ndarrayrã  Y  sÑ   € Ý09Ð$G¥B¤H H½r¼xÐ!ð VÐUÐUÐðð Ø,8Ô,>Ô,E×,KÒ,KÑ,MÔ,Mðñ ô €Nð %ð =ð =ˆØ<ˆ�tÑÐå”Ý�~×*Ò*Ñ,Ô,Ñ-Ô-½$¸~×?TÒ?TÑ?VÔ?VÑ:WÔ:WÐXÐXñô €Ið ×Ò˜y°+ÐÑ>Ô>Ð>r�   c                 ó”  — d„ | j         j                             ¦   «         D ¦   «         }d„ | j         j                             ¦   «         D ¦   «         }d„ |D ¦   «         }t	          j         t          |                     ¦   «         ¦  «        t          |                     ¦   «         ¦  «        |dœ¦  «        }|                      |d¬¦  «        S )Nc                 ó    — i | ]\  }\  }}||“ŒS rc  rc  rÒ  s       r   rf  z8get_different_alignment_node_ndarray.<locals>.<dictcomp>l  rÓ  r�   c                 ó   — g | ]\  }}|‘ŒS rc  rc  )rd  r  rõ  s      r   rå  z8get_different_alignment_node_ndarray.<locals>.<listcomp>o  s   € ÐNÐNÐN™-˜% ˆvÐNÐNÐNr�   c                 ó   — g | ]}d |z   ‘ŒS )rJ   rc  )rd  rõ  s     r   rå  z8get_different_alignment_node_ndarray.<locals>.<listcomp>p  s   € Ð8Ð8Ð8 f�q˜6‘zÐ8Ð8Ð8r�   )rÕ  rÖ  Úoffsetsr×  rØ  )r  rÛ  r‡   rÝ  rr   rÜ  r  r#  )rÞ  rá  rè  Úshifted_offsetsrâ  s        r   Ú$get_different_alignment_node_ndarrayrê  k  sÔ   € ðð Ø,8Ô,>Ô,E×,KÒ,KÑ,MÔ,Mðñ ô €Nð OÐN¨<Ô+=Ô+D×+KÒ+KÑ+MÔ+MÐNÑNÔN€GØ8Ð8°Ð8Ñ8Ô8€Oå”å˜.×-Ò-Ñ/Ô/Ñ0Ô0Ý˜N×1Ò1Ñ3Ô3Ñ4Ô4Ø&ð	
ð 	
ñô €Ið ×Ò˜y°+ÐÑ>Ô>Ð>r�   c                 ó  — t           rt          j        nt          j        } | j        ¦   «         \  }\  }}}}|                     |d¬¦  «        }|                     ¦   «         }t          |d         ¦  «        |d<   ||||f|fS )Nr×  rØ  Únodes)r*   rr   rÚ  rð  r2  r#  rò  rã  )	r	   râ  rI  rX   r`  r3  ÚstateÚnew_n_classesÚ	new_states	            r   Ú"reduce_tree_with_different_bitnessrð  |  s�   € Ý%Ð3•”�­2¬8€IØ:I¸$¼/Ñ:KÔ:KÑ7€HÑ0ˆz˜9 i°%Ø×$Ò$ Y¸Ð$ÑDÔD€Mà—
’
‘”€IÝ;¸IÀgÔ<NÑOÔO€IˆgÑà�z =°)Ð<¸iÐHÐHr�   c                  óT  ‡— t          j        d¬¦  «        \  } }t          dd¬¦  «        Š‰                     | |¦  «         ‰                     | |¦  «        }ˆfd„}t          j         |¦   «         ¦  «        }|                     | |¦  «        }|t          j        |¦  «        k    sJ ‚d S )Nr   rƒ   r:   rÑ  c                  ó  •— t          j        ¦   «         } t          j        | ¦  «        }t          j                             ¦   «         |_        t          |j        t          <   | 	                    ‰¦  «         |  
                    d¦  «         | S r¬  )r­  r®  rg  r¯  r°  r±  rò  rð  Ú
CythonTreer³  r´  ©rµ  r¶  rŽ   s     €r   Ú"pickle_dump_with_different_bitnesszItest_different_bitness_pickle.<locals>.pickle_dump_with_different_bitnessŽ  sd   ø€ ÝŒJ‰LŒLˆÝŒN˜1ÑÔˆÝ"Ô1×6Ò6Ñ8Ô8ˆÔÝ'IˆÔ�Ñ$à	�Šˆs‰ŒˆØ	�Šˆq‰	Œ	ˆ	Øˆr�   )	r   rç   r   rˆ   r©   rg  r¸  r³   r´   )r^   r_   r©   rõ  rº  r»  rŽ   s         @r   Útest_different_bitness_picklerö  ‡  s¶   ø€ ÝÔ'°QÐ7Ñ7Ô7�D€A€qå
 ¨a¸1Ð
=Ñ
=Ô
=€CØ‡G‚GˆAˆq�M„M€MØ�IŠI�a˜‰OŒO€Eðð ð ð ð õ ŒkÐ<Ð<Ñ>Ô>Ñ?Ô?€GØ—’˜a Ñ#Ô#€IØ•F”M )Ñ,Ô,Ò,Ð,Ð,Ð,Ð,Ð,r�   c                  óT  ‡— t          j        d¬¦  «        \  } }t          dd¬¦  «        Š‰                     | |¦  «         ‰                     | |¦  «        }ˆfd„}t          j         |¦   «         ¦  «        }|                     | |¦  «        }|t          j        |¦  «        k    sJ ‚d S )Nr   rƒ   r:   rÑ  c                  ó  •— t          j        ¦   «         } t          | ¦  «        }t          j                             ¦   «         |_        t          |j        t          <   |                     ‰¦  «         |  	                    d¦  «         | S r¬  )
r­  r®  r   r°  r±  rò  rð  ró  r³  r´  rô  s     €r   Ú"joblib_dump_with_different_bitnesszPtest_different_bitness_joblib_pickle.<locals>.joblib_dump_with_different_bitness©  s`   ø€ ÝŒJ‰LŒLˆÝ˜‰OŒOˆÝ"Ô1×6Ò6Ñ8Ô8ˆÔÝ'IˆÔ�Ñ$à	�Šˆs‰ŒˆØ	�Šˆq‰	Œ	ˆ	Øˆr�   )	r   rç   r   rˆ   r©   rÌ  r¸  r³   r´   )r^   r_   r©   rù  rº  r»  rŽ   s         @r   Ú$test_different_bitness_joblib_picklerú  �  s¸   ø€ õ Ô'°QÐ7Ñ7Ô7�D€A€qå
 ¨a¸1Ð
=Ñ
=Ô
=€CØ‡G‚GˆAˆq�M„M€MØ�IŠI�a˜‰OŒO€Eðð ð ð ð õ ŒkÐ<Ð<Ñ>Ô>Ñ?Ô?€GØ—’˜a Ñ#Ô#€IØ•F”M )Ñ,Ô,Ò,Ð,Ð,Ð,Ð,Ð,r�   c                  ó   — t           rt          j        t          j        ¦  «        nt          j        t          j        ¦  «        } t          j        t          j        ¦  «        t          j        t          j        ¦  «        g}|d„ |D ¦   «         z  }t          j        ddg| ¬¦  «        }|D ]%}t          |                     |¦  «        | ¦  «         Œ&t          j	        t          d¬¦  «        5  t          j        ddgg| ¬¦  «        }t          || ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        t          d¬¦  «        5  |                     t          j        ¦  «        }t          || ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS rc  )r¨  )rd  Údts     r   rå  z(test_check_n_classes.<locals>.<listcomp>»  s"   € ÐBÐBÐB¨R�r—’Ñ(Ô(ÐBÐBÐBr�   r   r7   r  zWrong dimensions.+n_classesrÿ   zn_classes.+incompatible dtype)r*   rr   r  rð  rÚ  r�   r   r#  r³   rî   rï   r‡  )Úexpected_dtypeÚallowed_dtypesr`  rý  Úwrong_dim_n_classesÚwrong_dtype_n_classess         r   Útest_check_n_classesr  ¸  sú  € Ý+4ÐL•R”X�bœhÑ'Ô'Ð'½"¼(Å2Ä8Ñ:LÔ:L€NÝ”h�rœxÑ(Ô(­"¬(µ2´8Ñ*<Ô*<Ð=€NØÐBÐB°>ÐBÑBÔBÑB€Nå”˜!˜Q˜ ~Ð6Ñ6Ô6€IØð ?ð ?ˆÝ˜×)Ò)¨"Ñ-Ô-¨~Ñ>Ô>Ð>Ð>å	Œ•zÐ)FÐ	GÑ	GÔ	Gð >ð >Ý œh¨¨A¨ x°~ÐFÑFÔFÐÝÐ,¨nÑ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >õ 
Œ•zÐ)HÐ	IÑ	IÔ	Ið @ð @Ø )× 0Ò 0µ´Ñ <Ô <ÐÝÐ.°Ñ?Ô?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @ð @ð @s$   Ã**D Ä D$Ä'D$Å0FÆFÆ
Fc                  ó   — t          j        t           j        ¦  «        } d}t          j        || ¬¦  «        }| |                      ¦   «         g}|D ]}t          |||¬¦  «         Œt          j        t          d¬¦  «        5  t          || d¬¦  «         d d d ¦  «         n# 1 swxY w Y   |d d …d d …d d…f         t          j	        |¦  «        fD ]L}t          j        t          d¬¦  «        5  t          || |j
        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   ŒMt          j        t          d	¬¦  «        5  t          |                     t           j        ¦  «        | |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
N)r9   r7   rK   r  )rþ  Úexpected_shapezWrong shape.+value arrayrÿ   )r7   rK   r7   zvalue array.+C-contiguouszvalue array.+incompatible dtype)rr   r  r‡  rj   r¨  r    r³   rî   rï   r  r¦   r#  r$  )rþ  r  Úvalue_ndarrayrÿ  rý  Úproblematic_arrs         r   Útest_check_value_ndarrayr  Ê  sr  € Ý”X�bœjÑ)Ô)€NØ€NÝ”H˜^°>ÐBÑBÔB€Mà$ n×&AÒ&AÑ&CÔ&CÐD€Nàð 
ð 
ˆÝØ¨"¸^ð	
ñ 	
ô 	
ð 	
ð 	
õ 
Œ•zÐ)CÐ	DÑ	DÔ	Dð 
ð 
ÝØ¨.Èð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð
 *¨!¨!¨!¨Q¨Q¨Q°°°¨(Ô3µRÔ5FÀ}Ñ5UÔ5UÐVð ð ˆÝŒ]�:Ð-HÐIÑIÔIð 	ð 	Ý ØØ-Ø.Ô4ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øõ 
Œ•zÐ)JÐ	KÑ	KÔ	Kð 
ð 
ÝØ× Ò ¥¤Ñ,Ô,Ø)Ø)ð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s6   Á?BÂB"Â%B"Ã+DÄD	ÄD	Ä60E3Å3E7Å:E7c                  ó°  — t           } t          j        d| ¬¦  «        }|t          |¦  «        t	          |¦  «        g}|d„ |D ¦   «         z  }|D ]}t          || ¬¦  «         Œt          j        t          d¬¦  «        5  t          j        d| ¬¦  «        }t          || ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |d d d	…         }t          || ¬¦  «         d d d ¦  «         n# 1 swxY w Y   d
„ |j	        j
                             ¦   «         D ¦   «         }|                     ¦   «         }t          j        |d<   t          j	        t          |                     ¦   «         ¦  «        t          |                     ¦   «         ¦  «        dœ¦  «        }|                     |¦  «        }t          j        t          d¬¦  «        5  t          || ¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         }t          j        |d<   t          j	        t          |                     ¦   «         ¦  «        t          |                     ¦   «         ¦  «        dœ¦  «        }|                     |¦  «        }t          j        t          d¬¦  «        5  t          || ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r9   r  c                 óf   — g | ].}|                      |j                             ¦   «         ¦  «        ‘Œ/S rc  )r#  r  r¨  )rd  r©  s     r   rå  z+test_check_node_ndarray.<locals>.<listcomp>õ  s?   € ð ð ð Ø14ˆ�
Š
�3”9×)Ò)Ñ+Ô+Ñ,Ô,ðð ð r�   )rþ  zWrong dimensions.+node arrayrÿ   )r9   rK   znode array.+C-contiguousrK   c                 ó    — i | ]\  }\  }}||“ŒS rc  rc  rÒ  s       r   rf  z+test_check_node_ndarray.<locals>.<dictcomp>	  s#   € ÐXÐXÐXÑ"2 $©
¨°�$˜ÐXÐXÐXr�   ru   rÔ  znode array.+incompatible dtyperÏ  )r   rr   rj   rã  rê  r   r³   rî   rï   r  rÛ  r‡   rò  rÚ  rÜ  r  rÝ  r#  r‡  )rþ  rÞ  Úvalid_node_ndarraysr©  Úproblematic_node_ndarrayÚ
dtype_dictrá  râ  s           r   Útest_check_node_ndarrayr  ë  s   € Ý€Nå”8˜D¨Ð7Ñ7Ô7€Lð 	Ý*¨<Ñ8Ô8Ý,¨\Ñ:Ô:ðÐð
 ð ð Ø8Kðñ ô ñ Ðð #ð Ið IˆÝ˜L¸ÐHÑHÔHÐHÐHå	Œ•zÐ)GÐ	HÑ	HÔ	Hð Uð UÝ#%¤8¨F¸.Ð#IÑ#IÔ#IÐ ÝÐ4À^ÐTÑTÔTÐTðUð Uð Uñ Uô Uð Uð Uð Uð Uð Uð Uøøøð Uð Uð Uð Uõ 
Œ•zÐ)CÐ	DÑ	DÔ	Dð Uð UØ#/°°°!°Ô#4Ð ÝÐ4À^ÐTÑTÔTÐTðUð Uð Uñ Uô Uð Uð Uð Uð Uð Uð Uøøøð Uð Uð Uð Uð YÐX°lÔ6HÔ6O×6UÒ6UÑ6WÔ6WÐXÑXÔX€Jð  —_’_Ñ&Ô&€NÝ"$¤(€N�;Ñå”Ý�~×*Ò*Ñ,Ô,Ñ-Ô-½$¸~×?TÒ?TÑ?VÔ?VÑ:WÔ:WÐXÐXñô €Ið  ,×2Ò2°9Ñ=Ô=Ðå	Œ•zÐ)IÐ	JÑ	JÔ	Jð Uð UÝÐ4À^ÐTÑTÔTÐTðUð Uð Uñ Uô Uð Uð Uð Uð Uð Uð Uøøøð Uð Uð Uð Uð  —_’_Ñ&Ô&€NÝ#%¤:€N�<Ñ Ý”Ý�~×*Ò*Ñ,Ô,Ñ-Ô-½$¸~×?TÒ?TÑ?VÔ?VÑ:WÔ:WÐXÐXñô €Ið  ,×2Ò2°9Ñ=Ô=Ðå	Œ•zÐ)IÐ	JÑ	JÔ	Jð Uð UÝÐ4À^ÐTÑTÔTÐTðUð Uð Uñ Uô Uð Uð Uð Uð Uð Uð Uð Uøøøð Uð Uð Uð Uð Uð UsH   Á=(B1Â1B5Â8B5ÃD Ä DÄDÇG9Ç9G=È G=Ê,KËKËKÚSplitterc                 ól  — t           j                             d¦  «        }d}dt          j        ddgt           j        ¬¦  «        }}t          d         ||¦  «        } | ||dd|d	¬
¦  «        }t          j        |¦  «        }t          j        |¦  «        }|j	        |k    sJ ‚t          || ¦  «        sJ ‚d	S )z&Check that splitters are serializable.r¿   rB   rK   r:   r  r/   r9   rI   N)Úmonotonic_cst)rr   r“  r>  r�   r0  r   rg  rh  ri  r…   rÁ  )	r  r%  r…   r3  r`  r—   rÈ  Úsplitter_serializeÚsplitter_backs	            r   Útest_splitter_serializabler  	  s¼   € õ
 Œ)×
Ò
 Ñ
#Ô
#€CØ€LØ�bœh¨¨1 vµR´WÐ=Ñ=Ô=ˆy€Iå˜VÔ$ Y°	Ñ:Ô:€IØˆx˜	 <°°C¸ÈDÐQÑQÔQ€HÝœ hÑ/Ô/Ðå”LÐ!3Ñ4Ô4€MØÔ%¨Ò5Ð5Ð5Ð5Ý�m XÑ.Ô.Ð.Ð.Ð.Ð.Ð.r�   c                 ó6  — t          |                      d¦  «        ¦  «        }t          d¬¦  «        }|                     t          t
          ¦  «         t          j        ||¦  «         t          j        |d¬¦  «        }t          |j
        |j
        d¦  «         dS )zhCheck that Trees can be deserialized with read only buffers.

    Non-regression test for gh-25584.
    z
clf.joblibr   rƒ   Úr)Ú	mmap_modez?The trees of the original and loaded classifiers are not equal.N)ÚstrÚjoinr   rˆ   r  r  rÌ  r³  r¸  r€   ró   )ÚtmpdirÚpickle_pathrŽ   Ú
loaded_clfs       r   Ú/test_tree_deserialization_from_read_only_bufferr  1	  s‘   € õ
 �f—k’k ,Ñ/Ô/Ñ0Ô0€KÝ
 ¨aÐ
0Ñ
0Ô
0€CØ‡G‚G�G•WÑÔÐå
„K��[Ñ!Ô!Ð!Ý”˜[°CÐ8Ñ8Ô8€JåØÔØŒ	ØIñô ð ð ð r�   c                 óL  — t          j        ddgddgg¦  «        }t          j        ddg¦  «        } | d¬¦  «                             ||¦  «          | d¬¦  «        }d}t          j        t
          |¬¦  «        5   |j        ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zhCheck that an error is raised when min_sample_split=1.

    non-regression test for issue gh-25481.
    r   r7   rM   )r  zb'min_samples_split' .* must be an int in the range \[2, inf\) or a float in the range \(0.0, 1.0\]rÿ   N)rr   r�   rˆ   r³   rî   rï   )r!   r^   r_   r	   Úmsgs        r   Útest_min_sample_split_1_errorr   D	  s  € õ 	Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"€AÝ
Œ�!�Q�ÑÔ€Að 	€D˜3ÐÑÔ×#Ò# A qÑ)Ô)Ð)ð ˆ4 !Ð$Ñ$Ô$€Dð	0ð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð ð ØˆŒ��A‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á:BÂBÂ Bc                 ób  — t          j        g d¢g¦  «        j        }t          j        g d¢¦  «        }t          dd| ¬¦  «        }|                     ||¦  «         |                     t           j        gg¦  «        }t          |t          j        |dd…         ¦  «        g¦  «         |dd…         }|dd…         }t          dd| ¬¦  «        }|                     ||¦  «         |                     t           j        gg¦  «        }t          |t          j        |d	d…         ¦  «        g¦  «         dS )
z<Check missing values goes to correct node during predictions)	r   r7   rK   r:   rJ   r  rG   é   r¶   )	rä   r<   r'  r<   r)  r)  rL   gš™™™™™ù?gÍÌÌÌÌÌ@r¿   r7   rè  r;   Nr=   r8   )	rr   r�   rŠ   r   rˆ   r‰   Únanr   r‚  )r—   r^   r_   ÚdtcrÕ  ÚX_equalÚy_equals          r   Ú-test_missing_values_on_equal_nodes_no_missingr'  Z	  s  € õ 	ŒÐ0Ð0Ð0Ð1Ñ2Ô2Ô4€AÝ
ŒÐ>Ð>Ð>Ñ?Ô?€Aå
¨R¸1È	Ð
RÑ
RÔ
R€CØ‡G‚GˆAˆq�M„M€Mð �[Š[�2œ6˜(˜Ñ$Ô$€FÝ�F�RœW Q r s s¤V™_œ_Ð-Ñ.Ô.Ð.ð ���Œf€GØ���Œf€Gå
¨R¸1È	Ð
RÑ
RÔ
R€CØ‡G‚GˆG�WÑÔÐð �[Š[�2œ6˜(˜Ñ$Ô$€FÝ�F�RœW W¨R¨S¨S¤\Ñ2Ô2Ð3Ñ4Ô4Ð4Ð4Ð4r�   r   r/   c                 óž  — d}t          j        t           j        gdz  g d¢z   g¦  «        j        }t          j        |gdz  dgdz  z   dgdz  z   ¦  «        }t	          dd| ¬¦  «        }|                     ||¦  «         t          j        t           j        dd	gg¦  «        j        }|                     |¦  «        }t          ||ddg¦  «         d
S )zITest when missing values are uniquely present in a class among 3 classes.r   r6   )r   r7   rK   r:   rJ   r  rG   r"  r7   rK   r¿   rè  r:   r"  N©rr   r�   r#  rŠ   r   rˆ   r‰   r%   )r—   Úmissing_values_classr^   r_   r$  rû  Ú
y_nan_preds          r   Ú/test_missing_values_best_splitter_three_classesr,  t	  sÒ   € ð ÐÝ
Œ•2”6�(˜Q‘,Ð!;Ð!;Ð!;Ñ;Ð<Ñ=Ô=Ô?€AÝ
ŒÐ&Ð'¨!Ñ+¨q¨c°A©gÑ5¸¸¸a¹Ñ?Ñ@Ô@€AÝ
 ¨b¸AÈÐ
SÑ
SÔ
S€CØ‡G‚GˆAˆq�M„M€MåŒX�œ  2�Ð'Ñ(Ô(Ô*€FØ—’˜VÑ$Ô$€Jå�zÐ$8¸!¸QÐ#?Ñ@Ô@Ð@Ð@Ð@r�   c                 óž  — t          j        t           j        gdz  g d¢z   g¦  «        j        }t          j        dgdz  dgdz  z   ¦  «        }t	          dd| ¬¦  «        }|                     ||¦  «         t          j        t           j        d	t           j        gg¦  «        j        }|                     |¦  «        }t          |g d
¢¦  «         dS )zŠMissing values spanning only one class at fit-time must make missing
    values at predict-time be classified has belonging to this class.r6   ©r   r7   rK   r:   r6   r9   r   r7   rH   r¿   rK   rè  r9   )r   r7   r   Nr)  ©r—   r^   r_   r$  rû  rÕ  s         r   Ú)test_missing_values_best_splitter_to_leftr0  ƒ	  s½   € õ 	Œ•2”6�(˜Q‘,Ð!3Ð!3Ð!3Ñ3Ð4Ñ5Ô5Ô7€AÝ
Œ�!��q‘˜A˜3 ™7Ñ"Ñ#Ô#€Aå
 ¨b¸AÈÐ
SÑ
SÔ
S€CØ‡G‚GˆAˆq�M„M€MåŒX�œ ¥2¤6Ð*Ð+Ñ,Ô,Ô.€FØ�[Š[˜Ñ Ô €Få�v˜y˜y˜yÑ)Ô)Ð)Ð)Ð)r�   c                 ó˜  — t          j        t           j        gdz  g d¢z   g¦  «        j        }t          j        dgdz  dgdz  z   dgdz  z   ¦  «        }t	          dd| ¬¦  «        }|                     ||¦  «         t          j        t           j        dd	gg¦  «        j        }|                     |¦  «        }t          |g d
¢¦  «         dS )zŸMissing values and non-missing values sharing one class at fit-time
    must make missing values at predict-time be classified has belonging
    to this class.r6   r.  r7   r   rK   r¿   rè  rN   g333333@r  Nr)  r/  s         r   Ú*test_missing_values_best_splitter_to_rightr2  “	  sÆ   € õ
 	Œ•2”6�(˜Q‘,Ð!3Ð!3Ð!3Ñ3Ð4Ñ5Ô5Ô7€AÝ
Œ�!��q‘˜A˜3 ™7Ñ" a S¨1¡WÑ,Ñ-Ô-€Aå
 ¨b¸AÈÐ
SÑ
SÔ
S€CØ‡G‚GˆAˆq�M„M€MåŒX�œ  SÐ)Ð*Ñ+Ô+Ô-€FØ�[Š[˜Ñ Ô €Få�v˜y˜y˜yÑ)Ô)Ð)Ð)Ð)r�   c                 ó   — t          j        ddddt           j        ddddt           j        g
g¦  «        j        }t          j        d	gdz  dgdz  z   ¦  «        }t	          d
d| ¬¦  «        }|                     ||¦  «         t          j        t           j        ddgg¦  «        j        }|                     |¦  «        }t          |g d¢¦  «         dS )zNCheck behavior of missing value when there is one missing value in each class.r7   rK   r:   r9   rB   rY   rU   r·   r   r¿   rè  gffffff@gš™™™™A@r  Nr)  r/  s         r   Ú0test_missing_values_missing_both_classes_has_nanr4  ¤	  sÂ   € õ 	Œ�1�a˜˜A�rœv r¨2¨r°2µr´vÐ>Ð?Ñ@Ô@ÔB€AÝ
Œ�!��q‘˜A˜3 ™7Ñ"Ñ#Ô#€Aå
 ¨b¸AÈÐ
SÑ
SÔ
S€CØ‡G‚GˆAˆq�M„M€MÝŒX�œ  TÐ*Ð+Ñ,Ô,Ô.€FØ�[Š[˜Ñ Ô €Fõ �v˜y˜y˜yÑ)Ô)Ð)Ð)Ð)r�   r	   rm  rþ   c                 óX  — t          j        ddddt           j        ddddt           j        g
g¦  «        j        }t          j        d	gdz  dgdz  z   ¦  «        }| � | |¦  «        }t	          j        t          d¬¦  «        5   |j        ||¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S )z4Check unsupported configurations for missing values.r7   rK   r:   r9   rB   rY   rU   r·   r   NzInput X contains NaNrÿ   )rr   r�   r#  rŠ   r³   rî   rï   rˆ   )r)  r	   r^   r_   s       r   Útest_missing_value_errorsr6  ´	  só   € õ 	Œ�1�a˜˜A�rœv r¨2¨r°2µr´vÐ>Ð?Ñ@Ô@ÔB€AÝ
Œ�!��q‘˜A˜3 ™7Ñ"Ñ#Ô#€AàÐ#ØÐ˜QÑÔˆå	Œ•zÐ)?Ð	@Ñ	@Ô	@ð ð ØˆŒ��A‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Â BÂB#Â&B#c                  óV  — t           j                             ¦   «         t           j        }} t          j        | ddd…df<   t          j        | ddd…df<   t          dd¬¦  «        }|                     | |¦  «         |                     | ¦  «        }|d	k     	                    ¦   «         sJ ‚dS )
z5Smoke test for poisson regression and missing values.Nr9   r   rH   r=   r4   r¿   r™   rR   )
ra   r¯   rò  r°   rr   r#  r   rˆ   r‰   rÚ   )r^   r_   r¡   rÕ  s       r   Útest_missing_values_poissonr8  É	  s›   € åŒ=×ÒÑÔ¥¤€q€Aõ ”€A€c€cˆ€cˆ1€f�IÝ”€A€c€cˆ€cˆ2€g�Jå
¨)À"Ð
EÑ
EÔ
E€CØ‡G‚GˆAˆq�M„M€Mà�[Š[˜‰^Œ^€FØ�cŠM×ÒÑ Ô Ð Ð Ð Ð Ð r�   c                  ó>   — t          j        | i |¤Ž\  }}|dk    }||fS )Né   )r   Úmake_friedman1)ÚargsÚkwargsr^   r_   s       r   Úmake_friedman1_classificationr>  Ø	  s-   € ÝÔ" DÐ3¨FÐ3Ð3�D€A€qØ	ˆBŠ€AØˆaˆ4€Kr�   zmake_data,TreeÚsample_weight_trainr“   c                 óº  — d\  }} | |||¬¦  «        \  }}|                      ¦   «         }t          j                             |¦  «        }	t          j        ||	                     ddg|j        ddg¬¦  «        <   t          |||¬¦  «        \  }
}}}|d	k    r t          j        |
j        d
         ¦  «        }nd} |d|¬¦  «        }| 	                    |
||¬¦  «         | 
                    ||¦  «        }t          t          ¦   «          |d|¬¦  «        ¦  «        }| 	                    |
|¦  «         | 
                    ||¦  «        }||k    sJ d|›d|› �¦   «         ‚dS )zFCheck that trees can deal with missing values have decent performance.)rÞ   rB   r}  FTrT   rä   ©r[   r¶  rƒ   r“   r   NrB   rÈ   r‘   zscore_native_tree=z! should be strictly greater than )rò  rr   r“  r>  r#  Úchoicer¦   r   r“   rˆ   r©   r   r   )Ú	make_datar!   r?  rH  rW   rX   r^   r_   Ú	X_missingr%  ÚX_missing_trainÚX_missing_testrŸ   r    r’   Únative_treeÚscore_native_treeÚtree_with_imputerÚscore_tree_with_imputers                      r   Ú!test_missing_values_is_resiliencerK  Þ	  sž  € ð &Ñ€IˆzØˆ9Ø¨
ÐASðñ ô �D€A€qð —’‘”€IÝ
Œ)×
Ò
Ð 2Ñ
3Ô
3€CÝGIÄv€Iˆc�jŠj˜% ˜¨Q¬W¸¸c¸
ˆjÑCÔCÑDÝ7GØ�1Ð#5ð8ñ 8ô 8Ñ4€O�^ W¨fð ˜fÒ$Ð$Ýœ Ô 5°aÔ 8Ñ9Ô9ˆˆàˆà�$ Ð2DÐEÑEÔE€KØ‡O‚O�O W¸M€OÑJÔJÐJØ#×)Ò)¨.¸&ÑAÔAÐå%Ý‰Œ˜˜¨Ð9KÐLÑLÔLñô Ðð ×Ò˜/¨7Ñ3Ô3Ð3Ø/×5Ò5°nÀfÑMÔMÐð 	Ð3Ò3Ð3Ð3ØXÐ
ÐXÐXÐ?VÐXÐXñ 	4Ô3Ð3Ð3Ð3r�   c                  ó~  — t           j                             d¦  «        } d}|                      |df¬¦  «        }|                      dd|¬¦  «        }|                      ddg|d	d
g¬¦  «        }|                     ¦   «                              t          ¦  «        }||          ||<   |                      |¬¦  «        }t           j	        ||<   ||dd…df<   t          ||| ¬¦  «        \  }}}	}
t          | ¬¦  «                             ||	¦  «        } |j        ||	¦  «        dk    sJ ‚ |j        ||
¦  «        dk    sJ ‚dS )z@Check the tree learns when only the missing value is predictive.r   r  rB   rZ   rK   )r  r[   FTgffffffî?rO   rA  Nr9   rƒ   g333333ë?)rr   r“  r>  Ústandard_normalr�  rB  rò  r#  Úboolr#  r   r   rˆ   r©   )r%  rW   r^   r_   ÚX_random_maskÚy_maskÚX_predictiverŒ  rû  rŸ   r    r	   s               r   Ú test_missing_value_is_predictiverR  	
  sM  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ€Ià×Ò )¨R ÐÑ1Ô1€AØ�Š�A˜A IˆÑ.Ô.€Að —J’J  t˜}°9ÀÀtÀ�JÑMÔM€MØ�VŠV‰XŒX�_Š_�TÑ"Ô"€FØ# MÔ2Ð2€Fˆ=Ñà×&Ò&¨IÐ&Ñ6Ô6€LÝœ6€L�Ñà€A€a€a€aˆ€d�Gå'7¸¸1È3Ð'OÑ'OÔ'OÑ$€GˆV�W˜fÝ!¨sÐ3Ñ3Ô3×7Ò7¸ÀÑIÔI€Dàˆ4Œ:�g˜wÑ'Ô'¨4Ò/Ð/Ð/Ð/Øˆ4Œ:�f˜fÑ%Ô%¨Ò-Ð-Ð-Ð-Ð-Ð-r�   zmake_data, Treec                 ó>  — t           j                             d¦  «        }d\  }} | |||¬¦  «        \  }}t           j        ||                     ddg|j        ddg¬¦  «        <   t          j        |j        d         ¦  «        }d	|d
d
d…<    |d¬¦  «        }|                     |||¬¦  «          |d¬¦  «        }	|	                     |dd
d…d
d
…f         |dd
d…         ¦  «         t          |	 	                    |¦  «        | 	                    |¦  «        ¦  «         d
S )z=Check sample weight is correctly handled with missing values.r   )r  rB   r}  FTrT   rä   rA  rR   NrK   rƒ   r‘   r7   )
rr   r“  r>  r#  rB  r¦   r“   rˆ   r   r‰   )
rC  r!   r%  rW   rX   r^   r_   r’   Útree_with_swÚtree_samples_removeds
             r   Útest_sample_weight_non_uniformrV  "
  s5  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ$Ñ€IˆzØˆ9˜y°ZÈcÐRÑRÔR�D€A€qõ @B¼v€A€c‡j‚j�%˜� Q¤W°°c°
€jÑ;Ô;Ñ<õ ”G˜AœG AœJÑ'Ô'€MØ€M�#�#�A�#Ñà�4 QÐ'Ñ'Ô'€LØ×Ò�Q˜¨ÐÑ7Ô7Ð7à˜4¨QÐ/Ñ/Ô/ÐØ×Ò˜Q˜q˜t !˜t Q Q Q˜wœZ¨¨1¨4¨a¨4¬Ñ1Ô1Ð1åÐ(×0Ò0°Ñ3Ô3°\×5IÒ5IÈ!Ñ5LÔ5LÑMÔMÐMÐMÐMr�   c                  óF  — t          d¬¦  «                             t          j        t          j        ¦  «        } t          d¬¦  «                             t          j        t          j        ¦  «        }t          j        | ¦  «        }t          j        |¦  «        }||k    sJ ‚d S r!  )r   rˆ   r`   r¯   r°   rg  rh  )r›  rœ  Úpickle1Úpickle2s       r   Útest_deterministic_picklerZ  ?
  s�   € õ #°Ð2Ñ2Ô2×6Ò6µt´yÅ$Ä+ÑNÔN€EÝ"°Ð2Ñ2Ô2×6Ò6µt´yÅ$Ä+ÑNÔN€EåŒl˜5Ñ!Ô!€GÝŒl˜5Ñ!Ô!€Gà�gÒÐÐÐÐÐr�   r^   r9   rH   c                 ó^  — |                       dd¦  «        } t          j        d¦  «        }t          |d¬¦  «                             | |¦  «        }t          |¦  «                             |                      dd¦  «        |¦  «        }t          |j        j        dk    ¦  «        sJ ‚t          |j        j        dd…         |j        j        dd…         ¦  «         t          j
        |j        j        dk    |j        j        dk    z  ¦  «        }t          |j        j        |         d¦  «         dS )	a'  Check that we properly handle missing values in regression trees using a toy
    dataset.

    The regression targeted by this test was that we were not reinitializing the
    criterion when it comes to the number of missing values. Therefore, the value
    of the critetion (i.e. MSE) was completely wrong.

    This test check that the MSE is null when there is a single sample in the leaf.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/28254
    https://github.com/scikit-learn/scikit-learn/issues/28316
    r=   r7   rH   r   r™   NrK   rR   )r½  rr   rÉ   r   rˆ   r   rÚ   ró   rx   r   Úflatnonzerorq   rv   )r^   r—   r_   r	   Útree_refÚ
leaves_idxs         r   Ú'test_regression_tree_missing_values_toyr_  L
  s  € ð4 	
�	Š	�"�aÑÔ€AÝ
Œ	�!‰Œ€Aå ¨9À1ÐEÑEÔE×IÒIÈ!ÈQÑOÔO€DÝ�T‰{Œ{�Š˜qŸyšy¨¨QÑ/Ô/°Ñ3Ô3€HÝˆtŒzÔ" aÒ'Ñ(Ô(Ð(Ð(Ð(å�D”JÔ'¨¨¨Ô+¨X¬^Ô-DÀRÀaÀRÔ-HÑIÔIÐIõ ”Ø	ŒÔ	! RÒ	'¨D¬JÔ,EÈÒ,JÑKñô €Jõ �D”JÔ'¨
Ô3°SÑ9Ô9Ð9Ð9Ð9r�   c                  ó$  — t          j        d¬¦  «        \  } }t          j                             d¦  «        }|                      ¦   «         }|                     t          j        dt          j        ¬¦  «        | dd…dgf         dz  ¬	¦  «         	                    t          ¦  «        }t          j        ||<   t          ||d
¬¦  «        \  }}}}t          j        g d¢t          j        ¬¦  «        }t          ddd¬¦  «        }	 |	j        ||         ||         ¦  «         t!          |	j        j        dk    ¦  «        sJ ‚t          j        |	j        j        dk    |	j        j        dk    z  ¦  «        }
t-          |	j        j        |
         d¦  «         dS )a×  Check that we properly handle missing values in clasification trees using a toy
    dataset.

    The test is more involved because we use a case where we detected a regression
    in a random forest. We therefore define the seed and bootstrap indices to detect
    one of the non-frequent regression.

    Here, we check that the impurity is null or positive in the leaves.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/28254
    T)Ú
return_X_yr¿   )r7   r6   )r¦   r  NrK   rJ   )Únr¶  é   rƒ   )prK   éQ   é'   éa   é[   é&   é.   é   ée   rc  éY   éR   rB  r¿   éE   é   rd  é   éI   éJ   é3   é/   ék   é   éK   én   rY   r¶   éh   é9   é   r¶   rw  éO   é#   éM   éZ   rs  ri  rc  é^   rg  é   rJ   é]   r‚  rq  r~  r"  rc  rr  ém   rx  é   rB   r�  ry  ro  é\   é4   rY   rƒ  rJ   rJ   é   ro  r}  r"  r"  r³  rŸ  r   rU   rj  éN   r"  r„  éi   rŒ  r   rq  r"  éf   r‰  rc  rj  r7   rn  rG   é    rw  r  éj   r€  r·   é8   r}  rv  é>   éU   rd  re  éP   rp  é?   rH   r�  éT   r:   r:   éL   rˆ  r  r:   rö   iH¼nrÀ   r   r=   r7   rR   )r   Ú	load_irisrr   r“  r>  rò  rì  r“   rð  r#  rN  r#  r   r�   r   rˆ   rÚ   ró   rx   r\  rq   rv   r   )r^   r_   r%  rD  ÚmaskrŒ  r5  rŸ   r¥   r	   r^  s              r   Ú+test_classification_tree_missing_values_toyr–  v
  s�  € õ Ô¨Ð.Ñ.Ô.�D€A€qå
Œ)×
Ò
 Ñ
#Ô
#€CØ—’‘”€IØ�<Š<Ý
Œ'˜¥b¤hÐ
/Ñ
/Ô
/°1°Q°Q°Q¸¸°V´9¸q±=ð ñ ô ç‚f�T�l„lð 	õ ”f€Iˆd�OÝ-¨i¸ÈÐLÑLÔLÑ€GˆQ�˜õ Œhð ð ð õ ŒXðñ ô €Gõ "Ø &°zðñ ô €Dð €D„HˆW�WÔ˜w wÔ/Ñ0Ô0Ð0ÝˆtŒzÔ" aÒ'Ñ(Ô(Ð(Ð(Ð(å”Ø	ŒÔ	! RÒ	'¨D¬JÔ,EÈÒ,JÑKñô €Jõ �D”JÔ'¨
Ô3°SÑ9Ô9Ð9Ð9Ð9r�   r  )çÚ__doc__rò  r°  r­  rg  rÉ  Ú	itertoolsr   r   rÌ  Únumpyrr   r³   Újoblib.numpy_pickler   Únumpy.testingr   Úsklearnr   r   r	   Úsklearn.dummyr
   Úsklearn.exceptionsr   Úsklearn.imputer   Úsklearn.metricsr   r   r   Úsklearn.model_selectionr   Úsklearn.pipeliner   Úsklearn.random_projectionr   Úsklearn.treer   r   r   r   Úsklearn.tree._classesr   r   r   r   Úsklearn.tree._treer   r   r   r   r   r    r!   ró  Úsklearn.utilsr"   Úsklearn.utils._testingr#   r$   r%   r&   r'   r(   Úsklearn.utils.estimator_checksr)   Úsklearn.utils.fixesr*   r+   r,   r-   Úsklearn.utils.validationr.   r®   ÚREG_CRITERIONSr†   rË   r˜  r5   Ú__annotations__ÚupdateÚSPARSE_TREESr�   r  r  Úy_small_regr^   r_   rŠ   r‹   r”  r`   r“  r>  r%  rí  r°   r[   Úpermr¯   Úload_diabetesra   Úload_digitsrb   rV   Úmake_multilabel_classificationr"  r#  r‡  ÚX_sparse_posr�  Úy_randomrñ  ÚX_sparse_mixrj   r"  r€   r�   r–   ÚmarkÚparametrizerÝ  r¢   r¬   r±   r‡   rµ   r½   rÆ   rÍ   rÑ   rÜ   rì   rñ   rô   rü   r  r  r  r.  r3  r8  r;  r>  r@  r\  rp  rw  r|  r‚  rŠ  r‘  r–  rž  r¡  r¨  r«  r¯  r±  r·  rº  r¾  rÄ  rÏ  rÚ  rÞ  Úsortedr@  Úintersectionrà  râ  rÜ  ré  r]  rþ  r  r  r  r  r  r  r  r$  r+  r<  rH  r  rU  rW  r[  rQ  rZ  rq  rs  rF  rz  r”  r�  r£  r¼  rÍ  rã  rê  rð  rö  rú  r  r  r  r  r  r   r'  r,  r0  r2  r4  r6  r8  r>  r;  rK  rR  ry  rç   rV  rZ  r#  r_  r–  rc  r�   r   ú<module>r¼     sÒ  ððð ð ð €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $à €€€Ø Ð Ð Ð Ø €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø )Ð )Ð )Ð )Ð )Ð )à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø (Ð (Ð (Ð (Ð (Ð (Ø -Ð -Ð -Ð -Ð -Ð -Ø (Ð (Ð (Ð (Ð (Ð (Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø *Ð *Ð *Ð *Ð *Ð *Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 2Ð 1Ð 1Ð 1Ð 1Ð 1Ø /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð KÐ JÐ JÐ JÐ JÐ Jðð ð ð ð ð ð ð ð ð ð ð ð 8Ð 7Ð 7Ð 7Ð 7Ð 7à%€ØO€ð 5Ø.ðð €	ð 3Ø,ðð €	ð
 �$‘&”&€	ˆ4Ð Ð Ñ Ø 	× Ò �Ñ Ô Ð Ø 	× Ò �Ñ Ô Ð ðð ð €ð ˆ"Œ(à5Ð5Ð5Ø6Ð6Ð6Ø<Ð<Ð<Ø9Ð9Ð9Ø4Ð4Ð4Ø:Ð:Ð:Ø@Ð@Ð@Ø>Ð>Ð>Ø>Ð>Ð>Ø@Ð@Ð@Ø7Ð7Ð7Ø4Ð4Ð4Ø5Ð5Ð5Ø4Ð4Ð4Ø5Ð5Ð5Ø?Ð?Ð?Ø@Ð@Ð@ØAÐAÐAØ8Ð8Ð8Ø4Ð4Ð4Ø5Ð5Ð5Ø4Ð4Ð4Ø4Ð4Ð4ð/ñô €ð8 PÐ
OÐ
O€ðð ð €ð6 	ˆ"€X��Bˆx˜"˜b˜ A q 6¨A¨q¨6°A°q°6Ð:€ØÐÐ€Øˆ"€X��1ˆv˜˜1�vÐ€Øˆjˆj€ð €xÔÑÔ€Ø„i×Ò˜AÑÔ€Ø
‡‚�t”{Ô'Ñ(Ô(€ØŒI�dŒO€„	ØŒk˜$Ô€„ð "ˆ8Ô!Ñ#Ô#€Ø
‡‚�x”Ô+Ñ,Ô,€Ø”˜dÔ#€„Ø”/ $Ô'€„à	ˆÔ	Ñ	Ô	€Ø
‡‚�v”}Ô)Ñ*Ô*€ØŒk˜$Ô€„Ø”˜dÔ#€„à!Ð! !Ñ$Ô$€ØD˜XÔDØ˜b¨Rðñ ô Ñ €ˆlð
 ×#Ò#¨Ð#Ñ1Ô1€Ø$'€ˆ\˜SÒ Ñ !Ø×Ò  1¨5ÐÑ1Ô1€Ø$Ð$ R¨°TÈÐJÑJÔJ×RÒRÑTÔT€ð ”) $¤+Ð.Ð.Ø”m¨(¬/Ð:Ð:Ø”K f¤mÐ4Ð4Ø˜ÐÐØ WÐ-Ð-Ø [Ð1Ð1Ø$¨<Ð8Ð8Ø$¨8Ð4Ð4Ø%˜¨HÐ5Ð5Ø$¨8Ð4Ð4Ø�2”8˜GÑ$Ô$¨8Ð4Ð4ðð €ð$ð $ð $ðN	Xð 	Xð 	Xð	Xð 	Xð 	Xð „×Ò˜ ×!1Ò!1Ñ!3Ô!3Ñ4Ô4Ø„×Ò˜ nÑ5Ô5ð,ð ,ñ 6Ô5ñ 5Ô4ð,ð*Fð Fð Fð*
ð 
ð 
ð$ „×Ò˜ y§¢Ñ'8Ô'8Ñ9Ô9Ø„×Ò˜ nÑ5Ô5ðJð Jñ 6Ô5ñ :Ô9ðJð Ø„×Ò˜ y§¢Ñ'8Ô'8Ñ9Ô9Ø„×ÒØ,à	˜"Ð0°"Ð5Ø	˜2Ð1°2Ð6Ø	˜Ð/°Ð4Ø	�BÐ-¨rÐ2ð	ñô ðð ñô ñ :Ô9ñ „ðð
ð 
ð 
ð4ð ð ðWð Wð Wð ð ð ð2Lð Lð Lð>-ð -ð -ðKð Kð Kð<!7ð !7ð !7ðH?+ð ?+ð ?+ðDHð Hð Hð>Fð Fð FðB8
ð 8
ð 8
ð 8
ðv „×Ò˜ Ñ+Ô+ð1ð 1ñ ,Ô+ð1ð „×Ò˜ Ñ.Ô.Ø„×Ò˜¨.Ñ9Ô9ðWð Wñ :Ô9ñ /Ô.ðWð
 &*ð:
ð :
ð :
ð :
ðz „×Ò˜ Ñ+Ô+ðGð Gñ ,Ô+ðGð „×Ò˜ Ñ.Ô.Ø„×Ò˜¨.Ñ9Ô9ðð ñ :Ô9ñ /Ô.ððEð Eð EðP0ð 0ð 0ðf9%ð 9%ð 9%ðx=ð =ð =ð(	Eð 	Eð 	Eð*8ð *8ð *8ðZ1ð 1ð 1ðh3ð 3ð 3ð$ „×Ò˜ Ñ+Ô+ð,Nð ,Nñ ,Ô+ð,Nð^ „×Ò˜ Ñ+Ô+ð	ð 	ñ ,Ô+ð	ð+ð +ð +ð$ð $ð $ðKð Kð Kð$(ð (ð (ð-ð -ð -ð?ð ?ð ?ð"!ð !ð !ðð ð ðð ð ð*&ð &ð &ð &ðR „×Ò˜ lÑ3Ô3Ø„×ÒØð	ñô ð6ð 6ñô ñ 4Ô3ð6ð
 „×Ò˜ f f¨S¨S°Ñ->Ô->×-KÒ-KÈIÑ-VÔ-VÑ&WÔ&WÑXÔXØ„×Ò˜ Z°Ð$=Ñ>Ô>ð.ð .ñ ?Ô>ñ YÔXð.ð „×Ò˜ lÑ3Ô3Ø„×Ò˜Ð$WÐ$WÐ$WÑXÔXØ„×Ò˜¨.Ñ9Ô9ð0:ð 0:ñ :Ô9ñ YÔXñ 4Ô3ð0:ðf „×ÒØØ€DˆˆÐEÐE <ÐEÑEÔEÀ~Ñ	VÔ	VÑWÔWØ
€dØˆÐDÐD ,ÐDÑDÔDÀnÑUÔUñô ññô ð „×Ò˜Ð$WÐ$WÐ$WÑXÔXØ„×Ò˜¨.Ñ9Ô9ð:ð :ñ :Ô9ñ YÔXñô ð:ð" „×Ò˜ lÑ3Ô3Ø„×ÒØ! 3 3 ~°~Ñ#FÔ#Fñô ðHPð HPñô ñ 4Ô3ðHPðV ðð ñ „ðð  „×Ò˜ Ñ+Ô+ð,ð ,ñ ,Ô+ð,ð
 „×Ò˜ Ñ+Ô+Ø„×ÒÐ+¨d¨V°nÑ-DÑEÔEð$ð $ñ FÔEñ ,Ô+ð$ð$ „×Ò˜ Ñ+Ô+ðGð Gñ ,Ô+ðGð „×Ò˜ Ñ.Ô.Ø„×Ò˜¨.Ñ9Ô9ðGð Gñ :Ô9ñ /Ô.ðGð?ð ?ð ?ð „×Ò˜ Ñ+Ô+ð,ð ,ñ ,Ô+ð,ð: „×Ò˜ Ñ+Ô+Ø„×Ò˜¨.Ñ9Ô9ð0ð 0ñ :Ô9ñ ,Ô+ð0ða?ð a?ð a?ðH+ð +ð +ð8 „×ÒÐ+¨d¨V°nÑ-DÑEÔEð ð  ñ FÔEð ð$ „×ÒØˆvˆv�c�c˜(Ÿ-š-™/œ/Ñ*Ô*¨k¸:Ð-FÑFÑGÔGñô ð „×Ò˜Ð&<Ð>QÐ%RÑSÔSðAð Añ TÔSñô ðAð „×Ò˜ H§M¢M¡O¤OÑ4Ô4Ø„×Ò˜Ð&;Ð=OÐ%PÑQÔQðAð Añ RÔQñ 5Ô4ðAð	.ð 	.ð 	.ð:ð :ð :ð%ð %ð %ðP „×Ò˜ Ñ+Ô+Ø„×Ò˜ f¨hÐ%7Ñ8Ô8Ø„×ÒÐ+¨d¨V°nÑ-DÀ~Ñ-UÑVÔVðð ñ WÔVñ 9Ô8ñ ,Ô+ðð4 „×Ò˜Ð&RÐ&RÐ&RÑSÔSØ„×Ò˜ ×!1Ò!1Ñ!3Ô!3Ñ4Ô4ð	>ð 	>ñ 5Ô4ñ TÔSð	>ð „×Ò˜   q¡¤Ñ*Ô*ð&ð &ñ +Ô*ð&ðB'0ð '0ð '0ðT „×Ò˜ nÑ5Ô5ð"8ð "8ñ 6Ô5ð"8ðJ „×Ò˜Ð"8Ð:MÐ!NÑOÔOØ„×Ò˜ q¨! fÑ-Ô-ðGð Gñ .Ô-ñ PÔOðGð,(ð (ð (ð2(ð (ð (ð4?ð ?ð ?ð$?ð ?ð ?ð"Ið Ið Ið-ð -ð -ð,-ð -ð -ð6@ð @ð @ð$
ð 
ð 
ðB1Uð 1Uð 1Uðh „×ÒØ��Ð,�oÔ,Ñ.Ô.Ð0GÐ0@Ô0GÑ0IÔ0IÑJÔJñô ð/ð /ñô ð/ðð ð ð& „×Ò˜ ×!1Ò!1Ñ!3Ô!3Ñ4Ô4ðð ñ 5Ô4ðð* „×Ò˜ ¸Ð&GÑHÔHð5ð 5ñ IÔHð5ð2 „×Ò˜ y°&Ð&9Ñ:Ô:ðAð Añ ;Ô:ðAð „×Ò˜ y°&Ð&9Ñ:Ô:ð*ð *ñ ;Ô:ð*ð „×Ò˜ y°&Ð&9Ñ:Ô:ð*ð *ñ ;Ô:ð*ð  „×Ò˜ y°&Ð&9Ñ:Ô:ð*ð *ñ ;Ô:ð*ð „×ÒÐ+¨d¨V°nÑ-DÑEÔEØ„×ÒØ
àÐ¨Ð1Ñ1Ô1ØÐÐ(8Ð9Ñ9Ô9ðñô ð
ð 
ñô ñ FÔEð
ð!ð !ð !ðð ð ð „×ÒØà	Ô	 Ð"7Ð8Ø	&Ð(>Ð?ðñô ð „×ÒÐ.°°v°Ñ?Ô?ð Yð  Yñ @Ô?ñô ð YðF.ð .ð .ð2 „×ÒØà	Ô	!Ð#8Ð9Ø	Ô	%Ð'=Ð>ðñô ðNð Nñô ðNð,
ð 
ð 
ð „×ÒØð 	ˆŒ�"”&˜!˜RœV Q¨¨1Ð-Ñ.Ô.ØˆŒ�"”&˜"œ& ! Q¨¨1Ð-Ñ.Ô.àˆŒ�!�Q˜˜1˜bœf b¤fÐ-Ñ.Ô.ØˆŒ�!�Q˜˜2œ6 1 b¤fÐ-Ñ.Ô.ðñ
ô 
ð „×Ò˜ ¸Ð&GÑHÔHð:ð :ñ IÔHñ
ô 
ð:ð<,:ð ,:ð ,:ð ,:ð ,:r�   