def test_filtered_alpha(): point_list = [[0, 0], [1, 0], [0, 1], [1, 1]] filtered_alpha = AlphaComplex(points=point_list) simplex_tree = filtered_alpha.create_simplex_tree(max_alpha_square=0.25) assert simplex_tree.num_simplices() == 8 assert simplex_tree.num_vertices() == 4 assert point_list[0] == filtered_alpha.get_point(0) assert point_list[1] == filtered_alpha.get_point(1) assert point_list[2] == filtered_alpha.get_point(2) assert point_list[3] == filtered_alpha.get_point(3) assert filtered_alpha.get_point(4) == [] assert filtered_alpha.get_point(125) == [] assert simplex_tree.get_filtration() == [ ([0], 0.0), ([1], 0.0), ([2], 0.0), ([3], 0.0), ([0, 1], 0.25), ([0, 2], 0.25), ([1, 3], 0.25), ([2, 3], 0.25), ] assert simplex_tree.get_star([0]) == [([0], 0.0), ([0, 1], 0.25), ([0, 2], 0.25)] assert simplex_tree.get_cofaces([0], 1) == [([0, 1], 0.25), ([0, 2], 0.25)]
def _filtered_alpha(precision): point_list = [[0, 0], [1, 0], [0, 1], [1, 1]] filtered_alpha = AlphaComplex(points=point_list, precision = precision) simplex_tree = filtered_alpha.create_simplex_tree(max_alpha_square=0.25) assert simplex_tree.num_simplices() == 8 assert simplex_tree.num_vertices() == 4 assert point_list[0] == filtered_alpha.get_point(0) assert point_list[1] == filtered_alpha.get_point(1) assert point_list[2] == filtered_alpha.get_point(2) assert point_list[3] == filtered_alpha.get_point(3) with pytest.raises(IndexError): filtered_alpha.get_point(len(point_list)) assert list(simplex_tree.get_filtration()) == [ ([0], 0.0), ([1], 0.0), ([2], 0.0), ([3], 0.0), ([0, 1], 0.25), ([0, 2], 0.25), ([1, 3], 0.25), ([2, 3], 0.25), ] assert simplex_tree.get_star([0]) == [([0], 0.0), ([0, 1], 0.25), ([0, 2], 0.25)] assert simplex_tree.get_cofaces([0], 1) == [([0, 1], 0.25), ([0, 2], 0.25)]
def _3d_tetrahedrons(precision): points = 10*np.random.rand(10, 3) alpha = AlphaComplex(points = points, precision = precision) st_alpha = alpha.create_simplex_tree(default_filtration_value = False) # New AlphaComplex for get_point to work delaunay = AlphaComplex(points = points, precision = precision) st_delaunay = delaunay.create_simplex_tree(default_filtration_value = True) delaunay_tetra = [] for sk in st_delaunay.get_skeleton(4): if len(sk[0]) == 4: tetra = [delaunay.get_point(sk[0][0]), delaunay.get_point(sk[0][1]), delaunay.get_point(sk[0][2]), delaunay.get_point(sk[0][3]) ] delaunay_tetra.append(sorted(tetra, key=lambda tup: tup[0])) alpha_tetra = [] for sk in st_alpha.get_skeleton(4): if len(sk[0]) == 4: tetra = [alpha.get_point(sk[0][0]), alpha.get_point(sk[0][1]), alpha.get_point(sk[0][2]), alpha.get_point(sk[0][3]) ] alpha_tetra.append(sorted(tetra, key=lambda tup: tup[0])) # Check the tetrahedrons from one list are in the second one assert len(alpha_tetra) == len(delaunay_tetra) for tetra_from_del in delaunay_tetra: assert tetra_from_del in alpha_tetra
def _delaunay_complex(precision): point_list = [[0, 0], [1, 0], [0, 1], [1, 1]] filtered_alpha = AlphaComplex(points=point_list, precision=precision) simplex_tree = filtered_alpha.create_simplex_tree( default_filtration_value=True) assert simplex_tree.num_simplices() == 11 assert simplex_tree.num_vertices() == 4 assert point_list[0] == filtered_alpha.get_point(0) assert point_list[1] == filtered_alpha.get_point(1) assert point_list[2] == filtered_alpha.get_point(2) assert point_list[3] == filtered_alpha.get_point(3) try: filtered_alpha.get_point(4) == [] except IndexError: pass else: assert False try: filtered_alpha.get_point(125) == [] except IndexError: pass else: assert False for filtered_value in simplex_tree.get_filtration(): assert math.isnan(filtered_value[1]) for filtered_value in simplex_tree.get_star([0]): assert math.isnan(filtered_value[1]) for filtered_value in simplex_tree.get_cofaces([0], 1): assert math.isnan(filtered_value[1])
def _infinite_alpha(precision): point_list = [[0, 0], [1, 0], [0, 1], [1, 1]] alpha_complex = AlphaComplex(points=point_list, precision = precision) assert alpha_complex.__is_defined() == True simplex_tree = alpha_complex.create_simplex_tree() assert simplex_tree.__is_persistence_defined() == False assert simplex_tree.num_simplices() == 11 assert simplex_tree.num_vertices() == 4 assert list(simplex_tree.get_filtration()) == [ ([0], 0.0), ([1], 0.0), ([2], 0.0), ([3], 0.0), ([0, 1], 0.25), ([0, 2], 0.25), ([1, 3], 0.25), ([2, 3], 0.25), ([1, 2], 0.5), ([0, 1, 2], 0.5), ([1, 2, 3], 0.5), ] assert simplex_tree.get_star([0]) == [ ([0], 0.0), ([0, 1], 0.25), ([0, 1, 2], 0.5), ([0, 2], 0.25), ] assert simplex_tree.get_cofaces([0], 1) == [([0, 1], 0.25), ([0, 2], 0.25)] assert point_list[0] == alpha_complex.get_point(0) assert point_list[1] == alpha_complex.get_point(1) assert point_list[2] == alpha_complex.get_point(2) assert point_list[3] == alpha_complex.get_point(3) with pytest.raises(IndexError): alpha_complex.get_point(len(point_list))
def test_infinite_alpha(): point_list = [[0, 0], [1, 0], [0, 1], [1, 1]] alpha_complex = AlphaComplex(points=point_list) assert alpha_complex.__is_defined() == True simplex_tree = alpha_complex.create_simplex_tree() assert simplex_tree.__is_persistence_defined() == False assert simplex_tree.num_simplices() == 11 assert simplex_tree.num_vertices() == 4 assert simplex_tree.get_filtration() == [ ([0], 0.0), ([1], 0.0), ([2], 0.0), ([3], 0.0), ([0, 1], 0.25), ([0, 2], 0.25), ([1, 3], 0.25), ([2, 3], 0.25), ([1, 2], 0.5), ([0, 1, 2], 0.5), ([1, 2, 3], 0.5), ] assert simplex_tree.get_star([0]) == [ ([0], 0.0), ([0, 1], 0.25), ([0, 1, 2], 0.5), ([0, 2], 0.25), ] assert simplex_tree.get_cofaces([0], 1) == [([0, 1], 0.25), ([0, 2], 0.25)] assert point_list[0] == alpha_complex.get_point(0) assert point_list[1] == alpha_complex.get_point(1) assert point_list[2] == alpha_complex.get_point(2) assert point_list[3] == alpha_complex.get_point(3) assert alpha_complex.get_point(4) == [] assert alpha_complex.get_point(125) == []
def _filtered_alpha(precision): point_list = [[0, 0], [1, 0], [0, 1], [1, 1]] filtered_alpha = AlphaComplex(points=point_list, precision=precision) simplex_tree = filtered_alpha.create_simplex_tree(max_alpha_square=0.25) assert simplex_tree.num_simplices() == 8 assert simplex_tree.num_vertices() == 4 assert point_list[0] == filtered_alpha.get_point(0) assert point_list[1] == filtered_alpha.get_point(1) assert point_list[2] == filtered_alpha.get_point(2) assert point_list[3] == filtered_alpha.get_point(3) try: filtered_alpha.get_point(4) == [] except IndexError: pass else: assert False try: filtered_alpha.get_point(125) == [] except IndexError: pass else: assert False assert list(simplex_tree.get_filtration()) == [ ([0], 0.0), ([1], 0.0), ([2], 0.0), ([3], 0.0), ([0, 1], 0.25), ([0, 2], 0.25), ([1, 3], 0.25), ([2, 3], 0.25), ] assert simplex_tree.get_star([0]) == [([0], 0.0), ([0, 1], 0.25), ([0, 2], 0.25)] assert simplex_tree.get_cofaces([0], 1) == [([0, 1], 0.25), ([0, 2], 0.25)]
else: print("[0, 1] Not found...") if simplex_tree.find([4]): print("[4] Found !!") else: print("[4] Not found...") if simplex_tree.insert([0, 1, 2], filtration=4.0): print("[0, 1, 2] Inserted !!") else: print("[0, 1, 2] Not inserted...") if simplex_tree.insert([0, 1, 4], filtration=4.0): print("[0, 1, 4] Inserted !!") else: print("[0, 1, 4] Not inserted...") if simplex_tree.find([4]): print("[4] Found !!") else: print("[4] Not found...") print("dimension=", simplex_tree.dimension()) print("filtrations=", simplex_tree.get_filtration()) print("star([0])=", simplex_tree.get_star([0])) print("coface([0], 1)=", simplex_tree.get_cofaces([0], 1)) print("point[0]=", alpha_complex.get_point(0)) print("point[5]=", alpha_complex.get_point(5))