
    6Sf                     F   d Z ddlZddlmc mZ ddlZddlm	Z	m
Z
mZmZmZ ddlmZ  ej        dd          Zed         Zed         Zed	         Zed
         Zed         Zed         Ze                    dd          Zed         Zd Zd Zd Zd Zd Zd Z d Z!d Z"dS )z5
Created on Sat May 11 18:04:09 2024

@author: atdou
    N)Quadratic_RegressionPolynomial_RegressionCategorical_Linear_Regression Categorical_Quadratic_Regression!Categorical_Polynomial_Regression)create_regress_datazTest_Dataframes.xlsx)
sheet_namedfdf_quaddf_poly
df_cat_lindf_cat_quaddf_cat_polyy   axisc            	         t          ddg          } |                     t          t                     | j        t
                              dd          k    }|j        } |            }|j        } |            }d}||k    }|st          j	        d|fd	||f          d
t          j                    v st          j        |          rt          j        |          nd
t          j        |          t          j        |          t          j        |          t          j        |          t          j        |          dz  }dd|iz  }	t          t          j        |	                    dx}x}x}x}x}}dS )zy
    Description
    -----------
    testing that QR is adding proper columns headings and values to excel dataframe
    n1n2quad_columnsr   r   r   T==zs%(py8)s
{%(py8)s = %(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.all
}()
}.all
}()
} == %(py11)sTruth_Table_1py0py2py4py6py8py11assert %(py13)spy13N)r   fitXr   X_trainr   dropall
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation)
QRr   @py_assert1@py_assert3@py_assert5@py_assert7@py_assert10@py_assert9@py_format12@py_format14s
             aC:\Users\atdou\OneDrive\Desktop\Files\Coding\Python\Programs\XtraMLTools\tests\test_Regression.pytest_QR_fitr=      s    
D$<	8	8	8BFF1QKKKZ7<<!<#<#<<M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,    c                  
   t          ddgd          } |                     t          t                     | j        t
                              dd          k    }|                                                                dk     d	S )
zy
    Description
    -----------
    testing that PR is adding proper columns headings and values to excel dataframe
    r   r      poly_columnsdegreer   r   r   TN)r   r&   r'   r   r(   r   r)   r*   )PRTruth_Table_2s     r<   test_PR_fitrF   %   sp     
T4L	C	C	CBFF1QKKKZ7<<!<#<#<<M%%%%r>   c            	         t          ddgddgdgg          } |                     t          t                     | j        t
                              dd	          k    }|j        } |            }|j        } |            }d
}||k    }|st          j	        d|fd||f          dt          j                    v st          j        |          rt          j        |          ndt          j        |          t          j        |          t          j        |          t          j        |          t          j        |          dz  }dd|iz  }	t          t          j        |	                    dx}x}x}x}x}}dS )zz
    Description
    -----------
    testing that CLR is adding proper columns headings and values to excel dataframe
    r   r   c1bc1cc2b)expandhuesr   r   r   Tr   r   Truth_Table_3r   r$   r%   N)r   r&   r'   r   r(   r   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   )
CLRrM   r4   r5   r6   r7   r8   r9   r:   r;   s
             r<   test_CLR_fitrO   0   s    (d|E5>TYSZB[
\
\
\CGGAaLLL[JOOCaO$@$@@M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,r>   c            	         t          dgddgddgdgg          } |                     t          t                     | j        t
                              dd	          k    }|j        } |            }|j        } |            }d
}||k    }|st          j	        d|fd||f          dt          j                    v st          j        |          rt          j        |          ndt          j        |          t          j        |          t          j        |          t          j        |          t          j        |          dz  }dd|iz  }	t          t          j        |	                    dx}x}x}x}x}}dS )zz
    Description
    -----------
    testing that CQR is adding proper columns headings and values to excel dataframe
    r   r   rH   rI   rJ   )r   rK   rL   r   r   r   Tr   r   Truth_Table_4r   r$   r%   N)r   r&   r'   r   r(   r   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   )
CQRrQ   r4   r5   r6   r7   r8   r9   r:   r;   s
             r<   test_CQR_fitrS   ;   s    +d|\ach[ikpjqZr
s
s
sCGGAaLLL[K$4$4Sq$4$A$AAM,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,r>   c            	         t          ddgddgdggd          } |                     t          t                     | j        t
                              dd	          k    }|j        } |            }|j        } |            }d
}||k    }|st          j	        d|fd||f          dt          j                    v st          j        |          rt          j        |          ndt          j        |          t          j        |          t          j        |          t          j        |          t          j        |          dz  }dd|iz  }	t          t          j        |	                    dx}x}x}x}x}}dS )z
    Description
    -----------
    testing that CPR is adding proper columns headings and values to excel dataframe
    r   r   rH   rI   rJ   r   )rK   rL   rC   r   r   Tr   r   Truth_Table_5r   r$   r%   N)r   r&   r'   r   r(   r   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   )
