def test_error_ratio(self): adj = np.diag(np.ones(3), k=1) G = Graph.from_adj_matrix(adj + adj.T) GT = np.tile(np.linspace(0, 1, adj.shape[0])**2, (2,1)).T err_edges, tot_edges = sr.error_ratio(G, GT, return_tuple=True) self.assertEqual(err_edges, 6) self.assertEqual(tot_edges, 6) self.assertEqual(sr.error_ratio(G, GT, max_delta_theta=0.2), 4/6.) self.assertEqual(sr.error_ratio(G, GT, max_delta_theta=0.5), 2/6.) self.assertEqual(sr.error_ratio(G, GT, max_delta_theta=1), 0.0)
def test_swiss_roll(self): np.random.seed(1234) X, theta = swiss_roll(6, 120, radius=4.8, return_theta=True) GT = np.hstack((theta[:, None], X[:, 1:2])) GT -= GT.min(axis=0) GT /= GT.max(axis=0) G = manifold_spanning_graph(X, 2) self.assertEqual(error_ratio(G, GT), 0.0)