"""
test_DROP_Gnocchi.py — Stress Test: rimozione della tipo prodotto Gnocchi dal catalogo

Come funziona:
  1. import_dataset()                           : carica il catalogo completo
  2. Crea un'istanza di "TipoDropStressTest" con parametro "type_drop=['Gnocchi']" da droppare
  3. Chiama il metodo sim_TipoDropStressTest() : per le probabilità aggiorante
  4. Salva CSV con prodotti rimasti, probabilità medie, probabilità per segmento
[Si può aggiungere il plot come in altri test, vedere ad esempio test_DROP_A.py]

Output:
  - prodotti_noGnocchi.csv       : DataFrame prodotti dopo il drop
  - prob_prodotti_noGnocchi.csv  : vettore probabilità medie
  - prob_segmenti_noGnocchi.csv  : matrice probabilità per segmento
"""
import sys
import os
cartella_progetto = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
if cartella_progetto not in sys.path:
    sys.path.append(cartella_progetto)
from models import *
from plot_segment_test import *
from prepare_data import import_dataset

prodotti_tab=import_dataset() 

test_noGnocchi = TipoDropStressTest(prodotti_tab, type_drop=['Gnocchi'])
res_noGnocchi = test_noGnocchi.sim_TipoDropStressTest(MNLChoiceModel, LatentChoiceModel)

# Esportazione caratteristiche prodotti rimasti
res_noGnocchi[0].to_csv(r'test_res\prodotti_noGnocchi.csv', index=False)
# Esportazione probabilità prodotti
(np.transpose(res_noGnocchi[1])).to_csv(r'test_res\prob_prodotti_noGnocchi.csv', header=False, index=False)
# Esportazione probabilità segmenti
res_noGnocchi[2].to_csv(r'test_res\prob_segmenti_noGnocchi.csv', header=False, index=False)

print('File CSV generati con successo per l\'analisi dei grafici.')