exner 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.autotest +23 -0
- data/.gemtest +0 -0
- data/History.txt +4 -0
- data/Manifest.txt +42 -0
- data/README.txt +49 -0
- data/Rakefile +19 -0
- data/bin/rorschach +4 -0
- data/bin/zulliger +4 -0
- data/data/.~lock.sumario_Zulliger.rtf# +1 -0
- data/data/Rorschach_Zest.txt +50 -0
- data/data/Zulliger_Zest.txt +50 -0
- data/data/sumario.rtf +240 -0
- data/data/sumario2.rtf +271 -0
- data/data/sumario_Rorschach.rtf +233 -0
- data/data/sumario_Zulliger.rtf +203 -0
- data/data/test_manchas.txt +16 -0
- data/data/zulli_test.txt +11 -0
- data/lib/exner/respuesta.rb +110 -0
- data/lib/exner/rorschach.rb +11 -0
- data/lib/exner/rorschach_plugins/cdi.rb +22 -0
- data/lib/exner/rorschach_plugins/depi.rb +38 -0
- data/lib/exner/rorschach_plugins/hvi.rb +25 -0
- data/lib/exner/rorschach_plugins/interpretacion.rb +438 -0
- data/lib/exner/rorschach_plugins/obs.rb +36 -0
- data/lib/exner/rorschach_plugins/scon.rb +44 -0
- data/lib/exner/rorschach_plugins/sczi.rb +25 -0
- data/lib/exner/rtf/rorschach.rb +69 -0
- data/lib/exner/rtf/zulliger.rb +59 -0
- data/lib/exner/rtf.rb +46 -0
- data/lib/exner/test_manchas.rb +445 -0
- data/lib/exner/zulliger.rb +26 -0
- data/lib/exner/zulliger_plugins/interpretacion.rb +328 -0
- data/lib/exner.rb +44 -0
- data/test/extras.rb +11 -0
- data/test/helpers_tests.rb +41 -0
- data/test/test_depi.rb +29 -0
- data/test/test_exner.rb +100 -0
- data/test/test_hvi.rb +33 -0
- data/test/test_obs.rb +29 -0
- data/test/test_rorschach.rb +1 -0
- data/test/test_scon.rb +34 -0
- data/test/test_sczi.rb +29 -0
- data/test/text_cdi.rb +28 -0
- data.tar.gz.sig +0 -0
- metadata +193 -0
- metadata.gz.sig +0 -0
data/lib/exner/rtf.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
# -encoding: UTF-8
|
2
|
+
module Exner
|
3
|
+
module Rtf
|
4
|
+
def _dcp(c)
|
5
|
+
_ds[c.gsub('C',"C'")]
|
6
|
+
end
|
7
|
+
def _cd(c)
|
8
|
+
c+" = "+_f['contenidos_1'][c].to_s+","+_f['contenidos_2'][c].to_s
|
9
|
+
end
|
10
|
+
def detRtf
|
11
|
+
s=""
|
12
|
+
@respuestas.each {|n,r|
|
13
|
+
s+="\n\\par "+r.determinantes.join('.')+r.fq if r.determinantes.size>1
|
14
|
+
}
|
15
|
+
s
|
16
|
+
end
|
17
|
+
def _ds
|
18
|
+
determinantes_simples
|
19
|
+
end
|
20
|
+
def superscript(a)
|
21
|
+
'{{\*\updnprop5801}\up8 '+a+'}'
|
22
|
+
end
|
23
|
+
def _res_enf
|
24
|
+
a=resumen_del_enfoque.collect {|lam|
|
25
|
+
Exner.a_romano(lam[0])+":"+lam[1].join(',')
|
26
|
+
}.join("\n\\par ")+"\n"
|
27
|
+
end
|
28
|
+
def _lq(tipo)
|
29
|
+
s=''
|
30
|
+
Exner::FQ_VALIDAS.each {|fq|
|
31
|
+
s+=fq+":"+_f[tipo][fq].to_s+"\n\\par "
|
32
|
+
}
|
33
|
+
s
|
34
|
+
end
|
35
|
+
def ldq
|
36
|
+
s=''
|
37
|
+
Exner::DQ_VALIDAS.each {|dq|
|
38
|
+
s+=dq+":"+_f['dq'][dq].to_s+"\n\\par "
|
39
|
+
}
|
40
|
+
s
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
require 'exner/rtf/zulliger'
|
45
|
+
require 'exner/rtf/rorschach'
|
46
|
+
|
@@ -0,0 +1,445 @@
|
|
1
|
+
# -encoding: UTF-8
|
2
|
+
module Exner
|
3
|
+
class TestManchas
|
4
|
+
FRECUENCIAS=%w{localizacion dq contenidos contenidos_1 contenidos_2 determinantes ccee fqx fqf mq sqx wqx dqx wdx pares}
|
5
|
+
attr_reader :respuestas, :laminas, :zf,:zsum, :frecuencias, :complejos, :sencillos, :msumm, :pares, :populares, :extras, :tipos_contenidos
|
6
|
+
ZEST_FILE=''
|
7
|
+
def initialize
|
8
|
+
@zf= @zsum= @pares= @populares=@tipos_contenidos= 0
|
9
|
+
@respuestas=Hash.new
|
10
|
+
@laminas=Hash.new
|
11
|
+
@frecuencias=Hash.new
|
12
|
+
@complejos=Array.new
|
13
|
+
@extras=Array.new
|
14
|
+
FRECUENCIAS.each {|i|
|
15
|
+
@frecuencias[i]=Hash.new
|
16
|
+
}
|
17
|
+
LOC_VALIDAS.each {|i|
|
18
|
+
@frecuencias['localizacion'][i]=0;
|
19
|
+
}
|
20
|
+
DQ_VALIDAS.each {|i|
|
21
|
+
@frecuencias['dq'][i]=0;
|
22
|
+
}
|
23
|
+
DET_VALIDOS.each {|i|
|
24
|
+
@frecuencias['determinantes'][i]=0;
|
25
|
+
}
|
26
|
+
CONT_VALIDOS.each {|i|
|
27
|
+
@frecuencias['contenidos'][i]=0;
|
28
|
+
@frecuencias['contenidos_1'][i]=0;
|
29
|
+
@frecuencias['contenidos_2'][i]=0;
|
30
|
+
}
|
31
|
+
CCEE_VALIDOS.each {|i|
|
32
|
+
@frecuencias['ccee'][i]=0;
|
33
|
+
}
|
34
|
+
FQ_VALIDAS.each {|i|
|
35
|
+
@frecuencias['fqx'][i]=0;
|
36
|
+
@frecuencias['fqf'][i]=0;
|
37
|
+
@frecuencias['mq'][i]=0;
|
38
|
+
@frecuencias['sqx'][i]=0;
|
39
|
+
@frecuencias['wqx'][i]=0;
|
40
|
+
@frecuencias['dqx'][i]=0;
|
41
|
+
@frecuencias['wdx'][i]=0;
|
42
|
+
}
|
43
|
+
|
44
|
+
end
|
45
|
+
def _d
|
46
|
+
@frecuencias['determinantes']
|
47
|
+
end
|
48
|
+
def _c
|
49
|
+
@frecuencias['contenidos']
|
50
|
+
end
|
51
|
+
def _ccee
|
52
|
+
@frecuencias['ccee']
|
53
|
+
end
|
54
|
+
def _f
|
55
|
+
@frecuencias
|
56
|
+
end
|
57
|
+
def _l
|
58
|
+
localizaciones
|
59
|
+
end
|
60
|
+
|
61
|
+
def zest
|
62
|
+
aEst=Exner::open_zest(self.ZEST_FILE)
|
63
|
+
aEst[@zf]
|
64
|
+
end
|
65
|
+
def open_stream(stream)
|
66
|
+
stream.each_line {|linea|
|
67
|
+
resp=Exner::Respuesta.new(self,linea)
|
68
|
+
lam=resp.lamina
|
69
|
+
@laminas[lam]=Array.new if @laminas[lam].nil?
|
70
|
+
raise "no pueden existir dos respuestas con el mismo número" if @respuestas.has_key?(resp.respuesta)
|
71
|
+
@respuestas[resp.respuesta]=resp
|
72
|
+
@laminas[lam].push(resp)
|
73
|
+
}
|
74
|
+
end
|
75
|
+
def open_file(file)
|
76
|
+
raise "No se definió archivo" if file.nil?
|
77
|
+
File.open(file,'r') {|file|
|
78
|
+
open_stream(file)
|
79
|
+
}
|
80
|
+
end
|
81
|
+
def each_determinante
|
82
|
+
@respuestas.each {|n,resp| resp.determinantes.each {|det| yield det }}
|
83
|
+
end
|
84
|
+
def obtenerZ(lamina,tipo)
|
85
|
+
return @laminas_z[lamina][tipo]
|
86
|
+
end
|
87
|
+
def procesar
|
88
|
+
@respuestas.each do |n,resp|
|
89
|
+
@zf+=1 if resp.z >0
|
90
|
+
@zsum+=resp.z
|
91
|
+
@pares+=1 if resp.par
|
92
|
+
@populares+=1 if resp.popular
|
93
|
+
raise "No existe localizacion para la respuesta "+n.to_s if resp.localizacion.nil?
|
94
|
+
@frecuencias['localizacion'][resp.localizacion]+=1
|
95
|
+
@frecuencias['dq'][resp.dq]+=1
|
96
|
+
@frecuencias['fqx'][resp.fq]+=1
|
97
|
+
@frecuencias['fqf'][resp.fq]+=1 if resp.determinantes==['F']
|
98
|
+
@frecuencias['mq'][resp.fq]+=1 if resp.tiene_movimiento_humano?
|
99
|
+
@frecuencias['sqx'][resp.fq]+=1 if resp.localizacion=~/S/
|
100
|
+
@frecuencias['wqx'][resp.fq]+=1 if resp.localizacion_pura=='W'
|
101
|
+
@frecuencias['dqx'][resp.fq]+=1 if resp.localizacion_pura=='D'
|
102
|
+
@frecuencias['wdx'][resp.fq]+=1 if resp.localizacion_pura=='W' or resp.localizacion_pura=='D'
|
103
|
+
@complejos.push(resp) if resp.determinantes.size>1
|
104
|
+
resp.determinantes.each {|d|
|
105
|
+
@frecuencias['determinantes'][d]+=1
|
106
|
+
}
|
107
|
+
cp=true
|
108
|
+
resp.contenidos.each {|d|
|
109
|
+
@frecuencias['contenidos'][d]+=1
|
110
|
+
@tipos_contenidos+=1 if @frecuencias['contenidos'][d]==1
|
111
|
+
if cp
|
112
|
+
@frecuencias['contenidos_1'][d]+=1
|
113
|
+
cp=false
|
114
|
+
else
|
115
|
+
@frecuencias['contenidos_2'][d]+=1
|
116
|
+
end
|
117
|
+
|
118
|
+
}
|
119
|
+
resp.ccee.each {|d|
|
120
|
+
@frecuencias['ccee'][d]+=1
|
121
|
+
}
|
122
|
+
end
|
123
|
+
procesar_extras
|
124
|
+
end
|
125
|
+
def procesar_extras
|
126
|
+
Dir[Exner.dir_root+'/exner/'+self.class.to_s.gsub('Exner::','').downcase+'_plugins/*.rb'].each {|file|
|
127
|
+
require file
|
128
|
+
}
|
129
|
+
|
130
|
+
end
|
131
|
+
def localizaciones
|
132
|
+
res=Hash.new
|
133
|
+
locs=%w{W Wv D Dd S}
|
134
|
+
locs.each {|i| res[i]=0}
|
135
|
+
@respuestas.each {|n,resp|
|
136
|
+
res['W']+=1 if resp.localizacion_pura=='W'
|
137
|
+
res['Wv']+=1 if resp.localizacion_pura=='W' and resp.dq=='v'
|
138
|
+
res['D']+=1 if resp.localizacion_pura=='D'
|
139
|
+
res['Dd']+=1 if resp.localizacion_pura=='Dd'
|
140
|
+
res['S']+=1 if resp.localizacion=~/S/
|
141
|
+
}
|
142
|
+
res
|
143
|
+
end
|
144
|
+
def determinantes_simples
|
145
|
+
res=@frecuencias['determinantes'].dup
|
146
|
+
['M','FM','m'].each {|mov|
|
147
|
+
res[mov]=res[mov+'a']+res[mov+'p']
|
148
|
+
res.delete(mov+'a')
|
149
|
+
res.delete(mov+'p')
|
150
|
+
}
|
151
|
+
res['(2)']=@pares
|
152
|
+
res
|
153
|
+
end
|
154
|
+
|
155
|
+
def msum
|
156
|
+
sumdet('M')
|
157
|
+
end
|
158
|
+
# sumatoria de color ponderado
|
159
|
+
def det
|
160
|
+
@frecuencias['determinantes']
|
161
|
+
end
|
162
|
+
def sumcolpond
|
163
|
+
_d['C']*1.5+_d['CF']+_d['FC']*0.5
|
164
|
+
end
|
165
|
+
|
166
|
+
# sumatoria de items de un determinado tipo
|
167
|
+
def sumdet(tipo)
|
168
|
+
suma=0
|
169
|
+
each_determinante {|det|
|
170
|
+
if tipo=='M'
|
171
|
+
suma+=1 if det=='Ma' or det=='Mp'
|
172
|
+
elsif tipo=='FD'
|
173
|
+
suma+=1 if det=='FD'
|
174
|
+
elsif tipo=='C'
|
175
|
+
suma+=1 if det=='C' or det=='FC' or det=='CF'
|
176
|
+
elsif tipo=='Cn'
|
177
|
+
suma+=1 if det=='Cn'
|
178
|
+
elsif tipo=='F'
|
179
|
+
suma+1 if det=='F'
|
180
|
+
else
|
181
|
+
det=det.gsub(/[ap]/,'')
|
182
|
+
suma+=1 if det=~/#{tipo}/
|
183
|
+
end
|
184
|
+
}
|
185
|
+
suma
|
186
|
+
end
|
187
|
+
def resumen_del_enfoque
|
188
|
+
res=Hash.new
|
189
|
+
@laminas.each {|ln,resps|
|
190
|
+
resps.sort.each {|resp|
|
191
|
+
res[ln]=Array.new if res[ln].nil?
|
192
|
+
res[ln].push(resp.localizacion_pura)
|
193
|
+
}
|
194
|
+
}
|
195
|
+
res.sort
|
196
|
+
end
|
197
|
+
# Controles
|
198
|
+
def R
|
199
|
+
@respuestas.size
|
200
|
+
end
|
201
|
+
def L
|
202
|
+
fp=0.0
|
203
|
+
@respuestas.each {|n,resp|
|
204
|
+
fp+=1 if resp.determinantes==['F']
|
205
|
+
}
|
206
|
+
return fp.to_f / (self.R-fp)
|
207
|
+
end
|
208
|
+
def EB
|
209
|
+
sumdet('M').to_s+":"+sumcolpond.to_s
|
210
|
+
end
|
211
|
+
def EA
|
212
|
+
(msum+sumcolpond).to_f
|
213
|
+
end
|
214
|
+
def eb_izq
|
215
|
+
(sumdet('FM')+sumdet('m'))
|
216
|
+
end
|
217
|
+
def eb_der
|
218
|
+
(sumdet('T')+sumdet('V')+sumdet("C'")+ sumdet('Y'))
|
219
|
+
end
|
220
|
+
def eb
|
221
|
+
eb_izq.to_s+":"+eb_der.to_s
|
222
|
+
end
|
223
|
+
def es
|
224
|
+
eb_izq+eb_der
|
225
|
+
end
|
226
|
+
def Adjes
|
227
|
+
madj=(sumdet('m')>0) ? 1:0;
|
228
|
+
yadj=(sumdet('Y')>0) ? 1:0;
|
229
|
+
sumdet('FM')+madj+(sumdet('T')+sumdet('V')+sumdet("C'")+ yadj)
|
230
|
+
end
|
231
|
+
def EBPer
|
232
|
+
if (((msum-sumcolpond).abs<=2 and self.EA<=10) or
|
233
|
+
self.EA>10)
|
234
|
+
if msum>sumcolpond
|
235
|
+
msum/sumcolpond
|
236
|
+
else
|
237
|
+
sumcolpond/msum
|
238
|
+
end
|
239
|
+
else
|
240
|
+
false
|
241
|
+
end
|
242
|
+
end
|
243
|
+
def Dscore(d)
|
244
|
+
return 0 if d>=-2.5 and d<=2.5
|
245
|
+
(((d.abs-3)/2.5)+1).to_i*(d<0 ? -1:+1)
|
246
|
+
end
|
247
|
+
def D
|
248
|
+
Dscore(self.EA-es)
|
249
|
+
end
|
250
|
+
def AdjD
|
251
|
+
Dscore(self.EA-self.Adjes)
|
252
|
+
end
|
253
|
+
#Afectos
|
254
|
+
|
255
|
+
#FC:CF+C
|
256
|
+
def fc_cf_c
|
257
|
+
(det['FC']).to_s+':'+(det['CF']+det['C']).to_s
|
258
|
+
end
|
259
|
+
def sumc_wsumc
|
260
|
+
(sumdet("C'")).to_s+":"+(det['FC']*0.5+det['CF']+det['C']*1.5).to_s
|
261
|
+
end
|
262
|
+
def Afr
|
263
|
+
n=Hash.new
|
264
|
+
@laminas.each {|x,l|
|
265
|
+
n[x]=l.size
|
266
|
+
}
|
267
|
+
(n[8]+n[9]+n[10]).to_f/(n[1]+n[2]+n[3]+n[4]+n[5]+n[6]+n[7]).to_f
|
268
|
+
end
|
269
|
+
def complj_r
|
270
|
+
porcentaje(@complejos.size)
|
271
|
+
end
|
272
|
+
def CP
|
273
|
+
@frecuencias['ccee']['CP']
|
274
|
+
end
|
275
|
+
#interpersonal
|
276
|
+
def COP
|
277
|
+
@frecuencias['ccee']['COP']
|
278
|
+
end
|
279
|
+
def Fd
|
280
|
+
@frecuencias['contenidos']['Fd']
|
281
|
+
end
|
282
|
+
def AG
|
283
|
+
@frecuencias['ccee']['AG']
|
284
|
+
end
|
285
|
+
def aislamiento_r
|
286
|
+
c=@frecuencias['contenidos']
|
287
|
+
(2*c['Na']+2*c['Cl']+c['Bt']+c['Ls']+c['Ge']).to_f/self.R
|
288
|
+
end
|
289
|
+
def h_h_hd_hd
|
290
|
+
_c['H'].to_s+':'+(_c['(H)']+_c['Hd']+_c['(Hd)']).to_s
|
291
|
+
end
|
292
|
+
def p_h_hd_p_a_ad
|
293
|
+
c=@frecuencias['contenidos']
|
294
|
+
(c['(H)']+c['(Hd)']).to_s+':'+(c['(A)']+c['(Ad)']).to_s
|
295
|
+
|
296
|
+
end
|
297
|
+
def h_a_hd_ad
|
298
|
+
c=@frecuencias['contenidos']
|
299
|
+
(c['H']+c['A']).to_s+':'+(c['Hd']+c['Ad']).to_s
|
300
|
+
end
|
301
|
+
def a_porciento
|
302
|
+
c=@frecuencias['contenidos']
|
303
|
+
porcentaje(c['A']+c['Ad'])
|
304
|
+
end
|
305
|
+
def porcentaje(valor)
|
306
|
+
return valor.to_f/self.R
|
307
|
+
end
|
308
|
+
#Ideación
|
309
|
+
def suma_preg(p)
|
310
|
+
suma=0
|
311
|
+
each_determinante {|det| suma+=1 if det=~/#{p}/ }
|
312
|
+
suma
|
313
|
+
end
|
314
|
+
def activos
|
315
|
+
suma_preg('a')
|
316
|
+
end
|
317
|
+
def pasivos
|
318
|
+
suma_preg('p')
|
319
|
+
end
|
320
|
+
def a_p
|
321
|
+
activos.to_s+":"+pasivos.to_s
|
322
|
+
end
|
323
|
+
def Ma_Mp
|
324
|
+
a=p=0
|
325
|
+
each_determinante {|det|
|
326
|
+
if(det=='Ma' or det=='Mp')
|
327
|
+
a+=1 if det=~/a/
|
328
|
+
p+=1 if det=~/p/
|
329
|
+
end
|
330
|
+
}
|
331
|
+
a.to_s+":"+p.to_s
|
332
|
+
end
|
333
|
+
def intelectualizacion
|
334
|
+
c=@frecuencias['contenidos']
|
335
|
+
2*@frecuencias['ccee']['AB']+(c['Art']+c['Ay'])
|
336
|
+
end
|
337
|
+
def m_menos
|
338
|
+
@frecuencias['mq']['-']
|
339
|
+
end
|
340
|
+
def SumBr6
|
341
|
+
suma=0
|
342
|
+
@respuestas.each {|n,resp|
|
343
|
+
resp.ccee.each {|ccee|
|
344
|
+
suma+=1 if CCEE_IDEACION.has_key?(ccee)
|
345
|
+
}
|
346
|
+
}
|
347
|
+
suma
|
348
|
+
end
|
349
|
+
def SumPon6
|
350
|
+
suma=0
|
351
|
+
@respuestas.each {|n,resp|
|
352
|
+
resp.ccee.each {|ccee|
|
353
|
+
suma+=CCEE_IDEACION[ccee] if CCEE_IDEACION.has_key?(ccee)
|
354
|
+
}
|
355
|
+
}
|
356
|
+
suma
|
357
|
+
end
|
358
|
+
def nvl2
|
359
|
+
suma=0
|
360
|
+
@respuestas.each {|n,resp|
|
361
|
+
resp.ccee.each {|ccee|
|
362
|
+
suma+=1 if CCEE_IDEACION.has_key?(ccee) and ccee=~/2/
|
363
|
+
}
|
364
|
+
}
|
365
|
+
suma
|
366
|
+
end
|
367
|
+
def msin
|
368
|
+
suma=0
|
369
|
+
@respuestas.each {|n,resp|
|
370
|
+
suma+=1 if resp.fq=='sin' and resp.determinantes.detect {|a| a=='Ma' or a=='Mp'}
|
371
|
+
}
|
372
|
+
suma
|
373
|
+
end
|
374
|
+
# mediacion
|
375
|
+
def P
|
376
|
+
@populares
|
377
|
+
end
|
378
|
+
def xmas
|
379
|
+
(@frecuencias['fqx']['o']+@frecuencias['fqx']['+']).to_f/self.R
|
380
|
+
end
|
381
|
+
def fmas
|
382
|
+
(@frecuencias['fqf']['o']+@frecuencias['fqf']['+']).to_f/ determinantes_simples['F']
|
383
|
+
end
|
384
|
+
def xmenos
|
385
|
+
@frecuencias['fqx']['-'].to_f/self.R
|
386
|
+
end
|
387
|
+
def smenos
|
388
|
+
@frecuencias['sqx']['-'].to_f/@frecuencias['fqx']['-']
|
389
|
+
|
390
|
+
end
|
391
|
+
def xu
|
392
|
+
@frecuencias['fqx']['u'].to_f/self.R
|
393
|
+
end
|
394
|
+
def xa
|
395
|
+
(@frecuencias['fqx']['o']+@frecuencias['fqx']['+']+ @frecuencias['fqx']['u']).to_f/self.R
|
396
|
+
end
|
397
|
+
def wda
|
398
|
+
wdx=@frecuencias['wdx']
|
399
|
+
loc=localizaciones
|
400
|
+
(wdx['+']+wdx['o']+wdx['u']).to_f/(loc['W']+loc['D'])
|
401
|
+
end
|
402
|
+
#Procesamiento
|
403
|
+
def Zf
|
404
|
+
@zf
|
405
|
+
end
|
406
|
+
def Zd
|
407
|
+
@zsum-zest
|
408
|
+
end
|
409
|
+
def w_d_dd
|
410
|
+
l=localizaciones
|
411
|
+
sprintf("%d:%d:%d",l['W'],l['D'],l['Dd'])
|
412
|
+
end
|
413
|
+
def w_m
|
414
|
+
l=localizaciones
|
415
|
+
sprintf("%d:%d",l['W'],determinantes_simples['M'])
|
416
|
+
end
|
417
|
+
def dqmas
|
418
|
+
@frecuencias['dq']['+']
|
419
|
+
end
|
420
|
+
def dqv
|
421
|
+
@frecuencias['dq']['v']
|
422
|
+
end
|
423
|
+
# autopercepcion
|
424
|
+
def autocentracion
|
425
|
+
(3*sumdet('r')+@pares).to_f/self.R
|
426
|
+
end
|
427
|
+
def fr_rf
|
428
|
+
sumdet('r')
|
429
|
+
end
|
430
|
+
def FD
|
431
|
+
@frecuencias['determinantes']['FD']
|
432
|
+
end
|
433
|
+
def an_xy
|
434
|
+
@frecuencias['contenidos']['An']+@frecuencias['contenidos']['Xy']
|
435
|
+
end
|
436
|
+
def mor
|
437
|
+
@frecuencias['ccee']['MOR']
|
438
|
+
end
|
439
|
+
end
|
440
|
+
|
441
|
+
|
442
|
+
end
|
443
|
+
|
444
|
+
require 'exner/rorschach'
|
445
|
+
require 'exner/zulliger'
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# -encoding: UTF-8
|
2
|
+
module Exner
|
3
|
+
class Zulliger < TestManchas
|
4
|
+
def initialize
|
5
|
+
@laminas_z={
|
6
|
+
1=>{'a'=>1.0,'b'=>4.0,'c'=>6.0,'d'=>3.5},
|
7
|
+
2=>{'a'=>5.5,'b'=>3.0,'c'=>3.0,'d'=>4.0},
|
8
|
+
3=>{'a'=>5.5,'b'=>3.0,'c'=>4.0,'d'=>4.5}
|
9
|
+
}
|
10
|
+
super
|
11
|
+
end
|
12
|
+
def ZEST_FILE
|
13
|
+
Exner.dir_data+'/Zulliger_Zest.txt'
|
14
|
+
end
|
15
|
+
def N
|
16
|
+
3
|
17
|
+
end
|
18
|
+
def Afr
|
19
|
+
n=Hash.new
|
20
|
+
@laminas.each {|x,l|
|
21
|
+
n[x]=l.size
|
22
|
+
}
|
23
|
+
n[2].to_f/(n[1]+n[3]).to_f
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|