Esempio n. 1
0
    def test1(self):
        R = """\
t-Test: One Sample for means

                          SUPPRESSION 
=====================================
Sample Mean                    19.541 
Hypothesized Pop. Mean             17 
Variance                      228.326 
Observations                      384 
df                                383 
t Stat                          3.295 
alpha                           0.050 
P(T<=t) one-tail            5.384e-04 
t Critical one-tail             1.966 
P(T<=t) two-tail                0.001 
t Critical two-tail             1.649 
P(T<=t) two-tail                0.001 
Effect size d                   0.168 
delta                           3.295 
Observed power one-tail         0.950 
Observed power two-tail         0.908 """

        df = DataFrame()
        df.read_tbl('data/suppression~subjectXgroupXageXcycleXphase.csv')
        D = df.ttest('SUPPRESSION', pop_mean=17.)
        self.assertEqual(str(D), R)
Esempio n. 2
0
    def test11(self):
        df = DataFrame()
        df.read_tbl('data/error~subjectXtimeofdayXcourseXmodel_MISSING.csv')

        D = str(df.descriptives('ERROR'))
        R = """\
Descriptive Statistics
  ERROR
==========================
 count        48.000 
 mean          3.896 
 mode          3.000 
 var           5.797 
 stdev         2.408 
 sem           0.348 
 rms           4.567 
 min           0.000 
 Q1            2.000 
 median        3.000 
 Q3            5.000 
 max          10.000 
 range        10.000 
 95ci_lower    3.215 
 95ci_upper    4.577 """
        self.assertEqual(D, R)
Esempio n. 3
0
    def test0(self):
        R = {
            'd': [
                9.0, 8.0, 6.0, 8.0, 10.0, 4.0, 6.0, 5.0, 7.0, 7.0, 7.0, 9.0,
                6.0, 6.0, 6.0, 11.0, 6.0, 3.0, 8.0, 7.0, 11.0, 13.0, 8.0, 6.0,
                14.0, 11.0, 13.0, 13.0, 10.0, 11.0, 12.0, 11.0, 16.0, 11.0,
                9.0, 23.0, 12.0, 10.0, 19.0, 11.0, 10.0, 19.0, 14.0, 5.0, 10.0,
                11.0, 14.0, 15.0, 11.0, 11.0, 8.0, 6.0, 4.0, 6.0, 7.0, 6.0,
                5.0, 7.0, 9.0, 7.0, 10.0, 7.0, 8.0, 10.0, 4.0, 7.0, 10.0, 6.0,
                7.0, 7.0, 14.0, 11.0, 18.0, 14.0, 13.0, 22.0, 17.0, 16.0, 12.0,
                11.0, 20.0, 16.0, 16.0, 15.0, 18.0, 16.0, 20.0, 22.0, 14.0,
                19.0, 21.0, 19.0, 17.0, 15.0, 22.0, 16.0, 22.0, 22.0, 18.0,
                21.0
            ],
            'fname':
            r'output/box(WORDS).png',
            'maintitle':
            'WORDS',
            'val':
            'WORDS'
        }

        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl(r'data/words~ageXcondition.csv')
        D = df.box_plot('WORDS', output_dir='output')

        self.assertEqual(D['fname'], R['fname'])
        self.assertEqual(D['maintitle'], R['maintitle'])
        self.assertEqual(D['val'], R['val'])

        for d, r in zip(np.array(D['d']).flat, np.array(R['d']).flat):
            self.assertAlmostEqual(d, r)
Esempio n. 4
0
    def test1(self):
        R = """\
Chi-Square: Single Factor

SUMMARY
             1        2        3        4    
============================================
Observed        7       20       23        9 
Expected   14.750   14.750   14.750   14.750 

CHI-SQUARE TESTS
                     Value    df     P   
========================================
Pearson Chi-Square   12.797    3   0.005 
Likelihood Ratio     13.288    3   0.004 
Observations             59              

POST-HOC POWER
       Measure                 
==============================
Effect size w            0.466 
Non-centrality lambda   12.797 
Critical Chi-Square      7.815 
Power                    0.865 """

        df = DataFrame()
        df.read_tbl('data/chi_test.csv')
        X = df.chisquare1way('RESULT')
        self.assertEqual(str(X), R)
Esempio n. 5
0
    def test_kn(self):
        df = DataFrame()
        df.read_tbl('data/example.csv')
        y = [23] * len(df['X'])
        df['X'] = y

        self.assertEqual(df.keys(), ['CASE', 'TIME', 'CONDITION', 'X'])
