Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Better unit tests #13

Merged
merged 19 commits into from
Jan 6, 2025
17 changes: 17 additions & 0 deletions test/test_01_loading.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
def test_01_loading_test1_csv():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")

def test_01_loading_test1_csv_check_data():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.checkData()

def test_01_loading_test1_csv_column_values():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.columnValues("responseTime")

def test_01_loading_test1_xlxs():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.xlsx", "test1")
25 changes: 25 additions & 0 deletions test/test_02_processing.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
def test_02_processing_test1_csv():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dp = dr.process()

def test_02_processing_test1_csv_print_pivots_rates():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dp = dr.process()
dp.printPivot()
dp.printRates()

def test_02_processing_test1_csv_descriptive_stats():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dp = dr.process()
dp.printDescriptiveStats()

def test_02_processing_test1_csv_response_time():
import pyWitness
drRAC = pyWitness.DataRaw("../data/tutorial/test1.csv")
drRAC.collapseContinuousData(column="responseTime",
bins=[0, 5000, 10000, 15000, 20000, 99999],
labels=[1, 2, 3, 4, 5])
dpRAC = drRAC.process(reverseConfidence=True, dependentVariable="responseTime")
20 changes: 20 additions & 0 deletions test/test_03_plotting.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
def test_03_plotting_test1_csv_plot_roc():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dp = dr.process()
dp.plotROC()

def test_03_plotting_test1_csv_plot_cac():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dp = dr.process()
dp.plotCAC()

def test_03_plotting_test1_csv_plot_rac():
import pyWitness
drRAC = pyWitness.DataRaw("../data/tutorial/test1.csv")
drRAC.collapseContinuousData(column="responseTime",
bins=[0, 5000, 10000, 15000, 20000, 99999],
labels=[1, 2, 3, 4, 5])
dpRAC = drRAC.process(reverseConfidence=True, dependentVariable="responseTime")
dpRAC.plotCAC()
23 changes: 23 additions & 0 deletions test/test_04_collapsing.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
def test_04_collapsing_categorical_data():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseCategoricalData(column='confidence',
map={0: 30, 10: 30, 20: 30, 30: 30, 40: 30, 50: 30, 60: 30,
70: 75, 80: 75,
90: 95, 100: 95})
dp = dr.process()
dp.plotCAC()

def test_04_collapsing_continuous_data():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseContinuousData(column="confidence", bins=[-1, 60, 80, 100], labels=[1, 2, 3])
dp = dr.process()
dp.plotROC()

def test_04_collapsing_continuous_data_pauc():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseContinuousData(column="confidence", bins=[-1, 60, 80, 100], labels=[1, 2, 3])
dp = dr.process()
print(dp.pAUC)
99 changes: 99 additions & 0 deletions test/test_05_fitting.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
def test_05_fitting_test1_csv_indep_obs_eqvar():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseContinuousData(column="confidence", bins=[-1, 60, 80, 100], labels=[1, 2, 3])
dp = dr.process()
mf = pyWitness.ModelFitIndependentObservation(dp)
mf.setEqualVariance()
mf.fit()

def test_05_fitting_test1_csv_indep_obs_uneqvar_print_parameters():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseContinuousData(column="confidence", bins=[-1, 60, 80, 100], labels=[1, 2, 3])
dp = dr.process()
mf = pyWitness.ModelFitIndependentObservation(dp)
mf.printParameters()

def test_05_fitting_test1_csv_best_rest():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseContinuousData(column="confidence")
dp = dr.process()
mf_br = pyWitness.ModelFitBestRest(dp)

def test_05_fitting_test1_csv_ensemble():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseContinuousData(column="confidence")
dp = dr.process()
mf_en = pyWitness.ModelFitEnsemble(dp)

def test_05_fitting_test1_csv_integration():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseContinuousData(column="confidence")
dp = dr.process()
mf_in = pyWitness.ModelFitIntegration(dp)

def test_05_fitting_test1_csv_set_parameters_plot_hit_v_false():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseContinuousData(column="confidence", bins=[-1, 60, 80, 100], labels=[1, 2, 3])
dp = dr.process()
dp.plotHitVsFalseAlarmRate()

def test_05_fitting_test1_csv_set_parameters_print_parameters():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseContinuousData(column="confidence", bins=[-1, 60, 80, 100], labels=[1, 2, 3])
dp = dr.process()
mf = pyWitness.ModelFitIndependentObservation(dp)
mf.printParameters()

def test_05_fitting_test1_csv_set_parameters_set_equal_var():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseContinuousData(column="confidence", bins=[-1, 60, 80, 100], labels=[1, 2, 3])
dp = dr.process()
mf = pyWitness.ModelFitIndependentObservation(dp)
mf.setEqualVariance()
mf.setParameterEstimates()
mf.printParameters()

