import sys
sys.path.append('/home/magdalena/.hermes/plugins/iarquiteto-naval-brana/skills/brana-rascunho-2d-interativo/scripts')
from ajustar import declividades, monotona, convexa

def test(name, P):
    m, c, folga = declividades(P)
    conv, arestas = convexa(P, m)
    print(f"{name}: cordas_mono={monotona(c)}, decl_mono={monotona(m)}, convexa={conv}")
    if not (monotona(c) and monotona(m) and conv):
        print("  c:", c)
        print("  m:", m)
    return conv and monotona(c) and monotona(m)

# Testando planSheer com maximo 1.80 qd (para boca total = 3.60 qd, mas no modelo boca = 2 * max_y * 0.5 = max_y m.
# Se LOA=12m e LOA_sq=24, a escala do modelo é LOA_m / LOA_sq = 12/24 = 0.5 m/qd.
# Portanto, boca_m = 2 * y_max_qd * 0.5 = y_max_qd!
# Ou seja: para Boca = 3.60 m, y_max_qd deve ser exatamente 3.60!
# Vamos encontrar nós para planSheer com y_max = 3.60:
# P0=(0, 3.20), P1=(5, 3.55), P2=(10, 3.60)...
# c0 = (3.55 - 3.20)/5 = 0.070
# c1 = (3.60 - 3.55)/5 = 0.010
# c2 = (2.60 - 3.60)/6 = -0.1667
# c3 = (0.00 - 2.60)/8 = -0.325
# Sequencia c: 0.070, 0.010, -0.1667, -0.325 -> estritamente decrescente!

P_sheer = [(0, 3.20), (5, 3.55), (10, 3.60), (16, 2.60), (24, 0.0)]
test("planSheer", P_sheer)

# planChine (proporcao ~0.80 -> maximo 2.88):
P_chine = [(0, 2.56), (5, 2.84), (10, 2.88), (16, 2.08), (24, 0.0)]
test("planChine", P_chine)

# profSheer (pontal = 1.80 m = 3.60 qd na meia-nau):
# c0 = (3.50 - 3.60)/6 = -0.01667
# c1 = (3.60 - 3.50)/6 = +0.01667
# c2 = (4.20 - 3.60)/6 = +0.1000
# c3 = (5.20 - 4.20)/6 = +0.1667
# Sequencia c: -0.01667, +0.01667, +0.1000, +0.1667 -> estritamente crescente!
P_prof_sheer = [(0, 3.60), (6, 3.50), (12, 3.60), (18, 4.20), (24, 5.20)]
test("profSheer", P_prof_sheer)
