summaryrefslogtreecommitdiff
path: root/src/cython/test
diff options
context:
space:
mode:
authorvrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2016-06-23 16:06:31 +0000
committervrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2016-06-23 16:06:31 +0000
commit27f251520f1fc355e2b7d83225d44adbf6ce63c8 (patch)
treedaa083328614684925b9e8e06e3457269d439728 /src/cython/test
parent8cb574ec24253e908960e00d950f2b319aabf793 (diff)
Pytest unitary tests
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/ST_cythonize@1333 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 0f0b284583267400574c2c2f644d5a99dfb6032e
Diffstat (limited to 'src/cython/test')
-rwxr-xr-xsrc/cython/test/test_alpha_complex.py114
-rwxr-xr-xsrc/cython/test/test_mini_simplex_tree.py49
-rwxr-xr-xsrc/cython/test/test_rips_complex.py70
-rwxr-xr-xsrc/cython/test/test_simplex_tree.py133
-rwxr-xr-xsrc/cython/test/test_witness_complex.py48
5 files changed, 209 insertions, 205 deletions
diff --git a/src/cython/test/test_alpha_complex.py b/src/cython/test/test_alpha_complex.py
index a1e57294..13c6f7e8 100755
--- a/src/cython/test/test_alpha_complex.py
+++ b/src/cython/test/test_alpha_complex.py
@@ -1,6 +1,4 @@
-import unittest
-
-import gudhi
+from gudhi import AlphaComplex
"""This file is part of the Gudhi Library. The Gudhi library
(Geometric Understanding in Higher Dimensions) is a generic C++
@@ -29,56 +27,60 @@ __copyright__ = "Copyright (C) 2016 INRIA"
__license__ = "GPL v3"
-class TestAlphaComplex(unittest.TestCase):
-
- def test_infinite_alpha(self):
- point_list = [[0, 0], [1, 0], [0, 1], [1, 1]]
- alpha_complex = gudhi.AlphaComplex(points=point_list)
-
- self.assertEqual(alpha_complex.num_simplices(), 11)
- self.assertEqual(alpha_complex.num_vertices(), 4)
-
- self.assertEqual(alpha_complex.get_filtered_tree(),
- [([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)])
- self.assertEqual(alpha_complex.get_star_tree([0]),
- [([0], 0.0), ([0, 1], 0.25), ([0, 1, 2], 0.5),
- ([0, 2], 0.25)])
- self.assertEqual(alpha_complex.get_coface_tree([0], 1),
- [([0, 1], 0.25), ([0, 2], 0.25)])
-
- self.assertEqual(point_list[0], alpha_complex.get_point(0))
- self.assertEqual(point_list[1], alpha_complex.get_point(1))
- self.assertEqual(point_list[2], alpha_complex.get_point(2))
- self.assertEqual(point_list[3], alpha_complex.get_point(3))
- self.assertEqual([], alpha_complex.get_point(4))
- self.assertEqual([], alpha_complex.get_point(125))
-
- def test_filtered_alpha(self):
- point_list = [[0, 0], [1, 0], [0, 1], [1, 1]]
- filtered_alpha = gudhi.AlphaComplex(points=point_list,
- max_alpha_square=0.25)
-
- self.assertEqual(filtered_alpha.num_simplices(), 8)
- self.assertEqual(filtered_alpha.num_vertices(), 4)
-
- self.assertEqual(point_list[0], filtered_alpha.get_point(0))
- self.assertEqual(point_list[1], filtered_alpha.get_point(1))
- self.assertEqual(point_list[2], filtered_alpha.get_point(2))
- self.assertEqual(point_list[3], filtered_alpha.get_point(3))
- self.assertEqual([], filtered_alpha.get_point(4))
- self.assertEqual([], filtered_alpha.get_point(125))
-
- self.assertEqual(filtered_alpha.get_filtered_tree(),
- [([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)])
- self.assertEqual(filtered_alpha.get_star_tree([0]),
- [([0], 0.0), ([0, 1], 0.25), ([0, 2], 0.25)])
- self.assertEqual(filtered_alpha.get_coface_tree([0], 1),
- [([0, 1], 0.25), ([0, 2], 0.25)])
-
-if __name__ == '__main__':
- unittest.main()
+def test_empty_alpha():
+ alpha_complex = AlphaComplex()
+ assert alpha_complex.__is_defined() == True
+ assert alpha_complex.__is_persistence_defined() == False
+ assert alpha_complex.num_simplices() == 0
+ assert alpha_complex.num_vertices() == 0
+
+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
+ assert alpha_complex.__is_persistence_defined() == False
+
+ assert alpha_complex.num_simplices() == 11
+ assert alpha_complex.num_vertices() == 4
+
+ assert alpha_complex.get_filtered_tree() == \
+ [([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 alpha_complex.get_star_tree([0]) == \
+ [([0], 0.0), ([0, 1], 0.25), ([0, 1, 2], 0.5),
+ ([0, 2], 0.25)]
+ assert alpha_complex.get_coface_tree([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,
+ max_alpha_square=0.25)
+
+ assert filtered_alpha.num_simplices() == 8
+ assert filtered_alpha.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 filtered_alpha.get_filtered_tree() == \
+ [([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 filtered_alpha.get_star_tree([0]) == \
+ [([0], 0.0), ([0, 1], 0.25), ([0, 2], 0.25)]
+ assert filtered_alpha.get_coface_tree([0], 1) == \
+ [([0, 1], 0.25), ([0, 2], 0.25)]
diff --git a/src/cython/test/test_mini_simplex_tree.py b/src/cython/test/test_mini_simplex_tree.py
index ec1f5044..e44bfdbc 100755
--- a/src/cython/test/test_mini_simplex_tree.py
+++ b/src/cython/test/test_mini_simplex_tree.py
@@ -1,6 +1,4 @@
-import unittest
-
-import gudhi
+from gudhi import MiniSimplexTree
"""This file is part of the Gudhi Library. The Gudhi library
(Geometric Understanding in Higher Dimensions) is a generic C++
@@ -29,27 +27,24 @@ __copyright__ = "Copyright (C) 2016 INRIA"
__license__ = "GPL v3"
-class TestMiniSimplexTree(unittest.TestCase):
-
- def test_mini(self):
- triangle012 = [0, 1, 2]
- edge03 = [0, 3]
- mini_st = gudhi.MiniSimplexTree()
- self.assertTrue(mini_st.insert(triangle012))
- self.assertTrue(mini_st.insert(edge03))
- # FIXME: Remove this line
- mini_st.set_dimension(2)
-
- edge02 = [0, 2]
- self.assertTrue(mini_st.find(edge02))
- self.assertEqual(mini_st.get_coface_tree(edge02, 1),
- [([0, 1, 2], 0.0)])
-
- # remove_maximal_simplex test
- self.assertEqual(mini_st.get_coface_tree(triangle012, 1), [])
- mini_st.remove_maximal_simplex(triangle012)
- self.assertTrue(mini_st.find(edge02))
- self.assertFalse(mini_st.find(triangle012))
-
-if __name__ == '__main__':
- unittest.main()
+def test_mini():
+ triangle012 = [0, 1, 2]
+ edge03 = [0, 3]
+ mini_st = MiniSimplexTree()
+ assert mini_st.__is_defined() == True
+ assert mini_st.__is_persistence_defined() == False
+ assert mini_st.insert(triangle012) == True
+ assert mini_st.insert(edge03) == True
+ # FIXME: Remove this line
+ mini_st.set_dimension(2)
+
+ edge02 = [0, 2]
+ assert mini_st.find(edge02) == True
+ assert mini_st.get_coface_tree(edge02, 1) == \
+ [([0, 1, 2], 0.0)]
+
+ # remove_maximal_simplex test
+ assert mini_st.get_coface_tree(triangle012, 1) == []
+ mini_st.remove_maximal_simplex(triangle012)
+ assert mini_st.find(edge02) == True
+ assert mini_st.find(triangle012) == False
diff --git a/src/cython/test/test_rips_complex.py b/src/cython/test/test_rips_complex.py
index ecc676c7..877289cf 100755
--- a/src/cython/test/test_rips_complex.py
+++ b/src/cython/test/test_rips_complex.py
@@ -1,6 +1,4 @@
-import unittest
-
-import gudhi
+from gudhi import RipsComplex
"""This file is part of the Gudhi Library. The Gudhi library
(Geometric Understanding in Higher Dimensions) is a generic C++
@@ -29,33 +27,39 @@ __copyright__ = "Copyright (C) 2016 INRIA"
__license__ = "GPL v3"
-class TestRipsComplex(unittest.TestCase):
-
- def test_rips(self):
- point_list = [[0, 0], [1, 0], [0, 1], [1, 1]]
- rips_complex = gudhi.RipsComplex(points=point_list, max_dimension=1,
- max_edge_length=42)
-
- self.assertEqual(rips_complex.num_simplices(), 10)
- self.assertEqual(rips_complex.num_vertices(), 4)
-
- self.assertEqual(rips_complex.get_filtered_tree(),
- [([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)])
- self.assertEqual(rips_complex.get_star_tree([0]),
- [([0], 0.0), ([0, 1], 1.0), ([0, 2], 1.0),
- ([0, 3], 1.4142135623730951)])
- self.assertEqual(rips_complex.get_coface_tree([0], 1),
- [([0, 1], 1.0), ([0, 2], 1.0),
- ([0, 3], 1.4142135623730951)])
-
- filtered_rips = gudhi.RipsComplex(points=point_list, max_dimension=1,
- max_edge_length=1.0)
-
- self.assertEqual(filtered_rips.num_simplices(), 8)
- self.assertEqual(filtered_rips.num_vertices(), 4)
-
-if __name__ == '__main__':
- unittest.main()
+def test_empty_rips():
+ rips_complex = RipsComplex()
+ assert rips_complex.__is_defined() == True
+ assert rips_complex.__is_persistence_defined() == False
+
+def test_rips():
+ point_list = [[0, 0], [1, 0], [0, 1], [1, 1]]
+ rips_complex = RipsComplex(points=point_list, max_dimension=1,
+ max_edge_length=42)
+ assert rips_complex.__is_defined() == True
+ assert rips_complex.__is_persistence_defined() == False
+
+ assert rips_complex.num_simplices() == 10
+ assert rips_complex.num_vertices() == 4
+
+ assert rips_complex.get_filtered_tree() == \
+ [([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 rips_complex.get_star_tree([0]) == \
+ [([0], 0.0), ([0, 1], 1.0), ([0, 2], 1.0),
+ ([0, 3], 1.4142135623730951)]
+ assert rips_complex.get_coface_tree([0], 1) == \
+ [([0, 1], 1.0), ([0, 2], 1.0),
+ ([0, 3], 1.4142135623730951)]
+
+def test_filtered_rips():
+ point_list = [[0, 0], [1, 0], [0, 1], [1, 1]]
+ filtered_rips = RipsComplex(points=point_list, max_dimension=1,
+ max_edge_length=1.0)
+ assert filtered_rips.__is_defined() == True
+ assert filtered_rips.__is_persistence_defined() == False
+
+ assert filtered_rips.num_simplices() == 8
+ assert filtered_rips.num_vertices() == 4
diff --git a/src/cython/test/test_simplex_tree.py b/src/cython/test/test_simplex_tree.py
index 7663ed70..0b9899f8 100755
--- a/src/cython/test/test_simplex_tree.py
+++ b/src/cython/test/test_simplex_tree.py
@@ -1,6 +1,4 @@
-import unittest
-
-import gudhi
+from gudhi import SimplexTree
"""This file is part of the Gudhi Library. The Gudhi library
(Geometric Understanding in Higher Dimensions) is a generic C++
@@ -29,63 +27,72 @@ __copyright__ = "Copyright (C) 2016 INRIA"
__license__ = "GPL v3"
-class TestSimplexTree(unittest.TestCase):
-
- def test_insertion(self):
- st = gudhi.SimplexTree()
-
- # insert test
- self.assertTrue(st.insert([0, 1]))
- self.assertTrue(st.insert([0, 1, 2], filtration=4.0))
- self.assertEqual(st.num_simplices(), 7)
- self.assertEqual(st.num_vertices(), 3)
-
- # find test
- self.assertTrue(st.find([0, 1, 2]))
- self.assertTrue(st.find([0, 1]))
- self.assertTrue(st.find([0, 2]))
- self.assertTrue(st.find([0]))
- self.assertTrue(st.find([1]))
- self.assertTrue(st.find([2]))
- self.assertFalse(st.find([3]))
- self.assertFalse(st.find([0, 3]))
- self.assertFalse(st.find([1, 3]))
- self.assertFalse(st.find([2, 3]))
-
- # filtration test
- st.set_filtration(5.0)
- st.initialize_filtration()
- self.assertEqual(st.get_filtration(), 5.0)
- self.assertEqual(st.filtration([0, 1, 2]), 4.0)
- self.assertEqual(st.filtration([0, 2]), 4.0)
- self.assertEqual(st.filtration([1, 2]), 4.0)
- self.assertEqual(st.filtration([2]), 4.0)
- self.assertEqual(st.filtration([0, 1]), 0.0)
- self.assertEqual(st.filtration([0]), 0.0)
- self.assertEqual(st.filtration([1]), 0.0)
-
- # skeleton_tree test
- self.assertEqual(st.get_skeleton_tree(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)])
- self.assertEqual(st.get_skeleton_tree(1),
- [([0, 1], 0.0), ([0, 2], 4.0), ([0], 0.0),
- ([1, 2], 4.0), ([1], 0.0), ([2], 4.0)])
- self.assertEqual(st.get_skeleton_tree(0),
- [([0], 0.0), ([1], 0.0), ([2], 4.0)])
-
- # remove_maximal_simplex test
- self.assertEqual(st.get_coface_tree([0, 1, 2], 1), [])
- st.remove_maximal_simplex([0, 1, 2])
- self.assertEqual(st.get_skeleton_tree(2),
- [([0, 1], 0.0), ([0, 2], 4.0), ([0], 0.0),
- ([1, 2], 4.0), ([1], 0.0), ([2], 4.0)])
- self.assertFalse(st.find([0, 1, 2]))
- self.assertTrue(st.find([0, 1]))
- self.assertTrue(st.find([0, 2]))
- self.assertTrue(st.find([0]))
- self.assertTrue(st.find([1]))
- self.assertTrue(st.find([2]))
-
-if __name__ == '__main__':
- unittest.main()
+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.insert([0, 1, 2], filtration=4.0) == True
+ # FIXME: Remove this line
+ st.set_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.set_filtration(5.0)
+ st.initialize_filtration()
+ assert st.get_filtration() == 5.0
+ 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_tree test
+ assert st.get_skeleton_tree(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_tree(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_tree(0) == \
+ [([0], 0.0), ([1], 0.0), ([2], 4.0)]
+
+ # remove_maximal_simplex test
+ assert st.get_coface_tree([0, 1, 2], 1) == []
+ st.remove_maximal_simplex([0, 1, 2])
+ assert st.get_skeleton_tree(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() == [(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]
diff --git a/src/cython/test/test_witness_complex.py b/src/cython/test/test_witness_complex.py
index 2891935d..9f4a3523 100755
--- a/src/cython/test/test_witness_complex.py
+++ b/src/cython/test/test_witness_complex.py
@@ -1,6 +1,4 @@
-import unittest
-
-import gudhi
+from gudhi import WitnessComplex
"""This file is part of the Gudhi Library. The Gudhi library
(Geometric Understanding in Higher Dimensions) is a generic C++
@@ -29,31 +27,29 @@ __copyright__ = "Copyright (C) 2016 INRIA"
__license__ = "GPL v3"
-class TestWitnessComplex(unittest.TestCase):
-
- def test_witness_complex(self):
- point_list = [[0, 0], [1, 0], [0, 1], [1, 1]]
- witness = gudhi.WitnessComplex(points=point_list,
- number_of_landmarks=10)
-
- # FIXME: Remove this line
- witness.set_dimension(2)
+def test_empty_witness_complex():
+ witness = WitnessComplex()
+ assert witness.__is_defined() == False
- self.assertEqual(witness.num_simplices(), 13)
- self.assertEqual(witness.num_vertices(), 10)
- witness.initialize_filtration()
+def test_witness_complex():
+ point_list = [[0, 0], [1, 0], [0, 1], [1, 1]]
+ witness = WitnessComplex(points=point_list, number_of_landmarks=10)
+ assert witness.__is_defined() == True
- self.assertEqual(witness.get_filtered_tree(),
- [([0], 0.0), ([1], 0.0), ([2], 0.0), ([0, 2], 0.0),
- ([1, 2], 0.0), ([3], 0.0), ([4], 0.0), ([3, 4], 0.0),
- ([5], 0.0), ([6], 0.0), ([7], 0.0), ([8], 0.0),
- ([9], 0.0)])
+ # FIXME: Remove this line
+ witness.set_dimension(2)
- self.assertEqual(witness.get_coface_tree([2], 1),
- [([0, 2], 0.0), ([1, 2], 0.0)])
- self.assertEqual(witness.get_star_tree([2]),
- [([0, 2], 0.0), ([1, 2], 0.0), ([2], 0.0)])
+ assert witness.num_simplices() == 13
+ assert witness.num_vertices() == 10
+ witness.initialize_filtration()
+ assert witness.get_filtered_tree() == \
+ [([0], 0.0), ([1], 0.0), ([2], 0.0), ([0, 2], 0.0),
+ ([1, 2], 0.0), ([3], 0.0), ([4], 0.0), ([3, 4], 0.0),
+ ([5], 0.0), ([6], 0.0), ([7], 0.0), ([8], 0.0),
+ ([9], 0.0)]
-if __name__ == '__main__':
- unittest.main()
+ assert witness.get_coface_tree([2], 1) == \
+ [([0, 2], 0.0), ([1, 2], 0.0)]
+ assert witness.get_star_tree([2]) == \
+ [([0, 2], 0.0), ([1, 2], 0.0), ([2], 0.0)]