Skip to content

Commit eb7bb5d

Browse files
committed
test:is_capable
1 parent 78cd022 commit eb7bb5d

File tree

4 files changed

+48
-25
lines changed

4 files changed

+48
-25
lines changed

+stdlib/+python/ram_free.m

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
try
44
vm = py.psutil.virtual_memory();
5-
n = uint64(vm.available);
5+
n = vm.available;
66
catch
77
n = 0;
88
end
99

10+
n = uint64(n);
11+
1012
end

test/TestDisk.m

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
properties (TestParameter)
99
Ps = {".", "", "/", getenv("SystemDrive"), "not-exist"}
10-
device_fun = init_device_fun()
10+
device_fun = {@stdlib.device, @stdlib.sys.device, @stdlib.dotnet.device, @stdlib.java.device, @stdlib.python.device}
1111
end
1212

1313
methods (Test)
@@ -62,6 +62,8 @@ function test_filesystem_type(tc, Ps)
6262

6363

6464
function test_device(tc, device_fun)
65+
is_capable(tc, device_fun)
66+
6567
if ispc()
6668
tc.verifyGreaterThan(device_fun(pwd()), 0)
6769
else
@@ -88,14 +90,3 @@ function test_owner(tc)
8890
end
8991

9092

91-
function device_fun = init_device_fun()
92-
device_fun = {@stdlib.sys.device, @stdlib.device};
93-
94-
if isunix() && stdlib.java_api() > 11
95-
device_fun{end+1} = @stdlib.java.device;
96-
end
97-
98-
if stdlib.has_python()
99-
device_fun{end+1} = @stdlib.python.device;
100-
end
101-
end

test/TestSys.m

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -129,15 +129,3 @@ function test_ram_free(tc, ram_free_fun)
129129

130130
end
131131

132-
133-
function is_capable(tc, f)
134-
135-
n = func2str(f);
136-
if contains(n, "java")
137-
tc.assumeTrue(stdlib.has_java())
138-
end
139-
if contains(n, "python")
140-
tc.assumeTrue(stdlib.has_python())
141-
end
142-
143-
end

test/is_capable.m

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
function is_capable(tc, f)
2+
arguments
3+
tc (1,1) matlab.unittest.TestCase
4+
f (1,1) function_handle
5+
end
6+
7+
n = func2str(f);
8+
9+
if contains(n, "dotnet")
10+
11+
dapi = stdlib.dotnet_api();
12+
13+
tc.assumeGreaterThan(dapi, 0)
14+
15+
elseif contains(n, "java")
16+
17+
japi = stdlib.java_api();
18+
tc.assumeGreaterThan(japi, 0)
19+
20+
if endsWith(n, "device")
21+
tc.assumeTrue(isunix())
22+
tc.assumeGreaterThanOrEqual(japi, 11)
23+
end
24+
25+
elseif contains(n, "python")
26+
27+
tc.assumeTrue(stdlib.has_python())
28+
29+
try
30+
py.psutil.version_info();
31+
has_psutil = true;
32+
catch
33+
has_psutil = false;
34+
end
35+
36+
if contains(n, ["ram_free", "ram_total"])
37+
tc.assumeTrue(has_psutil, "need Python psutil package")
38+
end
39+
40+
end
41+
42+
end

0 commit comments

Comments
 (0)