def test_triu_to_mat(self): for n in range(2, 15): mat_src = rand_symm(n) triu1vec = mat_utils.get_triu_off_diag_flat(mat_src) triu1 = mat_utils.triu_off_diag_to_mat(triu1vec) assert_true(np.all(np.triu(mat_src, k=1) == triu1))
def test_calc_model_rdm_values(self): fp_list = [ self.fpath_in1, self.fpath_in2, self.fpath_in3, self.fpath_in4 ] mrdm = ModelRDMScaled(fp_list).apply(do_disable_tqdm=True) mrdm = triu_off_diag_to_mat(mrdm) mrdm += mrdm.T for r, fp_r in enumerate(fp_list): rdm_r = np.load(fp_r) self.assert_rdm_shape(rdm_r) rdm_r = get_triu_off_diag_flat(rdm_r) if rdm_r.ndim > 1 else rdm_r for c, fp_c in enumerate(fp_list): rdm_c = np.load(fp_c) self.assert_rdm_shape(rdm_c) rdm_c = get_triu_off_diag_flat( rdm_c) if rdm_c.ndim > 1 else rdm_c assert_equal(mrdm[r, c], 100 * (1 - spearmanr(rdm_r, rdm_c).correlation))
def test_calc_model_rdm_identical(self): fp_list = [ self.fpath_in1, self.fpath_in2, self.fpath_in3, self.fpath_in4 ] m = ModelRDM(fp_list) mrdm = m.apply(do_disable_tqdm=True) mrdm = triu_off_diag_to_mat(mrdm) for r, fp_r in enumerate(fp_list): for c, fp_c in enumerate(fp_list): if fp_r == fp_c: assert_equal(mrdm[r, c], 0) assert_equal(mrdm[c, r], 0) elif np.all(np.load(fp_r) == np.load(fp_c)): # print(r,c) assert_equal(mrdm[r, c], 0) assert_equal(mrdm[c, r], 0) else: # print(mrdm[r, c], r, c) assert_true(0 <= mrdm[r, c] <= 2)
def triu_off_diag_vec_to_rdm(triu1vec): in_rdm = triu_off_diag_to_mat(triu1vec) in_rdm += in_rdm.T return in_rdm