+
    i/                    &   ^ RI Ht ^ RIt^ RIHt ^ RIHt ^ RIHt ^RI	H
t
 ^RIHtHtHtHt ^RIHt ]! ]4      P'                  4       P(                  ^,          t]R	,          t]R
,          R,          tR R ltR R lt]R8X  d
   ]! 4        R# R# )    )annotationsN)asdict)date)Path)Config)load_movementsload_participants
load_picksload_results)calculate_penaltiesdatatestsfixturesc                    V ^8  d   QhRRRR/# )   fixturestrreturndict )formats   "{/Users/lancenlachance/Library/Mobile Documents/com~apple~CloudDocs/PortMadness/MarchMadness/prototype/src/portmadness/qa.py__annotate__r      s     F F# F$ F    c           	        \         V ,          p\        P                  ! VP                  R R7      4      p\	        \
        VR,          ,          4      p\        \
        VR,          ,          4      p\        \
        VR,          ,          4      p\        \
        VR,          ,          4      p\        4       pVP                  R4      p\        TTTTVf   RM\        P                  ! V4      R7      p	VP                  4        U
u/ uF  q^ bK  	  pp
V	 F+  pWP                  ;;,          VP                   ,          uu&   K-  	  VP#                  4        U
Uu/ uF  w  rV'       g   K  WbK  	  upp
# u up
i u upp
i )	utf-8encodingparticipants_csv	picks_csvresults_csvmovements_jsonreference_dateN)picksresults	movementsconfigr#   )QA_PATHjsonloads	read_textr	   	DATA_PATHr
   r   r   r   getr   r   fromisoformatkeysparticipant_id
total_repsitems)r   fixture_pathscenarioparticipantsr$   r%   r&   cfgr#   	penaltiespidactual_totalspenaltyrepss   &             r   run_scenarior<      s7   W$Lzz,00'0BCH$Y:L1M%MNLy8K#889E9x'>>?Gy84D+EEFI
(C\\"23N#-5t4;M;Mn;]I 8D7H7H7J$K7J!V7JM$K,,-1C1CC- '4':':'<E'<)#ICI'<EE %L Fs   ?E+E0!E0c                   V ^8  d   QhRR/# )r   r   Noner   )r   s   "r   r   r   *   s     & &d &r   c                     R p \         V ,          p\        P                  ! VP                  RR7      4      p\	        V 4      pVP                  R/ 4      pRVRVRW48H  /p\        \        P                  ! V^R7      4       R# )	zsample_scenario.jsonr   r   expected_totalsexpectedactualmatch)indentN)r(   r)   r*   r+   r<   r-   printdumps)fixture_namer3   r4   totalsrA   diffs         r   mainrJ   *   sv    )L\)Lzz,00'0BCH,'F||-r2HH&#D
 
$**T!
$%r   __main__)
__future__r   r)   dataclassesr   datetimer   pathlibr   r'   r   data_loaderr   r	   r
   r   penalty_enginer   __file__resolveparents	BASE_PATHr,   r(   r<   rJ   __name__r   r   r   <module>rW      su    "      T T /N""$,,Q/		
g


*F2& zF r   