Esempio n. 6
0
    def test01(self):
        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl('data/iqbrainsize.txt', delimiter='\t')
        D = df.scatter_plot('TOTVOL', 'FIQ', output_dir='output')

        self.assertEqual(None, D['trend'])
Esempio n. 7
0
    def test1(self):
        R = {
            'd': [
                np.array([
                    9, 8, 6, 8, 10, 4, 6, 5, 7, 7, 7, 9, 6, 6, 6, 11, 6, 3, 8,
                    7, 11, 13, 8, 6, 14, 11, 13, 13, 10, 11, 12, 11, 16, 11, 9,
                    23, 12, 10, 19, 11, 10, 19, 14, 5, 10, 11, 14, 15, 11, 11
                ]),
                np.array([
                    8, 6, 4, 6, 7, 6, 5, 7, 9, 7, 10, 7, 8, 10, 4, 7, 10, 6, 7,
                    7, 14, 11, 18, 14, 13, 22, 17, 16, 12, 11, 20, 16, 16, 15,
                    18, 16, 20, 22, 14, 19, 21, 19, 17, 15, 22, 16, 22, 22, 18,
                    21
                ])
            ],
            'fname':
            r'output/box(WORDS~AGE).png',
            'maintitle':
            'WORDS by AGE',
            'xlabels': [u'AGE = old', u'AGE = young']
        }

        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl(r'data/words~ageXcondition.csv')
        D = df.box_plot('WORDS', ['AGE'], output_dir='output')

        self.assertEqual(D['fname'], R['fname'])
        self.assertEqual(D['maintitle'], R['maintitle'])
        self.assertEqual(D['xlabels'], R['xlabels'])

        for d, r in zip(np.array(D['d']).flat, np.array(R['d']).flat):
            self.assertAlmostEqual(d, r)
Esempio n. 8
0
    def test1(self):

        df = DataFrame()
        df.read_tbl('data/error~subjectXtimeofdayXcourseXmodel_MISSING.csv')
        pt = df.pivot('ERROR', ['TIMEOFDAY', 'MODEL'], ['COURSE'])

        self.assertEqual(repr(eval(repr(pt))), repr(pt))
Esempio n. 9
0
    def test0(self):

        df = DataFrame()
        df.read_tbl('data/error~subjectXtimeofdayXcourseXmodel_MISSING.csv')
        pt = df.pivot('ERROR', ['TIMEOFDAY'], ['COURSE'])

        self.assertAlmostEqual(3.22222222222, pt[1, 0], 5)
Esempio n. 10
0
    def test02(self):
        df = DataFrame()
        df.read_tbl('data/words~ageXcondition.csv')
        D = repr(df.histogram('WORDS'))
        R = "Histogram([('values', [4.0, 14.0, 17.0, 12.0, 15.0, 10.0, 9.0, 5.0, 6.0, 8.0]), \
('bin_edges', [3, 5.0, 7.0, 9.0, 11.0, 13.0, 15.0, 17.0, 19.0, 21.0, 23])], cname='WORDS')"

        self.assertEqual(D, R)
Esempio n. 11
0
 def test1(self):
     R = DataFrame([('SUBJECT', [1, 2]), ('TIMEOFDAY', [u'T1', u'T1']),
                    ('COURSE', [u'C1', u'C2']), ('MODEL', [u'M1', u'M1']),
                    ('ERROR', [10, 10])])
     df = DataFrame()
     df.read_tbl('data/error~subjectXtimeofdayXcourseXmodel_MISSING.csv')
     df2 = df.where(['ERROR = 10'])
     self.assertEqual(repr(df2), repr(R))
Esempio n. 12
0
    def test05(self):
        R = """Marginals([('factorials', OrderedDict([('AGE', [u'old', u'old', u'old', u'old', u'old']), ('CONDITION', [u'adjective', u'counting', u'imagery', u'intention', u'rhyming'])])), ('dmu', [11.0, 7.0, 13.4, 12.0, 6.9000000000000004]), ('dN', [10, 10, 10, 10, 10]), ('dsem', [0.78881063774661542, 0.57735026918962573, 1.4236104336041748, 1.1832159566199232, 0.67412494720522276]), ('dlower', [9.4539311500166345, 5.868393472388334, 10.609723550135818, 9.6808967250249509, 5.578715103477764]), ('dupper', [12.546068849983365, 8.131606527611666, 16.190276449864182, 14.319103274975049, 8.2212848965222367])], val='WORDS', factors=['AGE', 'CONDITION'], where='AGE == "old"')"""

        df=DataFrame()
        df.read_tbl('data/words~ageXcondition.csv')
        D = df.marginals('WORDS',
                              factors=['AGE','CONDITION'],
                              where='AGE == "old"')
