summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjasplin <qt-info@nokia.com>2011-01-27 16:09:05 +0100
committerjasplin <qt-info@nokia.com>2011-01-27 16:09:05 +0100
commit578b4a99415721d39ba280ae3611c3be3885864f (patch)
treee155de1af50bd621999946b730b3ac394094c310
parent052a1fe8b6fb6556fd3bc74847b9b48f81ef0458 (diff)
Use QS in finalizeresults.py script.
-rwxr-xr-xscripts/finalizeresults.py41
-rw-r--r--web/getstats/global.js4
-rw-r--r--web/getstats/tsbmbody.js9
-rw-r--r--web/getstats/tsstats.js2
4 files changed, 33 insertions, 23 deletions
diff --git a/scripts/finalizeresults.py b/scripts/finalizeresults.py
index ae78371..1ba53f2 100755
--- a/scripts/finalizeresults.py
+++ b/scripts/finalizeresults.py
@@ -113,11 +113,32 @@ sys.stdout.write("\n")
# *** Compute rankings **************************************************
+# ### 2 B DOCUMENTED!
+# NOTE: This function is currently duplicated elsewhere in JavaScipt!
def changeMagnitudeScore(change):
max_change = 2.0
abs_change = (1.0 / change) if change < 1 else change
return (min(abs_change, max_change) - 1.0) / (max_change - 1.0)
+# ### 2 B DOCUMENTED!
+# NOTE: This function is currently duplicated elsewhere in JavaScript!
+def qualityScore(lsd, ni, nz, nc, mdrse):
+ max_bad_snapshots = 30 # experimental; maybe use max durability score?
+ max_sample_size = 5;
+ max_LSD = max_ad_napshots;
+ max_NI = max_bad_snapshots * max_sample_size;
+ max_NZ = max_bad_snapshots * max_sample_size;
+ max_NC = max_bad_snapshots;
+
+ lsd_score = Math.min(1, lsd / float(max_LSD));
+ ni_score = Math.min(1, ni / float(max_NI));
+ var nz_score = Math.min(1, nz / float(max_NZ));
+ var nc_score = Math.min(1, nc / float(max_NC));
+ var mdrse_score = mdrse / 100.0;
+
+ return (lsd_score + ni_score + nz_score + nc_score + mdrse_score) / 5.0;
+}
+
sys.stdout.write("creating table for all ranking stats ... ")
sys.stdout.flush()
@@ -143,6 +164,8 @@ for stats in bmstats_list:
mdrse = stats["med_of_rses"]
rsemd = stats["rse_of_meds"]
+ qs = qualityScore(lsd, ni, nz, nc, mdrse)
+
lc = stats["lc"]
if lc >= 0.0:
lcgss = stats["lc_gsep_score"]
@@ -163,9 +186,7 @@ for stats in bmstats_list:
else:
lcssr = lcssi = lcss1r = lcss1i = -1
- table.append((
- benchmark_id, metric_id, lsd, ni, nz, nc, mdrse, rsemd,
- lcssr, lcssi, lcss1r, lcss1i))
+ table.append((benchmark_id, metric_id, qs, lcssr, lcssi, lcss1r, lcss1i))
sys.stdout.write("done\n")
sys.stdout.flush()
@@ -227,19 +248,7 @@ def registerRanking(
execQuery(query, False)
-nameToIndex = {
- "LSD": 2,
- "NI": 3,
- "NZ": 4,
- "NC": 5,
- "MDRSE": 6,
- "RSEMD": 7,
- "LCSSR": 8,
- "LCSSI": 9,
- "LCSS1R": 10,
- "LCSS1I": 11
-}
-
+nameToIndex = { "QS": 2, "LCSSR": 3, "LCSSI": 4, "LCSS1R": 5, "LCSS1I": 6 }
for name in nameToIndex:
sys.stdout.write("registering ranking for " + name + " ...\r")
sys.stdout.flush()
diff --git a/web/getstats/global.js b/web/getstats/global.js
index 733fdd1..38209ef 100644
--- a/web/getstats/global.js
+++ b/web/getstats/global.js
@@ -59,6 +59,7 @@ function isNonNullNumber(x) {
}
// ### 2 B DOCUMENTED!
+// NOTE: This function is currently duplicated elsewhere in Python!
function changeMagnitudeScore(change) {
var maxChange = 2.0;
var absChange = (change < 1.0) ? (1.0 / change) : change;
@@ -66,7 +67,8 @@ function changeMagnitudeScore(change) {
}
// ### 2 B DOCUMENTED!
-function normalizedQuality(lsd, ni, nz, nc, mdrse) {
+// NOTE: This function is currently duplicated elsewhere in Python!
+function qualityScore(lsd, ni, nz, nc, mdrse) {
var maxBadSnapshots = 30; // experimental; maybe use max durability score?
var maxSampleSize = 5;
var maxLSD = maxBadSnapshots;
diff --git a/web/getstats/tsbmbody.js b/web/getstats/tsbmbody.js
index 4a90c4c..cdec563 100644
--- a/web/getstats/tsbmbody.js
+++ b/web/getstats/tsbmbody.js
@@ -69,10 +69,9 @@ function tooltipText_rsemd() {
function tooltipText_qs() {
return "Quality score for the benchmark:<br /><br />" +
"&nbsp;&nbsp;&nbsp;&nbsp;" +
- "nq(LSD, NI, NZ, NC, MDRSE),<br /><br />" +
- "where nq() computes the \"normalized quality\", i.e. a number " +
- "between 0 and 1.<br /><br />" +
- "The higher this score, the worse the quality of the benchmark.";
+ "qs(LSD, NI, NZ, NC, MDRSE),<br /><br />" +
+ "where qs() computes the quality score as a number " +
+ "between 0 (good quality) and 1 (poor quality).";
}
function tooltipText_lc() {
@@ -1152,7 +1151,7 @@ function fetchTimeSeries(
nc = data.nc;
mdrse = data.med_of_rses;
rsemd = data.rse_of_meds;
- qs = normalizedQuality(lsd, ni, nz, nc, mdrse);
+ qs = qualityScore(lsd, ni, nz, nc, mdrse);
if (nc > 0) {
lc = data.lc;
var currTime = dateToTimestamp(currDate);
diff --git a/web/getstats/tsstats.js b/web/getstats/tsstats.js
index 368cf14..af847bd 100644
--- a/web/getstats/tsstats.js
+++ b/web/getstats/tsstats.js
@@ -121,7 +121,7 @@ function populatePbmTable(tableSel, data) {
rbdy += "<td></td>";
}
- qs = normalizedQuality(lsd, ni, nz, nc, mdrse);
+ qs = qualityScore(lsd, ni, nz, nc, mdrse);
rbdy += "<td>" + qs.toFixed(4) + "</td>";
if (nc > 0) {