##// END OF EJS Templates
Deal with ansi escape codes when nbconverting to latex...
Deal with ansi escape codes when nbconverting to latex Correctly deals with "reset" codes and short codes. Interprets blinking style as bold.

File last commit:

r8262:99483a20
r14215:0c6c304d
Show More
test_octavemagic.py
85 lines | 2.2 KiB | text/x-python | PythonLexer
"""Tests for Octave magics extension."""
import nose.tools as nt
try:
import oct2py
import numpy as np
import numpy.testing as npt
from IPython.extensions import octavemagic
except Exception as e:
__test__ = False
global octave
def setup():
ip = get_ipython()
global octave
octave = octavemagic.OctaveMagics(ip)
ip.register_magics(octave)
ip.ex('import numpy as np')
def test_octave_inline():
ip = get_ipython()
result = ip.run_line_magic('octave', '[1, 2, 3] + 1;')
npt.assert_array_equal(result, [[2, 3, 4]])
def test_octave_roundtrip():
ip = get_ipython()
ip.ex('x = np.arange(3); y = 4.5')
ip.run_line_magic('octave_push', 'x y')
ip.run_line_magic('octave', 'x = x + 1; y = y + 1;')
ip.run_line_magic('octave_pull', 'x y')
npt.assert_array_equal(ip.user_ns['x'], [[1, 2, 3]])
nt.assert_equal(ip.user_ns['y'], 5.5)
def test_octave_cell_magic():
ip = get_ipython()
ip.ex('x = 3; y = [1, 2]')
ip.run_cell_magic('octave', '-f png -s 400,400 -i x,y -o z',
'z = x + y;')
npt.assert_array_equal(ip.user_ns['z'], [[4, 5]])
def verify_publish_data(source, data):
if 'image/svg+xml' in data:
svg = data['image/svg+xml']
assert 'height="500px"' in svg
assert 'width="400px"' in svg
test_octave_plot.svgs_generated += 1
def test_octave_plot():
octave._publish_display_data = verify_publish_data
test_octave_plot.svgs_generated = 0
ip = get_ipython()
ip.run_cell_magic('octave', '-f svg -s 400,500',
'plot([1, 2, 3]); figure; plot([4, 5, 6]);')
nt.assert_equal(test_octave_plot.svgs_generated, 2)
def test_octavemagic_localscope():
ip = get_ipython()
ip.magic('load_ext octavemagic')
ip.push({'x':0})
ip.run_line_magic('octave', '-i x -o result result = x+1')
result = ip.user_ns['result']
nt.assert_equal(result, 1)
ip.run_cell('''def octavemagic_addone(u):
%octave -i u -o result result = u+1
return result''')
ip.run_cell('result = octavemagic_addone(1)')
result = ip.user_ns['result']
nt.assert_equal(result, 2)
nt.assert_raises(
KeyError,
ip.run_line_magic,
"octave",
"-i var_not_defined 1+1")