import os
import json
import pickle
import matplotlib.pyplot as plt
import networktest
import manualnetwork
import Link_Community_Discovery

filename = 'multiplexnets.pickle'

if os.path.exists(filename):
    nets = pickle.load(open(filename,'rb'))
else:
    nets = manualnetwork.WSCommunityNetworks(net_num=2, node_num=40, group_num=2, overraping=10, neighbor=6, p=0.1, reduncy_edge_num=2)
    pickle.dump(nets,open(filename,'wb'))

cnet = manualnetwork.CombineNet('cnet', nets)
analyzer = networktest.NetworkAnalyzer(netObj=cnet)
analyzer.Analysis()
analyzer.Result(fileObj=open('result.txt','w'), isShow=False)

mnlcd = Link_Community_Discovery.MultiplexNetworkLinkCommnityDiscovery(nets)

htree = mnlcd.Dendrogram

s = htree.Serialize()

json.dump(s, open('tree.dat','w'))


densityCurve = mnlcd.DensityCurve

best_cut = -1
max_density = -1
idx = 0
for x in densityCurve:
    if x > max_density:
        best_cut = idx
        max_density = x
    idx += 1
    
print(best_cut,max_density)

root = htree.RootNode