Ë
    ©ø¨j  ã                   óÐ   — d dl Z d dlZd dlmZ d dlZ ee«      j                  «       j                  d   Z	e	dz  Z
 G d„ dej                  «      Zedk(  r ej                  «        yy)é    N)ÚPathé   Údihedral_gnnc                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚFixedGraphContractsc                 óØ  — t        j                  t        dz  d¬«      5 }| j                  t	        |d   «      d«       | j                  t        |d   «      «       | j                  |d   j                  d«       | j                  |d	   j                  d«       | j                  |d
   j                  d«       | j                  |d   j                  d«       d d d «       y # 1 sw Y   y xY w)Nz2outputs/prepared_graph_5925_direct_predictions.npzF©Úallow_pickleÚ
node_counté%  Údirect_model_evaluationÚdihedral_risk_probability)r   r   Ú normal_baseline_risk_probabilityÚdihedral_magnitude_mmÚnormal_baseline_magnitude_mm)ÚnpÚloadÚEXPÚassertEqualÚintÚ
assertTrueÚboolÚshape©ÚselfÚas     õS   /Users/bsk/Downloads/á„†á…©á†¯á„�á…¦á†¨á„‰á…³/dihedral_gnn/tests/test_validation.pyÚ0test_direct_outputs_use_only_prepared_5925_graphzDFixedGraphContracts.test_direct_outputs_use_only_prepared_5925_graph   s^  € Ü	‡w�wŒsÐGÑGÐUZÕ[Ð_`Ø×Ñ”C˜˜,™Ó(¨Ô.¨t¯©¼tÀAÐF_ÑD`Ó?aÔ/bÐcg×csÑcsÐtuð  wRñ  uS÷  uYñ  uYð  Zbô  dcð  dh÷  dtñ  dtð  uvð  wYñ  uZ÷  u`ñ  u`ð  aiô  djð  ko÷  k{ñ  k{ð  |}ð  ~Uñ  |V÷  |\ñ  |\ð  ]eô  kfð  gk÷  gwñ  gwð  xyð  zXñ  xY÷  x_ñ  x_ð  `hô  gi÷ \×[Ñ[ús   ŸB8C Ã C)c                 ó   — t        j                  t        dz  j                  «       «      }| j	                  |d   d«       | j                  d|d   «       | j                  d|d   «       | j                  dt        j                  |«      «       y )	Nz%input_processed/feature_contract.jsonÚactual_node_countr   zsame GNNÚnormal_baselineznew CADÚchanged_cadÚgraph_12000)ÚjsonÚloadsr   Ú	read_textr   ÚassertInÚassertNotInÚdumps©r   Úxs     r   Ú<test_contract_has_same_graph_ablation_and_changed_cad_limitszPFixedGraphContracts.test_contract_has_same_graph_ablation_and_changed_cad_limits   sè   € Ü‡J�J”Ð;Ñ;×FÑFÓHÓI€!È$×JZÑJZÐ[\Ð]pÑ[qÐrvÔJwÐx|÷  yFñ  yFð  GQð  RSð  Teñ  Rfô  ygð  hl÷  huñ  huð  vð  @Að  BOñ  @Pô  hQð  RV÷  Rbñ  Rbð  cpô  qu÷  q{ñ  q{ð  |}ó  q~õ  Ró    c                 óä  — t        j                  t        dz  j                  «       «      }| j	                  t        |d   «      d«       | j	                  t        |d   «      d«       | j	                  t        |d   «      d«       | j	                  t        |d   d   d   d   d	   «      d
«       | j	                  t        |d   d   «      d«       | j	                  t        |d   d   «      d«       y )Nzoutputs/viewer_data.jsonÚnodesr   Úmodelsr   Úincident_face_geometryr   ÚrunsÚheater_top_cé   Únode_featureÚcad_signed_curvature_validéý  Úcad_shape_index_valid)r$   r%   r   r&   r   ÚlenÚsumr*   s     r   Ú7test_viewer_data_has_two_models_and_exact_face_geometryzKFixedGraphContracts.test_viewer_data_has_two_models_and_exact_face_geometry   s‡  € Ü‡J�J”Ð.Ñ.×9Ñ9Ó;Ó<€!¸T×=MÑ=MÌcÐRSÐT[ÑR\ËoÐ^bÔ=cÐdh×dtÑdtÔuxÐyzð  |Dñ  zEó  vFð  GHô  eIð  JN÷  JZñ  JZô  [^ð  _`ð  ayñ  _zó  [{ð  |@ô  JAð  BF÷  BRñ  BRô  SVð  WXð  Yañ  Wbð  cdñ  Weð  flñ  Wmð  noñ  Wpð  qñ  W@ó  SAð  BDô  BEØ×Ñ”3�q˜Ñ(Ð)EÑFÓGÈÔMÈd×N^ÑN^Ô_bÐcdÐesÑctð  vMñ  dNó  `Oð  PTõ  OUr-   c                 ó8  — t        j                  t        dz  d¬«      5 }| j                  |d   j                  d«       | j                  d|d   «       | j                  t        |d   d d …d	f   j                  «       «      d
«       d d d «       y # 1 sw Y   y xY w)Nz'input_processed/prepared_graph_5925.npzFr	   r+   )r   é   Úcad_mean_H_signed_1_per_mmÚfeature_namesÚfeature_validé   r7   )r   r   r   r   r   r'   r   r:   r   s     r   Ú3test_augmented_processed_input_has_signed_curvaturezGFixedGraphContracts.test_augmented_processed_input_has_signed_curvature   sð   € Ü	‡w�wŒsÐ<Ñ<È%ÕPÐTUÐVZ×VfÑVfÐghÐilÑgm×gsÑgsÐt}ÔV~ð  @D÷  @Mñ  @Mð  Njð  klð  m|ñ  k}ô  @~ð  C÷  Oñ  Oô  PSð  TUð  Veñ  Tfò  ghð  ikð  gkñ  Tl÷  Tpñ  Tpó  Tró  Psð  txô  y×P×PÑPús   ŸA(BÂBc                 óž   — t         dz  j                  «       }| j                  d|«       | j                  d|«       | j                  d|«       y )Nzoutputs/viewer.htmlzNormal vs dihedralÚmodelSelectz11,956)r   r&   r'   r(   )r   Úhs     r   Ú4test_viewer_has_comparison_and_changed_graph_wordingzHFixedGraphContracts.test_viewer_has_comparison_and_changed_graph_wording   s\   € ÜÐ	Ñ×)Ñ)Ó+€!¨D¯M©MÐ:NÈqÔ,QÐRV×R_ÑR_Ð`mÐnoÔRpÐqu÷  rBñ  rBð  CKð  LMõ  rNr-   N)Ú__name__Ú
__module__Ú__qualname__r   r,   r;   rB   rF   © r-   r   r   r      s    „ òiòòUòyóNr-   r   Ú__main__)r$   ÚunittestÚpathlibr   Únumpyr   Ú__file__ÚresolveÚparentsÚROOTr   ÚTestCaser   rG   ÚmainrJ   r-   r   Ú<module>rU      sb   ðÛ Û Ý Û á	ˆ(ƒ^×ÑÓ×%Ñ% aÑ(€¨T°.Ñ-@¨ôN˜(×+Ñ+ô Nð ˆZÒ˜˜Ÿ™�Ðr-   