changeset 22763:57e82b74f89b

maint: Periodic merge of stable to default.
author Rik <rik@octave.org>
date Mon, 14 Nov 2016 12:48:59 -0800
parents c4d80b9d2898 (current diff) 1c67938a15f1 (diff)
children d261dcd73dcf
files .hgtags configure.ac libinterp/corefcn/data.cc libinterp/corefcn/toplev.cc scripts/plot/appearance/datetick.m
diffstat 5 files changed, 58 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Mon Nov 14 12:12:02 2016 -0800
+++ b/.hgtags	Mon Nov 14 12:48:59 2016 -0800
@@ -106,3 +106,4 @@
 9d50627498141d150755d18ab8e71a3220e40147 rc-4-2-0-2
 96817eafc7997e19a1f89873c05098e08fea1c02 rc-4-2-0-3
 69ac19073ae630b276ff7788b78f72782f281657 rc-4-2-0-4
+708a4fcb73820484a3af94dd4d18453c4d9b29c9 release-4-2-0
--- a/configure.ac	Mon Nov 14 12:12:02 2016 -0800
+++ b/configure.ac	Mon Nov 14 12:48:59 2016 -0800
@@ -33,7 +33,7 @@
 
 OCTAVE_COPYRIGHT="Copyright (C) 2016 John W. Eaton and others."
 
-OCTAVE_RELEASE_DATE="2016-11-08"
+OCTAVE_RELEASE_DATE="2016-11-13"
 
 ## The "API version" is used as a way of checking that interfaces in the
 ## liboctave and libinterp libraries haven't changed in a backwardly
--- a/libinterp/corefcn/data.cc	Mon Nov 14 12:12:02 2016 -0800
+++ b/libinterp/corefcn/data.cc	Mon Nov 14 12:48:59 2016 -0800
@@ -3277,6 +3277,48 @@
   return ovl (args(0).is_integer_type ());
 }
 
+/*
+%!assert (isinteger (int8 (16)))
+%!assert (isinteger (int16 (16)))
+%!assert (isinteger (int32 (16)))
+%!assert (isinteger (int64 (16)))
+
+%!assert (isinteger (uint8 (16)))
+%!assert (isinteger (uint16 (16)))
+%!assert (isinteger (uint32 (16)))
+%!assert (isinteger (uint64 (16)))
+
+%!assert (isinteger (intmax ("int8")))
+%!assert (isinteger (intmax ("int16")))
+%!assert (isinteger (intmax ("int32")))
+%!assert (isinteger (intmax ("int64")))
+
+%!assert (isinteger (intmax ("uint8")))
+%!assert (isinteger (intmax ("uint16")))
+%!assert (isinteger (intmax ("uint32")))
+%!assert (isinteger (intmax ("uint64")))
+
+%!assert (isinteger (intmin ("int8")))
+%!assert (isinteger (intmin ("int16")))
+%!assert (isinteger (intmin ("int32")))
+%!assert (isinteger (intmin ("int64")))
+
+%!assert (isinteger (intmin ("uint8")))
+%!assert (isinteger (intmin ("uint16")))
+%!assert (isinteger (intmin ("uint32")))
+%!assert (isinteger (intmin ("uint64")))
+
+%!assert (isinteger (uint8 ([1:10])))
+%!assert (isinteger (uint8 ([1:10; 1:10])))
+
+%!assert (! isinteger (16))
+%!assert (! isinteger ("parrot"))
+%!assert (! isinteger ([1, 2, 3]))
+
+%!error isinteger ()
+%!error isinteger ("multiple", "parameters")
+*/
+
 DEFUN (iscomplex, args, ,
        doc: /* -*- texinfo -*-
 @deftypefn {} {} iscomplex (@var{x})
--- a/libinterp/corefcn/toplev.cc	Mon Nov 14 12:12:02 2016 -0800
+++ b/libinterp/corefcn/toplev.cc	Mon Nov 14 12:48:59 2016 -0800
@@ -667,12 +667,12 @@
 
 /*
 %!assert (ischar (__octave_config_info__ ("version")))
+%!assert (__octave_config_info__ ("version"), OCTAVE_VERSION ())
 %!test
 %! x = __octave_config_info__ ();
 %! assert (isstruct (x));
 %! assert (! isempty (x));
-
-%!assert (__octave_config_info__ ("fftw_version"), __octave_config_info__ ("fftwf_version"))
+%! assert (x.version, OCTAVE_VERSION ());
 
 %!error __octave_config_info__ (1, 2)
 */
--- a/scripts/plot/appearance/datetick.m	Mon Nov 14 12:12:02 2016 -0800
+++ b/scripts/plot/appearance/datetick.m	Mon Nov 14 12:48:59 2016 -0800
@@ -197,6 +197,7 @@
       nticks = (xmax - xmin) / sep + 1;
       xmin *= scl;
       xmax *= scl;
+      ticks = xmin + [0 : nticks - 1] / (nticks - 1) * (xmax - xmin);
     else
       [ymin, mmin, dmin] = datevec (xmin);
       [ymax, mmax, dmax] = datevec (xmax);
@@ -213,18 +214,20 @@
         ticks = xmin + [0 : nticks - 1] / (nticks - 1) * (xmax - xmin);
       elseif (maxyear - minyear < N)
         sep = __calc_tick_sep__ (minmonth, maxmonth);
+        minyear = floor (minyear);
         minmonth = sep * floor (minmonth / sep);
+        minmonth = ifelse (minmonth == 0, 1, minmonth);
         maxmonth = sep * ceil (maxmonth / sep);
-        xmin = datenum (ymin, minmonth, 1);
-        tick_years = datevec (datenum (floor (minyear), minmonth:maxmonth, 1))(:,1)';
-        tick_month = 12 - mod (-(minmonth:maxmonth), 12);
-        ticks = xmin + [0 cumsum(eomday(tick_years, tick_month))(sep:sep:end)];
+        rangemonth = (minmonth:sep:maxmonth)';
+        ticks = datenum ([repmat(minyear, size(rangemonth)), ...
+                          rangemonth, ...
+                          ones(size (rangemonth))]);
       else
-        sep = __calc_tick_sep__ (minyear , maxyear);
-        xmin = datenum (sep * floor (minyear / sep), 1, 1);
-        xmax = datenum (sep * ceil (maxyear / sep), 1, 1);
-        nticks = ceil (maxyear / sep) - floor (minyear / sep) + 1;
-        ticks = xmin + [0 : nticks - 1] / (nticks - 1) * (xmax - xmin);
+        sep = __calc_tick_sep__ (minyear, maxyear);
+        minyear = sep * floor (minyear / sep);
+        maxyear = sep * ceil (maxyear / sep);
+        rangeyear = (minyear:sep:maxyear)';
+        ticks = datenum ([rangeyear, ones(rows(rangeyear),2)]);
       endif
     endif
   endif