def test_snn_dist_equals_sim(self): """Test that SNN results are equivalent using distances or simil.""" self.setUpMod('rnd') snn_dist = shared_nearest_neighbors(self.dist, metric='distance') snn_sim = shared_nearest_neighbors(1. - self.dist, metric='similarity') dist_equals_sim = np.allclose(snn_sim, 1.-snn_dist) return self.assertTrue(dist_equals_sim)
def test_snn_matrix_basic_requirements(self): """Test that matrix is symmetric, diag==0, and in range [0, 1]""" self.setUpMod('rnd') snn_dist = shared_nearest_neighbors(self.dist) symmetric = np.all(snn_dist == snn_dist.T) diag_zero = np.all(snn_dist.diagonal() == 0.) correct_range = snn_dist.min() >= 0. and snn_dist.max() <= 1. return self.assertTrue(symmetric and diag_zero and correct_range)
def test_snn(self): """Test correctness of SNN in toy example (hand-calculated)""" self.setUpMod('toy') snn_dist = shared_nearest_neighbors(self.dist, k=2) snn_calc_equal_truth = np.all(snn_dist == self.snn_dist_truth) return self.assertTrue(snn_calc_equal_truth)