Mercurial > octave
annotate scripts/miscellaneous/verLessThan.m @ 31103:7797481038fc stable
inputParser: Add some tests for bug #62639.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Tue, 21 Jun 2022 15:43:27 +0200 |
parents | 796f54d4ddbf |
children | 5d3faba0342e |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 ######################################################################## |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 ## |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
3 ## Copyright (C) 2019-2022 The Octave Project Developers |
27918
b442ec6dda5c
use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents:
26627
diff
changeset
|
4 ## |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 ## See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 ## distribution or <https://octave.org/copyright/>. |
26608
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
7 ## |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
8 ## This file is part of Octave. |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
9 ## |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
10 ## Octave is free software: you can redistribute it and/or modify it |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
11 ## under the terms of the GNU General Public License as published by |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
12 ## the Free Software Foundation, either version 3 of the License, or |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
13 ## (at your option) any later version. |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
14 ## |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
15 ## Octave is distributed in the hope that it will be useful, but |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
18 ## GNU General Public License for more details. |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
19 ## |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
20 ## You should have received a copy of the GNU General Public License |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
21 ## along with Octave; see the file COPYING. If not, see |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
22 ## <https://www.gnu.org/licenses/>. |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 ## |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 ######################################################################## |
26608
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
25 |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
26 ## -*- texinfo -*- |
26609
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
27 ## @deftypefn {} {} verLessThan (@var{package}, @var{version}) |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
28 ## Return true if the installed version of the package is less than |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
29 ## @var{version}. |
26608
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
30 ## |
26609
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
31 ## @var{package} is the name of the package to check. Use @qcode{"Octave"} as |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
32 ## the @var{package} to check the version of Octave itself. |
26608
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
33 ## |
26609
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
34 ## @var{version} is the version to compare it to. A version is a string in the |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
35 ## format accepted by @code{compare_versions}: an arbitrarily long string |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
36 ## composed of numeric and period characters, possibly followed by an arbitrary |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
37 ## string (e.g., @qcode{"1.2.3"}, @qcode{"0.3"}, @qcode{"0.1.2+"}, or |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
38 ## @qcode{"1.2.3.4-test1"}). |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
39 ## |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
40 ## Examples: |
26608
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
41 ## |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
42 ## @example |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
43 ## @group |
26627
f48e5c7f7ef7
verLessThan.m: edit doc examples and add BIST tests
Mike Miller <mtmiller@octave.org>
parents:
26609
diff
changeset
|
44 ## tf = verLessThan ("Octave", "5") |
f48e5c7f7ef7
verLessThan.m: edit doc examples and add BIST tests
Mike Miller <mtmiller@octave.org>
parents:
26609
diff
changeset
|
45 ## @result{} tf = 0 |
26608
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
46 ## |
26627
f48e5c7f7ef7
verLessThan.m: edit doc examples and add BIST tests
Mike Miller <mtmiller@octave.org>
parents:
26609
diff
changeset
|
47 ## tf = verLessThan ("io", "2.4.12") |
f48e5c7f7ef7
verLessThan.m: edit doc examples and add BIST tests
Mike Miller <mtmiller@octave.org>
parents:
26609
diff
changeset
|
48 ## @result{} ... |
f48e5c7f7ef7
verLessThan.m: edit doc examples and add BIST tests
Mike Miller <mtmiller@octave.org>
parents:
26609
diff
changeset
|
49 ## |
f48e5c7f7ef7
verLessThan.m: edit doc examples and add BIST tests
Mike Miller <mtmiller@octave.org>
parents:
26609
diff
changeset
|
50 ## if (! verLessThan ("Octave", "5")) |
f48e5c7f7ef7
verLessThan.m: edit doc examples and add BIST tests
Mike Miller <mtmiller@octave.org>
parents:
26609
diff
changeset
|
51 ## ## ... use new Octave 5 features ... |
26608
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
52 ## endif |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
53 ## @end group |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
54 ## @end example |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
55 ## |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
56 ## @seealso{compare_versions, version, ver, pkg} |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
57 ## @end deftypefn |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
58 |
26609
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
59 function retval = verLessThan (package, version) |
26608
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
60 |
26609
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
61 if (nargin != 2) |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
62 print_usage (); |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
63 endif |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
64 |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
65 if (! ischar (package) || rows (package) != 1) |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
66 error ("verLessThan: PACKAGE must be a string"); |
26608
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
67 endif |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
68 |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
69 v = ver (); |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
70 idx = find (strcmpi (package, {v.Name})); |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
71 if (isempty (idx)) |
26609
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
72 error ('verLessThan: package "%s" is not installed', package); |
26608
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
73 endif |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
74 |
26609
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
75 retval = compare_versions (v(idx).Version, version, "<"); |
26608
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
76 |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
77 endfunction |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
78 |
26609
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
79 |
26627
f48e5c7f7ef7
verLessThan.m: edit doc examples and add BIST tests
Mike Miller <mtmiller@octave.org>
parents:
26609
diff
changeset
|
80 %!assert (! verLessThan ("Octave", "0")) |
f48e5c7f7ef7
verLessThan.m: edit doc examples and add BIST tests
Mike Miller <mtmiller@octave.org>
parents:
26609
diff
changeset
|
81 %!assert (! verLessThan ("Octave", "6")) |
26608
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
82 %!assert (! verLessThan ("Octave", "3.0.0")) |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
83 %!assert (verLessThan ("Octave", "99.9.9")) |
26609
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
84 |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
85 ## Test input validation |
28886
d8318c12d903
test: remove unnecessary BIST tests in m-files checking for excessive number of inputs.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
86 %!error <Invalid call> verLessThan () |
26609
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
87 %!error verLessThan ("a") |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
88 %!error verLessThan ("a", "1", "b") |
eaebee6d4f56
verLessThan.m: review newly added function (bug #55525).
Rik <rik@octave.org>
parents:
26608
diff
changeset
|
89 %!error <package "no-such-package" is not installed> |
26608
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
90 %! verLessThan ("no-such-package", "1.1.1") |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
91 %!error <compare_versions: version numbers V1 and V2 must be strings> |
0f187a956d47
Add verLessThan function (bug #55525)
Andrew Janke <andrew@apjanke.net>
parents:
diff
changeset
|
92 %! verLessThan ("Octave", 4.1) |