1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# This is a reference example file that demonstrates all
# features of pyflies language
# base abstract test
# Used to specify timings for each test in the
# experiment
test base {
tmin 3000
tmax 5000
twait 3000
}
# test definition for simple visual
# this test is non-abstract (defines visual simple test type)
# but will not be used directly in experiment definition.
# It will be used as a base for all visual simple tests
# in this experiment.
test mytest:visual_simple {
shape square
size large
color white
}
# Inheritance.
# This test definition is non-abstract.
# It inherits definition from base and mytest
# therefore it does not need to specify test type or
# timing settings.
test mytest_3 < base, mytest {
trials 3
}
# This test is same as previous but defines
# a 30 trials to run.
test mytest_30< base, mytest {
trials 30
}
# Experiment consist of a sequence of blocks
# (tests, introductions, sequences and randomize).
experiment {
# subject block will collect data about
# the subject under experiment.
# A user will be presented with the GUI form to
# fill it. Experimenter may fill this on behalf of the subject.
# The form of the each subject line is:
# Variable_name, type, optional label
# Type can be: str, int, float or enumerated list
subject {
full_name string "First and last name"
age int
gender [Male, Female] "Gender"
}
# This is here just to show that test may be
# put under experiment directly.
# If the tests run in sequence (without randomization)
# this is an easiest way to define it.
test mytest_3
randomize {
# Following two sequences will
# be randomized.
# Sequence block will be performed in
# the order of definition.
sequence {
# This is an introduction to the following test.
# Introduction is text between ======== separators.
# Separator consist of at least 3 '=' characters.
================
Welcome
-------
In the following test you will be presented with a blank screen
where a white square will appear after a few seconds.
You should react by pressing the space bar as fast as you can when
the square appears.
This is a practice test with 3 trials.
Afterwards the real test will run with 30 trials.
Press space bar
================
# This test will run in practice mode.
# This mode tells experiment runner
# not to collect any sample data.
test mytest_3 practice
================
Real test with 30 trials
------------------------
Press space bar
================
# This is the real test run. Samples will be collected.
Test mytest_30
}
# This is here just to show that randomize block should contain
# more than 1 block. Those block runs will be randomized.
sequence {
test mytest_3 practice
=======
This is heading
---------------
This is just to show another introduction screen.
=======
test mytest_30
}
}
}