o
    QDi"                     @   s   d dl Z d dlZd dlmZ ejje jdk ddZdd Zdd	 Z	d
d Z
dd Zdd Zdd Zdd Zejje jdkdddd Zdd Zdd Zdd Zdd Zd d! Zd"d# ZdS )$    N)TableResource)   
   zSupported on Python3.10+)reasonc                  C   s   t dd} |  }t| g dksJ t|d dksJ |d dks'J |d d	ks/J |d
 dks7J |d dks?J |d i ksGJ d S )Ndata/analysis-data.csvpath)variableTypesnotNullRowsrowsWithNullValues
fieldStatsaverageRecordSizeInBytes	timeTakenmd5sha256bytesfieldsrowsr   U   r      r   	   r      r
      r	   r   analyzelistkeysroundresourceanalysis r!   e/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/analyzer/__spec__/test_resource.pytest_analyze_resource   s   
r#   c                  C   s   t dd} | jdd}t| g dksJ t|d dks!J |d d	ks)J |d
 dks1J |d dks9J |d dksAJ |d dddddksNJ d S )Nr   r   Tdetailed)r	   r
   r   r   correlationsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r
   r   r	      )booleanintegernumberstringr   r   r!   r!   r"   test_analyze_resource_detailed(   s   
r,   c                  C   s:   t dd} | jdd}t|d d  ddgksJ d S )	Nr   r   Tr$   r   gendertypevaluesr   r   r   r   r   r!   r!   r"   9test_analyze_resource_detailed_non_numeric_values_summaryF      
$r1   c                  C   s:   t dd} | jdd}t|d d  g dksJ d S )Nr   r   Tr$   r   
parent_age)r.   meanmedianmodevariance	quantilesstdevmaxminboundsuniqueValuesoutliersmissingValuesr0   r   r!   r!   r"   Atest_analyze_resource_detailed_numeric_values_descriptive_summrayL   r2   r@   c                  C   sB  t dd} | jdd}|d d d dd	gksJ |d d d
 dks%J |d d d dks1J |d d d dks=J |d d d dksIJ |d d d dksUJ |d d d dksaJ |d d d g dksoJ |d d d dks{J |d d d dksJ |d d d dksJ |d d d g ksJ d S )Nr   r   Tr$   r   r3   r<   '   C   r:   9   r4   gUUUUUUJ@r5   4   r;   0   r?   r   r6   r8   )g     H@g      J@g     @L@r9   g#p!@r=   r   r7   g      '@r>   r   r   r   r!   r!   r"   =test_analyze_resource_detailed_numeric_descriptive_statistics`   s   
rG   c                  C   sL  t dd} | jdd}|d d d dd	gksJ |d d d
 dks%J |d d d dks1J |d d d dks=J |d d d dksIJ |d d d dksUJ |d d d dksaJ |d d d g dksoJ t|d d d dks}J |d d d dksJ t|d d d dksJ |d d d dgksJ d S )Nr   r   Tr$   r   average_gradesr<   Q   `   r:        @r4   gQ}@r5   
ףp=U@r;   g)U@r?   r   r6   (\U@r8   )rM   rL   g)\V@r9   i  r=      r7   i3 r>   r   r   r   r   r!   r!   r"   Ptest_analyze_resource_detailed_numeric_descriptive_statistics_with_missingValuesq   s   
rP   c                  C   sP   t dd} | jdd}|d d d dd	gksJ |d d d
 dgks&J d S )Nr   r   Tr$   r   rH   r<   rI   rJ   r>   rK   rF   r   r!   r!   r"   Ctest_analyze_resource_detailed_descriptive_statistics_with_outliers   s   
rQ   )r      z1Fix for Python3.12+ (possible bug to investigate)c                  C   s  t dd} | jdd}t|d  g dksJ |d d d d	 d
kr1|d d d d dks3J |d d d d	 dkrK|d d d d dksMJ |d d d d	 dkre|d d d d dksgJ |d d d d	 dkr|d d d d dksJ d S )Nr   r   Tr$   r&   )r3   parent_salary
house_arearH   rH   r   	fieldNamer3   corrgq֩w   rS   gt$?r   rT   g_?r   g      ?r0   r   r!   r!   r"   Ktest_analyze_resource_detailed_descriptive_statistics_variables_correlation   s   
 rX   c                  C   sV   t dd} | jdd}t|d d  ddgksJ |d d d d	d
hks)J d S )Nr   r   Tr$   r   r-   r.   r/   MaleFemaler0   r   r!   r!   r"   2test_analyze_resource_detailed_non_numeric_summary   s   
  r[   c                  C   s   ddgddgddgddgddgddgg} t | d}|jdd	}|d
 d d dks+J |d
 d d ddhks9J |d
 d d dksEJ |d
 d d ddhksSJ d S )Nr-   countrymaleusafemaleitalydataTr$   r   r.   categoricalr/   rF   rb   r   r    r!   r!   r"   >test_analyze_resource_detailed_non_numeric_data_identification   s   
 re   c                  C   sH   ddgg} t | d}| }t| g dksJ |d dks"J d S )Nabra   r	   r
   r   r   r   r   r   r   r   r   r0   rd   r!   r!   r"   %test_analyze_resource_with_empty_rows   s
   


ri   c                  C   sL   ddgg} t | d}|jdd}t| g dksJ |d dks$J d S )	Nrf   rg   ra   Tr$   rh   r   r   r0   rd   r!   r!   r"   .test_analyze_resource_detailed_with_empty_rows   s
   


rj   c                  C   s   t dd} |  }t|d dksJ |d dksJ |d i ks#J |d dks+J |d	 d
ks3J |d dks;J |d i ksCJ d S )Ndata/invalid.csvr   r   rR   r      r   r   r   r   r
   rW   r	   rO   r   r!   r!   r"   'test_analyze_resource_with_invalid_data   s   
rm   c                  C   s   t dd} | jdd}t|d dksJ |d dksJ t|d	  g d
ks+J |d dks3J |d dks;J |d dksCJ |d dddksNJ d S )Nrk   r   Tr$   r   rR   r   rl   r   )idnamefield3name2r   r   r   r
   rW   r	   )r)   r+   )r   r   r   r   r   r   r!   r!   r"   0test_analyze_resource_detailed_with_invalid_data   s   
rr   )syspytestfrictionless.resourcesr   markskipifversion_info
pytestmarkr#   r,   r1   r@   rG   rP   rQ   rX   r[   re   ri   rj   rm   rr   r!   r!   r!   r"   <module>   s2    	