Esempio n. 13
0
    def test1(self):

        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl(r'data/words~ageXcondition.csv')
        D = df.histogram_plot('WORDS', cumulative=True, output_dir='output')

        self.assertEqual(D['fname'], r'output/hist(WORDS,cumulative=True).png')
Esempio n. 14
0
    def test2(self):
        R = {
            'aggregate':
            'ci',
            'clevels': [1],
            'fname':
            r'output/interaction_plot(SUPPRESSION~CYCLE_X_AGE_X_PHASE,yerr=95% ci).png',
            'maintitle':
            'SUPPRESSION by CYCLE * AGE * PHASE',
            'numcols':
            1,
            'numrows':
            2,
            'rlevels': ['I', 'II'],
            'subplot_titles': ['I', 'II'],
            'xmaxs': [4.1749999999999998, 4.1749999999999998],
            'xmins': [0.32499999999999996, 0.32499999999999996],
            'y': [[[17.33333333, 22.41666667, 22.29166667, 20.75],
                   [7.34166667, 9.65, 9.70833333, 9.10833333]],
                  [[26.625, 38.70833333, 39.08333333, 40.83333333],
                   [10.24166667, 12.575, 13.19166667, 12.79166667]]],
            'yerr': [[1.81325589, 1.44901936, 1.60883063, 1.57118871],
                     [2.49411239, 1.34873573, 1.95209851, 1.35412572]],
            'ymax':
            64.8719707118471,
            'ymin':
            0.0
        }

        # generate yerr
        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl(r'data/suppression~subjectXgroupXageXcycleXphase.csv')

        D = df.interaction_plot('SUPPRESSION',
                                'CYCLE',
                                seplines='AGE',
                                sepyplots='PHASE',
                                yerr='ci',
                                output_dir='output')

        self.assertEqual(D['aggregate'], R['aggregate'])
        self.assertEqual(D['clevels'], R['clevels'])
        self.assertEqual(D['rlevels'], R['rlevels'])
        self.assertEqual(D['numcols'], R['numcols'])
        self.assertEqual(D['numrows'], R['numrows'])
        self.assertEqual(D['fname'], R['fname'])
        self.assertEqual(D['maintitle'], R['maintitle'])
        self.assertEqual(D['subplot_titles'], R['subplot_titles'])
        self.assertAlmostEqual(D['ymin'], R['ymin'])
        self.assertAlmostEqual(D['ymax'], R['ymax'])

        for d, r in zip(np.array(D['y']).flat, np.array(R['y']).flat):
            self.assertAlmostEqual(d, r)

        for d, r in zip(np.array(D['yerr']).flat, np.array(R['yerr']).flat):
            self.assertAlmostEqual(d, r)
Esempio n. 15
0
    def test1(self):
        R = {
            'aggregate':
            None,
            'clevels': ['M1', 'M2', 'M3'],
            'fname':
            r'output/interaction_plot(ERROR~TIMEOFDAY_X_COURSE_X_MODEL,yerr=1.0).png',
            'maintitle':
            'ERROR by TIMEOFDAY * COURSE * MODEL',
            'numcols':
            3,
            'numrows':
            1,
            'rlevels': [1],
            'subplot_titles': ['M1', 'M2', 'M3'],
            'xmaxs': [1.5, 1.5, 1.5],
            'xmins': [-0.5, -0.5, -0.5],
            'y': [[[9., 4.33333333], [8.66666667, 3.66666667],
                   [4.66666667, 1.66666667]],
                  [[7.5, 2.66666667], [6., 2.66666667], [5., 1.66666667]],
                  [[5., 2.66666667], [3.5, 2.33333333],
                   [2.33333333, 1.33333333]]],
            'yerr': [[1.0, 1.0], [1.0, 1.0], [1.0, 1.0]],
            'ymax':
            11.119188627248182,
            'ymin':
            0.0
        }

        # specify yerr
        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl(r'data/error~subjectXtimeofdayXcourseXmodel_MISSING.csv')
        D = df.interaction_plot('ERROR',
                                'TIMEOFDAY',
                                seplines='COURSE',
                                sepxplots='MODEL',
                                yerr=1.,
                                output_dir='output')

        self.assertEqual(D['aggregate'], R['aggregate'])
        self.assertEqual(D['clevels'], R['clevels'])
        self.assertEqual(D['rlevels'], R['rlevels'])
        self.assertEqual(D['numcols'], R['numcols'])
        self.assertEqual(D['numrows'], R['numrows'])
        self.assertEqual(D['fname'], R['fname'])
        self.assertEqual(D['maintitle'], R['maintitle'])
        self.assertEqual(D['subplot_titles'], R['subplot_titles'])
        self.assertAlmostEqual(D['ymin'], R['ymin'])
        self.assertAlmostEqual(D['ymax'], R['ymax'])

        for d, r in zip(np.array(D['y']).flat, np.array(R['y']).flat):
            self.assertAlmostEqual(d, r)

        for d, r in zip(np.array(D['yerr']).flat, np.array(R['yerr']).flat):
            self.assertAlmostEqual(d, r)
