##// END OF EJS Templates
Merge pull request #2007 from ccordoba12/i1920...
Merge pull request #2007 from ccordoba12/i1920 Add custom_control and custom_page_control variables to override the Qt widgets used by qtconsole. This will let other project to easily provide its own widgets, the work was driven by better Spyder integration with IPython, but can benefit other tools as well. Closes #1920.

File last commit:

r7276:bf42bf0f
r7707:4abd7698 merge
Show More
test_rmagic.py
62 lines | 2.1 KiB | text/x-python | PythonLexer
Jonathan Taylor
added tests of R line and cell magics
r7215 import numpy as np
from IPython.core.interactiveshell import InteractiveShell
from IPython.extensions import rmagic
Jonathan Taylor
return vectors instead of structured arrays when 1d and no names
r7268 import nose.tools as nt
Jonathan Taylor
added tests of R line and cell magics
r7215
Jonathan Taylor
fixing InteractiveShell instantiation in test
r7222 ip = get_ipython()
ip.magic('load_ext rmagic')
Jonathan Taylor
added tests of R line and cell magics
r7215
def test_push():
rm = rmagic.RMagics(ip)
ip.push({'X':np.arange(5), 'Y':np.array([3,5,4,6,7])})
ip.run_line_magic('Rpush', 'X Y')
np.testing.assert_almost_equal(np.asarray(rm.r('X')), ip.user_ns['X'])
np.testing.assert_almost_equal(np.asarray(rm.r('Y')), ip.user_ns['Y'])
def test_pull():
rm = rmagic.RMagics(ip)
rm.r('Z=c(11:20)')
ip.run_line_magic('Rpull', 'Z')
np.testing.assert_almost_equal(np.asarray(rm.r('Z')), ip.user_ns['Z'])
np.testing.assert_almost_equal(ip.user_ns['Z'], np.arange(11,21))
Jonathan Taylor
return vectors instead of structured arrays when 1d and no names
r7268 def test_Rconverter():
datapy= np.array([(1, 2.9, 'a'), (2, 3.5, 'b'), (3, 2.1, 'c')],
dtype=[('x', '<i4'), ('y', '<f8'), ('z', '|S1')])
ip.user_ns['datapy'] = datapy
ip.run_line_magic('Rpush', 'datapy')
# test to see if a copy is being made
Jonathan Taylor
added Rget, and options to try to return strucutred array
r7276 v = ip.run_line_magic('Rget', '-d datapy')
w = ip.run_line_magic('Rget', '-d datapy')
Jonathan Taylor
return vectors instead of structured arrays when 1d and no names
r7268 np.testing.assert_almost_equal(w['x'], v['x'])
np.testing.assert_almost_equal(w['y'], v['y'])
nt.assert_true(np.all(w['z'] == v['z']))
np.testing.assert_equal(id(w.data), id(v.data))
nt.assert_equal(w.dtype, v.dtype)
Jonathan Taylor
added Rget, and options to try to return strucutred array
r7276 ip.run_cell_magic('R', ' -d datar datar=datapy', '')
Jonathan Taylor
return vectors instead of structured arrays when 1d and no names
r7268
Jonathan Taylor
added Rget, and options to try to return strucutred array
r7276 u = ip.run_line_magic('Rget', ' -d datar')
Jonathan Taylor
return vectors instead of structured arrays when 1d and no names
r7268 np.testing.assert_almost_equal(u['x'], v['x'])
np.testing.assert_almost_equal(u['y'], v['y'])
nt.assert_true(np.all(u['z'] == v['z']))
np.testing.assert_equal(id(u.data), id(v.data))
nt.assert_equal(u.dtype, v.dtype)
Jonathan Taylor
added tests of R line and cell magics
r7215
def test_cell_magic():
ip.push({'x':np.arange(5), 'y':np.array([3,5,4,6,7])})
snippet = '''
print(summary(a))
Jonathan Taylor
return vectors instead of structured arrays when 1d and no names
r7268 plot(x, y, pch=23, bg='orange', cex=2)
plot(x, x)
print(summary(x))
Jonathan Taylor
added tests of R line and cell magics
r7215 r = resid(a)
xc = coef(a)
'''
Jonathan Taylor
removed %Rinline, %R has been converted to line_cell_magic
r7217 ip.run_cell_magic('R', '-i x,y -o r,xc a=lm(y~x)', snippet)
Jonathan Taylor
added tests of R line and cell magics
r7215 np.testing.assert_almost_equal(ip.user_ns['xc'], [3.2, 0.9])
np.testing.assert_almost_equal(ip.user_ns['r'], np.array([-0.2, 0.9, -1. , 0.1, 0.2]))