#exec(open("Gudhi_Circ.py").read())

import gudhi
#import gudhi.representations
import numpy as np
import matplotlib.pyplot as plt
from scipy.spatial.distance import pdist, squareform
#import warnings
#warnings.filterwarnings('ignore')

#from smeUtils import *
#from smeGudhi import *

exec(open("smeUtils.py").read())
exec(open("smeGudhi.py").read())
exec(open("RipsComplex_Aux.py").read())

n_pontos = 100
raio = 1.0
ruido = 0.1

pontos = geraCirc(n_pontos, raio=raio, ruido=ruido)

analisador = AnalisadorBuracos(pontos, dimensao_maxima=2)
analisador.visualizar_pontos()
smeGhudiPlotRipsComplexFromPts(pontos, max_edge_length=0.3, title="Circunferência", show=True)

simplex_tree = analisador.construir_rips_complex(raio_maximo=2.0)
analisador.persistence = simplex_tree.persistence()
analisador.calcular_persistencia(simplex_tree)

analisador.visualizar_diag_persistencia()
gudhi.plot_persistence_diagram(analisador.persistence)
plt.show()

# Números de Betti:
numBetti = simplex_tree.betti_numbers()
print(f"Números de Betti: {numBetti}")

# Buracos significativos
buracos = analisador.encontrar_buracos_significativos(limiar_persistencia=0.05)
print(f"Buracos significativos encontrados: {len(buracos)}")