def test_05_fitting_test1_csv_plot_fit_roc():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseContinuousData(column="confidence", bins=[-1, 60, 80, 100], labels=None)
dp = dr.process()
dp.calculateConfidenceBootstrap(nBootstraps=200)
mf = pyWitness.ModelFitIndependentObservation(dp)
mf.setEqualVariance()
mf.fit()
dp.plotROC(label="Data")
mf.plotROC(label="Indep. obs. fit")

def test_05_fitting_test1_csv_plot_fit():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseContinuousData(column="confidence", bins=[-1, 60, 80, 100], labels=None)
dp = dr.process()
dp.calculateConfidenceBootstrap(nBootstraps=200)
mf = pyWitness.ModelFitIndependentObservation(dp)
mf.setEqualVariance()
mf.fit()
dp.plotROC(label="Data")
mf.plotROC(label="Indep. obs. fit")
mf.plotFit()

def test_05_fitting_test1_csv_plot_fit_cac():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseContinuousData(column="confidence", bins=[-1, 60, 80, 100], labels=None)
dp = dr.process()
dp.calculateConfidenceBootstrap(nBootstraps=200)
mf = pyWitness.ModelFitIndependentObservation(dp)
mf.setEqualVariance()
mf.fit()
dp.plotCAC(label="Data")
mf.plotCAC(label="Indep. obs. fit")
63 changes: 63 additions & 0 deletions test/test_06_adv_stats.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
def test_adv_stats_test1_csv_bootstrap():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseContinuousData(column="confidence", bins=[-1, 60, 80, 100], labels=None)
dp = dr.process()
dp.calculateConfidenceBootstrap(nBootstraps=200, cl=95)
dp.printPivot()
dp.printRates()

def test_adv_stats_test2_csv_processing_two_conditions():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test2.csv")
dr.cutData(column="previouslyViewedVideo", value=1, option="keep")
dpControl = dr.process(column="group", condition="Control")
dpVerbal = dr.process(column="group", condition="Verbal")
minRate = min(dpControl.liberalTargetAbsentSuspectId, dpVerbal.liberalTargetAbsentSuspectId)

def test_adv_stats_test2_csv_compare_two_pauc():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test2.csv")
dr.cutData(column="previouslyViewedVideo", value=1, option="keep")
dpControl = dr.process(column="group", condition="Control")
dpVerbal = dr.process(column="group", condition="Verbal")
minRate = min(dpControl.liberalTargetAbsentSuspectId, dpVerbal.liberalTargetAbsentSuspectId)
dpControl = dr.process("group", "Control", pAUCLiberal=minRate)
dpControl.calculateConfidenceBootstrap(nBootstraps=200)
dpVerbal = dr.process("group", "Verbal", pAUCLiberal=minRate)
dpVerbal.calculateConfidenceBootstrap(nBootstraps=200)
dpControl.comparePAUC(dpVerbal)

def test_adv_stats_test1_csv_generate_sdt_data():
import pyWitness
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseContinuousData(column="confidence", bins=[-1, 60, 80, 100], labels=None)
dp = dr.process()
mf = pyWitness.ModelFitIndependentObservation(dp, debug=True)
mf.setEqualVariance()
mf.fit()
dr1 = mf.generateRawData(nGenParticipants=10000)

# Need to process the synthetic data
dp1 = dr1.process()

# calculate uncertainties using bootstrap
dp.calculateConfidenceBootstrap()
dp1.calculateConfidenceBootstrap()

def test_adv_stats_test1_csv_power_analysis():
import pyWitness
import numpy
dr = pyWitness.DataRaw("../data/tutorial/test1.csv")
dr.collapseContinuousData(column="confidence", bins=[-1, 60, 80, 100], labels=None)
dp = dr.process()
mf = pyWitness.ModelFitIndependentObservation(dp, debug=False)
mf.setEqualVariance()
mf.fit()

for nGen in numpy.linspace(500, 5000, 9 + 1):
drSimulated = mf.generateRawData(nGenParticipants=nGen)
dpSimulated = drSimulated.process()
dpSimulated.calculateConfidenceBootstrap(nBootstraps=2000)
print(nGen, dpSimulated.liberalTargetAbsentSuspectId, dpSimulated.pAUC, dpSimulated.pAUC_low,
dpSimulated.pAUC_high)
5 changes: 0 additions & 5 deletions test/test_test1_tutorial1.py

This file was deleted.

7 changes: 0 additions & 7 deletions test/test_test1_tutorial1_check.py

This file was deleted.

6 changes: 0 additions & 6 deletions test/test_test1_tutorial2.py

This file was deleted.

Loading