Esempio n. 16
0
    def test2(self):
        ## Between-Subjects test

        R = """WORDS ~ AGE * CONDITION

TESTS OF BETWEEN-SUBJECTS EFFECTS

Measure: WORDS
    Source        Type III   df     MS        F        Sig.      et2_G   Obs.    SE     95% CI   lambda   Obs.  
                     SS                                                                                   Power 
===============================================================================================================
AGE                240.250    1   240.250   29.936   3.981e-07   0.250     50   0.406    0.796   16.631   0.981 
CONDITION         1514.940    4   378.735   47.191   2.530e-21   0.677     20   0.642    1.258   41.948   1.000 
AGE * CONDITION    190.300    4    47.575    5.928   2.793e-04   0.209     10   0.908    1.780    2.635   0.207 
Error              722.300   90     8.026                                                                       
===============================================================================================================
Total             2667.790   99                                                                                 

TABLES OF ESTIMATED MARGINAL MEANS

Estimated Marginal Means for AGE
 AGE     Mean    Std. Error   95% Lower Bound   95% Upper Bound 
===============================================================
old     10.060        0.567             8.949            11.171 
young   13.160        0.818            11.556            14.764 

Estimated Marginal Means for CONDITION
CONDITION    Mean    Std. Error   95% Lower Bound   95% Upper Bound 
===================================================================
adjective   12.900        0.791            11.350            14.450 
counting     6.750        0.362             6.041             7.459 
imagery     15.500        0.933            13.671            17.329 
intention   15.650        1.096            13.502            17.798 
rhyming      7.250        0.452             6.363             8.137 

Estimated Marginal Means for AGE * CONDITION
 AGE    CONDITION    Mean    Std. Error   95% Lower Bound   95% Upper Bound 
===========================================================================
old     adjective       11        0.789             9.454            12.546 
old     counting         7        0.577             5.868             8.132 
old     imagery     13.400        1.424            10.610            16.190 
old     intention       12        1.183             9.681            14.319 
old     rhyming      6.900        0.674             5.579             8.221 
young   adjective   14.800        1.104            12.637            16.963 
young   counting     6.500        0.453             5.611             7.389 
young   imagery     17.600        0.819            15.994            19.206 
young   intention   19.300        0.844            17.646            20.954 
young   rhyming      7.600        0.618             6.388             8.812 

"""
        df = DataFrame()
        fname = 'data/words~ageXcondition.csv'
        df.read_tbl(fname)
        aov = Anova()
        aov.run(df, 'WORDS', bfactors=['AGE', 'CONDITION'])
        self.assertEqual(str(aov), R)
