annotate scripts/general/isa.m @ 17987:edaa9ed49a1f

pt_BR.ts: Update Octave Portugese/Brazil translation. * pt_BR.ts: Update Octave Portugese/Brazil translation.
author Júlio Hoffimann Mendes <julio.hoffimann@gmail.com>
date Sat, 23 Nov 2013 08:09:22 -0800
parents d63878346099
children 446c46af4b42
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17744
d63878346099 maint: Update copyright notices for release.
John W. Eaton <jwe@octave.org>
parents: 17281
diff changeset
1 ## Copyright (C) 2004-2013 John W. Eaton
4950
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
2 ##
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
3 ## This file is part of Octave.
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
4 ##
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
6 ## under the terms of the GNU General Public License as published by
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 5307
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 5307
diff changeset
8 ## your option) any later version.
4950
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
9 ##
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
13 ## General Public License for more details.
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
14 ##
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 5307
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 5307
diff changeset
17 ## <http://www.gnu.org/licenses/>.
4950
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
18
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
19 ## -*- texinfo -*-
15808
68919cd4cd45 isa.m: Match docstring variable names and function prototype names.
Rik <rik@octave.org>
parents: 15742
diff changeset
20 ## @deftypefn {Function File} {} isa (@var{obj}, @var{classname})
68919cd4cd45 isa.m: Match docstring variable names and function prototype names.
Rik <rik@octave.org>
parents: 15742
diff changeset
21 ## Return true if @var{obj} is an object from the class @var{classname}.
15742
ac0964f482ae isa.m: Add "integer" class category for compatibility with Matlab.
Rik <rik@octave.org>
parents: 14363
diff changeset
22 ##
15808
68919cd4cd45 isa.m: Match docstring variable names and function prototype names.
Rik <rik@octave.org>
parents: 15742
diff changeset
23 ## @var{classname} may also be one of the following class categories:
15742
ac0964f482ae isa.m: Add "integer" class category for compatibility with Matlab.
Rik <rik@octave.org>
parents: 14363
diff changeset
24 ##
ac0964f482ae isa.m: Add "integer" class category for compatibility with Matlab.
Rik <rik@octave.org>
parents: 14363
diff changeset
25 ## @table @asis
17281
bc924baa2c4e doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents: 15808
diff changeset
26 ## @item @qcode{"float"}
bc924baa2c4e doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents: 15808
diff changeset
27 ## Floating point value comprising classes @qcode{"double"} and
bc924baa2c4e doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents: 15808
diff changeset
28 ## @qcode{"single"}.
15742
ac0964f482ae isa.m: Add "integer" class category for compatibility with Matlab.
Rik <rik@octave.org>
parents: 14363
diff changeset
29 ##
17281
bc924baa2c4e doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents: 15808
diff changeset
30 ## @item @qcode{"integer"}
15742
ac0964f482ae isa.m: Add "integer" class category for compatibility with Matlab.
Rik <rik@octave.org>
parents: 14363
diff changeset
31 ## Integer value comprising classes (u)int8, (u)int16, (u)int32, (u)int64.
ac0964f482ae isa.m: Add "integer" class category for compatibility with Matlab.
Rik <rik@octave.org>
parents: 14363
diff changeset
32 ##
17281
bc924baa2c4e doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents: 15808
diff changeset
33 ## @item @qcode{"numeric"}
15742
ac0964f482ae isa.m: Add "integer" class category for compatibility with Matlab.
Rik <rik@octave.org>
parents: 14363
diff changeset
34 ## Numeric value comprising either a floating point or integer value.
ac0964f482ae isa.m: Add "integer" class category for compatibility with Matlab.
Rik <rik@octave.org>
parents: 14363
diff changeset
35 ## @end table
11431
0d9640d755b1 Improve docstrings for all isXXX functions.
Rik <octave@nomad.inbox5.com>
parents: 10549
diff changeset
36 ## @seealso{class, typeinfo}
4950
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
37 ## @end deftypefn
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
38
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
39 ## Author: Paul Kienzle <pkienzle@users.sf.net>
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
40 ## Adapted-by: jwe
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
41
15808
68919cd4cd45 isa.m: Match docstring variable names and function prototype names.
Rik <rik@octave.org>
parents: 15742
diff changeset
42 function retval = isa (obj, classname)
7125
f084ba47812b [project @ 2007-11-08 02:29:23 by jwe]
jwe
parents: 7017
diff changeset
43
f084ba47812b [project @ 2007-11-08 02:29:23 by jwe]
jwe
parents: 7017
diff changeset
44 if (nargin != 2)
f084ba47812b [project @ 2007-11-08 02:29:23 by jwe]
jwe
parents: 7017
diff changeset
45 print_usage ();
f084ba47812b [project @ 2007-11-08 02:29:23 by jwe]
jwe
parents: 7017
diff changeset
46 endif
f084ba47812b [project @ 2007-11-08 02:29:23 by jwe]
jwe
parents: 7017
diff changeset
47
15808
68919cd4cd45 isa.m: Match docstring variable names and function prototype names.
Rik <rik@octave.org>
parents: 15742
diff changeset
48 if (strcmp (classname, "float"))
15742
ac0964f482ae isa.m: Add "integer" class category for compatibility with Matlab.
Rik <rik@octave.org>
parents: 14363
diff changeset
49 retval = isfloat (obj);
15808
68919cd4cd45 isa.m: Match docstring variable names and function prototype names.
Rik <rik@octave.org>
parents: 15742
diff changeset
50 elseif (strcmp (classname, "integer"))
15742
ac0964f482ae isa.m: Add "integer" class category for compatibility with Matlab.
Rik <rik@octave.org>
parents: 14363
diff changeset
51 retval = isinteger (obj);
15808
68919cd4cd45 isa.m: Match docstring variable names and function prototype names.
Rik <rik@octave.org>
parents: 15742
diff changeset
52 elseif (strcmp (classname, "numeric"))
15742
ac0964f482ae isa.m: Add "integer" class category for compatibility with Matlab.
Rik <rik@octave.org>
parents: 14363
diff changeset
53 retval = isnumeric (obj);
7772
ff717f2f9feb Treat numeric and float argument in the isa function.
David Bateman <dbateman@free.fr>
parents: 7125
diff changeset
54 else
15808
68919cd4cd45 isa.m: Match docstring variable names and function prototype names.
Rik <rik@octave.org>
parents: 15742
diff changeset
55 class_of_obj = class (obj);
68919cd4cd45 isa.m: Match docstring variable names and function prototype names.
Rik <rik@octave.org>
parents: 15742
diff changeset
56 retval = strcmp (class_of_obj, classname);
11431
0d9640d755b1 Improve docstrings for all isXXX functions.
Rik <octave@nomad.inbox5.com>
parents: 10549
diff changeset
57 if (! retval && isobject (obj))
15808
68919cd4cd45 isa.m: Match docstring variable names and function prototype names.
Rik <rik@octave.org>
parents: 15742
diff changeset
58 retval = __isa_parent__ (obj, classname);
9010
f914834836e7 Partial implementation of derived classes using the old form with "@" files.
rtshort@smoketree.phaselocked.com
parents: 8920
diff changeset
59 endif
7772
ff717f2f9feb Treat numeric and float argument in the isa function.
David Bateman <dbateman@free.fr>
parents: 7125
diff changeset
60 endif
7773
f83be206eca1 isa.m: simplify with persistent variables
Bill Denney
parents: 7772
diff changeset
61
4950
0896307b1b48 [project @ 2004-08-31 21:26:35 by jwe]
jwe
parents:
diff changeset
62 endfunction
7773
f83be206eca1 isa.m: simplify with persistent variables
Bill Denney
parents: 7772
diff changeset
63
14363
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
64
7777
221fe75ac5c9 isa.m: fix tests
John W. Eaton <jwe@octave.org>
parents: 7773
diff changeset
65 %!assert (isa ("char", "float"), false)
11449
93b8c7ca211f isa.m: Add tests against logical types
Rik <octave@nomad.inbox5.com>
parents: 11431
diff changeset
66 %!assert (isa (logical (1), "float"), false)
7777
221fe75ac5c9 isa.m: fix tests
John W. Eaton <jwe@octave.org>
parents: 7773
diff changeset
67 %!assert (isa (double (13), "float"), true)
221fe75ac5c9 isa.m: fix tests
John W. Eaton <jwe@octave.org>
parents: 7773
diff changeset
68 %!assert (isa (single (13), "float"), true)
221fe75ac5c9 isa.m: fix tests
John W. Eaton <jwe@octave.org>
parents: 7773
diff changeset
69 %!assert (isa (int8 (13), "float"), false)
221fe75ac5c9 isa.m: fix tests
John W. Eaton <jwe@octave.org>
parents: 7773
diff changeset
70 %!assert (isa (int16 (13), "float"), false)
221fe75ac5c9 isa.m: fix tests
John W. Eaton <jwe@octave.org>
parents: 7773
diff changeset
71 %!assert (isa (int32 (13), "float"), false)
221fe75ac5c9 isa.m: fix tests
John W. Eaton <jwe@octave.org>
parents: 7773
diff changeset
72 %!assert (isa (int64 (13), "float"), false)
221fe75ac5c9 isa.m: fix tests
John W. Eaton <jwe@octave.org>
parents: 7773
diff changeset
73 %!assert (isa (uint8 (13), "float"), false)
221fe75ac5c9 isa.m: fix tests
John W. Eaton <jwe@octave.org>
parents: 7773
diff changeset
74 %!assert (isa (uint16 (13), "float"), false)
221fe75ac5c9 isa.m: fix tests
John W. Eaton <jwe@octave.org>
parents: 7773
diff changeset
75 %!assert (isa (uint32 (13), "float"), false)
221fe75ac5c9 isa.m: fix tests
John W. Eaton <jwe@octave.org>
parents: 7773
diff changeset
76 %!assert (isa (uint64 (13), "float"), false)
7778
97b7ba81e1c3 isa.m: fnumeric -> numeric
David Bateman <dbateman@free.fr>
parents: 7777
diff changeset
77 %!assert (isa ("char", "numeric"), false)
11449
93b8c7ca211f isa.m: Add tests against logical types
Rik <octave@nomad.inbox5.com>
parents: 11431
diff changeset
78 %!assert (isa (logical (1), "numeric"), false)
7778
97b7ba81e1c3 isa.m: fnumeric -> numeric
David Bateman <dbateman@free.fr>
parents: 7777
diff changeset
79 %!assert (isa (double (13), "numeric"), true)
97b7ba81e1c3 isa.m: fnumeric -> numeric
David Bateman <dbateman@free.fr>
parents: 7777
diff changeset
80 %!assert (isa (single (13), "numeric"), true)
97b7ba81e1c3 isa.m: fnumeric -> numeric
David Bateman <dbateman@free.fr>
parents: 7777
diff changeset
81 %!assert (isa (int8 (13), "numeric"), true)
97b7ba81e1c3 isa.m: fnumeric -> numeric
David Bateman <dbateman@free.fr>
parents: 7777
diff changeset
82 %!assert (isa (int16 (13), "numeric"), true)
97b7ba81e1c3 isa.m: fnumeric -> numeric
David Bateman <dbateman@free.fr>
parents: 7777
diff changeset
83 %!assert (isa (int32 (13), "numeric"), true)
97b7ba81e1c3 isa.m: fnumeric -> numeric
David Bateman <dbateman@free.fr>
parents: 7777
diff changeset
84 %!assert (isa (int64 (13), "numeric"), true)
97b7ba81e1c3 isa.m: fnumeric -> numeric
David Bateman <dbateman@free.fr>
parents: 7777
diff changeset
85 %!assert (isa (uint8 (13), "numeric"), true)
97b7ba81e1c3 isa.m: fnumeric -> numeric
David Bateman <dbateman@free.fr>
parents: 7777
diff changeset
86 %!assert (isa (uint16 (13), "numeric"), true)
97b7ba81e1c3 isa.m: fnumeric -> numeric
David Bateman <dbateman@free.fr>
parents: 7777
diff changeset
87 %!assert (isa (uint32 (13), "numeric"), true)
97b7ba81e1c3 isa.m: fnumeric -> numeric
David Bateman <dbateman@free.fr>
parents: 7777
diff changeset
88 %!assert (isa (uint64 (13), "numeric"), true)
15742
ac0964f482ae isa.m: Add "integer" class category for compatibility with Matlab.
Rik <rik@octave.org>
parents: 14363
diff changeset
89 %!assert (isa (uint8 (13), "integer"), true)
ac0964f482ae isa.m: Add "integer" class category for compatibility with Matlab.
Rik <rik@octave.org>
parents: 14363
diff changeset
90 %!assert (isa (double (13), "integer"), false)
ac0964f482ae isa.m: Add "integer" class category for compatibility with Matlab.
Rik <rik@octave.org>
parents: 14363
diff changeset
91 %!assert (isa (single (13), "integer"), false)
12604
132c89bb44e3 maint: Refactor general/isXXX.m scripts to put input validation first.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
92
14363
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
93 %!assert (isa (double (13), "double"))
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
94 %!assert (isa (single (13), "single"))
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
95 %!assert (isa (int8 (13), "int8"))
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
96 %!assert (isa (int16 (13), "int16"))
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
97 %!assert (isa (int32 (13), "int32"))
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
98 %!assert (isa (int64 (13), "int64"))
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
99 %!assert (isa (uint8 (13), "uint8"))
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
100 %!assert (isa (uint16 (13), "uint16"))
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
101 %!assert (isa (uint32 (13), "uint32"))
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
102 %!assert (isa (uint64 (13), "uint64"))
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
103 %!assert (isa ("string", "char"))
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
104 %!assert (isa (true, "logical"))
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
105 %!assert (isa (false, "logical"))
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
106 %!assert (isa ({1, 2}, "cell"))
12604
132c89bb44e3 maint: Refactor general/isXXX.m scripts to put input validation first.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
107 %!test
132c89bb44e3 maint: Refactor general/isXXX.m scripts to put input validation first.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
108 %! a.b = 1;
132c89bb44e3 maint: Refactor general/isXXX.m scripts to put input validation first.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
109 %! assert (isa (a, "struct"));
132c89bb44e3 maint: Refactor general/isXXX.m scripts to put input validation first.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
110