예제 #1
0
def test_extract_sart_blocks_with_4_practice_and_survey():
    df = get_csv_as_df('experiment', '104')
    blocks = compile_data.extract_sart_blocks(df, with_survey=True)
    # basic structure
    assert len(blocks) == 8
    for b in blocks:
        assert isinstance(b, compile_data.pd.DataFrame)

    # number of trials
    assert len(blocks[0].index.values) == 84
    assert len(blocks[1].index.values) == 84
    assert len(blocks[2].index.values) == 84
    assert len(blocks[3].index.values) == 84
    assert len(blocks[4].index.values) == 84
    assert len(blocks[5].index.values) == 84
    assert len(blocks[6].index.values) == 84
    assert len(blocks[7].index.values) == 74

    # trial structure
    trial_type_mc = 'survey-multi-choice'
    trial_type_msmr = 'multi-stim-multi-response'

    b7 = blocks[7]
    b7_last_idx = b7.last_valid_index()
    b7_first_idx = b7.first_valid_index()
    assert b7.ix[b7_first_idx]['trial_type'] == trial_type_msmr
    assert b7.ix[b7_last_idx-1]['trial_type'] == trial_type_mc
    assert b7.ix[b7_last_idx]['trial_type'] == trial_type_mc
예제 #2
0
def test_summarize_sart_chunk():
    pid = "011"
    df = get_csv_as_df('experiment', pid)
    blocks = compile_data.extract_sart_blocks(df, with_survey=True)

    # first block
    b1 = blocks[0]
    b1s = compile_data.summarize_sart_chunk(b1)
    assert b1s['anticipated'] == 0.0
    assert b1s['accuracy'] == 0.731707317
    assert b1s['effort'] == 4
    assert b1s['discomfort'] == 5
    assert b1s['ratings_time_min'] == 26.783333333

    assert b1s['num_trials'] == 82

    assert b1s['nogo_prev4_avg'] == 381.444444444
    assert b1s['nogo_next4_avg'] == 391.875

    # last block
    lb = blocks[-1]
    lbs = compile_data.summarize_sart_chunk(lb)
    assert lbs['num_trials'] == 68
    assert lbs['anticipated'] == 0.014705882
    assert lbs['accuracy'] == 0.911764706
    assert lbs['effort'] == 3
    assert lbs['discomfort'] == 5
    assert lbs['ratings_time_min'] == 37.7
예제 #3
0
def test_extract_sart_blocks_with_2_practice():
    # NOTE: tests out get_csv_as_dataframe() from compile_data
    csv_path = _csv_path('practice', '003')
    df = compile_data.get_csv_as_dataframe(csv_path)
    blocks = compile_data.extract_sart_blocks(df)
    assert len(blocks) == 2
    for b in blocks:
        assert isinstance(b, compile_data.pd.DataFrame)
    # number of trials
    assert len(blocks[0].index.values) == 5
    assert len(blocks[1].index.values) == 15
예제 #4
0
def test_extract_sart_blocks_with_4_practice():
    df = get_csv_as_df('practice', 'fail1')
    blocks = compile_data.extract_sart_blocks(df)
    assert len(blocks) == 4

    # number of trials
    assert len(blocks[0].index.values) == 29
    assert len(blocks[1].index.values) == 72
    assert len(blocks[2].index.values) == 72
    assert len(blocks[3].index.values) == 72

    for b in blocks:
        # class
        assert isinstance(b, compile_data.pd.DataFrame)

        # trials
        for idx, series in b.iterrows():
            series['trial_type'] == 'multi-stim-multi-response'
예제 #5
0
def get_sart_trial_block(pid, block_index=0):
    df = get_csv_as_df('experiment', pid)
    blocks = compile_data.extract_sart_blocks(df, with_survey=True)
    b = blocks[block_index]
    trial_block = b.loc[b['trial_type'] == 'multi-stim-multi-response']
    return trial_block