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