def test_psydat_filename_collision_output2(self): # create conditions conditions = [] for trialType in range(5): conditions.append({'trialType': trialType}) # create trials trials = data.TrialHandler2(trialList=conditions, seed=100, nReps=3, method='fullRandom', autoLog=False) # simulate trials for thisTrial in trials: resp = 'resp' + str(thisTrial['trialType']) randResp = random( ) # a unique number so we can see which track orders trials.addData('resp', resp) trials.addData('rand', randResp) # test wide data outputs trials.saveAsWideText(pjoin(self.temp_dir, 'testFullRandom.csv'), delim=',', appendFile=False) # not currently testing this as column order won't match # (and we've removed the columns "ran" and "order") utils.compareTextFiles(pjoin(self.temp_dir, 'testFullRandom.csv'), pjoin(fixturesPath, 'corrFullRandomTH2.csv'))
def test_psydat_filename_collision_output(self): #create conditions conditions = [] for trialType in range(5): conditions.append({'trialType': trialType}) #create trials trials = data.TrialHandler(trialList=conditions, seed=100, nReps=3, method='fullRandom') #simulate trials for thisTrial in trials: resp = 'resp' + str(thisTrial['trialType']) randResp = random( ) #a unique number so we can see which track orders trials.addData('resp', resp) trials.addData('rand', randResp) #test summarised data outputs trials.saveAsText(pjoin(self.temp_dir, 'testFullRandom.dlm'), stimOut=['trialType'], appendFile=False) #this omits values utils.compareTextFiles(pjoin(self.temp_dir, 'testFullRandom.dlm'), pjoin(fixturesPath, 'corrFullRandom.dlm')) #test wide data outputs trials.saveAsWideText(pjoin(self.temp_dir, 'testFullRandom.csv'), delim=',', appendFile=False) #this omits values utils.compareTextFiles(pjoin(self.temp_dir, 'testFullRandom.csv'), pjoin(fixturesPath, 'corrFullRandom.csv'))
def test_random_data_output(self): #create conditions conditions = [] for trialType in range(5): conditions.append({'trialType': trialType}) #create trials trials = data.TrialHandler(trialList=conditions, seed=100, nReps=3, method='random') #simulate trials for thisTrial in trials: resp = 'resp' + str(thisTrial['trialType']) trials.addData('resp', resp) trials.addData('rand', random()) #test summarised data outputs trials.saveAsText(pjoin(self.temp_dir, 'testRandom.dlm'), stimOut=['trialType'], appendFile=False) #this omits values utils.compareTextFiles(pjoin(self.temp_dir, 'testRandom.dlm'), pjoin(fixturesPath, 'corrRandom.dlm')) #test wide data outputs trials.saveAsWideText(pjoin(self.temp_dir, 'testRandom.csv'), delim=',', appendFile=False) #this omits values utils.compareTextFiles(pjoin(self.temp_dir, 'testRandom.csv'), pjoin(fixturesPath, 'corrRandom.csv'))
def test_random_data_output2(self): # create conditions conditions = [] for trialType in range(5): conditions.append({'trialType': trialType}) trials = data.TrialHandler2(trialList=conditions, seed=self.random_seed, nReps=3, method='random', autoLog=False) #simulate trials rng = np.random.RandomState(seed=self.random_seed) for thisTrial in trials: resp = 'resp' + str(thisTrial['trialType']) randResp = rng.rand() trials.addData('resp', resp) trials.addData('rand', randResp) # test wide data outputs trials.saveAsWideText(pjoin(self.temp_dir, 'testRandom.csv'), delim=',', appendFile=False) utils.compareTextFiles(pjoin(self.temp_dir, 'testRandom.csv'), pjoin(fixturesPath, 'corrRandomTH2.csv'))
def test_psydat_filename_collision_output(self): # create conditions conditions=[] for trialType in range(5): conditions.append({'trialType':trialType}) trials= data.TrialHandlerExt(trialList=conditions, seed=self.random_seed, nReps=3, method='fullRandom', autoLog=False) # simulate trials rng = np.random.RandomState(seed=self.random_seed) for thisTrial in trials: resp = 'resp'+str(thisTrial['trialType']) randResp = rng.rand() trials.addData('resp', resp) trials.addData('rand', randResp) # test summarised data outputs #this omits values trials.saveAsText(pjoin(self.temp_dir, 'testFullRandom.tsv'), stimOut=['trialType'] ,appendFile=False) utils.compareTextFiles(pjoin(self.temp_dir, 'testFullRandom.tsv'), pjoin(fixturesPath,'corrFullRandom.tsv')) # test wide data outputs #this omits values trials.saveAsWideText(pjoin(self.temp_dir, 'testFullRandom.csv'), delim=',', appendFile=False) utils.compareTextFiles(pjoin(self.temp_dir, 'testFullRandom.csv'), pjoin(fixturesPath,'corrFullRandom.csv'))
def test_random_data_output(self): # create conditions conditions=[] for trialType in range(5): conditions.append({'trialType':trialType}) trials= data.TrialHandlerExt(trialList=conditions, seed=100, nReps=3, method='random', autoLog=False) # simulate trials rng = np.random.RandomState(seed=self.random_seed) for thisTrial in trials: resp = 'resp'+str(thisTrial['trialType']) randResp = rng.rand() trials.addData('resp', resp) trials.addData('rand', randResp) # test summarised data outputs # this omits values trials.saveAsText(pjoin(self.temp_dir, 'testRandom.tsv'), stimOut=['trialType'], appendFile=False) utils.compareTextFiles(pjoin(self.temp_dir, 'testRandom.tsv'), pjoin(fixturesPath,'corrRandom.tsv')) # test wide data outputs trials.saveAsWideText(pjoin(self.temp_dir, 'testRandom.csv'), delim=',', appendFile=False) # this omits values utils.compareTextFiles(pjoin(self.temp_dir, 'testRandom.csv'), pjoin(fixturesPath,'corrRandom.csv'))
def test_multiKeyResponses(self): dat = fromFile(os.path.join(fixturesPath,'multiKeypressTrialhandler.psydat')) #test csv output dat.saveAsText(pjoin(self.temp_dir, 'testMultiKeyTrials.csv'), appendFile=False) utils.compareTextFiles(pjoin(self.temp_dir, 'testMultiKeyTrials.csv'), pjoin(fixturesPath,'corrMultiKeyTrials.csv')) #test xlsx output dat.saveAsExcel(pjoin(self.temp_dir, 'testMultiKeyTrials.xlsx'), appendFile=False) utils.compareXlsxFiles(pjoin(self.temp_dir, 'testMultiKeyTrials.xlsx'), pjoin(fixturesPath,'corrMultiKeyTrials.xlsx'))
def test_multiKeyResponses(self): pytest.skip() # temporarily; this test passed locally but not under travis, maybe PsychoPy version of the .psyexp?? dat = fromFile(os.path.join(fixturesPath,'multiKeypressTrialhandler.psydat')) #test csv output dat.saveAsText(pjoin(self.temp_dir, 'testMultiKeyTrials.csv'), appendFile=False) utils.compareTextFiles(pjoin(self.temp_dir, 'testMultiKeyTrials.csv'), pjoin(fixturesPath,'corrMultiKeyTrials.csv')) #test xlsx output dat.saveAsExcel(pjoin(self.temp_dir, 'testMultiKeyTrials.xlsx'), appendFile=False) utils.compareXlsxFiles(pjoin(self.temp_dir, 'testMultiKeyTrials.xlsx'), pjoin(fixturesPath,'corrMultiKeyTrials.xlsx'))
def test_multiKeyResponses(self): pytest.skip() # temporarily; this test passed locally but not under travis, maybe PsychoPy version of the .psyexp?? dat = fromFile(os.path.join(fixturesPath,'multiKeypressTrialhandler.psydat')) #test csv output dat.saveAsText(pjoin(self.temp_dir, 'testMultiKeyTrials.csv'), appendFile=False) utils.compareTextFiles(pjoin(self.temp_dir, 'testMultiKeyTrials.csv'), pjoin(fixturesPath,'corrMultiKeyTrials.csv')) #test xlsx output dat.saveAsExcel(pjoin(self.temp_dir, 'testMultiKeyTrials.xlsx'), appendFile=False) utils.compareXlsxFiles(pjoin(self.temp_dir, 'testMultiKeyTrials.xlsx'), pjoin(fixturesPath,'corrMultiKeyTrials.xlsx'))
def test_multiKeyResponses(self): dat = misc.fromFile( os.path.join(fixturesPath, 'multiKeypressTrialhandler.psydat')) #test csv output dat.saveAsText(pjoin(self.temp_dir, 'testMultiKeyTrials.csv'), appendFile=False) utils.compareTextFiles(pjoin(self.temp_dir, 'testMultiKeyTrials.csv'), pjoin(fixturesPath, 'corrMultiKeyTrials.csv')) #test xlsx output dat.saveAsExcel(pjoin(self.temp_dir, 'testMultiKeyTrials.xlsx'), appendFile=False) utils.compareXlsxFiles(pjoin(self.temp_dir, 'testMultiKeyTrials.xlsx'), pjoin(fixturesPath, 'corrMultiKeyTrials.xlsx'))
def test_random_data_output2(self): #create conditions conditions=[] for trialType in range(5): conditions.append({'trialType':trialType}) #create trials trials= data.TrialHandler2(trialList=conditions, seed=100, nReps=3, method='random', autoLog=False) #simulate trials for thisTrial in trials: resp = 'resp'+str(thisTrial['trialType']) trials.addData('resp', resp) trials.addData('rand',random()) #test wide data outputs trials.saveAsWideText(pjoin(self.temp_dir, 'testRandom.csv'), delim=',', appendFile=False) # not currently testing this as column order won't match (and we've removed the columns "ran" and "order") utils.compareTextFiles(pjoin(self.temp_dir, 'testRandom.csv'), pjoin(fixturesPath,'corrRandomTH2.csv'))
def test_all_components(self): """Test all component code outputs, except for Settings and Unknown""" for compName in self.allComp: if compName not in ['SettingsComponent', 'UnknownComponent']: # reset exp self.reset_experiment() # Add components self.add_components(compName) # Create output script self.create_component_output(compName) # Get correct script path correctPath = os.path.join(TESTS_DATA_PATH, "correctScript", "python", 'correct{}.py'.format(compName)) # Compare files, raising assertions on fails above tolerance (%) try: compareTextFiles('new{}.py'.format(compName), correctPath, tolerance=3) except IOError as err: compareTextFiles('new{}.py'.format(compName), correctPath, tolerance=3)
def test_psydat_filename_collision_output(self): #create conditions conditions=[] for trialType in range(5): conditions.append({'trialType':trialType}) #create trials trials= data.TrialHandler(trialList=conditions, seed=100, nReps=3, method='fullRandom') #simulate trials for thisTrial in trials: resp = 'resp'+str(thisTrial['trialType']) randResp=random()#a unique number so we can see which track orders trials.addData('resp', resp) trials.addData('rand',randResp) #test summarised data outputs trials.saveAsText(pjoin(self.temp_dir, 'testFullRandom.dlm'), stimOut=['trialType'],appendFile=False)#this omits values utils.compareTextFiles(pjoin(self.temp_dir, 'testFullRandom.dlm'), pjoin(thisPath,'corrFullRandom.dlm')) #test wide data outputs trials.saveAsWideText(pjoin(self.temp_dir, 'testFullRandom.csv'), delim=',', appendFile=False)#this omits values utils.compareTextFiles(pjoin(self.temp_dir, 'testFullRandom.csv'), pjoin(thisPath,'corrFullRandom.csv'))
def test_psydat_filename_collision_output2(self): # create conditions conditions=[] for trialType in range(5): conditions.append({'trialType':trialType}) trials = data.TrialHandler2(trialList=conditions, seed=self.random_seed, nReps=3, method='fullRandom', autoLog=False) # simulate trials rng = np.random.RandomState(seed=self.random_seed) for thisTrial in trials: resp = 'resp' + str(thisTrial['trialType']) randResp = rng.rand() trials.addData('resp', resp) trials.addData('rand', randResp) # test wide data outputs trials.saveAsWideText(pjoin(self.temp_dir, 'testFullRandom.csv'), delim=',', appendFile=False) utils.compareTextFiles(pjoin(self.temp_dir, 'testFullRandom.csv'), pjoin(fixturesPath,'corrFullRandomTH2.csv'))
def test_all_components(self): """Test all component code outputs, except for Settings and Unknown""" for compName in self.allComp: if compName not in ['SettingsComponent', 'UnknownComponent']: # reset exp self.reset_experiment() # Add components self.add_components(compName) # Create output script self.create_component_output(compName) # Get correct script path correctPath = os.path.join(TESTS_DATA_PATH, "correctScript", "python", 'correct{}.py'.format(compName)) # Compare files, raising assertions on fails above tolerance (%) try: compareTextFiles('new{}.py'.format(compName), correctPath, tolerance=5) except IOError as err: compareTextFiles('new{}.py'.format(compName), correctPath, tolerance=5)