Esempio n. 17
0
    def test0(self):
        R = """SUBJECT   TIMEOFDAY   COURSE   MODEL   ERROR 
============================================
      1   T1          C1       M1         10 
      1   T1          C1       M2          8 
      1   T1          C1       M3          6 
      1   T1          C2       M1          9 
      1   T1          C3       M1          7 
      1   T1          C3       M2          6 
      1   T1          C3       M3          3 
      1   T2          C1       M1          5 
      1   T2          C1       M2          4 
      1   T2          C1       M3          3 
      1   T2          C2       M1          4 
      1   T2          C2       M2          3 
      1   T2          C2       M3          3 
      1   T2          C3       M1          2 
      1   T2          C3       M2          2 
      1   T2          C3       M3          1 
      2   T1          C2       M1         10 
      2   T1          C2       M2          6 
      2   T1          C2       M3          4 
      2   T1          C3       M1          4 
      2   T1          C3       M2          5 
      2   T1          C3       M3          2 
      2   T2          C1       M1          4 
      2   T2          C1       M2          3 
      2   T2          C1       M3          3 
      2   T2          C2       M1          4 
      2   T2          C2       M2          2 
      2   T2          C2       M3          2 
      2   T2          C3       M1          2 
      2   T2          C3       M2          3 
      2   T2          C3       M3          2 
      3   T1          C1       M1          8 
      3   T1          C1       M2          7 
      3   T1          C1       M3          4 
      3   T1          C2       M1          7 
      3   T1          C2       M3          3 
      3   T1          C3       M1          3 
      3   T1          C3       M2          4 
      3   T1          C3       M3          2 
      3   T2          C1       M1          4 
      3   T2          C1       M2          1 
      3   T2          C1       M3          2 
      3   T2          C2       M1          3 
      3   T2          C2       M2          3 
      3   T2          C2       M3          2 
      3   T2          C3       M1          1 
      3   T2          C3       M2          0 
      3   T2          C3       M3          1 """
        df = DataFrame()
        df.read_tbl('data/error~subjectXtimeofdayXcourseXmodel_MISSING.csv')

        self.assertEqual(str(df), R)
Esempio n. 18
0
    def test01(self):
        """confidence interval error bars specified"""

        R = {
            'aggregate':
            'ci',
            'clevels': [1],
            'fname':
            r'output/interaction_plot(WORDS~AGE_X_CONDITION,yerr=95% ci).png',
            'maintitle':
            'WORDS by AGE * CONDITION',
            'numcols':
            1,
            'numrows':
            1,
            'rlevels': [1],
            'subplot_titles': [''],
            'xmaxs': [1.5],
            'xmins': [-0.5],
            'y': [[[11.0, 14.8], [7.0, 6.5], [13.4, 17.6], [12.0, 19.3],
                   [6.9, 7.6]]],
            'yerr': [[]],
            'ymin':
            0.0,
            'ymax':
            27.183257964740832
        }

        # a simple plot
        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl(r'data/words~ageXcondition.csv')
        D = df.interaction_plot('WORDS',
                                'AGE',
                                seplines='CONDITION',
                                output_dir='output',
                                yerr='ci')

        self.assertEqual(D['aggregate'], R['aggregate'])
        self.assertEqual(D['clevels'], R['clevels'])
        self.assertEqual(D['rlevels'], R['rlevels'])
        self.assertEqual(D['numcols'], R['numcols'])
        self.assertEqual(D['numrows'], R['numrows'])
        self.assertEqual(D['fname'], R['fname'])
        self.assertEqual(D['maintitle'], R['maintitle'])
        self.assertEqual(D['subplot_titles'], R['subplot_titles'])
        self.assertAlmostEqual(D['ymin'], R['ymin'])
        self.assertAlmostEqual(D['ymax'], R['ymax'])

        for d, r in zip(np.array(D['y']).flat, np.array(R['y']).flat):
            self.assertAlmostEqual(d, r)

        for d, r in zip(np.array(D['yerr']).flat, np.array(R['yerr']).flat):
            self.assertAlmostEqual(d, r)
Esempio n. 19
0
    def test0(self):
        R = [[4.0, 14.0, 17.0, 12.0, 15.0, 10.0, 9.0, 5.0, 6.0, 8.0],
             [3.0, 5.0, 7.0, 9.0, 11.0, 13.0, 15.0, 17.0, 19.0, 21.0, 23.0]]

        df = DataFrame()
        df.read_tbl('data/words~ageXcondition.csv')
        D = df.histogram('WORDS')
        D = [D['values'], D['bin_edges']]

        for (d, r) in zip(_flatten(D), _flatten(R)):
            self.assertAlmostEqual(d, r)
