Mercurial > octave-nkf
changeset 12645:d3ccd2e37de6 stable
Allow scalar integer to logical conversion (bug #33219)
* ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::bool_value): New funtion.
* ov-bool-mat.cc: New tests.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 04 May 2011 13:59:34 -0400 |
parents | f96b9b9f141b |
children | eaba9d671fb7 |
files | src/ov-bool-mat.cc src/ov-intx.h |
diffstat | 2 files changed, 20 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ov-bool-mat.cc Sun May 01 11:39:50 2011 -0700 +++ b/src/ov-bool-mat.cc Wed May 04 13:59:34 2011 -0400 @@ -575,3 +575,15 @@ return retval; } + +/* +%!shared m, s, c +%! m = eye (2) != 0; +%! s = !0; +%! c = {"double", "single", "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64", "logical"}; +%!test +%! for i = 1:numel (c) +%! assert (logical (eye (2, c{i})), m) +%! assert (logical (eye (1, c{i})), s) +%! endfor +*/
--- a/src/ov-intx.h Sun May 01 11:39:50 2011 -0700 +++ b/src/ov-intx.h Wed May 04 13:59:34 2011 -0400 @@ -564,6 +564,14 @@ return retval; } + bool bool_value (bool warn = false) const + { + if (warn && scalar != 0.0 && scalar != 1.0) + gripe_logical_conversion (); + + return scalar.bool_value (); + } + boolNDArray bool_array_value (bool warn = false) const {