Skip to content

Commit 078fa96

Browse files
DilumAluthgeKristofferC
authored andcommitted
Add methods to isinvariant, isregression, isimprovement, etc. (#85)
1 parent e81ddc3 commit 078fa96

File tree

5 files changed

+56
-10
lines changed

5 files changed

+56
-10
lines changed

Manifest.toml

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
55

66
[[BenchmarkTools]]
7-
deps = ["JSON", "Printf", "Statistics", "Test"]
8-
git-tree-sha1 = "5d1dd8577643ba9014574cd40d9c028cd5e4b85a"
7+
deps = ["JSON", "Printf", "Statistics"]
8+
git-tree-sha1 = "90b73db83791c5f83155016dd1cc1f684d4e1361"
99
uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
10-
version = "0.4.2"
10+
version = "0.4.3"
1111

1212
[[Dates]]
1313
deps = ["Printf"]
@@ -22,10 +22,10 @@ deps = ["Markdown"]
2222
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
2323

2424
[[JSON]]
25-
deps = ["Dates", "Distributed", "Mmap", "Sockets", "Test", "Unicode"]
26-
git-tree-sha1 = "1f7a25b53ec67f5e9422f1f551ee216503f4a0fa"
25+
deps = ["Dates", "Mmap", "Parsers", "Unicode"]
26+
git-tree-sha1 = "b34d7cef7b337321e97d22242c3c2b91f476748e"
2727
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
28-
version = "0.20.0"
28+
version = "0.21.0"
2929

3030
[[LibGit2]]
3131
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
@@ -47,8 +47,14 @@ uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
4747
[[Mmap]]
4848
uuid = "a63ad114-7e13-5084-954f-fe012c677804"
4949

50+
[[Parsers]]
51+
deps = ["Dates", "Test"]
52+
git-tree-sha1 = "ef0af6c8601db18c282d092ccbd2f01f3f0cd70b"
53+
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
54+
version = "0.3.7"
55+
5056
[[Pkg]]
51-
deps = ["Dates", "LibGit2", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
57+
deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
5258
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
5359

5460
[[Printf]]

Project.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "PkgBenchmark"
22
uuid = "32113eaa-f34f-5b0d-bd6c-c81e245fc73d"
3-
version = "0.2.3"
3+
version = "0.2.4"
44

55
[deps]
66
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
@@ -13,7 +13,7 @@ Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
1313
ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca"
1414

1515
[compat]
16-
BenchmarkTools = "0.4"
16+
BenchmarkTools = "^0.4.3"
1717
ProgressMeter = "1"
1818
julia = "1"
1919

src/PkgBenchmark.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ using Dates
1111
using InteractiveUtils
1212
using Printf
1313

14-
export benchmarkpkg, judge, writeresults, readresults, export_markdown
14+
export benchmarkpkg, judge, writeresults, readresults, export_markdown, memory
1515
export BenchmarkConfig, BenchmarkResults, BenchmarkJudgement
1616

1717
include("benchmarkconfig.jl")

src/benchmarkjudgement.jl

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,24 @@ target_result(judgement::BenchmarkJudgement) = judgement.target_results
2323
baseline_result(judgement::BenchmarkJudgement) = judgement.baseline_results
2424
benchmarkgroup(judgement::BenchmarkJudgement) = judgement.benchmarkgroup
2525

26+
BenchmarkTools.isinvariant(f, judgement::BenchmarkJudgement) = BenchmarkTools.isinvariant(f, benchmarkgroup(judgement))
27+
BenchmarkTools.isinvariant(judgement::BenchmarkJudgement) = BenchmarkTools.isinvariant(benchmarkgroup(judgement))
28+
29+
BenchmarkTools.isregression(f, judgement::BenchmarkJudgement) = BenchmarkTools.isregression(f, benchmarkgroup(judgement))
30+
BenchmarkTools.isregression(judgement::BenchmarkJudgement) = BenchmarkTools.isregression(benchmarkgroup(judgement))
31+
32+
BenchmarkTools.isimprovement(f, judgement::BenchmarkJudgement) = BenchmarkTools.isimprovement(f, benchmarkgroup(judgement))
33+
BenchmarkTools.isimprovement(judgement::BenchmarkJudgement) = BenchmarkTools.isimprovement(benchmarkgroup(judgement))
34+
35+
BenchmarkTools.invariants(f, judgement::BenchmarkJudgement) = BenchmarkTools.invariants(f, benchmarkgroup(judgement))
36+
BenchmarkTools.invariants(judgement::BenchmarkJudgement) = BenchmarkTools.invariants(benchmarkgroup(judgement))
37+
38+
BenchmarkTools.regressions(f, judgement::BenchmarkJudgement) = BenchmarkTools.regressions(f, benchmarkgroup(judgement))
39+
BenchmarkTools.regressions(judgement::BenchmarkJudgement) = BenchmarkTools.regressions(benchmarkgroup(judgement))
40+
41+
BenchmarkTools.improvements(f, judgement::BenchmarkJudgement) = BenchmarkTools.improvements(f, benchmarkgroup(judgement))
42+
BenchmarkTools.improvements(judgement::BenchmarkJudgement) = BenchmarkTools.improvements(benchmarkgroup(judgement))
43+
2644
function Base.show(io::IO, judgement::BenchmarkJudgement)
2745
target, base = judgement.target_results, judgement.baseline_results
2846
print(io, "Benchmarkjudgement (target / baseline):\n")

test/runtests.jl

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,5 +167,27 @@ temp_pkg_dir(;tmp_dir = tmp_dir) do
167167
export_markdown(stdout, judgement; export_invariants = true)
168168
judgement = judge(TEST_PACKAGE_NAME, "HEAD", custom_loadpath=old_pkgdir)
169169
test_structure(PkgBenchmark.benchmarkgroup(judgement))
170+
judgement = judge(TEST_PACKAGE_NAME, "HEAD", "HEAD", custom_loadpath=old_pkgdir)
171+
judgement = judge(TEST_PACKAGE_NAME, "HEAD", "HEAD"; custom_loadpath=old_pkgdir, retune=true)
172+
@test PkgBenchmark.benchmarkgroup(judgement) == judgement.benchmarkgroup
173+
@test PkgBenchmark.benchmarkgroup(judgement) === judgement.benchmarkgroup
174+
@test isinvariant(judgement) == isinvariant(judgement.benchmarkgroup)
175+
@test isinvariant(time, judgement) == isinvariant(time, judgement.benchmarkgroup)
176+
@test isinvariant(memory, judgement) == isinvariant(memory, judgement.benchmarkgroup)
177+
@test isregression(judgement) == isregression(judgement.benchmarkgroup)
178+
@test isregression(time, judgement) == isregression(time, judgement.benchmarkgroup)
179+
@test isregression(memory, judgement) == isregression(memory, judgement.benchmarkgroup)
180+
@test isimprovement(judgement) == isimprovement(judgement.benchmarkgroup)
181+
@test isimprovement(time, judgement) == isimprovement(time, judgement.benchmarkgroup)
182+
@test isimprovement(memory, judgement) == isimprovement(memory, judgement.benchmarkgroup)
183+
@test BenchmarkTools.invariants(judgement) == BenchmarkTools.invariants(judgement.benchmarkgroup)
184+
@test BenchmarkTools.invariants(time, judgement) == BenchmarkTools.invariants(time, judgement.benchmarkgroup)
185+
@test BenchmarkTools.invariants(memory, judgement) == BenchmarkTools.invariants(memory, judgement.benchmarkgroup)
186+
@test BenchmarkTools.regressions(judgement) == BenchmarkTools.regressions(judgement.benchmarkgroup)
187+
@test BenchmarkTools.regressions(time, judgement) == BenchmarkTools.regressions(time, judgement.benchmarkgroup)
188+
@test BenchmarkTools.regressions(memory, judgement) == BenchmarkTools.regressions(memory, judgement.benchmarkgroup)
189+
@test BenchmarkTools.improvements(judgement) == BenchmarkTools.improvements(judgement.benchmarkgroup)
190+
@test BenchmarkTools.improvements(time, judgement) == BenchmarkTools.improvements(time, judgement.benchmarkgroup)
191+
@test BenchmarkTools.improvements(memory, judgement) == BenchmarkTools.improvements(memory, judgement.benchmarkgroup)
170192
end
171193
end

0 commit comments

Comments
 (0)