Esempio n. 20
0
    def test6(self):
        R = {
            'aggregate':
            'ci',
            'clevels': [1],
            'fname':
            r'output/interaction_plot(SUPPRESSION~CYCLE_X_PHASE,yerr=95% ci).png',
            'maintitle':
            'SUPPRESSION by CYCLE * PHASE',
            'numcols':
            1,
            'numrows':
            2,
            'rlevels': ['I', 'II'],
            'subplot_titles': ['I', 'II'],
            'xmaxs': [4.1749999999999998, 4.1749999999999998],
            'xmins': [0.82499999999999996, 0.82499999999999996],
            'y': [[12.3375, 16.03333333, 16., 14.92916667],
                  [18.43333333, 25.64166667, 26.1375, 26.8125]],
            'yerr': [[3.18994762, 3.20528834, 3.26882751, 3.53477953],
                     [3.98429064, 4.5950803, 4.9514978, 4.97429769]],
            'ymax':
            64.8719707118471,
            'ymin':
            0.0
        }

        # generate yerr
        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl(r'data/suppression~subjectXgroupXageXcycleXphase.csv')
        D = df.interaction_plot('SUPPRESSION',
                                'CYCLE',
                                sepyplots='PHASE',
                                yerr='ci',
                                output_dir='output')

        self.assertEqual(D['aggregate'], R['aggregate'])
        self.assertEqual(D['clevels'], R['clevels'])
        self.assertEqual(D['rlevels'], R['rlevels'])
        self.assertEqual(D['numcols'], R['numcols'])
        self.assertEqual(D['numrows'], R['numrows'])
        self.assertEqual(D['fname'], R['fname'])
        self.assertEqual(D['maintitle'], R['maintitle'])
        self.assertEqual(D['subplot_titles'], R['subplot_titles'])
        self.assertAlmostEqual(D['ymin'], R['ymin'])
        self.assertAlmostEqual(D['ymax'], R['ymax'])

        for d, r in zip(np.array(D['y']).flat, np.array(R['y']).flat):
            self.assertAlmostEqual(d, r)

        for d, r in zip(np.array(D['yerr']).flat, np.array(R['yerr']).flat):
            self.assertAlmostEqual(d, r)
Esempio n. 21
0
    def test4(self):
        R = {
            'aggregate':
            None,
            'clevels':
            ['adjective', 'counting', 'imagery', 'intention', 'rhyming'],
            'fname':
            r'output/interaction_plot(WORDS~AGE_X_CONDITION).png',
            'maintitle':
            'WORDS by AGE * CONDITION',
            'numcols':
            5,
            'numrows':
            1,
            'rlevels': [1],
            'subplot_titles':
            ['adjective', 'counting', 'imagery', 'intention', 'rhyming'],
            'xmaxs': [1.5, 1.5, 1.5, 1.5, 1.5],
            'xmins': [-0.5, -0.5, -0.5, -0.5, -0.5],
            'y': [[11., 14.8], [7., 6.5], [13.4, 17.6], [12., 19.3],
                  [6.9, 7.6]],
            'yerr': [[], [], [], [], []],
            'ymax':
            27.183257964740832,
            'ymin':
            0.0
        }

        # a simple plot
        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl(r'data/words~ageXcondition.csv')
        D = df.interaction_plot('WORDS',
                                'AGE',
                                sepxplots='CONDITION',
                                output_dir='output')

        self.assertEqual(D['aggregate'], R['aggregate'])
        self.assertEqual(D['clevels'], R['clevels'])
        self.assertEqual(D['rlevels'], R['rlevels'])
        self.assertEqual(D['numcols'], R['numcols'])
        self.assertEqual(D['numrows'], R['numrows'])
        self.assertEqual(D['fname'], R['fname'])
        self.assertEqual(D['maintitle'], R['maintitle'])
        self.assertEqual(D['subplot_titles'], R['subplot_titles'])
        self.assertAlmostEqual(D['ymin'], R['ymin'])
        self.assertAlmostEqual(D['ymax'], R['ymax'])

        for d, r in zip(np.array(D['y']).flat, np.array(R['y']).flat):
            self.assertAlmostEqual(d, r)

        for d, r in zip(np.array(D['yerr']).flat, np.array(R['yerr']).flat):
            self.assertAlmostEqual(d, r)
Esempio n. 22
0
    def test1(self):

        df=DataFrame()
        df.read_tbl('data/suppression~subjectXgroupXageXcycleXphase.csv')
        ##df['RANDDATA'][42]='nan'

        R=df.validate({'GROUP' : lambda x: x in ['AA', 'AB', 'LAB'],
                         'SEX' : lambda x: x in [0,1],
                 'SUPPRESSION' : lambda x: x < 1000.,
                    'RANDDATA' : lambda x: _isfloat(x),
                     'SUBJECT' : _isint}, verbose=False, report=False)
        self.assertTrue(R)
