# -*- coding: utf-8 -*-
"""
Created on Tue Jan  4 13:34:18 2022

@author: Sim
"""
import scipy.stats as st

class VarRatio:
   def __init__(self, var1, n1, var2, n2):
      self.var1=var1; self.n1=n1
      self.var2=var2; self.n2=n2
      self.F0 = var1/var2
      self.df1 = n1 - 1; self.df2 = n2 - 1
      
   def test_var_2samp(self, alternative='two-sided'):
      if alternative == 'greater':
         pval = 1 - st.f.cdf(self.F0, self.df1, self.df2)
      elif alternative == 'less':
         pval = st.f.cdf(self.F0,self.df2, self.df2)
      else:
         pval = st.f.cdf(self.F0,self.df1,self.df2)
         if pval < 0.5:
             pval = pval * 2
         else:
             pval = (1-pval)*2
      return(self.F0, pval)

   def ci_var_2samp(self, level=95):
      lbd = self.F0/st.f.ppf(1-(100-level)/100/2, self.df1, self.df2)
      ubd = self.F0/st.f.ppf((100-level)/100/2, self.df1, self.df2)
      return((lbd,ubd))


