Mint a legtöbb szoftvernél, a CogStat (CS) esetében is van egy automatikus ellenőrző programunk, amely minden új kiadás előtt megnézni, hogy a CS úgy számolja-e ki az eredményeket, mint más statisztikai szoftverek. Ehhez van egy adatsorunk és hozzá tartozó elemzések, amit a program lefuttat a CS-tal, és megnézni, hogy az az eredmény jön-e még ki mindig, mint amit elvárunk. És amit elvárunk, az pedig az, amit más programok is kihoznának eredményként az adott adatsorra és elemzésre.
Az oldal alján található az adatsor, amit a teszteléskor használunk. Elvileg másolás-beillesztéssel berakható a legtöbb statisztikai szoftverbe.
Az ellenőrző program, ami a tesztelést csinálja itt található: https://github.com/cogstat/cogstat/blob/devel/cogstat/test/validate_calculations.py. Itt a 90. sor környékétől kezdődik a lényeg. Mindig szerepel egy results = valami rész, ami valamilyen elemzést kér a CS-tól. Remélhetőleg a kódból kitalálható, hogy mit kér: a data. utáni rész mondja meg, hogy mi a kérdés (egy változó vizsgálata, csoportok összehasonlítása, stb.), és a zárójelben aposztrófok közt van megadva, hogy melyik változókat használjuk. Időnként szerepel néhány egyéb paraméter, remélhetőleg többnyire kitalálható, hogy melyek azok. Majd ezután jönnek olyan sorok, hogy self.assert..., és itt szerepelnek szövegek és számok, amik azt jelenti, hogy ezeket az eredményeket várjuk a kimeneten, mert elvileg ezek a helyesek. Az adott sorok előtt pedig # jel után látható, hogy melyik program melyik változatával milyen eredményt kaptunk. Elvileg a CS-től elvárt eredmény ugyanaz kellene legyen, mint amit más programoknál látunk.
Néhol van, hogy a CS eredménye nem ugyanaz, mint más szoftveré, és ez szándékos. Ezek némelyikéről van is leírás a CS dokumentációjában: https://doc.cogstat.org/Differences-in-calculations-between-CogStat-and-other-programs Némely más eltérésről a fenti ellenőrző program kódjában vannak megjegyzések.
A feladat az, hogy ahol a fenti ellenőrző fájlban a self.assert sor előtt nem szerepel olyan sor, ami megadná, hogy az adott elemzésre más szoftver milyen eredményt adna, akkor azt ki kell számolni, és bevinni a fájlba. Ha az adott self.assert fájl előtt már szerepel más szoftverre vonatkozó eredmény, de te másik szoftverrel való validálást végzel, akkor a te szoftveredre vonatkozó adatokat is fel kell vinni.
Technikailag csak töltsd le a validáló program fájlját, nyisd meg bármilyen szövegszerkesztővel, és abba írd bele az új szoftverre vonatkozó eredményeket. Minden ilyen sorba rakd be a monogramod a sor végére, és onnan tudom majd, hogy melyik sorokat raktad te be. Ha kész a feladat, akkor ezt a módosított .py fájlt küldd majd el nekem. Ha azt látod, hogy a CS másként számol, mint a te szoftvered, akkor írj oda egy megjegyzést. Ha netán azt is tudod, hogy miért számol másként (pl. milyen változatot használ az egyik és a másik szoftver), akkor azt is odaírhatod, de ez opcionális.
A feladat leírásának néhány részlete megtalálható a test_stat.py fájl elején is az import részek után, illetve néhol hasznos információk szerepelnek a fájlban a # jelek után.
A teszteléshez használt adatsor
a b c d e f g h i j k l m n o p q r
0 3.445 15.702 0.0 1.0 3.104 8.238 4.930 -5.250 1.0 1.0 1.0 -0.547 1.0 1.0 1.852 7.002 1.0 -0.349
1 4.060 17.008 2.0 1.0 2.141 14.041 7.693 8.789 0.0 1.0 0.0 3.889 1.0 2.0 6.732 -3.659 1.0 3.826
2 -0.262 1102.876 0.0 1.0 2.484 3.582 8.408 3.519 1.0 1.0 1.0 3.249 1.0 2.0 1.702 1.191 1.0 3.435
3 3.741 9.061 1.0 2.0 1.554 5.558 9.929 6.795 0.0 1.0 0.0 1.519 1.0 2.0 0.265 1.626 1.0 7.663
4 2.529 2289.004 0.0 0.0 1.706 4.174 1.472 -7.085 0.0 0.0 0.0 -1.375 1.0 2.0 5.984 5.925 1.0 -3.444
5 4.311 564.067 2.0 2.0 6.213 5.715 6.407 9.422 1.0 0.0 1.0 -0.582 1.0 2.0 -1.113 -0.057 1.0 2.649
6 0.461 18.739 2.0 0.0 10.130 3.003 3.874 7.349 1.0 0.0 0.0 2.173 1.0 2.0 1.479 3.788 1.0 0.528
7 9.500 210.706 1.0 0.0 0.896 4.281 10.111 3.633 1.0 0.0 1.0 8.369 1.0 2.0 8.320 7.300 1.0 8.712
8 4.003 0.697 2.0 2.0 3.606 2.912 4.501 18.771 0.0 1.0 0.0 4.328 1.0 2.0 8.140 6.855 1.0 2.373
9 1.866 87.791 1.0 2.0 2.295 16.458 7.015 19.450 1.0 1.0 0.0 3.931 1.0 2.0 -2.327 6.029 1.0 7.476
10 4.789 7.167 0.0 1.0 6.196 7.438 -0.752 10.636 0.0 0.0 1.0 4.823 1.0 2.0 8.414 6.478 2.0 6.663
11 9.160 0.163 0.0 2.0 2.155 2.854 6.336 7.670 1.0 0.0 1.0 0.368 1.0 2.0 -1.838 8.894 2.0 6.033
12 2.880 18.265 0.0 1.0 -0.309 2.228 7.261 0.729 1.0 1.0 0.0 7.723 1.0 2.0 -0.011 5.539 2.0 5.391
13 1.270 80.701 0.0 1.0 3.004 4.015 4.397 3.338 1.0 1.0 0.0 -2.142 1.0 2.0 5.030 0.072 2.0 5.621
14 2.817 1177.480 0.0 2.0 2.095 4.927 9.368 3.943 1.0 0.0 1.0 2.248 1.0 2.0 4.378 3.605 2.0 7.356
15 5.993 5.383 1.0 0.0 4.039 3.693 6.660 4.803 1.0 0.0 1.0 3.520 2.0 2.0 0.959 -5.975 2.0 7.409
16 8.325 0.451 2.0 2.0 5.870 5.781 2.146 9.453 1.0 1.0 1.0 1.174 2.0 2.0 2.734 7.186 2.0 -0.119
17 -1.014 3.516 0.0 2.0 5.825 3.247 8.161 2.947 0.0 1.0 0.0 4.055 2.0 2.0 12.313 1.455 2.0 1.966
18 5.395 0.726 2.0 2.0 3.604 2.726 4.925 2.896 1.0 0.0 1.0 6.195 2.0 2.0 19.284 9.064 3.0 10.741
19 -2.289 1.016 0.0 1.0 7.673 2.239 1.012 8.148 1.0 1.0 0.0 9.976 2.0 2.0 3.893 4.881 3.0 1.727
20 2.206 76.687 1.0 1.0 -3.616 11.663 8.319 13.888 0.0 0.0 0.0 7.676 2.0 2.0 6.432 16.469 3.0 7.376
21 2.829 2.873 1.0 0.0 -0.338 1.883 2.536 10.667 0.0 1.0 0.0 3.602 2.0 2.0 1.509 -4.643 3.0 2.407
22 -2.803 3.099 0.0 0.0 1.408 4.370 4.978 6.758 0.0 0.0 0.0 6.572 2.0 2.0 40.497 1.393 3.0 10.607
23 -1.486 501.308 0.0 2.0 -0.774 1.851 8.718 -2.255 0.0 1.0 1.0 -0.217 2.0 2.0 3.817 -1.394 3.0 9.854
24 3.136 3.773 1.0 0.0 1.617 5.135 9.203 9.888 1.0 0.0 1.0 3.461 2.0 2.0 31.534 14.284 3.0 5.034
25 9.981 0.868 2.0 2.0 2.134 2.018 2.403 0.755 0.0 1.0 0.0 6.083 2.0 2.0 82.679 4.364 3.0 6.314
26 4.413 3.059 0.0 0.0 2.509 10.131 8.727 13.423 1.0 0.0 0.0 2.556 2.0 2.0 18.217 5.841 3.0 9.039
27 0.139 13.684 0.0 0.0 7.827 2.947 0.186 -0.745 0.0 1.0 1.0 2.359 2.0 2.0 25.358 -4.746 3.0 10.240
28 2.486 711.179 0.0 1.0 6.557 8.728 9.308 17.613 1.0 1.0 1.0 4.778 2.0 2.0 3.217 10.952 3.0 5.471
29 2.432 31.064 0.0 1.0 -0.098 5.207 3.653 7.411 0.0 1.0 0.0 6.848 2.0 2.0 49.939 -2.133 3.0 8.084