def main():
    exp = Experiment.from_yaml_file(sys.argv[1])
    exp.set_run_callback(run_trial)
    exp.set_context_manager('participant', participant_context)
    exp.set_context_manager('block', block_context)
    exp.save()
    return 0
def main():
    experiment = Experiment.from_yaml_file(sys.argv[1])
    experiment.set_context_manager('participant', setup_participant)
    if 'block' in experiment.levels:
        experiment.set_context_manager('block', setup_block)
    experiment.set_run_callback(run_trial)
    experiment.save()
    return 0
Example #3
0
def test_doc_yaml():
    experiment = Experiment.from_yaml_file('tests/doctest.yml')
    assert len(experiment) == 40
    participant = experiment[1]
    assert len(participant) == 2
    first_session, second_session = participant
    assert len(first_session[1]) == len(second_session[1]) == 4
    first_experimental_section = first_session[2]
    second_experimental_section = second_session[2]
    assert len(first_experimental_section) == 60
    assert first_experimental_section[1].level == 'trial'
    assert first_experimental_section[1].is_bottom_level
    assert len(second_experimental_section) == 2
    assert second_experimental_section[1].level == 'block'
    assert len(second_experimental_section[1]) == len(second_experimental_section[2]) == 30
Example #4
0
def test_experiment_from_yaml_file():
    experiment = Experiment.from_yaml_file('tests/test.yml')
    yield check_equality, experiment.filename, 'test.dat'
    yield check_equality, experiment.experiment_data, {'data': [1, 2, 3, 4, 5]}
    yield check_equality, len(experiment), 2*2*3
    participant = experiment.subsection(participant=1)
    yield check_equality, participant.level, 'participant'
    yield check_equality, len(participant), 3
    yield check_equality, participant[1].data['design'], 'practice'
    yield check_equality, participant[2].data['design'], participant[3].data['design'], 'test'
    practice_session = participant[1]
    test_session = participant[2]
    yield check_equality, practice_session.level, test_session.level, 'session'
    yield check_equality, len(practice_session), 1
    yield check_equality, len(test_session), 2
    test_block = test_session[1]
    yield check_equality, len(test_block), 2*2 + 2*3
    yield check_in, (trial.data['difficulty'] for trial in test_block[:4]), [1, 3]
    yield check_in, (trial.data['difficulty'] for trial in test_block[5:]), [5, 7]
Example #5
0
def test_demo_parent_has_started():
    experiment = Experiment.from_yaml_file('tests/test.yml')
    experiment.run_section(experiment[1][2], demo=True)
    assert not experiment.has_started