# -*- coding: utf-8 -*-
"""
Created on Thu Nov 11 13:54:03 2021

@author: Sim
"""

def test_var_1samp(vv, nn, value, alternative='two-sided'):
    import scipy.stats as st
    
    df = nn - 1 
    chi0 = (df*vv)/value
   
    if alternative == 'greater':
        pval = 1 - st.chi2.cdf(chi0, df)
    elif alternative == 'less':
        pval = st.chi2.cdf(chi0,df)
    else:
        pval = st.chi2.cdf(chi0,df)
        if pval < 0.5:
            pval = pval * 2
        else:
            pval = (1-pval)*2
    
    return(chi0, pval)

def ci_var_1samp(vv, nn, level=95):
    import scipy.stats as st
    
    df = nn - 1
    lbd = df*vv/st.chi2.ppf(1-(100-level)/100/2,df)
    ubd = df*vv/st.chi2.ppf((100-level)/100/2,df)
    return((lbd,ubd))
    
if __name__ == '__main__':
   chi1 = test_var_1samp(5,50,7,'less')
   print(chi1)

   ci1 = ci_var_1samp(5, 50, 95)
   print(ci1)
    
    
    