Mercurial > pytave
diff @pyobject/subsref.m @ 327:15c20ab4b80a
Do not automatically convert Python integer types to Octave (see issue #56)
* python_to_octave.cc (pytave::pyobj_to_octvalue): Drop automatic conversion of
Python int and long types to Octave.
* @pyobject/pyobject.m (pyobject.length, pyobject.size): Cast values to double.
Adapt %!tests to changes.
* @pyobject/cell.m, @pyobject/dummy.m, @pyobject/subsasgn.m,
@pyobject/subsref.m, pycall.cc, pyeval.cc: Adapt usage examples and %!tests
to changes.
author | Mike Miller <mtmiller@octave.org> |
---|---|
date | Sat, 13 Aug 2016 21:24:29 -0700 |
parents | a511d43e1fc0 |
children | fe6b9e618c98 |
line wrap: on
line diff
--- a/@pyobject/subsref.m Sat Aug 13 19:57:49 2016 -0700 +++ b/@pyobject/subsref.m Sat Aug 13 21:24:29 2016 -0700 @@ -114,13 +114,13 @@ %!test %! % list indexing -%! L = pyeval ("[10, 20]"); +%! L = pyeval ("[10., 20.]"); %! assert (L{1}, 10) %! assert (L{2}, 20) %!test %! % list indexing, slice -%! L = pyeval ("[10, 20, [30, 40]]"); +%! L = pyeval ("[10., 20., [30., 40.]]"); %! L2 = L{:}; %! assert (L2{1}, 10) %! assert (L2{2}, 20) @@ -129,14 +129,14 @@ %!test %! % list indexing, nested list -%! L = pyeval ("[1, 2, [10, 11, 12]]"); +%! L = pyeval ("[1., 2., [10., 11., 12.]]"); %! assert (L{2}, 2) %! assert (L{3}{1}, 10) %! assert (L{3}{3}, 12) %!test %! % list indexing, assign to vars -%! L = pyeval ("[1, 2, 'Octave']"); +%! L = pyeval ("[1., 2., 'Octave']"); %! [a, b, c] = L{:}; %! assert (a, 1) %! assert (b, 2) @@ -144,7 +144,7 @@ %!test %! % 2D array indexing -%! A = pyobject ([1 2; 3 4]); +%! A = pyobject ([1. 2.; 3. 4.]); %! assert (A{1, 1}, 1) %! assert (A{2, 1}, 3) %! assert (A{1, 2}, 2) @@ -158,17 +158,17 @@ %!test %! % dict: str key access -%! d = pyeval ("{'one':1, 5:5, 6:6}"); +%! d = pyeval ("{'one':1., 5:5, 6:6}"); %! assert (d{"one"}, 1) %!test %! % dict: integer key access -%! d = pyeval ("{5:42, 6:42}"); +%! d = pyeval ("{5:42., 6:42.}"); %! assert (d{6}, 42) %!test %! % dict: integer key should not subtract one -%! d = pyeval ("{5:40, 6:42}"); +%! d = pyeval ("{5:40., 6:42.}"); %! assert (d{6}, 42) %!test @@ -178,7 +178,7 @@ %!test %! % dict: make sure key ":" doesn't break anything -%! d = pyeval ("{'a':1, ':':2}"); +%! d = pyeval ("{'a':1., ':':2.}"); %! assert (d{'a'}, 1) %! assert (d{':'}, 2) @@ -199,7 +199,7 @@ %!test %! % callable can return something -%! s = pyeval ("set({1, 2})"); +%! s = pyeval ("set({1., 2.})"); %! v = s.pop (); %! assert (length (s) == 1) %! assert (v == 1 || v == 2) @@ -235,7 +235,7 @@ %!test %! % multiple return values: separate them -%! f = pyeval ("lambda: (1, 2, 3)"); +%! f = pyeval ("lambda: (1., 2., 3.)"); %! [a, b, c] = f (); %! assert (a, 1) %! assert (b, 2)