def test_witness_complex(): point_cloud = [ [1.0, 1.0], [7.0, 0.0], [4.0, 6.0], [9.0, 6.0], [0.0, 14.0], [2.0, 19.0], [9.0, 17.0], ] landmarks = [[1.0, 1.0], [7.0, 0.0], [4.0, 6.0]] euclidean_witness_complex = gudhi.EuclideanWitnessComplex( landmarks=landmarks, witnesses=point_cloud) simplex_tree = euclidean_witness_complex.create_simplex_tree( max_alpha_square=4.1) assert landmarks[0] == euclidean_witness_complex.get_point(0) assert landmarks[1] == euclidean_witness_complex.get_point(1) assert landmarks[2] == euclidean_witness_complex.get_point(2) assert list(simplex_tree.get_filtration()) == [ ([0], 0.0), ([1], 0.0), ([0, 1], 0.0), ([2], 0.0), ([0, 2], 0.0), ([1, 2], 0.0), ([0, 1, 2], 0.0), ]
def witness_complex_persistence(points, numb_landmarks, alpha, dim, field): start_time = time.time() landmarks = g.pick_n_random_points(points=points, nb_points=numb_landmarks) witness_complex = g.EuclideanWitnessComplex(witnesses=points, landmarks=landmarks) simplex_tree = witness_complex.create_simplex_tree( max_alpha_square=alpha**2, limit_dimension=dim) logger.info("Build complex in {} sec".format(time.time() - start_time)) logger.info("{} vertices, {} simplices".format( simplex_tree.num_vertices(), simplex_tree.num_simplices())) start_time = time.time() simplex_tree.initialize_filtration() simplex_tree.persistence(homology_coeff_field=field) logger.info("Build persistence in {} sec".format(time.time() - start_time)) return simplex_tree
print( "#####################################################################" ) print( "EuclideanWitnessComplex creation from points read in a OFF file") witnesses = gudhi.read_points_from_off_file(off_file=args.file) landmarks = gudhi.pick_n_random_points( points=witnesses, nb_points=args.number_of_landmarks) message = ("EuclideanWitnessComplex with max_edge_length=" + repr(args.max_alpha_square) + " - Number of landmarks=" + repr(args.number_of_landmarks)) print(message) witness_complex = gudhi.EuclideanWitnessComplex(witnesses=witnesses, landmarks=landmarks) simplex_tree = witness_complex.create_simplex_tree( max_alpha_square=args.max_alpha_square, limit_dimension=args.limit_dimension) message = "Number of simplices=" + repr(simplex_tree.num_simplices()) print(message) diag = simplex_tree.persistence() print("betti_numbers()=") print(simplex_tree.betti_numbers()) if args.no_diagram == False: import matplotlib.pyplot as plot gudhi.plot_persistence_diagram(diag, band=args.band)
def test_empty_euclidean_witness_complex(): euclidean_witness = gudhi.EuclideanWitnessComplex() assert euclidean_witness.__is_defined() == False