This file is indexed.

/usr/lib/python3/dist-packages/rpy2/robjects/tests/testDataFrame.py is in python3-rpy2 2.8.5-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import unittest
import rpy2.robjects as robjects
rinterface = robjects.rinterface
import rpy2.rlike.container as rlc

import array
import csv, tempfile

class DataFrameTestCase(unittest.TestCase):

    def testNewFromTaggedList(self):
        letters = robjects.r.letters        
        numbers = robjects.r('1:26')
        df = robjects.DataFrame(rlc.TaggedList((letters, numbers),
                                               tags = ('letters', 'numbers')))

        self.assertEqual("data.frame", df.rclass[0])

    def testNewFromRObject(self):
        numbers = robjects.r('1:5')
        self.assertRaises(ValueError, robjects.DataFrame, numbers)

        rfunc = robjects.r('sum')
        self.assertRaises(ValueError, robjects.DataFrame, rfunc)

        rdataf = robjects.r('data.frame(a=1:2, b=c("a", "b"))')
        dataf = robjects.DataFrame(rdataf)        

    def testNewFromOrdDict(self):
        od = rlc.OrdDict(c=(('a', robjects.IntVector((1,2))),
                            ('b', robjects.StrVector(('c', 'd')))
                            ))
        dataf = robjects.DataFrame(od)
        self.assertEqual(1, dataf.rx2('a')[0])
        
    def testDim(self):
        letters = robjects.r.letters        
        numbers = robjects.r('1:26')
        df = robjects.DataFrame(rlc.TaggedList((letters, numbers),
                                               tags = ('letters', 'numbers')))
        self.assertEqual(26, df.nrow)
        self.assertEqual(2, df.ncol)

    def testFrom_csvfile(self):
        column_names = ('letter', 'value')
        data = (column_names,
                ('a', 1),
                ('b', 2),
                ('c', 3))
        fh = tempfile.NamedTemporaryFile(mode = "w", delete = False)
        csv_w = csv.writer(fh)
        csv_w.writerows(data)
        fh.close()
        dataf = robjects.DataFrame.from_csvfile(fh.name)
        self.assertEqual(column_names, tuple(dataf.names))
        self.assertEqual(3, dataf.nrow)
        self.assertEqual(2, dataf.ncol)

    def testTo_csvfile(self):
        fh = tempfile.NamedTemporaryFile(mode = "w", delete = False)
        fh.close()
        d = {'letter': robjects.StrVector('abc'),
             'value' : robjects.IntVector((1, 2, 3))}
        dataf = robjects.DataFrame(d)
        dataf.to_csvfile(fh.name)
        dataf = robjects.DataFrame.from_csvfile(fh.name)
        self.assertEqual(3, dataf.nrow)
        self.assertEqual(2, dataf.ncol)

    def testIter_col(self):
        dataf = robjects.r('data.frame(a=1:2, b=I(c("a", "b")))')
        col_types = [x.typeof for x in dataf.iter_column()]
        self.assertEqual(rinterface.INTSXP, col_types[0])
        self.assertEqual(rinterface.STRSXP, col_types[1])

    def testIter_row(self):
        dataf = robjects.r('data.frame(a=1:2, b=I(c("a", "b")))')
        rows = [x for x in dataf.iter_row()]
        self.assertEqual(1, rows[0][0][0])
        self.assertEqual("b", rows[1][1][0])

    def testColnames(self):
        dataf = robjects.r('data.frame(a=1:2, b=I(c("a", "b")))')
        self.assertEqual('1', dataf.rownames[0])
        self.assertEqual('2', dataf.rownames[1])

    def testColnames_set(self):
        dataf = robjects.r('data.frame(a=1:2, b=I(c("a", "b")))')
        dataf.colnames = robjects.StrVector('de')
        self.assertEqual('d', dataf.colnames[0])
        self.assertEqual('e', dataf.colnames[1])

    def testRownames(self):
        dataf = robjects.r('data.frame(a=1:2, b=I(c("a", "b")))')
        self.assertEqual('a', dataf.colnames[0])
        self.assertEqual('b', dataf.colnames[1])        

    def testRownames_set(self):
        dataf = robjects.r('data.frame(a=1:2, b=I(c("a", "b")))')
        dataf.rownames = robjects.StrVector('de')
        self.assertEqual('d', dataf.rownames[0])
        self.assertEqual('e', dataf.rownames[1])

    def testCbind(self):
        dataf = robjects.r('data.frame(a=1:2, b=I(c("a", "b")))')
        dataf = dataf.cbind(robjects.r('data.frame(a=1:2, b=I(c("a", "b")))'))
        self.assertEqual(4, dataf.ncol)
        self.assertEqual(2, len([x for x in dataf.colnames if x == 'a']))

    def testCbind(self):
        dataf = robjects.r('data.frame(a=1:2, b=I(c("a", "b")))')
        dataf = dataf.cbind(a = robjects.StrVector(("c", "d")))
        self.assertEqual(3, dataf.ncol)
        self.assertEqual(2, len([x for x in dataf.colnames if x == 'a']))

def suite():
    suite = unittest.TestLoader().loadTestsFromTestCase(DataFrameTestCase)
    return suite

if __name__ == '__main__':
     unittest.main()