Skip to content

Commit 5da8f51

Browse files
committed
use perftest to benchmark
1 parent 3edb3a1 commit 5da8f51

File tree

5 files changed

+80
-21
lines changed

5 files changed

+80
-21
lines changed

example/BenchmarkSamepath.m

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
classdef (SharedTestFixtures={ matlab.unittest.fixtures.PathFixture("..")}) ...
2+
BenchmarkSamepath < matlab.perftest.TestCase
3+
4+
properties(TestParameter)
5+
backend
6+
end
7+
8+
methods (TestParameterDefinition, Static)
9+
function backend = setupBackend()
10+
backend = init_backend('samepath');
11+
end
12+
end
13+
14+
15+
methods (Test)
16+
17+
function bench_exist(tc, backend)
18+
tc.startMeasuring()
19+
y = stdlib.samepath('.', pwd(), backend);
20+
tc.stopMeasuring()
21+
22+
tc.verifyEqual(y, true)
23+
end
24+
25+
26+
function bench_diff(tc, backend)
27+
tc.startMeasuring()
28+
y = stdlib.samepath('.', mfilename('fullpath'), backend);
29+
tc.stopMeasuring()
30+
31+
tc.verifyEqual(y, false)
32+
end
33+
34+
35+
function bench_not_exist(tc, backend)
36+
tc.startMeasuring()
37+
y = stdlib.samepath('not-exist', 'not-exist', backend);
38+
tc.stopMeasuring()
39+
40+
tc.verifyEqual(y, false)
41+
end
42+
43+
end
44+
45+
end

example/BenchmarkSamepathRun.m

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
function [r, s] = BenchmarkSamepathRun()
2+
%% Exist, same
3+
r.same = run_bench('BenchmarkSamepath/bench_exist');
4+
s.exist = sampleSummary(r.same);
5+
disp(sortrows(s.exist, "Median"))
6+
%% Exist, different
7+
r.diff = run_bench('BenchmarkSamepath/bench_diff');
8+
s.diff = sampleSummary(r.diff);
9+
disp(sortrows(s.diff, "Median"))
10+
%% Not Exist
11+
r.not = run_bench('BenchmarkSamepath/bench_not_exist');
12+
s.not = sampleSummary(r.not);
13+
disp(sortrows(s.not, "Median"))
14+
15+
end
16+
17+
18+
function result = run_bench(name)
19+
suite = testsuite(name);
20+
exp = matlab.perftest.TimeExperiment.limitingSamplingError(MaxSamples=25);
21+
result = exp.run(suite);
22+
end

example/bench_samepath.m

Lines changed: 0 additions & 17 deletions
This file was deleted.

example/private/init_backend.m

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
function backends = init_backend(funcName)
2+
arguments
3+
funcName (1,1) string
4+
end
5+
6+
r = fileparts(fileparts(fileparts(mfilename('fullpath'))));
7+
addpath(r)
8+
co = onCleanup(@() rmpath(r));
9+
10+
backends = cellstr(stdlib.Backend().select(funcName));
11+
12+
end

test/private/init_backend.m

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@
77
addpath(r)
88
co = onCleanup(@() rmpath(r));
99

10-
backends = convertStringsToChars(stdlib.Backend().select(funcName));
11-
if ischar(backends)
12-
backends = {backends};
13-
end
10+
backends = cellstr(stdlib.Backend().select(funcName));
1411

1512
end

0 commit comments

Comments
 (0)