Ë
    žiÏ	  ã                   óŠ   — d Z ddlZddlmc mZ ddlZddlZej                  j                  dd«       d„ Zedk(  r e«        yy)z,Tests for Story 2.03 (Track B): fast_extracté    Nz/mnt/e/genesis-systemc                  ó&  — ddl m}   | ddi«      }|\  }}d}||v }|s²t        j                  d|fd||f«      t        j                  |«      dt        j                  «       v st        j                  |«      rt        j                  |«      ndd	œz  }t        j                  d
|› «      dz   d|iz  }t        t        j                  |«      «      ‚d x}} | ddi«      }|\  }}t        |t        «      }|sddt        j                  «       v st        j                  t        «      rt        j                  t        «      nddt        j                  «       v st        j                  |«      rt        j                  |«      nddt        j                  «       v st        j                  t        «      rt        j                  t        «      ndt        j                  |«      dœz  }	t        t        j                  |	«      «      ‚d }d}||k(  }
|
s™t        j                  d|
fd||f«      dt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}
} | i «      }|\  }}g }||k(  }
|
s™t        j                  d|
fd||f«      dt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}
}d}||k(  }
|
s™t        j                  d|
fd||f«      dt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      dœz  }dd|iz  }t        t        j                  |«      «      ‚d x}
} | ddi«      }|\  }}d„ |D «       }
t        |
«      }|s®t        j                  d|› «      dz   dt        j                  «       v st        j                  t        «      rt        j                  t        «      ndt        j                  |
«      t        j                  |«      dœz  }	t        t        j                  |	«      «      ‚d x}
}d„ |D «       }
t        |
«      }|s®t        j                  d
|› «      dz   dt        j                  «       v st        j                  t        «      rt        j                  t        «      ndt        j                  |
«      t        j                  |«      dœz  }	t        t        j                  |	«      «      ‚d x}
} | ddi«      }|\  }}d }||v }|s™t        j                  d|fd||f«      t        j                  |«      dt        j                  «       v st        j                  |«      rt        j                  |«      ndd	œz  }dd|iz  }t        t        j                  |«      «      ‚d x}}t        j                  «       }t!        d!«      D ]  } | dd"i«       Œ t        j                  «       |z
  d#z  }|d!z  }d$}||k  }
|
s´t        j                  d%|
fd&||f«      d't        j                  «       v st        j                  |«      rt        j                  |«      nd't        j                  |«      dœz  }t        j                  d(|d)›d*«      dz   d|iz  }t        t        j                  |«      «      ‚d x}
}d+} | d|i«      \  }}t#        |«      }d,}||k  }|st        j                  d-|fd.||f«      d/t        j                  «       v st        j                  t"        «      rt        j                  t"        «      nd/dt        j                  «       v st        j                  |«      rt        j                  |«      ndt        j                  |«      t        j                  |«      d0œz  }t        j                  d1t#        |«      › d2«      d3z   d4|iz  }t        t        j                  |«      «      ‚d x}x}} | dd5i«      }|\  }}t%        d6„ |D «       «      }d7}||k  }
|
s³t        j                  d-|
fd8||f«      d9t        j                  «       v st        j                  |«      rt        j                  |«      nd9t        j                  |«      dœz  }t        j                  d:|› d;«      dz   d|iz  }t        t        j                  |«      «      ‚d x}
}t'        d<«       y )=Nr   )Úfast_extractÚpromptz+Fix the bug in core/memory/jit_hydration.pyzcore/memory/jit_hydration.py)Úin)z%(py1)s in %(py3)sÚentities)Úpy1Úpy3zExpected file path, got z
>assert %(py5)sÚpy5zHello worldz5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}Ú
isinstanceÚlist)Úpy0r   Úpy2Úpy4)ú==)z%(py0)s == %(py3)sÚintent)r   r	   zassert %(py5)sÚ zMConnect to redis and update core/schema/redis_schema.py, class RedisKeySchemac              3   ó@   K  — | ]  }d |j                  «       v –— Œ y­w)ÚredisN©Úlower©Ú.0Úes     ú6/mnt/e/genesis-system/tests/track_b/test_story_2_03.pyú	<genexpr>z$test_fast_extract.<locals>.<genexpr>!   s   è ø€ Ò6¨ˆw˜!Ÿ'™'›)Ô#Ñ6ùs   ‚zExpected redis, got z.
>assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}Úany)r   r   r   c              3   ó$   K  — | ]  }d |v –— Œ
 y­w)zredis_schema.pyN© r   s     r   r   z$test_fast_extract.<locals>.<genexpr>"   s   è ø€ Ò8¨!Ð  AÔ%Ñ8ùs   ‚z2Check session 9c42d3ce-e05a-4e34-8083-c91081917637z$9c42d3ce-e05a-4e34-8083-c91081917637éd   zFBuild the tradie scraper engine for core/scraper.py with redis cachingiè  é   )Ú<)z%(py0)s < %(py3)sÚavg_mszAverage time z.2fzms exceeds 5ms limitÁô  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxéÈ   )ú<=)z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} <= %(py6)sÚlen)r   r   r	   Úpy6zIntent length z exceeds 200z
