ó
    'xáh§  ã                   óR   • S r SSKrSSKJs  Jr  SSKJr  S r	S r
S rS rS rS	 rg)
z#Tests for quber.core.models module.é    N)ÚTableMetadatac                  óä  • [        SS/ SQS9n U R                  nSo!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nS	S
U0-  n[        [        R                  " U5      5      eS=n=p2U R                  nSo!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nS	S
U0-  n[        [        R                  " U5      5      eS=n=p2U R                  n/ SQo!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nS	S
U0-  n[        [        R                  " U5      5      eS=n=p2U R                  nSo!UL o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nS	S
U0-  n[        [        R                  " U5      5      eS=n=p2U R                  nSo!UL o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nS	S
U0-  n[        [        R                  " U5      5      eS=n=p2U R                  nSo!UL o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nS	S
U0-  n[        [        R                  " U5      5      eS=n=p2U R                  nSo!UL o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nS	S
U0-  n[        [        R                  " U5      5      eS=n=p2U R                   nSo!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nS	S
U0-  n[        [        R                  " U5      5      eS=n=p2U R"                  nSo!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nS	S
U0-  n[        [        R                  " U5      5      eS=n=p2U R$                  nSo!UL o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nS	S
U0-  n[        [        R                  " U5      5      eS=n=p2g)z"Test basic TableMetadata creation.r   é   )ÚNameÚAgeÚCity©Útable_indexÚpage_numberÚheaders©ú==©z3%(py2)s
{%(py2)s = %(py0)s.table_index
} == %(py5)sÚmetadata©Úpy0Úpy2Úpy5úassert %(py7)sÚpy7N©z3%(py2)s
{%(py2)s = %(py0)s.page_number
} == %(py5)s©z/%(py2)s
{%(py2)s = %(py0)s.headers
} == %(py5)s)Úis)z;%(py2)s
{%(py2)s = %(py0)s.consolidated_header
} is %(py5)s)z8%(py2)s
{%(py2)s = %(py0)s.descriptive_text
} is %(py5)s)z6%(py2)s
{%(py2)s = %(py0)s.table_markdown
} is %(py5)s)z6%(py2)s
{%(py2)s = %(py0)s.preceding_text
} is %(py5)s©z,%(py2)s
{%(py2)s = %(py0)s.rows
} == %(py5)s©z,%(py2)s
{%(py2)s = %(py0)s.cols
} == %(py5)s)z:%(py2)s
{%(py2)s = %(py0)s.first_cell_content
} is %(py5)s©r   r
   Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationr   r   Úconsolidated_headerÚdescriptive_textÚtable_markdownÚpreceding_textÚrowsÚcolsÚfirst_cell_content©r   Ú@py_assert1Ú@py_assert4Ú@py_assert3Ú@py_format6Ú@py_format8s         Ú0/home/mande/repo/quber/tests/core/test_models.pyÚtest_table_metadata_creationr3      s�  € äØØÚ'ñ€Hð ×ÑÐ$ 1Ð$ 1Ñ$×$×$×$Ò$Ð×$×$×$×$×$Õ$ˆ8×$×$×$Ñ$ˆ8×$×$Õ$Ð×$×$Ó$ 1×$×$×$×$×$×$Ó$Ø×ÑÐ$ 1Ð$ 1Ñ$×$×$×$Ò$Ð×$×$×$×$×$Õ$ˆ8×$×$×$Ñ$ˆ8×$×$Õ$Ð×$×$Ó$ 1×$×$×$×$×$×$Ó$Ø×ÑÐ6Ò6Ð6Ð6Ñ6×6×6×6Ò6Ð×6×6×6×6×6Õ6ˆ8×6×6×6Ñ6ˆ8×6×6Õ6Ð×6×6Ó6Ð6×6×6×6×6×6×6Ó6Ø×'Ñ'Ð/¨4Ð/¨4Ð/×/×/×/Ò/Ð'×/×/×/×/×/Õ/ˆ8×/×/×/Ñ/ˆ8×/×/Õ/Ð'×/×/Ó/¨4×/×/×/×/×/×/Ó/Ø×$Ñ$Ð,¨Ð,¨Ð,×,×,×,Ò,Ð$×,×,×,×,×,Õ,ˆ8×,×,×,Ñ,ˆ8×,×,Õ,Ð$×,×,Ó,¨×,×,×,×,×,×,Ó,Ø×"Ñ"Ð* dÐ* dÐ*×*×*×*Ò*Ð"×*×*×*×*×*Õ*ˆ8×*×*×*Ñ*ˆ8×*×*Õ*Ð"×*×*Ó* d×*×*×*×*×*×*Ó*Ø×"Ñ"Ð* dÐ* dÐ*×*×*×*Ò*Ð"×*×*×*×*×*Õ*ˆ8×*×*×*Ñ*ˆ8×*×*Õ*Ð"×*×*Ó* d×*×*×*×*×*×*Ó*Ø�=‰=Ð˜AÐ˜AÑ×××Òˆ=×××××Õˆ8×××Ñˆ8××Õˆ=××Ó˜A××××××ÓØ�=‰=Ð˜AÐ˜AÑ×××Òˆ=×××××Õˆ8×××Ñˆ8××Õˆ=××Ó˜A××××××ÓØ×&Ñ&Ð.¨$Ð.¨$Ð.×.×.×.Ò.Ð&×.×.×.×.×.Õ.ˆ8×.×.×.Ñ.ˆ8×.×.Õ.Ð&×.×.Ó.¨$×.×.×.×.×.×.Ô.ó    c                  óü  • [        SSSS/SSSSS	SS
S9
n U R                  nSo!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS=n=p2U R                  nSo!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS=n=p2U R                  nSS/o!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS=n=p2U R                  nSo!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS=n=p2U R                  nSo!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS=n=p2U R                  nSo!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS=n=p2U R                  nSo!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS=n=p2U R                   nS	o!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS=n=p2U R"                  nSo!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS=n=p2U R$                  nS
o!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS=n=p2g)z6Test TableMetadata with all optional fields populated.r   é   zColumn AzColumn BzFinancial SummaryzQuarterly results for Q4 2024z/| Column A | Column B |
|----------|----------|zThe following table shows...é
   ÚRevenue)
r
   r   r   r%   r&   r'   r(   r)   r*   r+   r   r   r   r   r   r   Nr   r   )z;%(py2)s
{%(py2)s = %(py0)s.consolidated_header
} == %(py5)s)z8%(py2)s
{%(py2)s = %(py0)s.descriptive_text
} == %(py5)s)z6%(py2)s
{%(py2)s = %(py0)s.table_markdown
} == %(py5)s)z6%(py2)s
{%(py2)s = %(py0)s.preceding_text
} == %(py5)sr   r   )z:%(py2)s
{%(py2)s = %(py0)s.first_cell_content
} == %(py5)sr   r,   s         r2   Ú(test_table_metadata_with_optional_fieldsr9      sº  € äØØØ˜ZÐ(Ø/Ø8ØIØ5ØØØ$ñ€Hð ×ÑÐ$ 1Ð$ 1Ñ$×$×$×$Ò$Ð×$×$×$×$×$Õ$ˆ8×$×$×$Ñ$ˆ8×$×$Õ$Ð×$×$Ó$ 1×$×$×$×$×$×$Ó$Ø×ÑÐ$ 1Ð$ 1Ñ$×$×$×$Ò$Ð×$×$×$×$×$Õ$ˆ8×$×$×$Ñ$ˆ8×$×$Õ$Ð×$×$Ó$ 1×$×$×$×$×$×$Ó$Ø×ÑÐ7 
¨JÐ7Ð7Ð7Ñ7×7×7×7Ò7Ð×7×7×7×7×7Õ7ˆ8×7×7×7Ñ7ˆ8×7×7Õ7Ð×7×7Ó7Ð7×7×7×7×7×7×7Ó7Ø×'Ñ'Ð>Ð+>Ð>Ð+>Ñ>×>×>×>Ò>Ð'×>×>×>×>×>Õ>ˆ8×>×>×>Ñ>ˆ8×>×>Õ>Ð'×>×>Ó>Ð+>×>×>×>×>×>×>Ó>Ø×$Ñ$ÐGÐ(GÐGÐ(GÑG×G×G×GÒGÐ$×G×G×G×G×GÕGˆ8×G×G×GÑGˆ8×G×GÕGÐ$×G×GÓGÐ(G×G×G×G×G×G×GÓGØ×"Ñ"ÐXÐ&XÐXÐ&XÑX×X×X×XÒXÐ"×X×X×X×X×XÕXˆ8×X×X×XÑXˆ8×X×XÕXÐ"×X×XÓXÐ&X×X×X×X×X×X×XÓXØ×"Ñ"ÐDÐ&DÐDÐ&DÑD×D×D×DÒDÐ"×D×D×D×D×DÕDˆ8×D×D×DÑDˆ8×D×DÕDÐ"×D×DÓDÐ&D×D×D×D×D×D×DÓDØ�=‰=Ð˜BÐ˜BÑ×××Òˆ=×××××Õˆ8×××Ñˆ8××Õˆ=××Ó˜B××××××ÓØ�=‰=Ð˜AÐ˜AÑ×××Òˆ=×××××Õˆ8×××Ñˆ8××Õˆ=××Ó˜A××××××ÓØ×&Ñ&Ð3¨)Ð3¨)Ñ3×3×3×3Ò3Ð&×3×3×3×3×3Õ3ˆ8×3×3×3Ñ3ˆ8×3×3Õ3Ð&×3×3Ó3¨)×3×3×3×3×3×3Ô3r4   c                  ób  • [        SS/ S9n U R                  n/ o!U:H  o3(       dº  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      S.-  nSS	U0-  n[        [        R                  " U5      5      eS
=n=p2U R                  n[        U5      nSorU:H  oˆ(       Gd"  [        R                  " SU4SX'45      S[        R
                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  n	SSU	0-  n
[        [        R                  " U
5      5      eS
=n=n=p‡g
)z+Test TableMetadata with empty headers list.r   r   r	   r   r   r   r   r   r   N)zM%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.headers
})
} == %(py8)sÚlen)r   Úpy1Úpy3r   Úpy8zassert %(py10)sÚpy10)r   r   r   r   r   r    r!   r"   r#   r$   r;   )r   r-   r.   r/   r0   r1   Ú@py_assert2Ú@py_assert7Ú@py_assert6Ú@py_format9Ú@py_format11s              r2   Ú!test_table_metadata_empty_headersrE   5   s6  € äØØØñ€Hð ×ÑÐ!˜rÐ!˜rÑ!×!×!×!Ò!Ð×!×!×!×!×!Õ!ˆ8×!×!×!Ñ!ˆ8×!×!Õ!Ð×!×!Ó!˜r×!×!×!×!×!×!Ó!Ø×ÑÐ%Œ3ÐÓ Ð% AÐ% AÑ%×%×%×%Ó%Ð ×%×%×%×%×%Õ%Œ3×%×%×%Ñ%Œ3×%×%×%×%×%Ö%ˆx×%×%×%Ñ%ˆx×%×%Õ%Ð×%×%Ó%Ð ×%×%Ó% A×%×%×%×%×%×%Ö%r4   c                  óÚ  • [        SS/ SQSSS9n U R                  nSo!U:H  o3(       dº  [        R                  " SU4SX45      S	[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS	[        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n[        [        R                  " U5      5      eS=n=p2U R                  nSo!U:H  o3(       dº  [        R                  " SU4SX45      S	[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS	[        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n[        [        R                  " U5      5      eS=n=p2U R                  nSo!U:H  o3(       dº  [        R                  " SU4SX45      S	[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS	[        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n[        [        R                  " U5      5      eS=n=p2U R                  nSo!U:H  o3(       dº  [        R                  " SU4SX45      S	[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS	[        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n[        [        R                  " U5      5      eS=n=p2g)z-Test TableMetadata with large row/col counts.iç  iô  )ÚH1ÚH2ÚH3i'  éd   ©r
   r   r   r)   r*   r   r   r   r   r   r   Nr   r   r   )r   r
   r   r   r   r    r!   r"   r#   r$   r   r)   r*   r,   s         r2   Ú test_table_metadata_large_valuesrL   A   sá  € äØØÚ"ØØñ€Hð ×ÑÐ& 3Ð& 3Ñ&×&×&×&Ò&Ð×&×&×&×&×&Õ&ˆ8×&×&×&Ñ&ˆ8×&×&Õ&Ð×&×&Ó& 3×&×&×&×&×&×&Ó&Ø×ÑÐ& 3Ð& 3Ñ&×&×&×&Ò&Ð×&×&×&×&×&Õ&ˆ8×&×&×&Ñ&ˆ8×&×&Õ&Ð×&×&Ó& 3×&×&×&×&×&×&Ó&Ø�=‰=Ð!˜EÐ!˜EÑ!×!×!×!Ò!ˆ=×!×!×!×!×!Õ!ˆ8×!×!×!Ñ!ˆ8×!×!Õ!ˆ=×!×!Ó!˜E×!×!×!×!×!×!Ó!Ø�=‰=Ð˜CÐ˜CÑ×××Òˆ=×××××Õˆ8×××Ñˆ8××Õˆ=××Ó˜C××××××Ôr4   c                  ó  • [        SSSS/SSS9n [        SSSS/SSS9nX:H  o"(       dÛ  [        R                  " SU4S	X45      S
[        R                  " 5       ;   d  [        R
                  " U 5      (       a  [        R                  " U 5      OS
S[        R                  " 5       ;   d  [        R
                  " U5      (       a  [        R                  " U5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eSng)z'Test TableMetadata equality comparison.r   r   ÚAÚBé   r6   rK   r   )z%(py0)s == %(py2)sÚ	metadata1Ú	metadata2©r   r   úassert %(py4)sÚpy4N©	r   r   r   r   r    r!   r"   r#   r$   ©rQ   rR   r-   Ú@py_format3Ú@py_format5s        r2   Útest_table_metadata_equalityrZ   Q   s­   € äØØØ�c�
ØØñ€Iô ØØØ�c�
ØØñ€Ið Ñ!×!×!×!Ò!ˆ9×!×!×!×!×!Õ!ˆ9×!×!×!Ñ!ˆ9×!×!×!×!×!Ö!˜	×!×!×!Ñ!˜	×!×!×!×!×!×!Ó!r4   c                  ó  • [        SSSS/S9n [        SSSS/S9nX:g  o"(       dÛ  [        R                  " SU4SX45      S[        R                  " 5       ;   d  [        R
                  " U 5      (       a  [        R                  " U 5      OSS	[        R                  " 5       ;   d  [        R
                  " U5      (       a  [        R                  " U5      OS	S
.-  nSSU0-  n[        [        R                  " U5      5      eSng)z4Test TableMetadata inequality with different values.r   r   rN   rO   r	   )ú!=)z%(py0)s != %(py2)srQ   rR   rS   rT   rU   NrV   rW   s        r2   Útest_table_metadata_inequalityr]   f   s¡   € äØØØ�c�
ñ€Iô ØØØ�c�
ñ€Ið Ñ!×!×!×!Ò!ˆ9×!×!×!×!×!Õ!ˆ9×!×!×!Ñ!ˆ9×!×!×!×!×!Ö!˜	×!×!×!Ñ!˜	×!×!×!×!×!×!Ó!r4   )Ú__doc__Úbuiltinsr   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter   Úquber.core.modelsr   r3   r9   rE   rL   rZ   r]   © r4   r2   Ú<module>re      s.   ðÙ )ç  „ Õ +ò/ò(4ò6	&ò ò "ó*"r4   