Skip to content

Commit

Permalink
Add deviations to compare API response
Browse files Browse the repository at this point in the history
  • Loading branch information
dianaclarke committed May 20, 2021
1 parent f7a8b6c commit a847221
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 0 deletions.
2 changes: 2 additions & 0 deletions conbench/api/_comparator.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ def formatted(self):
"threshold": fmt(self.threshold) + "%",
"regression": self.regression,
"improvement": self.improvement,
"deviations": fmt(self.deviations),
"baseline_z_score": fmt(self.baseline_z_score),
"contender_z_score": fmt(self.contender_z_score),
"baseline_regression_z": self.baseline_regression_z,
Expand Down Expand Up @@ -187,6 +188,7 @@ def compare(self):
"threshold": fmt(self.threshold),
"regression": self.regression,
"improvement": self.improvement,
"deviations": fmt(self.deviations),
"baseline_z_score": fmt(self.baseline_z_score),
"contender_z_score": fmt(self.contender_z_score),
"baseline_regression_z": self.baseline_regression_z,
Expand Down
3 changes: 3 additions & 0 deletions conbench/api/_examples.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ def _api_compare_entity(benchmark_ids, batch_ids, run_ids, batch, benchmark, tag
"threshold": "5.000%",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand Down Expand Up @@ -151,6 +152,7 @@ def _api_compare_list(
"threshold": "5.000%",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand All @@ -176,6 +178,7 @@ def _api_compare_list(
"threshold": "5.000%",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand Down
49 changes: 49 additions & 0 deletions conbench/entities/distribution.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,3 +146,52 @@ def update_distribution(repository, sha, summary, limit):
)
)
conn.commit()


q = """SELECT
run_id,
summary.case_id,
summary.machine_id,
machine.name AS machine_name,
summary.unit,
summary.time_unit,
summary.min,
summary.max,
summary.mean,
summary.median,
commit.timestamp AS commit_timestamp,
commit.repository AS commit_repository,
(summary.mean - distribution.mean_mean) / distribution.mean_sd AS mean_z,
(summary.min - distribution.min_mean) / distribution.min_sd AS min_z,
(summary.max - distribution.max_mean) / distribution.max_sd AS max_z,
(summary.median - distribution.median_mean) / distribution.median_sd AS median_z,
commit.timestamp AS commit_timestamp,
commit.repository AS commit_repository,
distribution.*
FROM summary
INNER JOIN run
ON summary.run_id = run.id
INNER JOIN commit
ON commit.id = run.commit_id
INNER JOIN machine
ON summary.machine_id = machine.id
LEFT JOIN distribution
ON summary.case_id = distribution.case_id AND machine.name = distribution.machine_name
WHERE run.name = 'commit: {{to_compare_sha}}'"""


def get_z_score(repository, sha, case_id, context_id, machine_hash, mean):
result = list(
Session.query(Distribution.mean_mean, Distribution.mean_sd).filter(
Distribution.repository == repository,
Distribution.sha == sha,
Distribution.case_id == case_id,
Distribution.context_id == context_id,
Distribution.machine_hash == machine_hash,
)
)
if result:
distribution_mean = result[0]["mean_mean"]
distribution_sd = result[0]["mean_sd"]
return (mean - distribution_mean) / distribution_sd
return None
34 changes: 34 additions & 0 deletions conbench/tests/api/test_comparator.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ def test_compare_no_change():
"threshold": "5.000",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand All @@ -60,6 +61,7 @@ def test_compare_no_change():
"threshold": "5.000%",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand Down Expand Up @@ -114,6 +116,7 @@ def test_compare_regression():
"threshold": "5.000",
"regression": True,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "-3.000",
"contender_z_score": "-3.000",
"baseline_regression_z": True,
Expand All @@ -139,6 +142,7 @@ def test_compare_regression():
"threshold": "5.000%",
"regression": True,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "-3.000",
"contender_z_score": "-3.000",
"baseline_regression_z": True,
Expand Down Expand Up @@ -193,6 +197,7 @@ def test_compare_regression_but_under_threshold():
"threshold": "5.000",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "-2.000",
"contender_z_score": "-2.000",
"baseline_regression_z": False,
Expand All @@ -218,6 +223,7 @@ def test_compare_regression_but_under_threshold():
"threshold": "5.000%",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "-2.000",
"contender_z_score": "-2.000",
"baseline_regression_z": False,
Expand Down Expand Up @@ -272,6 +278,7 @@ def test_compare_improvement():
"threshold": "5.000",
"regression": False,
"improvement": True,
"deviations": "2.000",
"baseline_z_score": "3.000",
"contender_z_score": "3.000",
"baseline_regression_z": False,
Expand All @@ -297,6 +304,7 @@ def test_compare_improvement():
"threshold": "5.000%",
"regression": False,
"improvement": True,
"deviations": "2.000",
"baseline_z_score": "3.000",
"contender_z_score": "3.000",
"baseline_regression_z": False,
Expand Down Expand Up @@ -351,6 +359,7 @@ def test_compare_improvement_but_under_threshold():
"threshold": "5.000",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "2.000",
"contender_z_score": "2.000",
"baseline_regression_z": False,
Expand All @@ -376,6 +385,7 @@ def test_compare_improvement_but_under_threshold():
"threshold": "5.000%",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "2.000",
"contender_z_score": "2.000",
"baseline_regression_z": False,
Expand Down Expand Up @@ -459,6 +469,7 @@ def test_compare_list():
"threshold": "5.000",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand All @@ -484,6 +495,7 @@ def test_compare_list():
"threshold": "5.000",
"regression": False,
"improvement": True,
"deviations": "2.000",
"baseline_z_score": "3.000",
"contender_z_score": "-3.000",
"baseline_regression_z": True,
Expand Down Expand Up @@ -511,6 +523,7 @@ def test_compare_list():
"threshold": "5.000%",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand All @@ -536,6 +549,7 @@ def test_compare_list():
"threshold": "5.000%",
"regression": False,
"improvement": True,
"deviations": "2.000",
"baseline_z_score": "3.000",
"contender_z_score": "-3.000",
"baseline_regression_z": True,
Expand Down Expand Up @@ -609,6 +623,7 @@ def test_compare_list_missing_contender():
"threshold": "5.000",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand All @@ -634,6 +649,7 @@ def test_compare_list_missing_contender():
"threshold": "5.000",
"regression": False,
"improvement": True,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand Down Expand Up @@ -661,6 +677,7 @@ def test_compare_list_missing_contender():
"threshold": "5.000%",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand All @@ -686,6 +703,7 @@ def test_compare_list_missing_contender():
"threshold": "5.000%",
"regression": False,
"improvement": True,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand Down Expand Up @@ -760,6 +778,7 @@ def test_compare_list_empty_contender():
"threshold": "5.000",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand All @@ -785,6 +804,7 @@ def test_compare_list_empty_contender():
"threshold": "5.000",
"regression": False,
"improvement": True,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand Down Expand Up @@ -812,6 +832,7 @@ def test_compare_list_empty_contender():
"threshold": "5.000%",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand All @@ -837,6 +858,7 @@ def test_compare_list_empty_contender():
"threshold": "5.000%",
"regression": False,
"improvement": True,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand Down Expand Up @@ -910,6 +932,7 @@ def test_compare_list_missing_baseline():
"threshold": "5.000",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand All @@ -935,6 +958,7 @@ def test_compare_list_missing_baseline():
"threshold": "5.000",
"regression": False,
"improvement": True,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand Down Expand Up @@ -962,6 +986,7 @@ def test_compare_list_missing_baseline():
"threshold": "5.000%",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand All @@ -987,6 +1012,7 @@ def test_compare_list_missing_baseline():
"threshold": "5.000%",
"regression": False,
"improvement": True,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand Down Expand Up @@ -1061,6 +1087,7 @@ def test_compare_list_empty_baseline():
"threshold": "5.000",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand All @@ -1086,6 +1113,7 @@ def test_compare_list_empty_baseline():
"threshold": "5.000",
"regression": False,
"improvement": True,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand Down Expand Up @@ -1113,6 +1141,7 @@ def test_compare_list_empty_baseline():
"threshold": "5.000%",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand All @@ -1138,6 +1167,7 @@ def test_compare_list_empty_baseline():
"threshold": "5.000%",
"regression": False,
"improvement": True,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand Down Expand Up @@ -1182,6 +1212,7 @@ def test_compare_list_empty_pair():
"threshold": "5.000",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand All @@ -1207,6 +1238,7 @@ def test_compare_list_empty_pair():
"threshold": "5.000",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand Down Expand Up @@ -1234,6 +1266,7 @@ def test_compare_list_empty_pair():
"threshold": "5.000%",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand All @@ -1259,6 +1292,7 @@ def test_compare_list_empty_pair():
"threshold": "5.000%",
"regression": False,
"improvement": False,
"deviations": "2.000",
"baseline_z_score": "0.000",
"contender_z_score": "0.000",
"baseline_regression_z": False,
Expand Down

0 comments on commit a847221

Please sign in to comment.