summaryrefslogtreecommitdiff
path: root/cython/test
diff options
context:
space:
mode:
Diffstat (limited to 'cython/test')
-rwxr-xr-xcython/test/test_alpha_complex.py86
-rwxr-xr-xcython/test/test_bottleneck_distance.py35
-rwxr-xr-xcython/test/test_cover_complex.py92
-rwxr-xr-xcython/test/test_cubical_complex.py97
-rwxr-xr-xcython/test/test_euclidean_witness_complex.py71
-rwxr-xr-xcython/test/test_reader_utils.py88
-rwxr-xr-xcython/test/test_rips_complex.py111
-rwxr-xr-xcython/test/test_simplex_tree.py207
-rwxr-xr-xcython/test/test_subsampling.py133
-rwxr-xr-xcython/test/test_tangential_complex.py52
-rwxr-xr-xcython/test/test_witness_complex.py62
11 files changed, 0 insertions, 1034 deletions
diff --git a/cython/test/test_alpha_complex.py b/cython/test/test_alpha_complex.py
deleted file mode 100755
index e97f2530..00000000
--- a/cython/test/test_alpha_complex.py
+++ /dev/null
@@ -1,86 +0,0 @@
-from gudhi import AlphaComplex, SimplexTree
-
-"""This file is part of the Gudhi Library. The Gudhi library
- (Geometric Understanding in Higher Dimensions) is a generic C++
- library for computational topology.
-
- Author(s): Vincent Rouvreau
-
- Copyright (C) 2016 Inria
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-
-__author__ = "Vincent Rouvreau"
-__copyright__ = "Copyright (C) 2016 Inria"
-__license__ = "GPL v3"
-
-
-def test_empty_alpha():
- alpha_complex = AlphaComplex(points=[[0,0]])
- assert alpha_complex.__is_defined() == True
-
-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 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)]
diff --git a/cython/test/test_bottleneck_distance.py b/cython/test/test_bottleneck_distance.py
deleted file mode 100755
index 4eb5848f..00000000
--- a/cython/test/test_bottleneck_distance.py
+++ /dev/null
@@ -1,35 +0,0 @@
-import gudhi
-
-"""This file is part of the Gudhi Library. The Gudhi library
- (Geometric Understanding in Higher Dimensions) is a generic C++
- library for computational topology.
-
- Author(s): Vincent Rouvreau
-
- Copyright (C) 2016 Inria
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-
-__author__ = "Vincent Rouvreau"
-__copyright__ = "Copyright (C) 2016 Inria"
-__license__ = "GPL v3"
-
-
-def test_basic_bottleneck():
- diag1 = [[2.7, 3.7],[9.6, 14.],[34.2, 34.974], [3.,float('Inf')]]
- diag2 = [[2.8, 4.45],[9.5, 14.1],[3.2,float('Inf')]]
-
- assert(gudhi.bottleneck_distance(diag1, diag2, 0.1) == 0.8081763781405569)
- assert(gudhi.bottleneck_distance(diag1, diag2) == 0.75)
diff --git a/cython/test/test_cover_complex.py b/cython/test/test_cover_complex.py
deleted file mode 100755
index 58935264..00000000
--- a/cython/test/test_cover_complex.py
+++ /dev/null
@@ -1,92 +0,0 @@
-from gudhi import CoverComplex
-
-"""This file is part of the Gudhi Library. The Gudhi library
- (Geometric Understanding in Higher Dimensions) is a generic C++
- library for computational topology.
-
- Author(s): Vincent Rouvreau
-
- Copyright (C) 2018 Inria
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-
-__author__ = "Vincent Rouvreau"
-__copyright__ = "Copyright (C) 2018 Inria"
-__license__ = "GPL v3"
-
-
-def test_empty_constructor():
- # Try to create an empty CoverComplex
- cover = CoverComplex()
- assert cover.__is_defined() == True
-
-def test_non_existing_file_read():
- # Try to open a non existing file
- cover = CoverComplex()
- assert (cover.read_point_cloud('pouetpouettralala.toubiloubabdou') == False)
-
-def test_files_creation():
- # Create test file
- cloud_file = open('cloud', 'w')
- cloud_file.write('nOFF\n3\n3 0 0\n0 0 0\n2 1 0\n4 0 0')
- cloud_file.close()
- cover_file = open('cover', 'w')
- cover_file.write('1\n2\n3')
- cover_file.close()
- graph_file = open('graph', 'w')
- graph_file.write('0 1\n0 2\n1 2')
- graph_file.close()
-
-def test_nerve():
- nerve = CoverComplex()
- nerve.set_type('Nerve')
- assert (nerve.read_point_cloud('cloud') == True)
- nerve.set_color_from_coordinate()
- nerve.set_graph_from_file('graph')
- nerve.set_cover_from_file('cover')
- nerve.find_simplices()
- stree = nerve.create_simplex_tree()
-
- assert (stree.num_vertices() == 3)
- assert ((stree.num_simplices() - stree.num_vertices()) == 0)
- assert (stree.dimension() == 0)
-
-def test_graph_induced_complex():
- gic = CoverComplex()
- gic.set_type('GIC')
- assert (gic.read_point_cloud('cloud') == True)
- gic.set_color_from_coordinate()
- gic.set_graph_from_file('graph')
- gic.set_cover_from_file('cover')
- gic.find_simplices()
- stree = gic.create_simplex_tree()
-
- assert (stree.num_vertices() == 3)
- assert ((stree.num_simplices() - stree.num_vertices()) == 4)
- assert (stree.dimension() == 2)
-
-def test_voronoi_graph_induced_complex():
- gic = CoverComplex()
- gic.set_type('GIC')
- assert (gic.read_point_cloud('cloud') == True)
- gic.set_color_from_coordinate()
- gic.set_graph_from_file('graph')
- gic.set_cover_from_Voronoi(2)
- gic.find_simplices()
- stree = gic.create_simplex_tree()
-
- assert (stree.num_vertices() == 2)
- assert ((stree.num_simplices() - stree.num_vertices()) == 1)
- assert (stree.dimension() == 1)
diff --git a/cython/test/test_cubical_complex.py b/cython/test/test_cubical_complex.py
deleted file mode 100755
index 92e591e9..00000000
--- a/cython/test/test_cubical_complex.py
+++ /dev/null
@@ -1,97 +0,0 @@
-from gudhi import CubicalComplex
-
-"""This file is part of the Gudhi Library. The Gudhi library
- (Geometric Understanding in Higher Dimensions) is a generic C++
- library for computational topology.
-
- Author(s): Vincent Rouvreau
-
- Copyright (C) 2016 Inria
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-
-__author__ = "Vincent Rouvreau"
-__copyright__ = "Copyright (C) 2016 Inria"
-__license__ = "GPL v3"
-
-
-def test_empty_constructor():
- # Try to create an empty CubicalComplex
- cub = CubicalComplex()
- assert cub.__is_defined() == False
- assert cub.__is_persistence_defined() == False
-
-def test_non_existing_perseus_file_constructor():
- # Try to open a non existing file
- cub = CubicalComplex(perseus_file='pouetpouettralala.toubiloubabdou')
- assert cub.__is_defined() == False
- assert cub.__is_persistence_defined() == False
-
-def test_dimension_or_perseus_file_constructor():
- # Create test file
- test_file = open('CubicalOneSphere.txt', 'w')
- test_file.write('2\n3\n3\n0\n0\n0\n0\n100\n0\n0\n0\n0\n')
- test_file.close()
- # CubicalComplex can be constructed from dimensions and
- # top_dimensional_cells OR from a Perseus-style file name.
- cub = CubicalComplex(dimensions=[3, 3],
- top_dimensional_cells = [1,2,3,4,5,6,7,8,9],
- perseus_file='CubicalOneSphere.txt')
- assert cub.__is_defined() == False
- assert cub.__is_persistence_defined() == False
-
- cub = CubicalComplex(top_dimensional_cells = [1,2,3,4,5,6,7,8,9],
- perseus_file='CubicalOneSphere.txt')
- assert cub.__is_defined() == False
- assert cub.__is_persistence_defined() == False
-
- cub = CubicalComplex(dimensions=[3, 3],
- perseus_file='CubicalOneSphere.txt')
- assert cub.__is_defined() == False
- assert cub.__is_persistence_defined() == False
-
-def test_dimension_simple_constructor():
- cub = CubicalComplex(dimensions=[3, 3],
- top_dimensional_cells = [1,2,3,4,5,6,7,8,9])
- assert cub.__is_defined() == True
- assert cub.__is_persistence_defined() == False
- assert cub.persistence() == [(0, (1.0, float('inf')))]
- assert cub.__is_persistence_defined() == True
- assert cub.betti_numbers() == [1, 0, 0]
- assert cub.persistent_betti_numbers(0, 1000) == [0, 0, 0]
-
-def test_user_case_simple_constructor():
- cub = CubicalComplex(dimensions=[3, 3],
- top_dimensional_cells = [float('inf'), 0.,0.,0.,1.,0.,0.,0.,0.])
- assert cub.__is_defined() == True
- assert cub.__is_persistence_defined() == False
- assert cub.persistence() == [(1, (0.0, 1.0)), (0, (0.0, float('inf')))]
- assert cub.__is_persistence_defined() == True
- other_cub = CubicalComplex(dimensions=[3, 3],
- top_dimensional_cells = [1000., 0.,0.,0.,1.,0.,0.,0.,0.])
- assert other_cub.persistence() == [(1, (0.0, 1.0)), (0, (0.0, float('inf')))]
-
-def test_dimension_file_constructor():
- # Create test file
- test_file = open('CubicalOneSphere.txt', 'w')
- test_file.write('2\n3\n3\n0\n0\n0\n0\n100\n0\n0\n0\n0\n')
- test_file.close()
- cub = CubicalComplex(perseus_file='CubicalOneSphere.txt')
- assert cub.__is_defined() == True
- assert cub.__is_persistence_defined() == False
- assert cub.persistence() == [(1, (0.0, 100.0)), (0, (0.0, float('inf')))]
- assert cub.__is_persistence_defined() == True
- assert cub.betti_numbers() == [1, 0, 0]
- assert cub.persistent_betti_numbers(0, 1000) == [1, 0, 0]
diff --git a/cython/test/test_euclidean_witness_complex.py b/cython/test/test_euclidean_witness_complex.py
deleted file mode 100755
index 2f77210a..00000000
--- a/cython/test/test_euclidean_witness_complex.py
+++ /dev/null
@@ -1,71 +0,0 @@
-import gudhi
-
-"""This file is part of the Gudhi Library. The Gudhi library
- (Geometric Understanding in Higher Dimensions) is a generic C++
- library for computational topology.
-
- Author(s): Vincent Rouvreau
-
- Copyright (C) 2016 Inria
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-
-__author__ = "Vincent Rouvreau"
-__copyright__ = "Copyright (C) 2016 Inria"
-__license__ = "GPL v3"
-
-
-def test_empty_euclidean_witness_complex():
- euclidean_witness = gudhi.EuclideanWitnessComplex()
- assert euclidean_witness.__is_defined() == False
-
-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 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 test_empty_euclidean_strong_witness_complex():
- euclidean_strong_witness = gudhi.EuclideanStrongWitnessComplex()
- assert euclidean_strong_witness.__is_defined() == False
-
-def test_strong_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_strong_witness_complex = gudhi.EuclideanStrongWitnessComplex(landmarks=landmarks, witnesses = point_cloud)
- simplex_tree = euclidean_strong_witness_complex.create_simplex_tree(max_alpha_square=14.9)
-
- assert landmarks[0] == euclidean_strong_witness_complex.get_point(0)
- assert landmarks[1] == euclidean_strong_witness_complex.get_point(1)
- assert landmarks[2] == euclidean_strong_witness_complex.get_point(2)
-
- assert simplex_tree.get_filtration() == [([0], 0.0), ([1], 0.0), ([2], 0.0)]
-
- simplex_tree = euclidean_strong_witness_complex.create_simplex_tree(max_alpha_square=100.0)
-
- assert simplex_tree.get_filtration() == [([0], 0.0), ([1], 0.0),
- ([2], 0.0), ([1, 2], 15.0), ([0, 2], 34.0), ([0, 1], 37.0),
- ([0, 1, 2], 37.0)]
-
diff --git a/cython/test/test_reader_utils.py b/cython/test/test_reader_utils.py
deleted file mode 100755
index b240c84f..00000000
--- a/cython/test/test_reader_utils.py
+++ /dev/null
@@ -1,88 +0,0 @@
-import gudhi
-
-"""This file is part of the Gudhi Library. The Gudhi library
- (Geometric Understanding in Higher Dimensions) is a generic C++
- library for computational topology.
-
- Author(s): Vincent Rouvreau
-
- Copyright (C) 2017 Inria
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-
-__author__ = "Vincent Rouvreau"
-__copyright__ = "Copyright (C) 2017 Inria"
-__license__ = "GPL v3"
-
-
-def test_non_existing_csv_file():
- # Try to open a non existing file
- matrix = gudhi.read_lower_triangular_matrix_from_csv_file(csv_file='pouetpouettralala.toubiloubabdou')
- assert matrix == []
-
-def test_full_square_distance_matrix_csv_file():
- # Create test file
- test_file = open('full_square_distance_matrix.csv', 'w')
- test_file.write('0;1;2;3;\n1;0;4;5;\n2;4;0;6;\n3;5;6;0;')
- test_file.close()
- matrix = gudhi.read_lower_triangular_matrix_from_csv_file(csv_file="full_square_distance_matrix.csv")
- assert matrix == [[], [1.0], [2.0, 4.0], [3.0, 5.0, 6.0]]
-
-def test_lower_triangular_distance_matrix_csv_file():
- # Create test file
- test_file = open('lower_triangular_distance_matrix.csv', 'w')
- test_file.write('\n1,\n2,3,\n4,5,6,\n7,8,9,10,')
- test_file.close()
- matrix = gudhi.read_lower_triangular_matrix_from_csv_file(csv_file="lower_triangular_distance_matrix.csv", separator=",")
- assert matrix == [[], [1.0], [2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0, 10.0]]
-
-def test_non_existing_persistence_file():
- # Try to open a non existing file
- persistence = gudhi.read_persistence_intervals_grouped_by_dimension(persistence_file='pouetpouettralala.toubiloubabdou')
- assert persistence == []
- persistence = gudhi.read_persistence_intervals_in_dimension(persistence_file='pouetpouettralala.toubiloubabdou', only_this_dim=1)
- assert persistence == []
-
-def test_read_persistence_intervals_without_dimension():
- # Create test file
- test_file = open('persistence_intervals_without_dimension.pers', 'w')
- test_file.write('# Simple persistence diagram without dimension\n2.7 3.7\n9.6 14.\n34.2 34.974\n3. inf')
- test_file.close()
- persistence = gudhi.read_persistence_intervals_in_dimension(persistence_file='persistence_intervals_without_dimension.pers')
- assert persistence == [(2.7, 3.7), (9.6, 14.), (34.2, 34.974), (3., float('Inf'))]
- persistence = gudhi.read_persistence_intervals_in_dimension(persistence_file='persistence_intervals_without_dimension.pers', only_this_dim=0)
- assert persistence == []
- persistence = gudhi.read_persistence_intervals_in_dimension(persistence_file='persistence_intervals_without_dimension.pers', only_this_dim=1)
- assert persistence == []
- persistence = gudhi.read_persistence_intervals_grouped_by_dimension(persistence_file='persistence_intervals_without_dimension.pers')
- assert persistence == {-1: [(2.7, 3.7), (9.6, 14.0), (34.2, 34.974), (3.0, float('Inf'))]}
-
-def test_read_persistence_intervals_with_dimension():
- # Create test file
- test_file = open('persistence_intervals_with_dimension.pers', 'w')
- test_file.write('# Simple persistence diagram with dimension\n0 2.7 3.7\n1 9.6 14.\n3 34.2 34.974\n1 3. inf')
- test_file.close()
- persistence = gudhi.read_persistence_intervals_in_dimension(persistence_file='persistence_intervals_with_dimension.pers')
- assert persistence == [(2.7, 3.7), (9.6, 14.), (34.2, 34.974), (3., float('Inf'))]
- persistence = gudhi.read_persistence_intervals_in_dimension(persistence_file='persistence_intervals_with_dimension.pers', only_this_dim=0)
- assert persistence == [(2.7, 3.7)]
- persistence = gudhi.read_persistence_intervals_in_dimension(persistence_file='persistence_intervals_with_dimension.pers', only_this_dim=1)
- assert persistence == [(9.6, 14.), (3., float('Inf'))]
- persistence = gudhi.read_persistence_intervals_in_dimension(persistence_file='persistence_intervals_with_dimension.pers', only_this_dim=2)
- assert persistence == []
- persistence = gudhi.read_persistence_intervals_in_dimension(persistence_file='persistence_intervals_with_dimension.pers', only_this_dim=3)
- assert persistence == [(34.2, 34.974)]
- persistence = gudhi.read_persistence_intervals_grouped_by_dimension(persistence_file='persistence_intervals_with_dimension.pers')
- assert persistence == {0: [(2.7, 3.7)], 1: [(9.6, 14.0), (3.0, float('Inf'))], 3: [(34.2, 34.974)]}
diff --git a/cython/test/test_rips_complex.py b/cython/test/test_rips_complex.py
deleted file mode 100755
index c37b5400..00000000
--- a/cython/test/test_rips_complex.py
+++ /dev/null
@@ -1,111 +0,0 @@
-from gudhi import RipsComplex
-from math import sqrt
-
-"""This file is part of the Gudhi Library. The Gudhi library
- (Geometric Understanding in Higher Dimensions) is a generic C++
- library for computational topology.
-
- Author(s): Vincent Rouvreau
-
- Copyright (C) 2016 Inria
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-
-__author__ = "Vincent Rouvreau"
-__copyright__ = "Copyright (C) 2016 Inria"
-__license__ = "GPL v3"
-
-
-def test_empty_rips():
- rips_complex = RipsComplex()
- assert rips_complex.__is_defined() == True
-
-def test_rips_from_points():
- point_list = [[0, 0], [1, 0], [0, 1], [1, 1]]
- rips_complex = RipsComplex(points=point_list, max_edge_length=42)
-
- simplex_tree = rips_complex.create_simplex_tree(max_dimension=1)
-
- assert simplex_tree.__is_defined() == True
- assert simplex_tree.__is_persistence_defined() == False
-
- assert simplex_tree.num_simplices() == 10
- 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], 1.0), ([0, 2], 1.0), ([1, 3], 1.0),
- ([2, 3], 1.0), ([1, 2], 1.4142135623730951),
- ([0, 3], 1.4142135623730951)]
- assert simplex_tree.get_star([0]) == \
- [([0], 0.0), ([0, 1], 1.0), ([0, 2], 1.0),
- ([0, 3], 1.4142135623730951)]
- assert simplex_tree.get_cofaces([0], 1) == \
- [([0, 1], 1.0), ([0, 2], 1.0),
- ([0, 3], 1.4142135623730951)]
-
-def test_filtered_rips_from_points():
- point_list = [[0, 0], [1, 0], [0, 1], [1, 1]]
- filtered_rips = RipsComplex(points=point_list, max_edge_length=1.0)
-
- simplex_tree = filtered_rips.create_simplex_tree(max_dimension=1)
-
- assert simplex_tree.__is_defined() == True
- assert simplex_tree.__is_persistence_defined() == False
-
- assert simplex_tree.num_simplices() == 8
- assert simplex_tree.num_vertices() == 4
-
-def test_rips_from_distance_matrix():
- distance_matrix = [[0],
- [1, 0],
- [1, sqrt(2), 0],
- [sqrt(2), 1, 1, 0]]
- rips_complex = RipsComplex(distance_matrix=distance_matrix, max_edge_length=42)
-
- simplex_tree = rips_complex.create_simplex_tree(max_dimension=1)
-
- assert simplex_tree.__is_defined() == True
- assert simplex_tree.__is_persistence_defined() == False
-
- assert simplex_tree.num_simplices() == 10
- 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], 1.0), ([0, 2], 1.0), ([1, 3], 1.0),
- ([2, 3], 1.0), ([1, 2], 1.4142135623730951),
- ([0, 3], 1.4142135623730951)]
- assert simplex_tree.get_star([0]) == \
- [([0], 0.0), ([0, 1], 1.0), ([0, 2], 1.0),
- ([0, 3], 1.4142135623730951)]
- assert simplex_tree.get_cofaces([0], 1) == \
- [([0, 1], 1.0), ([0, 2], 1.0),
- ([0, 3], 1.4142135623730951)]
-
-def test_filtered_rips_from_distance_matrix():
- distance_matrix = [[0],
- [1, 0],
- [1, sqrt(2), 0],
- [sqrt(2), 1, 1, 0]]
- filtered_rips = RipsComplex(distance_matrix=distance_matrix, max_edge_length=1.0)
-
- simplex_tree = filtered_rips.create_simplex_tree(max_dimension=1)
-
- assert simplex_tree.__is_defined() == True
- assert simplex_tree.__is_persistence_defined() == False
-
- assert simplex_tree.num_simplices() == 8
- assert simplex_tree.num_vertices() == 4
diff --git a/cython/test/test_simplex_tree.py b/cython/test/test_simplex_tree.py
deleted file mode 100755
index cb701c9a..00000000
--- a/cython/test/test_simplex_tree.py
+++ /dev/null
@@ -1,207 +0,0 @@
-from gudhi import SimplexTree
-
-"""This file is part of the Gudhi Library. The Gudhi library
- (Geometric Understanding in Higher Dimensions) is a generic C++
- library for computational topology.
-
- Author(s): Vincent Rouvreau
-
- Copyright (C) 2016 Inria
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-
-__author__ = "Vincent Rouvreau"
-__copyright__ = "Copyright (C) 2016 Inria"
-__license__ = "GPL v3"
-
-
-def test_insertion():
- st = SimplexTree()
- assert st.__is_defined() == True
- assert st.__is_persistence_defined() == False
-
- # insert test
- assert st.insert([0, 1]) == True
-
- assert st.dimension() == 1
-
- assert st.insert([0, 1, 2], filtration=4.0) == True
-
- assert st.dimension() == 2
-
- assert st.num_simplices() == 7
- assert st.num_vertices() == 3
-
- # find test
- assert st.find([0, 1, 2]) == True
- assert st.find([0, 1]) == True
- assert st.find([0, 2]) == True
- assert st.find([0]) == True
- assert st.find([1]) == True
- assert st.find([2]) == True
- assert st.find([3]) == False
- assert st.find([0, 3]) == False
- assert st.find([1, 3]) == False
- assert st.find([2, 3]) == False
-
- # filtration test
- st.initialize_filtration()
- assert st.filtration([0, 1, 2]) == 4.0
- assert st.filtration([0, 2]) == 4.0
- assert st.filtration([1, 2]) == 4.0
- assert st.filtration([2]) == 4.0
- assert st.filtration([0, 1]) == 0.0
- assert st.filtration([0]) == 0.0
- assert st.filtration([1]) == 0.0
-
- # skeleton test
- assert st.get_skeleton(2) == \
- [([0, 1, 2], 4.0), ([0, 1], 0.0), ([0, 2], 4.0),
- ([0], 0.0), ([1, 2], 4.0), ([1], 0.0), ([2], 4.0)]
- assert st.get_skeleton(1) == \
- [([0, 1], 0.0), ([0, 2], 4.0), ([0], 0.0),
- ([1, 2], 4.0), ([1], 0.0), ([2], 4.0)]
- assert st.get_skeleton(0) == \
- [([0], 0.0), ([1], 0.0), ([2], 4.0)]
-
- # remove_maximal_simplex test
- assert st.get_cofaces([0, 1, 2], 1) == []
- st.remove_maximal_simplex([0, 1, 2])
- assert st.get_skeleton(2) == \
- [([0, 1], 0.0), ([0, 2], 4.0), ([0], 0.0),
- ([1, 2], 4.0), ([1], 0.0), ([2], 4.0)]
- assert st.find([0, 1, 2]) == False
- assert st.find([0, 1]) == True
- assert st.find([0, 2]) == True
- assert st.find([0]) == True
- assert st.find([1]) == True
- assert st.find([2]) == True
-
- st.initialize_filtration()
- assert st.persistence(persistence_dim_max = True) == [(1, (4.0, float('inf'))), (0, (0.0, float('inf')))]
- assert st.__is_persistence_defined() == True
-
- assert st.betti_numbers() == [1, 1]
- assert st.persistent_betti_numbers(-0.1, 10000.0) == [0, 0]
- assert st.persistent_betti_numbers(0.0, 10000.0) == [1, 0]
- assert st.persistent_betti_numbers(3.9, 10000.0) == [1, 0]
- assert st.persistent_betti_numbers(4.0, 10000.0) == [1, 1]
- assert st.persistent_betti_numbers(9999.0, 10000.0) == [1, 1]
-
-def test_expansion():
- st = SimplexTree()
- assert st.__is_defined() == True
- assert st.__is_persistence_defined() == False
-
- # insert test
- assert st.insert([3, 2], 0.1) == True
- assert st.insert([2, 0], 0.2) == True
- assert st.insert([1, 0], 0.3) == True
- assert st.insert([3, 1], 0.4) == True
- assert st.insert([2, 1], 0.5) == True
- assert st.insert([6, 5], 0.6) == True
- assert st.insert([4, 2], 0.7) == True
- assert st.insert([3, 0], 0.8) == True
- assert st.insert([6, 4], 0.9) == True
- assert st.insert([6, 3], 1.0) == True
-
- assert st.num_vertices() == 7
- assert st.num_simplices() == 17
- assert st.get_filtration() == [([2], 0.1), ([3], 0.1), ([2, 3], 0.1),
- ([0], 0.2), ([0, 2], 0.2), ([1], 0.3), ([0, 1], 0.3), ([1, 3], 0.4),
- ([1, 2], 0.5), ([5], 0.6), ([6], 0.6), ([5, 6], 0.6), ([4], 0.7),
- ([2, 4], 0.7), ([0, 3], 0.8), ([4, 6], 0.9), ([3, 6], 1.0)]
-
- st.expansion(3)
- assert st.num_vertices() == 7
- assert st.num_simplices() == 22
- st.initialize_filtration()
-
- assert st.get_filtration() == [([2], 0.1), ([3], 0.1), ([2, 3], 0.1),
- ([0], 0.2), ([0, 2], 0.2), ([1], 0.3), ([0, 1], 0.3), ([1, 3], 0.4),
- ([1, 2], 0.5), ([0, 1, 2], 0.5), ([1, 2, 3], 0.5), ([5], 0.6), ([6], 0.6),
- ([5, 6], 0.6), ([4], 0.7), ([2, 4], 0.7), ([0, 3], 0.8), ([0, 1, 3], 0.8),
- ([0, 2, 3], 0.8), ([0, 1, 2, 3], 0.8), ([4, 6], 0.9), ([3, 6], 1.0)]
-
-def test_automatic_dimension():
- st = SimplexTree()
- assert st.__is_defined() == True
- assert st.__is_persistence_defined() == False
-
- # insert test
- assert st.insert([0,1,3], filtration=0.5) == True
- assert st.insert([0,1,2], filtration=1.) == True
-
- assert st.num_vertices() == 4
- assert st.num_simplices() == 11
-
- assert st.dimension() == 2
- assert st.upper_bound_dimension() == 2
-
- assert st.prune_above_filtration(0.6) == True
- assert st.dimension() == 2
- assert st.upper_bound_dimension() == 2
-
- st.assign_filtration([0, 1, 3], 0.7)
- assert st.filtration([0, 1, 3]) == 0.7
-
- st.remove_maximal_simplex([0, 1, 3])
- assert st.upper_bound_dimension() == 2
- assert st.dimension() == 1
- assert st.upper_bound_dimension() == 1
-
-def test_make_filtration_non_decreasing():
- st = SimplexTree()
- assert st.__is_defined() == True
- assert st.__is_persistence_defined() == False
-
- # Inserted simplex:
- # 1
- # o
- # /X\
- # o---o---o---o
- # 2 0 3\X/4
- # o
- # 5
- assert st.insert([2, 1, 0], filtration=2.0) == True
- assert st.insert([3, 0], filtration=2.0) == True
- assert st.insert([3, 4, 5], filtration=2.0) == True
-
- assert st.make_filtration_non_decreasing() == False
-
- # Because of non decreasing property of simplex tree, { 0 } , { 1 } and
- # { 0, 1 } are going to be set from value 2.0 to 1.0
- st.insert([0, 1, 6, 7], filtration=1.0);
-
- assert st.make_filtration_non_decreasing() == False
-
- # Modify specific values to test make_filtration_non_decreasing
- st.assign_filtration([0,1,6,7], 0.8);
- st.assign_filtration([0,1,6], 0.9);
- st.assign_filtration([0,6], 0.6);
- st.assign_filtration([3,4,5], 1.2);
- st.assign_filtration([3,4], 1.1);
- st.assign_filtration([4,5], 1.99);
-
- assert st.make_filtration_non_decreasing() == True
-
- assert st.filtration([0,1,6,7]) == 1.
- assert st.filtration([0,1,6]) == 1.
- assert st.filtration([0,1]) == 1.
- assert st.filtration([0]) == 1.
- assert st.filtration([1]) == 1.
- assert st.filtration([3,4,5]) == 2.
- assert st.filtration([3,4]) == 2.
- assert st.filtration([4,5]) == 2.
diff --git a/cython/test/test_subsampling.py b/cython/test/test_subsampling.py
deleted file mode 100755
index 96906a6f..00000000
--- a/cython/test/test_subsampling.py
+++ /dev/null
@@ -1,133 +0,0 @@
-import gudhi
-
-"""This file is part of the Gudhi Library. The Gudhi library
- (Geometric Understanding in Higher Dimensions) is a generic C++
- library for computational topology.
-
- Author(s): Vincent Rouvreau
-
- Copyright (C) 2016 Inria
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-
-__author__ = "Vincent Rouvreau"
-__copyright__ = "Copyright (C) 2016 Inria"
-__license__ = "GPL v3"
-
-
-def test_write_off_file_for_tests():
- file = open("subsample.off", "w")
- file.write("nOFF\n")
- file.write("2 7 0 0\n")
- file.write("1.0 1.0\n")
- file.write("7.0 0.0\n")
- file.write("4.0 6.0\n")
- file.write("9.0 6.0\n")
- file.write("0.0 14.0\n")
- file.write("2.0 19.0\n")
- file.write("9.0 17.0\n")
- file.close()
-
-def test_simple_choose_n_farthest_points_with_a_starting_point():
- point_set = [[0,1], [0,0], [1,0], [1,1]]
- i = 0
- for point in point_set:
- # The iteration starts with the given starting point
- sub_set = gudhi.choose_n_farthest_points(points = point_set, nb_points = 1, starting_point = i)
- assert sub_set[0] == point_set[i]
- i = i + 1
-
- # The iteration finds then the farthest
- sub_set = gudhi.choose_n_farthest_points(points = point_set, nb_points = 2, starting_point = 1)
- assert sub_set[1] == point_set[3]
- sub_set = gudhi.choose_n_farthest_points(points = point_set, nb_points = 2, starting_point = 3)
- assert sub_set[1] == point_set[1]
- sub_set = gudhi.choose_n_farthest_points(points = point_set, nb_points = 2, starting_point = 0)
- assert sub_set[1] == point_set[2]
- sub_set = gudhi.choose_n_farthest_points(points = point_set, nb_points = 2, starting_point = 2)
- assert sub_set[1] == point_set[0]
-
- # Test the limits
- assert gudhi.choose_n_farthest_points(points = [], nb_points = 0, starting_point = 0) == []
- assert gudhi.choose_n_farthest_points(points = [], nb_points = 1, starting_point = 0) == []
- assert gudhi.choose_n_farthest_points(points = [], nb_points = 0, starting_point = 1) == []
- assert gudhi.choose_n_farthest_points(points = [], nb_points = 1, starting_point = 1) == []
-
- # From off file test
- for i in range (0, 7):
- assert len(gudhi.choose_n_farthest_points(off_file = 'subsample.off', nb_points = i, starting_point = i)) == i
-
-def test_simple_choose_n_farthest_points_randomed():
- point_set = [[0,1], [0,0], [1,0], [1,1]]
- # Test the limits
- assert gudhi.choose_n_farthest_points(points = [], nb_points = 0) == []
- assert gudhi.choose_n_farthest_points(points = [], nb_points = 1) == []
- assert gudhi.choose_n_farthest_points(points = point_set, nb_points = 0) == []
-
- # Go furter than point set on purpose
- for iter in range(1,10):
- sub_set = gudhi.choose_n_farthest_points(points = point_set, nb_points = iter)
- for sub in sub_set:
- found = False
- for point in point_set:
- if point == sub:
- found = True
- # Check each sub set point is existing in the point set
- assert found == True
-
- # From off file test
- for i in range (0, 7):
- assert len(gudhi.choose_n_farthest_points(off_file = 'subsample.off', nb_points = i)) == i
-
-def test_simple_pick_n_random_points():
- point_set = [[0,1], [0,0], [1,0], [1,1]]
- # Test the limits
- assert gudhi.pick_n_random_points(points = [], nb_points = 0) == []
- assert gudhi.pick_n_random_points(points = [], nb_points = 1) == []
- assert gudhi.pick_n_random_points(points = point_set, nb_points = 0) == []
-
- # Go furter than point set on purpose
- for iter in range(1,10):
- sub_set = gudhi.pick_n_random_points(points = point_set, nb_points = iter)
- print(5)
- for sub in sub_set:
- found = False
- for point in point_set:
- if point == sub:
- found = True
- # Check each sub set point is existing in the point set
- assert found == True
-
- # From off file test
- for i in range (0, 7):
- assert len(gudhi.pick_n_random_points(off_file = 'subsample.off', nb_points = i)) == i
-
-def test_simple_sparsify_points():
- point_set = [[0,1], [0,0], [1,0], [1,1]]
- # Test the limits
- # assert gudhi.sparsify_point_set(points = [], min_squared_dist = 0.0) == []
- # assert gudhi.sparsify_point_set(points = [], min_squared_dist = 10.0) == []
- assert gudhi.sparsify_point_set(points = point_set, min_squared_dist = 0.0) == point_set
- assert gudhi.sparsify_point_set(points = point_set, min_squared_dist = 1.0) == point_set
- assert gudhi.sparsify_point_set(points = point_set, min_squared_dist = 2.0) == [[0,1], [1,0]]
- assert gudhi.sparsify_point_set(points = point_set, min_squared_dist = 2.01) == [[0,1]]
-
- assert len(gudhi.sparsify_point_set(off_file = 'subsample.off', min_squared_dist = 0.0)) == 7
- assert len(gudhi.sparsify_point_set(off_file = 'subsample.off', min_squared_dist = 30.0)) == 5
- assert len(gudhi.sparsify_point_set(off_file = 'subsample.off', min_squared_dist = 40.0)) == 4
- assert len(gudhi.sparsify_point_set(off_file = 'subsample.off', min_squared_dist = 90.0)) == 3
- assert len(gudhi.sparsify_point_set(off_file = 'subsample.off', min_squared_dist = 100.0)) == 2
- assert len(gudhi.sparsify_point_set(off_file = 'subsample.off', min_squared_dist = 325.0)) == 2
- assert len(gudhi.sparsify_point_set(off_file = 'subsample.off', min_squared_dist = 325.01)) == 1
diff --git a/cython/test/test_tangential_complex.py b/cython/test/test_tangential_complex.py
deleted file mode 100755
index 5385a0d3..00000000
--- a/cython/test/test_tangential_complex.py
+++ /dev/null
@@ -1,52 +0,0 @@
-from gudhi import TangentialComplex, SimplexTree
-
-"""This file is part of the Gudhi Library. The Gudhi library
- (Geometric Understanding in Higher Dimensions) is a generic C++
- library for computational topology.
-
- Author(s): Vincent Rouvreau
-
- Copyright (C) 2016 Inria
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-
-__author__ = "Vincent Rouvreau"
-__copyright__ = "Copyright (C) 2016 Inria"
-__license__ = "GPL v3"
-
-
-def test_tangential():
- point_list = [[0.0, 0.0], [1.0, 0.0], [0.0, 1.0], [1.0, 1.0]]
- tc = TangentialComplex(intrisic_dim = 1, points=point_list)
- assert tc.__is_defined() == True
- assert tc.num_vertices() == 4
-
- st = tc.create_simplex_tree()
- assert st.__is_defined() == True
- assert st.__is_persistence_defined() == False
-
- assert st.num_simplices() == 6
- assert st.num_vertices() == 4
-
- assert st.get_filtration() == \
- [([0], 0.0), ([1], 0.0), ([2], 0.0), ([0, 2], 0.0), ([3], 0.0), ([1, 3], 0.0)]
- assert st.get_cofaces([0], 1) == [([0, 2], 0.0)]
-
- assert point_list[0] == tc.get_point(0)
- assert point_list[1] == tc.get_point(1)
- assert point_list[2] == tc.get_point(2)
- assert point_list[3] == tc.get_point(3)
- assert tc.get_point(4) == []
- assert tc.get_point(125) == []
diff --git a/cython/test/test_witness_complex.py b/cython/test/test_witness_complex.py
deleted file mode 100755
index bcbc521b..00000000
--- a/cython/test/test_witness_complex.py
+++ /dev/null
@@ -1,62 +0,0 @@
-from gudhi import WitnessComplex, StrongWitnessComplex, SimplexTree
-
-"""This file is part of the Gudhi Library. The Gudhi library
- (Geometric Understanding in Higher Dimensions) is a generic C++
- library for computational topology.
-
- Author(s): Vincent Rouvreau
-
- Copyright (C) 2016 Inria
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-
-__author__ = "Vincent Rouvreau"
-__copyright__ = "Copyright (C) 2016 Inria"
-__license__ = "GPL v3"
-
-
-def test_empty_witness_complex():
- witness = WitnessComplex()
- assert witness.__is_defined() == False
-
-def test_witness_complex():
- nearest_landmark_table = [[[0, 0], [1, 1], [2, 2], [3, 3], [4, 4]],
- [[1, 0], [2, 1], [3, 2], [4, 3], [0, 4]],
- [[2, 0], [3, 1], [4, 2], [0, 3], [1, 4]],
- [[3, 0], [4, 1], [0, 2], [1, 3], [2, 4]],
- [[4, 0], [0, 1], [1, 2], [2, 3], [3, 4]]]
-
- witness_complex = WitnessComplex(nearest_landmark_table=nearest_landmark_table)
- simplex_tree = witness_complex.create_simplex_tree(max_alpha_square=4.1)
- assert simplex_tree.num_vertices() == 5
- assert simplex_tree.num_simplices() == 31
- simplex_tree = witness_complex.create_simplex_tree(max_alpha_square=4.1, limit_dimension=2)
- assert simplex_tree.num_vertices() == 5
- assert simplex_tree.num_simplices() == 25
-
-def test_strong_witness_complex():
- nearest_landmark_table = [[[0, 0], [1, 1], [2, 2], [3, 3], [4, 4]],
- [[1, 0], [2, 1], [3, 2], [4, 3], [0, 4]],
- [[2, 0], [3, 1], [4, 2], [0, 3], [1, 4]],
- [[3, 0], [4, 1], [0, 2], [1, 3], [2, 4]],
- [[4, 0], [0, 1], [1, 2], [2, 3], [3, 4]]]
-
- strong_witness_complex = StrongWitnessComplex(nearest_landmark_table=nearest_landmark_table)
- simplex_tree = strong_witness_complex.create_simplex_tree(max_alpha_square=4.1)
- assert simplex_tree.num_vertices() == 5
- assert simplex_tree.num_simplices() == 31
- simplex_tree = strong_witness_complex.create_simplex_tree(max_alpha_square=4.1, limit_dimension=2)
- assert simplex_tree.num_vertices() == 5
- assert simplex_tree.num_simplices() == 25