>assert %(py8)sÚpy8z'Connect redis to redis via Redis clientc              3   óH   K  — | ]  }|j                  «       d k(  sŒd–— Œ y­w)r   é   Nr   r   s     r   r   z$test_fast_extract.<locals>.<genexpr>=   s   è ø€ ÒB˜A¨Q¯W©W«Y¸'Ó-A”aÑBùs   ‚"›"r*   )z%(py0)s <= %(py3)sÚredis_countzExpected dedup, got z redis entriesu)   ALL TESTS PASSED â€” Story 2.03 (Track B))Úcore.memory.fast_extractr   Ú
@pytest_arÚ_call_reprcompareÚ	_safereprÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ_format_assertmsgÚAssertionErrorÚ_format_explanationr   r   r   ÚtimeÚ	monotonicÚranger&   ÚsumÚprint)r   Úresultr   r   Ú@py_assert0Ú@py_assert2Ú@py_format4Ú@py_format6Ú@py_assert3Ú@py_format5Ú@py_assert1Ú_ÚstartÚ
elapsed_msr"   Úlong_promptÚ@py_assert5Ú@py_assert4Ú@py_format7Ú@py_format9r+   s                        r   Útest_fast_extractrK      sü  € Ý5ñ ˜8Ð%RÐSÓT€FØÑ€HˆfØ)Ð\Ð)¨XÐ5×\×\Õ\Ð)¨X×\×\Ó\Ð)×\×\×\×\×\Ð\¨X×\×\Ó\¨X×\×\×\Ñ\Ð9QÐRZÐQ[Ð7\×\×\×\×\×\Ö\ñ ˜8 ]Ð3Ó4€FØÑ€HˆfÜh¤Ó%Ð%Ò%×%×%×%×%Õ%Œ:×%×%Ó%Œ:×%×%×%×%×%Ò%h×%×%Ó%h×%×%×%×%×%Ò%¤×%×%Ó%¤×%×%Ô%Ð%×%×%×%×%×%Ð%Ø"Ð"ˆ6]Ñ"×"×"Õ"ˆ6]×"×"×"×"×"Ñ"ˆ6×"×"Ó"ˆ6×"×"Ô"]×"×"×"×"×"×"Ñ"ñ ˜"Ó€FØÑ€HˆfØÐˆ8r‰>××Õˆ8r×××××Ñˆ8××Óˆ8××Ôr××××××ÑØÐˆ6R‰<××Õˆ6R×××××Ñˆ6××Óˆ6××ÔR××××××Ññ ØÐaðó €Fð Ñ€HˆfÙ6¨XÔ6ÐYŒ3Ð6Ó6ÐYÑ6×YÖYÐ:NÈxÈjÐ8Y×Y×Y×Y×Y×YÓYŒ3×Y×YÓYŒ3×Y×YÔYÐ6×Y×YÒYÐ6×Y×Y×Y×Y×YÒYÙ8¨xÔ8Ð_Œ3Ð8Ó8Ð_Ñ8×_Ö_Ð<TÐU]ÐT^Ð:_×_×_×_×_×_Ó_Œ3×_×_Ó_Œ3×_×_Ô_Ð8×_×_Ò_Ð8×_×_×_×_×_Ò_ñ ØÐFðó €Fð K€HˆaØ1Ð=Ð1°XÐ=×=×=Õ=Ð1°X×=×=Ó=Ð1×=×=×=×=×=Ð=°X×=×=Ó=°X×=×=×=×=×=×=Ó=ô N‰NÓ€EÜ3‹Zò kˆÙhÐ hÐiÕjðkä—.‘.Ó" UÑ*¨dÑ2€JØ˜#Ñ€FØÐGˆ6A‰:×G×GÕGˆ6A×G×G×G×G×GÑGˆ6×G×GÓGˆ6×G×GÔGA×G×G×G˜ v¨c lÐ2FÐG×G×G×G×G×GÖGð €KÙ˜h¨Ð4Ó5I€A€vÜˆv‹;ÐI˜#ÐIˆ;˜#Ñ×I×IÖIˆ;˜#×I×I×I×I×IÑIŒ3×I×IÓIŒ3×I×I×I×I×IÒIˆv×I×IÓIˆv×I×IÔIˆ;×I×IÒI˜#×I×I×I ´°F³¨}¸LÐI×I×I×I×I×I×IÐIñ ØÐ;ðó €Fð K€HˆaÜÑB ÔBÓB€KØÐOˆ;˜!Ñ×O×OÕOˆ;˜!×O×O×O×O×OÑOˆ;×O×OÓOˆ;×O×OÔO˜!×O×O×OÐ3°K°=ÀÐO×O×O×O×O×OÖOä	Ð
5Õ6ó    Ú__main__)Ú__doc__Úbuiltinsr0   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter-   r6   ÚsysÚpathÚinsertrK   Ú__name__r   rL   r   ú<module>rW      s@   ðá 2ß  „ ƒÛ 
Ø ‡‡Ð*Ô +ò87ðv ˆzÒÙÕð rL   