def netrate(network, cascades, T, type_diffusion):

    #True data
    A, nbre_noeuds = create_adj_matrix(network)
    C, nbre_infections = create_cascade(cascades)

    #OEstimated data given cascades
    A_est = estimate_network(A, C, nbre_noeuds, T, type_diffusion, nbre_infections, 0.001)
    return A_est, A
def MultiNetRate(nbre,file):
    os.chdir("../donnees")

    generation_SIS(nbre)

    A,nbre_noeuds = create_adj_matrix(file)
    file_SI = 'c'+str(nbre//100)+'.txt'
    L,Delta = create_cascade(file_SI)
    file_SIS = 'cnr'+str(nbre//100)+'.txt'
    C,nbre_infections = create_cascade_NetRate(file_SIS)

    #MultiNetRate estimation
    (Beta,(accuracy,MAE,MAS)) = estimate_network(A,nbre_noeuds,L,Delta,nbre*20,'exp')

    #NetRate estimation
    (Alpha) = estimate_network_NetRate(A,C,nbre_noeuds,20,'exp',nbre_infections,0.00001)

    #We compare the two solutions.
    diff0 = norm_matrix(Alpha-Beta,0)
    diff2 = norm_matrix(Alpha-Beta,2)

    #We write down the result so that we can use them in the futur.
    sdiff0 = str(diff0)
    position_point = 0
    for i,elt in enumerate(sdiff0):
        if elt == '.':
            position_point = i

    with open('diff0.txt','a') as fichier1:
        fichier1.write(str(k)+',')
        fichier1.write(sdiff0[0:position_point]+','+sdiff0[(position_point+1):])
        fichier1.write('\n')

    sdiff2 = str(diff2)
    position_point = 0
    for i,elt in enumerate(sdiff2):
        if elt == '.':
            position_point = i

    with open('diff1.txt','a') as fichier2:
        fichier2.write(str(k)+',')
        fichier2.write(sdiff2[0:position_point]+','+sdiff2[(position_point+1):])
        fichier2.write('\n')

    with open('indic_NetRate.txt','a') as fichier3:
        fichier3.write(str(k))
        fichier3.write(str(accuracy))
        fichier3.write(str(MAE))
        fichier3.write(str(MAS))