Mercurial > hg > octave-nkf
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 |
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 | 2 ## |
3 ## This file is part of Octave. | |
4 ## | |
5 ## Octave is free software; you can redistribute it and/or modify it | |
6 ## under the terms of the GNU General Public License as published by | |
7016 | 7 ## the Free Software Foundation; either version 3 of the License, or (at |
8 ## your option) any later version. | |
4950 | 9 ## |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
14 ## | |
15 ## You should have received a copy of the GNU General Public License | |
7016 | 16 ## along with Octave; see the file COPYING. If not, see |
17 ## <http://www.gnu.org/licenses/>. | |
4950 | 18 |
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 | 37 ## @end deftypefn |
38 | |
39 ## Author: Paul Kienzle <pkienzle@users.sf.net> | |
40 ## Adapted-by: jwe | |
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 | 43 |
44 if (nargin != 2) | |
45 print_usage (); | |
46 endif | |
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 | 61 |
4950 | 62 endfunction |
7773 | 63 |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
64 |
7777 | 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 | 67 %!assert (isa (double (13), "float"), true) |
68 %!assert (isa (single (13), "float"), true) | |
69 %!assert (isa (int8 (13), "float"), false) | |
70 %!assert (isa (int16 (13), "float"), false) | |
71 %!assert (isa (int32 (13), "float"), false) | |
72 %!assert (isa (int64 (13), "float"), false) | |
73 %!assert (isa (uint8 (13), "float"), false) | |
74 %!assert (isa (uint16 (13), "float"), false) | |
75 %!assert (isa (uint32 (13), "float"), false) | |
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 |