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
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
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]
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