Skip to content

Commit 8c5a545

Browse files
committed
canonical/resolve: arrays for legacy < R2024a too
1 parent 999443c commit 8c5a545

File tree

4 files changed

+13
-10
lines changed

4 files changed

+13
-10
lines changed

+stdlib/canonical.m

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@
1919
backend (1,:) string = ["native", "legacy"]
2020
end
2121

22-
if isscalar(p)
23-
fun = hbackend(backend, "canonical", 'R2024a');
22+
[fun, b] = hbackend(backend, "canonical", 'R2024a');
23+
24+
if isscalar(p) || b == "native"
2425
c = fun(p, strict);
2526
else
26-
c = stdlib.native.canonical(p, strict);
27+
c = arrayfun(fun, p, repmat(strict, size(p)));
2728
end
2829

2930
end

+stdlib/private/hbackend.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
% To save time, do not check that the function exists with which()
44

55

6-
function fun = hbackend(backend, name, minVersion)
6+
function [fun, m] = hbackend(backend, name, minVersion)
77
arguments
88
backend (1,:) string
99
name (1,1) string

test/TestCanonical.m

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,15 @@ function test_canonical(tc, p, backend)
3232
tc.verifyEqual(c, p{2})
3333
end
3434

35-
function test_canonical_array(tc)
36-
tc.assumeFalse(isMATLABReleaseOlderThan('R2024a'))
37-
35+
function test_canonical_array(tc, backend)
3836
in = ["", "hi", "/ok", "not-exist/a/.."];
39-
c = stdlib.native.canonical(in);
37+
38+
try
39+
c = stdlib.canonical(in, false, backend);
40+
catch e
41+
tc.verifyEqual(e.identifier, 'stdlib:hbackend:NameError', e.stack(1).file + ":" + string(e.stack(1).line) + " " + e.message)
42+
return
43+
end
4044

4145
tc.verifyEqual(c, ["", "hi", filesep + "ok", "not-exist"])
4246
end

test/TestResolve.m

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,6 @@ function test_resolve_fullpath(tc, p)
7979
end
8080

8181
function test_resolve_array(tc)
82-
tc.assumeFalse(isMATLABReleaseOlderThan('R2024a'))
83-
8482
in = ["", "hi", "/ok", "not-exist/a/.."];
8583
c = stdlib.resolve(in);
8684

0 commit comments

Comments
 (0)