def test_seed_expansion(self): """ Graph: 1--2 3--4 \ / 0 Adj. list: 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 Inv. distance adjacency list (two nodes are connected if their distance is lower than x) 0 0 x x x 0 x x x x x x x x 0 """ distances = CondensedMatrix([ 0., 0., 2., 2., 0., 2., 2., 2., 2., 0.]) N = distances.row_length dbscan_alg = DBSCANAlgorithm(distances) eps = 1.0 minpts = 2 elements_class = [PointClassType.UNCLASSIFIED]*N dbscan_alg._DBSCANAlgorithm__seed_expansion(1, eps, minpts, [2], elements_class) expected_classes = [1,1,1,PointClassType.UNCLASSIFIED,PointClassType.UNCLASSIFIED ] self.assertItemsEqual(expected_classes, elements_class) elements_class = [PointClassType.UNCLASSIFIED]*N dbscan_alg._DBSCANAlgorithm__seed_expansion(2, eps, minpts, [3], elements_class) expected_classes = [PointClassType.UNCLASSIFIED,PointClassType.UNCLASSIFIED,PointClassType.UNCLASSIFIED,PointClassType.UNCLASSIFIED,PointClassType.UNCLASSIFIED ] self.assertItemsEqual(expected_classes, elements_class) minpts = 1 dbscan_alg._DBSCANAlgorithm__seed_expansion(2, eps, minpts, [3], elements_class) expected_classes = [PointClassType.UNCLASSIFIED,PointClassType.UNCLASSIFIED,PointClassType.UNCLASSIFIED, 2, 2] self.assertItemsEqual(expected_classes, elements_class) elements_class = [PointClassType.UNCLASSIFIED]*N dbscan_alg._DBSCANAlgorithm__seed_expansion(1, eps, minpts, [2,4], elements_class) expected_classes = [1, 1, 1, 1, 1] self.assertItemsEqual(expected_classes, elements_class)
def test_seed_expansion(self): """ Graph: 1--2 3--4 \ / 0 Adj. list: 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 Inv. distance adjacency list (two nodes are connected if their distance is lower than x) 0 0 x x x 0 x x x x x x x x 0 """ distances = CondensedMatrix([0., 0., 2., 2., 0., 2., 2., 2., 2., 0.]) N = distances.row_length dbscan_alg = DBSCANAlgorithm(distances) eps = 1.0 minpts = 2 elements_class = [PointClassType.UNCLASSIFIED] * N dbscan_alg._DBSCANAlgorithm__seed_expansion(1, eps, minpts, [2], elements_class) expected_classes = [ 1, 1, 1, PointClassType.UNCLASSIFIED, PointClassType.UNCLASSIFIED ] self.assertItemsEqual(expected_classes, elements_class) elements_class = [PointClassType.UNCLASSIFIED] * N dbscan_alg._DBSCANAlgorithm__seed_expansion(2, eps, minpts, [3], elements_class) expected_classes = [ PointClassType.UNCLASSIFIED, PointClassType.UNCLASSIFIED, PointClassType.UNCLASSIFIED, PointClassType.UNCLASSIFIED, PointClassType.UNCLASSIFIED ] self.assertItemsEqual(expected_classes, elements_class) minpts = 1 dbscan_alg._DBSCANAlgorithm__seed_expansion(2, eps, minpts, [3], elements_class) expected_classes = [ PointClassType.UNCLASSIFIED, PointClassType.UNCLASSIFIED, PointClassType.UNCLASSIFIED, 2, 2 ] self.assertItemsEqual(expected_classes, elements_class) elements_class = [PointClassType.UNCLASSIFIED] * N dbscan_alg._DBSCANAlgorithm__seed_expansion(1, eps, minpts, [2, 4], elements_class) expected_classes = [1, 1, 1, 1, 1] self.assertItemsEqual(expected_classes, elements_class)