CPR_1rV   r4   r5   r6   r7   r8   r9   r:   r;   s
             r<   test_CPR_fit_1rX   F   s    .dD\%QVY^X_H`ijkkkE	IIaNNN]jooco&B&BBM,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,r>   c            	         t          dgddgddgdggd          } |                     t          t                     | j        t
                              dd	
          k    }|j        } |            }|j        } |            }d}||k    }|st          j	        d|fd||f          dt          j                    v st          j        |          rt          j        |          ndt          j        |          t          j        |          t          j        |          t          j        |          t          j        |          dz  }dd|iz  }	t          t          j        |	                    dx}x}x}x}x}}dS )rU   r   r   rH   rI   rJ      )rB   rK   rL   rC   r   r   r   Tr   r   Truth_Table_6r   r$   r%   N)r   r&   r'   r   r(   r   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   )
CPR_2r[   r4   r5   r6   r7   r8   r9   r:   r;   s
             r<   test_CPR_fit_2r]   Q   s    .D64QU,_dfk^lnsmt]u~  A  A  AE	IIaNNN]k&6&6s&6&C&CCM,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,r>   c                     d } t                      }|                    ddddd           |                    | ddd           |                    d	d
           |j        }|j        }t          g d          }|                    ||           |j        }d}t          |d         dz
            |k     }t          |d         dz
            |k     }t          |d         dz
            |k     }	t          |d         dz             |k     }
g }|}|r
|}|r|	}|	r|
}|sdddt          j                    v st          j        |          rt          j        |          ndiz  }|                    |           |rdddt          j                    v st          j        |          rt          j        |          ndiz  }|                    |           |rdddt          j                    v st          j        |	          rt          j        |	          ndiz  }|                    |           |	rYdd d!t          j                    v st          j        |
          rt          j        |
          nd!iz  }|                    |           t          j        |d          i z  }d"d#|iz  }t#          t          j        |                    d$x}}d$S )%z
    Description
    -----------
    testing that Quadratic_Regression guy is finding the correct regression coefficients, on 
    data with no outliers and no deviations from the fit, f.
    c                 l    d| d         dz  z  d| d         z  z   d| d         dz  z  z   d| d         z  z
  S )N
   r   rZ         r       xs    r<   <lambda>z!test_quad_coefs.<locals>.<lambda>e   =    "adQY,1Q4'!AaD!G)3a!f< r>   rZ     r   r@   x_minx_maxNn_outdimfuncdevmin_ymax_yIQRmetricfactorx_0x_1x_2r   h㈵>x_0*x_0r`   r{   ra   zx_1*x_1rb   r}   rc   %(py2)sr   cond_1%(py4)sr    cond_2%(py6)sr!   cond_3%(py8)sr"   cond_4assert %(py11)sr#   N)r   set_Xset_yclassify_outliersr'   r   r   r&   coef_absr-   r.   r+   r/   r0   append_format_boolopr1   r2   )fdata_expr'   r   r3   coefstolr   r   r   r   r4   @py_assert0@py_format3@py_format5@py_format7@py_format9@py_format10r:   s                      r<   test_quad_coefsr   ^   s6    	=<A"$$HNN11!N<<<NNqN333eA666
A
A	+@+@+@	A	A	ABFF1QKKKHE
Cy!"$%%+Fua  3&Fy!!#$$s*Fua  3&F44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444r>   c                     d } t                      }|                    ddddd           |                    | ddd           |                    d	d
           |j        }|j        }t          g dd          }|                    ||           |j        }d}t          |d         dz
            |k     }t          |d         dz
            |k     }t          |d         dz
            |k     }	t          |d         dz             |k     }
g }|}|r
|}|r|	}|	r|
}|sdddt          j                    v st          j        |          rt          j        |          ndiz  }|                    |           |rdddt          j                    v st          j        |          rt          j        |          ndiz  }|                    |           |rdddt          j                    v st          j        |	          rt          j        |	          ndiz  }|                    |           |	rYdd d!t          j                    v st          j        |
          rt          j        |
          nd!iz  }|                    |           t          j        |d          i z  }d"d#|iz  }t#          t          j        |                    d$x}}d$S )%z
    Description
    -----------
    testing that Polynomial_Regression guy is finding the correct regression coefficients, on 
    data with no outliers and no deviations from the fit, f.
    c                 l    d| d         dz  z  d| d         z  z   d| d         dz  z  z   d| d         z  z
  S )	Nr`   r   rZ   ra   rb   r   r@   rc   rd   re   s    r<   rg   z!test_poly_coefs.<locals>.<lambda>~   rh   r>   ri   rZ   rj   r   r@   rk   rq   rv   rw   rz   rA   r~   r   r`   r{   ra   zx_1*x_1*x_1rb   r}   rc   r   r   r   r   r    r   r   r!   r   r   r"   r   r   r#   N)r   r   r   r   r'   r   r   r&   r   r   r-   r.   r+   r/   r0   r   r   r1   r2   )r   r   r'   r   rD   r   r   r   r   r   r   r4   r   r   r   r   r   r   r:   s                      r<   test_poly_coefsr   w   s8    	=<A"$$HNN11!N<<<NNqN333eA666
A
A	,A,A,A!	L	L	LBFF1QKKKHE
Cy!"$%%+Fua  3&F}%a'((3.Fua  3&F44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444r>   )#__doc__builtinsr-   _pytest.assertion.rewrite	assertionrewriter+   pandasXtraMLTools.Regressionr   r   r   r   r   auxiliary_classesr   
read_excel	dataframer
   r   r   r   r   r   r)   r'   r   r=   rF   rO   rS   rX   r]   r   r   rd   r>   r<   <module>r      s                i i i i i i i i i i i i i i 1 1 1 1 1 1 F44HHH	t_
I

I
|$
&&GGCaGsG	- 	- 	-	& 	& 	&	- 	- 	-	- 	- 	-	- 	- 	-	- 	- 	-5 5 525 5 5 5 5r>   