Ë
    I»j*
  ã                   óD   — d Z ddlmZmZ ddlmZ ddlmZ  G d„ d«      Zy)z)Multi-language coding challenge AI judge.é    )ÚCodingJudgeRequestÚCodingJudgeResponse)Ú	JobStatus)Úgenerate_jsonc                   ó   — e Zd Zdedefd„Zy)ÚCodingServiceÚpayloadÚreturnc              ƒ   óž  ‡K  — d}d‰j                   › d‰j                  › d‰j                  › d‰j                  › d‰j                  › �
}dt
        fˆfd„}t        |||¬	«      ƒ d {  –—† \  }}}t        ‰j                  ‰j                  t        j                  |d
|› �t        |j                  d«      xs d«      t        |j                  d«      xs d«      |j                  d«      |j                  d«      |j                  d«      |j                  d«      |j                  d«      t        |j                  d«      xs g «      ¬«      S 7 Œä­w)Nz¦Judge coding submissions. Return JSON: {"total_score","max_total_score":100,"passed","correctness","code_quality","efficiency","feedback_markdown","failing_tests":[]}zLang: z

Problem: z
Code:
z
Tests: z	
Rubric: r
   c            	      ó   •‡— ‰j                   j                  «       Št        ˆfd„dD «       «      } | rdnd}d‰v st        ‰«      dkD  rdnd}d	}t	        |d
z  |dz  z   |dz  z   d«      }|d|dk\  |||d‰j
                  › d�|dk\  rg dœS dgdœS )Nc              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­w)N© )Ú.0ÚkÚcodes     €ú-/var/www/html/TJ-AI/tj/app/services/coding.pyÚ	<genexpr>z5CodingService.judge.<locals>.local.<locals>.<genexpr>   s   øè ø€ Ð^Ñ/]¨!˜A œIÑ/]ùs   ƒ)zdef Úfunctionzclass r
   z=>g      è?gffffffÖ?ÚtestéP   gffffffæ?gš™™™™™á?gÍÌÌÌÌÌä?é2   é   é   é   g      Y@é<   zJudged as `z<` submission. Strengthen edge cases and clarity of approach.Úedge_case_empty_input)Útotal_scoreÚmax_total_scoreÚpassedÚcorrectnessÚcode_qualityÚ
efficiencyÚfeedback_markdownÚfailing_tests)Úcandidate_codeÚlowerÚanyÚlenÚroundÚlanguage)Ú	has_logicr    Úqualityr"   Útotalr   r	   s        @€r   Úlocalz"CodingService.judge.<locals>.local   sË   ù€ Ø×)Ñ)×/Ñ/Ó1ˆDÜÓ^Ñ/]Ó^Ó^ˆIÙ"+™$°ˆKØ# t™^¬s°4«y¸2ª~‘cÀ4ˆGØˆJÜ˜;¨Ñ+°¸"±Ñ=ÀÈbÁÑQÐSTÓUˆEà$Ø#(Ø 2™+Ø*Ø 'Ø(à! '×"2Ñ"2Ð!3ð 4Eð Eð (3°cÒ'9 ñð ð AXÐ?Xñð ó    )ÚsystemÚuserÚlocal_factoryzCoding judged via r   r   r   éd   r   r    r!   r"   r#   r$   )Úcorrelation_idÚchallenge_idÚstatusÚstubÚmessager   r   r   r    r!   r"   r#   r$   )r*   Úproblem_statementr%   Ú
test_casesÚrubricÚdictr   r   r4   r5   r   Ú	SUCCEEDEDÚfloatÚgetÚlist)Úselfr	   r0   r1   r.   Údatar7   Úproviders    `      r   ÚjudgezCodingService.judge	   sO  øè ø€ ðZð 	ð �W×%Ñ%Ð& k°'×2KÑ2KÐ1Lð MØ×,Ñ,Ð-¨Y°w×7IÑ7IÐ6Jð KØ—~‘~Ð&ð(ð 	ð	”tõ 	ô* &3Ø °Eô&
÷  
Ñˆˆd�Hô #Ø"×1Ñ1Ø ×-Ñ-Ü×&Ñ&ØØ(¨¨
Ð3Ü˜dŸh™h }Ó5Ò:¸Ó;Ü! $§(¡(Ð+<Ó"=Ò"DÀÓEØ—8‘8˜HÓ%ØŸ™ Ó/ØŸ™ .Ó1Ø—x‘x Ó-Ø"Ÿh™hÐ':Ó;Ü˜tŸx™x¨Ó8Ò>¸BÓ?ô
ð 	
ð 
ús   ƒA#EÁ&EÁ'C%EN)Ú__name__Ú
__module__Ú__qualname__r   r   rD   r   r/   r   r   r      s   „ ð2
Ð#5ð 2
Ð:Mô 2
r/   r   N)	Ú__doc__Úapp.schemas.codingr   r   Úapp.schemas.commonr   Úapp.services.ai_generater   r   r   r/   r   Ú<module>rL      s   ðÙ /ç FÝ (Ý 2÷3
ò 3
r/   