Revision: 426
http://rpy.svn.sourceforge.net/rpy/?rev=426&view=rev
Author: lgautier
Date: 2008-03-08 07:35:22 -0800 (Sat, 08 Mar 2008)
Log Message:
-----------
- Added tests
- Fixed subsetting
Modified Paths:
--------------
trunk/sandbox/rpy_nextgen/rpy/robjects/__init__.py
Added Paths:
-----------
trunk/sandbox/rpy_nextgen/rpy/robjects/tests/testRobjects.py
Modified: trunk/sandbox/rpy_nextgen/rpy/robjects/__init__.py
===================================================================
--- trunk/sandbox/rpy_nextgen/rpy/robjects/__init__.py 2008-03-08 15:34:09 UTC
(rev 425)
+++ trunk/sandbox/rpy_nextgen/rpy/robjects/__init__.py 2008-03-08 15:35:22 UTC
(rev 426)
@@ -95,9 +95,9 @@
- an index is itself a vector of elements to select
"""
for a in args:
- if not isinstance(a, rinterface.SexpVector):
+ if not isinstance(a, Rvector):
raise(TypeError("Subset only take R vectors"))
- res = rinterface.globalEnv.get("[")([self._sexp, ] + args, **kwargs)
+ res = r["["](*([self._sexp, ] + list(args)), **kwargs)
return res
def __getitem__(self, i):
Added: trunk/sandbox/rpy_nextgen/rpy/robjects/tests/testRobjects.py
===================================================================
--- trunk/sandbox/rpy_nextgen/rpy/robjects/tests/testRobjects.py
(rev 0)
+++ trunk/sandbox/rpy_nextgen/rpy/robjects/tests/testRobjects.py
2008-03-08 15:35:22 UTC (rev 426)
@@ -0,0 +1,47 @@
+import unittest
+import rpy.robjects as robjects
+import array
+
+class RvectorTestCase(unittest.TestCase):
+
+ def testGetItem(self):
+ letters_R = robjects.r["letters"]
+ self.assertTrue(isinstance(letters_R, robjects.Rvector))
+ letters = (('a', 0), ('b', 1), ('c', 2), ('x', 23), ('y', 24), ('z',
25))
+ for l, i in letters:
+ self.assertTrue(letters_R[i] == l)
+
+ as_list_R = robjects.r["as.list"]
+ seq_R = robjects.r["seq"]
+
+ mySeq = seq_R(0, 10)
+
+ myList = as_list_R(mySeq)
+
+ for i, li in enumerate(myList):
+ self.assertEquals(i, myList[i][0])
+
+ def testOperators(self):
+ seq_R = robjects.r["seq"]
+ mySeq = seq_R(0, 10)
+ mySeqAdd = mySeq + 2
+ for i, li in enumerate(mySeq):
+ self.assertEquals(i + 2, mySeqAdd[i])
+
+ mySeqAdd = mySeq + mySeq
+ for i, li in enumerate(mySeq):
+ self.assertEquals(mySeq[i] * 2, mySeqAdd[i])
+
+ def testSubset(self):
+ seq_R = robjects.r["seq"]
+ mySeq = seq_R(0, 10)
+ # R indexing starts at one
+ myIndex = robjects.Rvector(array.array('i', range(1, 11, 2)))
+
+ mySubset = mySeq.subset(myIndex)
+ for i, si in enumerate(myIndex):
+ self.assertEquals(mySeq[si-1], mySubset[i])
+
+
+if __name__ == '__main__':
+ unittest.main()
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
rpy-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rpy-list