Esempio n. 23
0
    def test02(self):
        """using loftus and masson error bars"""

        # a simple plot
        df = DataFrame()
        df.read_tbl(r'data/words~ageXcondition.csv')
        aov = df.anova('WORDS', wfactors=['AGE', 'CONDITION'])
        aov.plot('WORDS',
                 'AGE',
                 seplines='CONDITION',
                 errorbars='ci',
                 output_dir='output')
Esempio n. 24
0
    def test0(self):

        df=DataFrame()
        df.read_tbl('data/suppression~subjectXgroupXageXcycleXphase.csv')
        df['RANDDATA'][42]=0.

        R=df.validate({'GROUP' : lambda x: x in ['AA', 'AB', 'LAB'],
                         'SEX' : lambda x: x in [0],
                 'SUPPRESSION' : lambda x: x < 62.,
                    'RANDDATA' : lambda x: x!=0,
                     'SUBJECT' : _isint}, verbose=False, report=False)
        self.assertFalse(R)
Esempio n. 25
0
    def test3(self):

        R = np.array(
            [[7.16666667, 6.5, 4., 3.22222222, 2.88888889, 1.55555556]])

        df = DataFrame()
        df.read_tbl('data/error~subjectXtimeofdayXcourseXmodel_MISSING.csv')
        pt = df.pivot('ERROR', cols=['TIMEOFDAY', 'COURSE'])

        self.assertEqual(str(R.shape), str(pt.shape))

        for r, L in zip(R.flatten(), pt.flatten()):
            self.assertAlmostEqual(r, L)
Esempio n. 26
0
    def test2(self):
        R = """\
GROUP=AA,   GROUP=AA,   GROUP=AB,   GROUP=AB,   GROUP=LAB,   GROUP=LAB, 
 AGE=old    AGE=young    AGE=old    AGE=young    AGE=old     AGE=young  
=======================================================================
   22.188       9.813      29.188      10.041       34.141       11.875 """
        df = DataFrame()
        df.read_tbl('data/suppression~subjectXgroupXageXcycleXphase.csv')
        pt = df.pivot('SUPPRESSION',
                  cols=['GROUP', 'AGE'])
        df2 = pt.to_dataframe()
       
        self.assertEqual(str(df2),R)
Esempio n. 27
0
    def test2(self):
        R = [
            7.16666666667, 6.5, 4.0, 3.22222222222, 2.88888888889,
            1.55555555556
        ]

        df = DataFrame()
        df.read_tbl('data/error~subjectXtimeofdayXcourseXmodel_MISSING.csv')
        pt = df.pivot('ERROR', cols=['TIMEOFDAY', 'COURSE'])
        pt_flat = pt.flatten()

        for r, d in zip(R, pt_flat):
            self.assertAlmostEqual(r, d)
Esempio n. 28
0
    def test4(self):

        R = """\
avg(ERROR)
TIMEOFDAY   COURSE=C1   COURSE=C2   COURSE=C3 
=============================================
T2              3.222       2.889       1.556 """

        df = DataFrame()
        df.read_tbl('data/error~subjectXtimeofdayXcourseXmodel_MISSING.csv')
        pt = df.pivot('ERROR', ['TIMEOFDAY'], ['COURSE'])

        self.assertEqual(R, str(pt[-1:]))
Esempio n. 29
0
    def test5(self):

        R = """\
avg(ERROR)
TIMEOFDAY   COURSE=C1 
=====================
T1              7.167 
T2              3.222 """

        df = DataFrame()
        df.read_tbl('data/error~subjectXtimeofdayXcourseXmodel_MISSING.csv')
        pt = df.pivot('ERROR', ['TIMEOFDAY'], ['COURSE'])
        self.assertEqual(R, str(pt[:, 0]))
Esempio n. 30
0
    def test2(self):

        R = [
            7.16666666667, 6.5, 4.0, 3.22222222222, 2.88888888889,
            1.55555555556
        ]

        df = DataFrame()
        df.read_tbl('data/error~subjectXtimeofdayXcourseXmodel_MISSING.csv')
        pt = df.pivot('ERROR', ['TIMEOFDAY', 'COURSE'])

        for r, L in zip(R, pt.flat):
            self.assertEqual('%.5f' % r, '%.5f' % L)