summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2016-04-26 15:18:57 +0000
committervrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2016-04-26 15:18:57 +0000
commit134aaa68ab6a5983a9569a123a18550535afa2ef (patch)
tree9e035276fe0c148972ea26f54ed55135ba8f166c
parenta5661362f1a73f924965103b37fa0175839934d9 (diff)
Unitary test of Simplex tree
Rename example Makefile test part modification git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/ST_cythonize@1143 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: d70e1f471dfc6f4543335862b4c1aa5250e73343
-rw-r--r--src/cython/Makefile3
-rwxr-xr-xsrc/cython/Simplex_tree_UT.py73
-rwxr-xr-xsrc/cython/Simplex_tree_example.py (renamed from src/cython/main.py)0
3 files changed, 75 insertions, 1 deletions
diff --git a/src/cython/Makefile b/src/cython/Makefile
index b694ab47..c17e9e09 100644
--- a/src/cython/Makefile
+++ b/src/cython/Makefile
@@ -2,7 +2,8 @@ ext:
python setup.py build_ext --inplace
test:
- python main.py
+ python Simplex_tree_UT.py
+ python Simplex_tree_example.py
clean:
rm -rf build/ *.o *.so *.cpp
diff --git a/src/cython/Simplex_tree_UT.py b/src/cython/Simplex_tree_UT.py
new file mode 100755
index 00000000..56113370
--- /dev/null
+++ b/src/cython/Simplex_tree_UT.py
@@ -0,0 +1,73 @@
+import unittest
+
+import gudhi
+
+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)])
+
+ def test_rips(self):
+ rips_complex = gudhi.SimplexTree(points=[[0,0],[1,0],[0,1],[1,1]],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.SimplexTree(points=[[0,0],[1,0],[0,1],[1,1]],max_dimension=1,max_edge_length=1.0)
+ self.assertEqual(filtered_rips.num_simplices(), 8)
+ self.assertEqual(filtered_rips.num_vertices(), 4)
+
+ def test_split(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)])
+
+if __name__ == '__main__':
+ unittest.main() \ No newline at end of file
diff --git a/src/cython/main.py b/src/cython/Simplex_tree_example.py
index e9459588..e9459588 100755
--- a/src/cython/main.py
+++ b/src/cython/Simplex_tree_example.py