11 |
# A jython test program for papers |
# A jython test program for papers |
12 |
# Load using gldemo.py |
# Load using gldemo.py |
13 |
|
|
14 |
seed = 5225 # shuffling |
seed_learn = 653 # shuffling in learning phase |
15 |
seed0 = 1435 # "old" textures |
seed_test = 234 # shuffling in online test phase |
16 |
seed1 = 54134 # "new" textures |
seed_old = 423 # "old" textures |
17 |
|
seed_new = 773 # "new" textures |
18 |
|
|
19 |
numtex0 = 30 # Number of different "old" textures |
numtex_old = 30 # Number of different "old" textures |
20 |
numtex1 = 100 # Number of different "new" textures |
numtex_new = 100 # Number of different "new" textures |
21 |
|
|
22 |
showtex0 = 100 |
showtex_old = 100 |
23 |
|
|
24 |
feedbackduration = 3000 |
feedbackduration = 3000 |
25 |
|
|
39 |
return len(hash) < len(list) |
return len(hash) < len(list) |
40 |
|
|
41 |
|
|
42 |
rng = java.util.Random(seed) |
rng_learn = java.util.Random(seed_learn) |
43 |
rng0 = java.util.Random(seed0) |
rng_test = java.util.Random(seed_test) |
44 |
rng1 = java.util.Random(seed1) |
rng_old = java.util.Random(seed_old) |
45 |
|
rng_new = java.util.Random(seed_new) |
46 |
|
|
47 |
while 1: |
while 1: |
48 |
tex0 = [ rng0.nextInt(2000000000) for i in range(0,numtex0) ] |
tex_old = [ rng_old.nextInt(2000000000) for i in range(0,numtex_old) ] |
49 |
if dupes(tex0): continue |
if dupes(tex_old): continue |
50 |
break |
break |
51 |
|
|
52 |
while 1: |
while 1: |
53 |
tex1 = [ rng1.nextInt(2000000000) for i in range(0,numtex1) ] |
tex_new = [ rng_new.nextInt(2000000000) for i in range(0,numtex_new) ] |
54 |
if dupes(tex0 + tex1): continue |
if dupes(tex_old + tex_new): continue |
55 |
break |
break |
56 |
|
|
57 |
|
|
58 |
log("textures0 seed: " + str(seed0)) |
log("old textures seed: " + str(seed_old)) |
59 |
log("textures0: " + js(tex0)) |
log("old textures: " + js(tex_old)) |
60 |
|
|
61 |
log("textures1 seed: " + str(seed1)) |
log("new textures seed: " + str(seed_new)) |
62 |
log("textures1: " + js(tex1)) |
log("new textures: " + js(tex_new)) |
63 |
|
|
64 |
log("shuffling seed: " + str(seed)) |
log("learning phase shuffling seed: " + str(seed_learn)) |
65 |
|
log("online testing shuffling seed: " + str(seed_test)) |
66 |
|
|
67 |
|
|
68 |
execfile("gfx/demo/zipf.py") |
execfile("gfx/demo/zipf.py") |
69 |
|
|
70 |
|
|
71 |
probs = getZipfDistribution(numtex0) |
probs = getZipfDistribution(numtex_old) |
72 |
|
|
73 |
learninglist = ( |
learninglist = ( |
74 |
reduce(lambda x,y: x+y, |
reduce(lambda x,y: x+y, |
75 |
[ [ tex0[i] for foo in range(0, int(round(probs[i] * numtex1))) ] |
[ [ tex_old[i] for foo in range(0, int(round(probs[i] * numtex_new))) ] |
76 |
for i in range(0,numtex0)] ) |
for i in range(0,numtex_old)] ) |
77 |
) |
) |
78 |
learninglist = learninglist[0:showtex0] |
learninglist = learninglist[0:showtex_old] |
79 |
|
|
80 |
onlinelist = ( |
onlinelist = ( |
81 |
reduce(lambda x,y: x+y, |
reduce(lambda x,y: x+y, |
82 |
[ [ tex0[i] for foo in range(0, int(round(probs[i] * numtex1))) ] |
[ [ tex_old[i] for foo in range(0, int(round(probs[i] * numtex_new))) ] |
83 |
for i in range(0,numtex0)] ) |
for i in range(0,numtex_old)] ) |
84 |
+ tex1 |
+ tex_new |
85 |
) |
) |
86 |
|
|
87 |
words = {} |
words = {} |
88 |
for i in range(0, len(tex0)): |
for i in range(0, len(tex_old)): |
89 |
words[tex0[i]] = str(i) |
words[tex_old[i]] = str(i) |
90 |
|
|
91 |
for seed in tex1: words[seed] = "-" |
for seed in tex_new: words[seed] = "-" |
92 |
|
|
93 |
seen = {} |
seen = {} |
94 |
for seed in tex0 + tex1: seen[seed] = None |
for seed in tex_old + tex_new: seen[seed] = None |
95 |
for seed in learninglist: seen[seed] = "learning phase" |
for seed in learninglist: seen[seed] = "learning phase" |
96 |
|
|
97 |
|
|
145 |
self.toid = None |
self.toid = None |
146 |
|
|
147 |
self.list = learninglist |
self.list = learninglist |
148 |
shuffle(self.list, rng.nextFloat) |
shuffle(self.list, rng_learn.nextFloat) |
149 |
|
|
150 |
def prepareNextTrial(self): |
def prepareNextTrial(self): |
151 |
if self.trial < len(self.list): |
if self.trial < len(self.list): |
152 |
self.seed = self.list[self.trial] |
self.seed = self.list[self.trial] |
153 |
self.pq = getpaper(self.seed) |
self.pq = getpaper(self.seed) |
|
else: |
|
|
self.seed = None |
|
|
|
|
154 |
|
|
155 |
def nextTrial(self): |
def nextTrial(self): |
156 |
global currentScene |
global currentScene |
157 |
if self.seed != None: |
if self.trial < len(self.list): |
158 |
if self.seed != self.list[self.trial]: |
if self.seed != self.list[self.trial]: |
159 |
self.prepareNextTrial() |
self.prepareNextTrial() |
160 |
|
|
199 |
cs1 = vs.coords.affineCoordsys(0, 5, 570, 450, 1, 0, 0, 1) |
cs1 = vs.coords.affineCoordsys(0, 5, 570, 450, 1, 0, 0, 1) |
200 |
vs.matcher.add(cs1, "msg") |
vs.matcher.add(cs1, "msg") |
201 |
putText(vs, cs1, words[self.seed], color=(0,0,0),w=4,h=4) |
putText(vs, cs1, words[self.seed], color=(0,0,0),w=4,h=4) |
202 |
|
|
203 |
return vs |
return vs |
204 |
|
|
205 |
|
|
219 |
} |
} |
220 |
|
|
221 |
self.list = onlinelist |
self.list = onlinelist |
222 |
shuffle(self.list, rng.nextFloat) |
shuffle(self.list, rng_test.nextFloat) |
223 |
|
|
224 |
def prepareNextTrial(self): |
def prepareNextTrial(self): |
225 |
if self.trial < len(self.list): |
if self.trial < len(self.list): |
226 |
self.seed = self.list[self.trial] |
self.seed = self.list[self.trial] |
227 |
if self.seed in tex0: |
if self.seed in tex_old: |
228 |
#if seen[self.seed] != None: |
#if seen[self.seed] != None: |
229 |
self.correct = "old" |
self.correct = "old" |
230 |
else: |
else: |
315 |
msg = "Oikein" |
msg = "Oikein" |
316 |
else: |
else: |
317 |
msg = "V\xe4\xe4rin" |
msg = "V\xe4\xe4rin" |
318 |
if self.seed in tex0: |
if self.seed in tex_old: |
319 |
msg2 = "Oli n\xe4hty" |
msg2 = "Oli n\xe4hty" |
320 |
else: |
else: |
321 |
msg2 = "Ei ollut n\xe4hty" |
msg2 = "Ei ollut n\xe4hty" |