This file is indexed.

/usr/share/doc/python-rpy-doc/examples/tests/test_array.py is in python-rpy-doc 1.0.3-20.

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
from __future__ import nested_scopes

import unittest
import sys
sys.path.insert(1, "..")
from rpy import *

idx = r['[[']
idx.autoconvert(BASIC_CONVERSION)

def to_r(obj):
    r.list.autoconvert(NO_CONVERSION)
    idx.autoconvert(NO_CONVERSION)
    o = idx(r.list(obj),1)
    idx.autoconvert(BASIC_CONVERSION)
    return o

def all_equal_3d(vec1, vec2):
    
    if len(vec1) != len(vec2): return False
    
    for i in range(len(vec1)):
        
        if len(vec1[i]) != len(vec2[i]): return False
        
        for j in range( len(vec1[i]) ):
            
            if len(vec1[i][j])!=len(vec2[i][j]): return False

            for k in range( len(vec1[i][j]) ):
                
                if vec1[i][j][k] != vec2[i][j][k]: return False

            
    return True
 

class ArrayTestCase(unittest.TestCase):

    def setUp(self):
        self.py = [[[0,6,12,18],[2,8,14,20],[4,10,16,22]],
                   [[1,7,13,19],[3,9,15,21],[5,11,17,23]]]
        set_default_mode(NO_DEFAULT)
        try:
            r.array.autoconvert(NO_CONVERSION)
            self.ra = r.array(range(24),dim=(2,3,4))
        finally:
            r.array.autoconvert(BASIC_CONVERSION)

    def testConversionToPy(self):
        self.failUnless(all_equal_3d(self.py,self.ra.as_py()),
                        'wrong conversion to Python')

    def testConversionToR(self):
        py_c = to_r(self.py)
        self.failUnless(r.all_equal(self.ra, py_c),
                        'R array not equal')
        
    def testDimensions(self):
        self.failUnless(r.dim(self.ra) == [len(self.py), len(self.py[0]),
                                           len(self.py[0][0])],
                        'wrong dimensions')

    def testElements(self):
        msg = 'Numeric array not equal'
        self.failUnless(self.py[0][0][0] == idx(self.ra, 1,1,1), msg)
        self.failUnless(self.py[1][2][3] == idx(self.ra, 2,3,4), msg)
        self.failUnless(self.py[1][1][2] == idx(self.ra, 2,2,3), msg)
        self.failUnless(self.py[1][0][3] == idx(self.ra, 2,1,4), msg)

    def testPyOutOfBounds(self):
        self.failUnlessRaises(IndexError, lambda: self.py[5][5][5])
                           
    def testROutOfBounds(self):
        self.failUnlessRaises(RPyException, lambda: idx(self.ra, 5,5,5))

    def testBigArray(self):
        a = r.array(range(100000), dim=(100,1000))
        self.failUnless(a[10][10] and a[80][900])
        
if __name__ == '__main__':
    unittest.main()