|
@@ -5,43 +5,56 @@ import logging
|
|
|
logger = logging.getLogger('calcer')
|
|
|
|
|
|
|
|
|
-def calc_chratios(data, pos_map, start, end):
|
|
|
+def calc_chratios(data, pos_map, start, end, window, left_len, right_len):
|
|
|
view = data[[pos_map.succ_count, pos_map.fail_count, pos_map.commit_count], :]
|
|
|
all = view[:, start:end]
|
|
|
|
|
|
view = np.cumsum(all, axis=1)
|
|
|
succ = view[0, :]
|
|
|
fail = view[1, :]
|
|
|
- commit = succ + fail + 0.0000001
|
|
|
+ commit = view[2, :] + 0.0000001
|
|
|
y = succ / commit
|
|
|
y = y.ravel()
|
|
|
|
|
|
- return int(view[0, -1]), int(view[0, -1] + view[1, -1]), y
|
|
|
+ if window is not None:
|
|
|
+ y = np.convolve(y, window, 'same')
|
|
|
+ y = y[left_len:end - start - right_len]
|
|
|
|
|
|
-def calc_cov_chratios(data, pos_map, start, end, window, left_len,right_len):
|
|
|
+ cur = all[:, left_len:end - start - right_len]
|
|
|
+ sums = np.sum(cur, axis=1)
|
|
|
+ succs = int(sums[0])
|
|
|
+ fails = int(sums[1])
|
|
|
+ commits = int(sums[1])
|
|
|
+
|
|
|
+ return succs, commits, y
|
|
|
+
|
|
|
+def calc_cov_chratios(data, pos_map, start, end, window, left_len,right_len = 0):
|
|
|
view = data[[pos_map.succ_count, pos_map.fail_count, pos_map.commit_count], :]
|
|
|
|
|
|
sum_view = view[:, start + left_len:end - right_len]
|
|
|
sums = np.sum(sum_view, axis=1)
|
|
|
- succs = sums[0]
|
|
|
- fails = sums[1]
|
|
|
+ succs = int(sums[0])
|
|
|
+ fails = int(sums[1])
|
|
|
+ commits = int(sums[2])
|
|
|
|
|
|
view = view[:, start:end]
|
|
|
succ = view[0, :]
|
|
|
fail = view[1, :]
|
|
|
- succ = np.convolve(succ, window, 'same')
|
|
|
- fail = np.convolve(fail, window, 'same')
|
|
|
+ if window is not None:
|
|
|
+ succ = np.convolve(succ, window, 'same')
|
|
|
+ fail = np.convolve(fail, window, 'same')
|
|
|
commit = succ + fail + 0.0000001
|
|
|
y = succ / commit
|
|
|
y = y[left_len:end - start - right_len]
|
|
|
|
|
|
- return int(succs), int(succs + fails), y
|
|
|
+ return succs, commits, y
|
|
|
|
|
|
def calc_cov_chsuccs(data, pos_map, start, end, window, left_len,right_len):
|
|
|
view = data[[pos_map.succ_count, pos_map.fail_count, pos_map.commit_count], :]
|
|
|
view = view[:, start:end]
|
|
|
|
|
|
- sums = np.sum(view, axis=1)
|
|
|
+ cur = view[:, left_len:end - start - right_len]
|
|
|
+ sums = np.sum(cur, axis=1)
|
|
|
succs = int(sums[0])
|
|
|
fails = int(sums[1])
|
|
|
|
|
@@ -88,17 +101,26 @@ def calc_commit(data, pos_map, start, end):
|
|
|
return commit_count
|
|
|
|
|
|
|
|
|
-def calc_mchratios(data, pos_map, start, end):
|
|
|
+def calc_mchratios(data, pos_map, start, end, window, left_len, right_len):
|
|
|
view = data[[pos_map.succ_count, pos_map.fail_count, pos_map.submit_count], :]
|
|
|
- view = view[:, start:end]
|
|
|
|
|
|
+ sum_view = view[:, start + left_len:end - right_len]
|
|
|
+ sums = np.sum(sum_view, axis=1)
|
|
|
+ succs = int(sums[0])
|
|
|
+ fails = int(sums[1])
|
|
|
+ commits = int(sums[2])
|
|
|
+
|
|
|
+ view = view[:, start:end]
|
|
|
all = np.cumsum(view, axis=1)
|
|
|
succ = all[0, :]
|
|
|
- commit = all[0, :] + all[1, :]
|
|
|
- commit += 0.0000001
|
|
|
+ commit = all[2, :] + 0.0000001
|
|
|
y = succ / commit
|
|
|
y = y.ravel()
|
|
|
- return int(all[0, -1]), int(all[0, -1] + all[1, -1]), y
|
|
|
+ if window is not None:
|
|
|
+ y = np.convolve(y, window, 'same')
|
|
|
+ y = y[left_len:end - start - right_len]
|
|
|
+
|
|
|
+ return succs, commits, y
|
|
|
|
|
|
def calc_mchratios_val(data, pos_map, start, end):
|
|
|
view = data[[pos_map.succ_count, pos_map.fail_count, pos_map.submit_count], :]
|
|
@@ -178,7 +200,8 @@ def calc_mch_profit(data, pos_map: type(EMchPosmap), start: int, end: int):
|
|
|
|
|
|
return int(submit_count), int(succ_count), int(fail_count), round(succ_ratio, 5), round(profit, 3)
|
|
|
|
|
|
-def calc_cov_netfail(data, pos_map, start, end, window, left_len,right_len):
|
|
|
+
|
|
|
+def calc_cov_netfail(data, pos_map, start, end, window):
|
|
|
view = data[[pos_map.succ_count, pos_map.fail_count], :]
|
|
|
view = view[:, start:end]
|
|
|
|
|
@@ -191,8 +214,5 @@ def calc_cov_netfail(data, pos_map, start, end, window, left_len,right_len):
|
|
|
succ = np.convolve(succ, window, 'same')
|
|
|
fail = np.convolve(fail, window, 'same')
|
|
|
|
|
|
- succ = succ[left_len:end - start - right_len]
|
|
|
- fail = fail[left_len:end - start - right_len]
|
|
|
-
|
|
|
fail = fail / (fail + succ + 0.0000001)
|
|
|
return fail, fails, (succs + fails)
|