summaryrefslogtreecommitdiff
path: root/src/python/test/test_cover_complex.py
blob: 8cd1227231bfa25157e0034d0684f6ff92abd90f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
from gudhi import CoverComplex

""" This file is part of the Gudhi Library - https://gudhi.inria.fr/ - which is released under MIT.
    See file LICENSE or go to https://gudhi.inria.fr/licensing/ for full license details.
    Author(s):       Vincent Rouvreau

    Copyright (C) 2018 Inria

    Modification(s):
      - YYYY/MM Author: Description of the modification
"""

__author__ = "Vincent Rouvreau"
__copyright__ = "Copyright (C) 2018 Inria"
__license__ = "MIT"


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