Skip to content

Commit b302c78

Browse files
committed
added test code for rbase and changed rbase to return None rather than error out on R-type objects that lack an extracted attribute
1 parent 93839a3 commit b302c78

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

rforecast/rbase.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def colnames(x):
1010
try:
1111
out = robjects.r('colnames')(x)
1212
if out is robjects.NULL:
13-
raise TypeError('Object does not have colnames attribute.')
13+
return None
1414
else:
1515
return list(out)
1616
except NotImplementedError:
@@ -20,7 +20,7 @@ def dim(x):
2020
try:
2121
out = robjects.r('dim')(x)
2222
if out is robjects.NULL:
23-
raise TypeError('Object does not have dim attribute.')
23+
return None
2424
else:
2525
return list(out)
2626
except NotImplementedError:

test/test_rbase.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import unittest
2+
from rpy2 import robjects
3+
from rforecast import rbase, ts_io, converters, wrappers
4+
5+
class rbaseTestCase(unittest.TestCase):
6+
7+
def setUp(self):
8+
self.oil = ts_io.read_series('data/oil.csv')
9+
self.oil_ts = converters.series_as_ts(self.oil)
10+
self.mat = converters.matrix([[1,2,3],[2,3,4]])
11+
self.acc = wrappers.accuracy(wrappers.thetaf(self.oil_ts))
12+
13+
def testCls(self):
14+
self.assertTrue('ts' in rbase.cls(self.oil_ts))
15+
self.assertRaises(TypeError, rbase.cls, self.oil)
16+
17+
def testDim(self):
18+
self.assertListEqual(rbase.dim(self.mat), [2, 3])
19+
self.assertTrue(rbase.dim(self.oil_ts) is None)
20+
self.assertRaises(TypeError, rbase.dim, self.oil)
21+
22+
def testColnames(self):
23+
self.assertRaises(TypeError, rbase.colnames, self.oil)
24+
self.assertTrue(rbase.colnames(self.mat) is None)
25+
self.assertTrue('MASE' in rbase.colnames(self.acc))
26+
27+

0 commit comments

Comments
 (0)