from triacontagon.data import Data from triacontagon.sampling import get_true_classes, \ negative_sample_adj_mat, \ negative_sample_data from triacontagon.decode import dedicom_decoder import torch import time def test_get_true_classes_01(): adj_mat = torch.tensor([ [0, 1, 0, 1, 0], [0, 0, 0, 0, 1], [1, 1, 0, 0, 0], [0, 0, 1, 0, 1], [0, 1, 0, 0, 0] ], dtype=torch.float).to_sparse() true_classes = get_true_classes(adj_mat) print('true_classes:', true_classes) assert torch.all(true_classes == torch.tensor([ [1, 3], [4, -1], [0, 1], [2, 4], [1, -1] ])) def test_get_true_classes_02(): adj_mat = torch.rand(2000, 2000).round().to_sparse() t = time.time() true_classes = get_true_classes(adj_mat) print('Elapsed:', time.time() - t) print('true_classes.shape:', true_classes.shape) def test_negative_sample_adj_mat_01(): adj_mat = torch.tensor([ [0, 1, 0, 1, 0], [0, 0, 0, 0, 1], [1, 1, 0, 0, 0], [0, 0, 1, 0, 1], [0, 1, 0, 0, 0] ]) print('adj_mat:', adj_mat) adj_mat_neg = negative_sample_adj_mat(adj_mat.to_sparse()) print('adj_mat_neg:', adj_mat_neg.to_dense()) def test_negative_sample_data_01(): d = Data() d.add_vertex_type('Gene', 5) d.add_edge_type('Gene-Gene', 0, 0, [ torch.tensor([ [0, 1, 0, 1, 0], [0, 0, 0, 0, 1], [1, 1, 0, 0, 0], [0, 0, 1, 0, 1], [0, 1, 0, 0, 0] ], dtype=torch.float).to_sparse() ], dedicom_decoder) d_neg = negative_sample_data(d)