
from synet.utils.common import PathReq
from synet.utils.common import ECMPPathsReq
from synet.utils.common import PathOrderReq
from synet.utils.common import Protocols
from synet.utils.common import KConnectedPathsReq

topology_file = 'topos/small/Arnes.graphml'
seed = 1291659040
reqs_simple_1 = [
    PathReq(Protocols.OSPF, "Ljutomer", ['Ormoz', 'Ljutomer'], False),
]

edges_cost_simple_1 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

####################

reqs_ecmp_1_2 = [
    ECMPPathsReq(Protocols.OSPF, 'Celje', [PathReq(Protocols.OSPF, "Celje", ['RogasjaTTSlatina', 'Ptuj', 'Maribor', 'SlovenskaTTBistrica', 'Celje'], False), PathReq(Protocols.OSPF, "Celje", ['RogasjaTTSlatina', 'Ptuj', 'Maribor', 'Lasko', 'Celje'], False)], False),
]

edges_cost_ecmp_1_2 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

reqs_kconnected_1_2 = [
    KConnectedPathsReq(Protocols.OSPF, 'Celje', [PathReq(Protocols.OSPF, "Celje", ['RogasjaTTSlatina', 'Ptuj', 'Maribor', 'SlovenskaTTBistrica', 'Celje'], False), PathReq(Protocols.OSPF, "Celje", ['RogasjaTTSlatina', 'Ptuj', 'Maribor', 'Lasko', 'Celje'], False)], False),
]

edges_cost_kconnected_1_2 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

reqs_order_1_2 = [
    PathOrderReq(Protocols.OSPF, 'Celje', [PathReq(Protocols.OSPF, "Celje", ['Velenje', 'Celje'], False), PathReq(Protocols.OSPF, "Celje", ['Velenje', 'Dravograd', 'Maribor', 'Lasko', 'Celje'], False)], False),
]

edges_cost_order_1_2 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 2),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

reqs_simple_2 = [
    PathReq(Protocols.OSPF, "Sezana", ['MurskaTTSobota', 'Radenci', 'GornjaTTRadgona', 'Maribor', 'Ljubljana', 'Postojna', 'Senozece', 'Sezana'], False),
    PathReq(Protocols.OSPF, "Maribor", ['MurskaTTSobota', 'Radenci', 'GornjaTTRadgona', 'Maribor'], False),
]

edges_cost_simple_2 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

####################

reqs_ecmp_2_2 = [
    ECMPPathsReq(Protocols.OSPF, 'NovoTTMesto', [PathReq(Protocols.OSPF, "NovoTTMesto", ['Velenje', 'Celje', 'Lasko', 'Ljubljana', 'Kovevje', 'NovoTTMesto'], False), PathReq(Protocols.OSPF, "NovoTTMesto", ['Velenje', 'Celje', 'Kamnik', 'Ljubljana', 'Kovevje', 'NovoTTMesto'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'NovaTTGorica', [PathReq(Protocols.OSPF, "NovaTTGorica", ['Velenje', 'Celje', 'Lasko', 'Ljubljana', 'NovaTTGorica'], False), PathReq(Protocols.OSPF, "NovaTTGorica", ['Velenje', 'Celje', 'Kamnik', 'Ljubljana', 'NovaTTGorica'], False)], False),
]

edges_cost_ecmp_2_2 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 2),
    ("Maribor", "GornjaTTRadgona", 1),
]

reqs_kconnected_2_2 = [
    KConnectedPathsReq(Protocols.OSPF, 'NovoTTMesto', [PathReq(Protocols.OSPF, "NovoTTMesto", ['Velenje', 'Celje', 'Lasko', 'Ljubljana', 'Kovevje', 'NovoTTMesto'], False), PathReq(Protocols.OSPF, "NovoTTMesto", ['Velenje', 'Celje', 'Kamnik', 'Ljubljana', 'Kovevje', 'NovoTTMesto'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'NovaTTGorica', [PathReq(Protocols.OSPF, "NovaTTGorica", ['Velenje', 'Celje', 'Lasko', 'Ljubljana', 'NovaTTGorica'], False), PathReq(Protocols.OSPF, "NovaTTGorica", ['Velenje', 'Celje', 'Kamnik', 'Ljubljana', 'NovaTTGorica'], False)], False),
]

edges_cost_kconnected_2_2 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 2),
    ("Maribor", "GornjaTTRadgona", 1),
]

reqs_order_2_2 = [
    PathOrderReq(Protocols.OSPF, 'Divaca', [PathReq(Protocols.OSPF, "Divaca", ['Ajdovscina', 'Divaca'], False), PathReq(Protocols.OSPF, "Divaca", ['Ajdovscina', 'NovaTTGorica', 'Ljubljana', 'Koper', 'Divaca'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Ajdovscina', [PathReq(Protocols.OSPF, "Ajdovscina", ['Divaca', 'Ajdovscina'], False), PathReq(Protocols.OSPF, "Ajdovscina", ['Divaca', 'Senozece', 'Postojna', 'Ljubljana', 'NovaTTGorica', 'Ajdovscina'], False)], False),
]

edges_cost_order_2_2 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 3),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 2),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

reqs_simple_4 = [
    PathReq(Protocols.OSPF, "Sezana", ['Bled', 'Kranj', 'Koper', 'Divaca', 'Senozece', 'Sezana'], False),
    PathReq(Protocols.OSPF, "Ptuj", ['Bled', 'Kranj', 'Ljubljana', 'Maribor', 'Ptuj'], False),
    PathReq(Protocols.OSPF, "NovaTTGorica", ['Bled', 'Tolmin', 'NovaTTGorica'], False),
    PathReq(Protocols.OSPF, "Maribor", ['Bled', 'Kranj', 'Ljubljana', 'Maribor'], False),
]

edges_cost_simple_4 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 2),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

####################

reqs_ecmp_4_2 = [
    ECMPPathsReq(Protocols.OSPF, 'Portoroz', [PathReq(Protocols.OSPF, "Portoroz", ['SlovenjTTGradec', 'Dravograd', 'Maribor', 'Ljubljana', 'Koper', 'Divaca', 'Portoroz'], False), PathReq(Protocols.OSPF, "Portoroz", ['SlovenjTTGradec', 'Dravograd', 'Maribor', 'Ljubljana', 'Koper', 'Izola', 'Portoroz'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Trbovlje', [PathReq(Protocols.OSPF, "Trbovlje", ['SlovenjTTGradec', 'Dravograd', 'Maribor', 'Ljubljana', 'Trbovlje'], False), PathReq(Protocols.OSPF, "Trbovlje", ['SlovenjTTGradec', 'Velenje', 'Celje', 'Lasko', 'Trbovlje'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'SlovenskaTTBistrica', [PathReq(Protocols.OSPF, "SlovenskaTTBistrica", ['SlovenjTTGradec', 'Velenje', 'Celje', 'SlovenskaTTBistrica'], False), PathReq(Protocols.OSPF, "SlovenskaTTBistrica", ['SlovenjTTGradec', 'Dravograd', 'Maribor', 'SlovenskaTTBistrica'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'NovoTTMesto', [PathReq(Protocols.OSPF, "NovoTTMesto", ['SlovenjTTGradec', 'Dravograd', 'Maribor', 'Ptuj', 'RogasjaTTSlatina', 'Krsko', 'NovoTTMesto'], False), PathReq(Protocols.OSPF, "NovoTTMesto", ['SlovenjTTGradec', 'Dravograd', 'Maribor', 'Ljubljana', 'Kovevje', 'NovoTTMesto'], False)], False),
]

edges_cost_ecmp_4_2 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 2),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 2),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

reqs_kconnected_4_2 = [
    KConnectedPathsReq(Protocols.OSPF, 'Portoroz', [PathReq(Protocols.OSPF, "Portoroz", ['SlovenjTTGradec', 'Dravograd', 'Maribor', 'Ljubljana', 'Koper', 'Divaca', 'Portoroz'], False), PathReq(Protocols.OSPF, "Portoroz", ['SlovenjTTGradec', 'Dravograd', 'Maribor', 'Ljubljana', 'Koper', 'Izola', 'Portoroz'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Trbovlje', [PathReq(Protocols.OSPF, "Trbovlje", ['SlovenjTTGradec', 'Dravograd', 'Maribor', 'Ljubljana', 'Trbovlje'], False), PathReq(Protocols.OSPF, "Trbovlje", ['SlovenjTTGradec', 'Velenje', 'Celje', 'Lasko', 'Trbovlje'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'SlovenskaTTBistrica', [PathReq(Protocols.OSPF, "SlovenskaTTBistrica", ['SlovenjTTGradec', 'Velenje', 'Celje', 'SlovenskaTTBistrica'], False), PathReq(Protocols.OSPF, "SlovenskaTTBistrica", ['SlovenjTTGradec', 'Dravograd', 'Maribor', 'SlovenskaTTBistrica'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'NovoTTMesto', [PathReq(Protocols.OSPF, "NovoTTMesto", ['SlovenjTTGradec', 'Dravograd', 'Maribor', 'Ptuj', 'RogasjaTTSlatina', 'Krsko', 'NovoTTMesto'], False), PathReq(Protocols.OSPF, "NovoTTMesto", ['SlovenjTTGradec', 'Dravograd', 'Maribor', 'Ljubljana', 'Kovevje', 'NovoTTMesto'], False)], False),
]

edges_cost_kconnected_4_2 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 2),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 2),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

reqs_order_4_2 = [
    PathOrderReq(Protocols.OSPF, 'Ljubljana', [PathReq(Protocols.OSPF, "Ljubljana", ['Postojna', 'Ljubljana'], False), PathReq(Protocols.OSPF, "Ljubljana", ['Postojna', 'Senozece', 'Divaca', 'Koper', 'Ljubljana'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Velenje', [PathReq(Protocols.OSPF, "Velenje", ['Dravograd', 'Velenje'], False), PathReq(Protocols.OSPF, "Velenje", ['Dravograd', 'SlovenjTTGradec', 'Velenje'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Izola', [PathReq(Protocols.OSPF, "Izola", ['Portoroz', 'Izola'], False), PathReq(Protocols.OSPF, "Izola", ['Portoroz', 'Divaca', 'Koper', 'Izola'], False)], False),
    PathOrderReq(Protocols.OSPF, 'GornjaTTRadgona', [PathReq(Protocols.OSPF, "GornjaTTRadgona", ['Radenci', 'GornjaTTRadgona'], False), PathReq(Protocols.OSPF, "GornjaTTRadgona", ['Radenci', 'MurskaTTSobota', 'Ljutomer', 'Ormoz', 'Ptuj', 'Maribor', 'GornjaTTRadgona'], False)], False),
]

edges_cost_order_4_2 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

reqs_simple_8 = [
    PathReq(Protocols.OSPF, "Tolmin", ['Ajdovscina', 'NovaTTGorica', 'Tolmin'], False),
    PathReq(Protocols.OSPF, "Lasko", ['Ajdovscina', 'NovaTTGorica', 'Ljubljana', 'Lasko'], False),
    PathReq(Protocols.OSPF, "Izola", ['Ajdovscina', 'Divaca', 'Portoroz', 'Izola'], False),
    PathReq(Protocols.OSPF, "Jesenice", ['Ajdovscina', 'Divaca', 'Koper', 'Kranj', 'Jesenice'], False),
    PathReq(Protocols.OSPF, "RogasjaTTSlatina", ['Ajdovscina', 'NovaTTGorica', 'Ljubljana', 'Maribor', 'Ptuj', 'RogasjaTTSlatina'], False),
    PathReq(Protocols.OSPF, "Sezana", ['Ajdovscina', 'Divaca', 'Senozece', 'Sezana'], False),
    PathReq(Protocols.OSPF, "Divaca", ['Ajdovscina', 'Divaca'], False),
    PathReq(Protocols.OSPF, "Maribor", ['Ajdovscina', 'NovaTTGorica', 'Ljubljana', 'Maribor'], False),
]

edges_cost_simple_8 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 2),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 2),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

####################

reqs_ecmp_8_2 = [
    ECMPPathsReq(Protocols.OSPF, 'Maribor', [PathReq(Protocols.OSPF, "Maribor", ['Celje', 'SlovenskaTTBistrica', 'Maribor'], False), PathReq(Protocols.OSPF, "Maribor", ['Celje', 'Lasko', 'Maribor'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Ormoz', [PathReq(Protocols.OSPF, "Ormoz", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'Ptuj', 'Ormoz'], False), PathReq(Protocols.OSPF, "Ormoz", ['Celje', 'Lasko', 'Maribor', 'Ptuj', 'Ormoz'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'RogasjaTTSlatina', [PathReq(Protocols.OSPF, "RogasjaTTSlatina", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'Ptuj', 'RogasjaTTSlatina'], False), PathReq(Protocols.OSPF, "RogasjaTTSlatina", ['Celje', 'Lasko', 'Maribor', 'Ptuj', 'RogasjaTTSlatina'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'NovoTTMesto', [PathReq(Protocols.OSPF, "NovoTTMesto", ['Celje', 'Lasko', 'Ljubljana', 'Kovevje', 'NovoTTMesto'], False), PathReq(Protocols.OSPF, "NovoTTMesto", ['Celje', 'Kamnik', 'Ljubljana', 'Kovevje', 'NovoTTMesto'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Ptuj', [PathReq(Protocols.OSPF, "Ptuj", ['Celje', 'Lasko', 'Maribor', 'Ptuj'], False), PathReq(Protocols.OSPF, "Ptuj", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'Ptuj'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Kranj', [PathReq(Protocols.OSPF, "Kranj", ['Celje', 'Lasko', 'Ljubljana', 'Kranj'], False), PathReq(Protocols.OSPF, "Kranj", ['Celje', 'Kamnik', 'Ljubljana', 'Kranj'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Radenci', [PathReq(Protocols.OSPF, "Radenci", ['Celje', 'Lasko', 'Maribor', 'GornjaTTRadgona', 'Radenci'], False), PathReq(Protocols.OSPF, "Radenci", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'GornjaTTRadgona', 'Radenci'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'MurskaTTSobota', [PathReq(Protocols.OSPF, "MurskaTTSobota", ['Celje', 'Lasko', 'Maribor', 'GornjaTTRadgona', 'Radenci', 'MurskaTTSobota'], False), PathReq(Protocols.OSPF, "MurskaTTSobota", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'GornjaTTRadgona', 'Radenci', 'MurskaTTSobota'], False)], False),
]

edges_cost_ecmp_8_2 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

reqs_kconnected_8_2 = [
    KConnectedPathsReq(Protocols.OSPF, 'Maribor', [PathReq(Protocols.OSPF, "Maribor", ['Celje', 'SlovenskaTTBistrica', 'Maribor'], False), PathReq(Protocols.OSPF, "Maribor", ['Celje', 'Lasko', 'Maribor'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Ormoz', [PathReq(Protocols.OSPF, "Ormoz", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'Ptuj', 'Ormoz'], False), PathReq(Protocols.OSPF, "Ormoz", ['Celje', 'Lasko', 'Maribor', 'Ptuj', 'Ormoz'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'RogasjaTTSlatina', [PathReq(Protocols.OSPF, "RogasjaTTSlatina", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'Ptuj', 'RogasjaTTSlatina'], False), PathReq(Protocols.OSPF, "RogasjaTTSlatina", ['Celje', 'Lasko', 'Maribor', 'Ptuj', 'RogasjaTTSlatina'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'NovoTTMesto', [PathReq(Protocols.OSPF, "NovoTTMesto", ['Celje', 'Lasko', 'Ljubljana', 'Kovevje', 'NovoTTMesto'], False), PathReq(Protocols.OSPF, "NovoTTMesto", ['Celje', 'Kamnik', 'Ljubljana', 'Kovevje', 'NovoTTMesto'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Ptuj', [PathReq(Protocols.OSPF, "Ptuj", ['Celje', 'Lasko', 'Maribor', 'Ptuj'], False), PathReq(Protocols.OSPF, "Ptuj", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'Ptuj'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Kranj', [PathReq(Protocols.OSPF, "Kranj", ['Celje', 'Lasko', 'Ljubljana', 'Kranj'], False), PathReq(Protocols.OSPF, "Kranj", ['Celje', 'Kamnik', 'Ljubljana', 'Kranj'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Radenci', [PathReq(Protocols.OSPF, "Radenci", ['Celje', 'Lasko', 'Maribor', 'GornjaTTRadgona', 'Radenci'], False), PathReq(Protocols.OSPF, "Radenci", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'GornjaTTRadgona', 'Radenci'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'MurskaTTSobota', [PathReq(Protocols.OSPF, "MurskaTTSobota", ['Celje', 'Lasko', 'Maribor', 'GornjaTTRadgona', 'Radenci', 'MurskaTTSobota'], False), PathReq(Protocols.OSPF, "MurskaTTSobota", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'GornjaTTRadgona', 'Radenci', 'MurskaTTSobota'], False)], False),
]

edges_cost_kconnected_8_2 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

reqs_order_8_2 = [
    PathOrderReq(Protocols.OSPF, 'Lasko', [PathReq(Protocols.OSPF, "Lasko", ['Ljubljana', 'Lasko'], False), PathReq(Protocols.OSPF, "Lasko", ['Ljubljana', 'Maribor', 'Lasko'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Trbovlje', [PathReq(Protocols.OSPF, "Trbovlje", ['Ljubljana', 'Trbovlje'], False), PathReq(Protocols.OSPF, "Trbovlje", ['Ljubljana', 'Lasko', 'Trbovlje'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Maribor', [PathReq(Protocols.OSPF, "Maribor", ['SlovenskaTTBistrica', 'Maribor'], False), PathReq(Protocols.OSPF, "Maribor", ['SlovenskaTTBistrica', 'Celje', 'Lasko', 'Maribor'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Dravograd', [PathReq(Protocols.OSPF, "Dravograd", ['SlovenjTTGradec', 'Dravograd'], False), PathReq(Protocols.OSPF, "Dravograd", ['SlovenjTTGradec', 'Velenje', 'Dravograd'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Kamnik', [PathReq(Protocols.OSPF, "Kamnik", ['Celje', 'Kamnik'], False), PathReq(Protocols.OSPF, "Kamnik", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'Ljubljana', 'Kamnik'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Maribor', [PathReq(Protocols.OSPF, "Maribor", ['Lasko', 'Maribor'], False), PathReq(Protocols.OSPF, "Maribor", ['Lasko', 'Celje', 'SlovenskaTTBistrica', 'Maribor'], False)], False),
    PathOrderReq(Protocols.OSPF, 'NovoTTMesto', [PathReq(Protocols.OSPF, "NovoTTMesto", ['Krsko', 'NovoTTMesto'], False), PathReq(Protocols.OSPF, "NovoTTMesto", ['Krsko', 'RogasjaTTSlatina', 'Ptuj', 'Maribor', 'Ljubljana', 'Kovevje', 'NovoTTMesto'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Velenje', [PathReq(Protocols.OSPF, "Velenje", ['Dravograd', 'Velenje'], False), PathReq(Protocols.OSPF, "Velenje", ['Dravograd', 'SlovenjTTGradec', 'Velenje'], False)], False),
]

edges_cost_order_8_2 = [
    ("Trbovlje", "Ljubljana", 2),
    ("Trbovlje", "Lasko", 2),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 2),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 3),
    ("Lasko", "Maribor", 2),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 2),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

reqs_simple_16 = [
    PathReq(Protocols.OSPF, "SlovenskaTTBistrica", ['Senozece', 'Postojna', 'Ljubljana', 'Maribor', 'SlovenskaTTBistrica'], False),
    PathReq(Protocols.OSPF, "NovoTTMesto", ['Senozece', 'Postojna', 'Ljubljana', 'Kovevje', 'NovoTTMesto'], False),
    PathReq(Protocols.OSPF, "Ormoz", ['Senozece', 'Postojna', 'Ljubljana', 'Maribor', 'Ptuj', 'Ormoz'], False),
    PathReq(Protocols.OSPF, "Ljubljana", ['Senozece', 'Postojna', 'Ljubljana'], False),
    PathReq(Protocols.OSPF, "Koper", ['Senozece', 'Divaca', 'Koper'], False),
    PathReq(Protocols.OSPF, "Celje", ['Senozece', 'Postojna', 'Ljubljana', 'Lasko', 'Celje'], False),
    PathReq(Protocols.OSPF, "Velenje", ['Senozece', 'Postojna', 'Ljubljana', 'Lasko', 'Celje', 'Velenje'], False),
    PathReq(Protocols.OSPF, "Ptuj", ['Senozece', 'Postojna', 'Ljubljana', 'Maribor', 'Ptuj'], False),
    PathReq(Protocols.OSPF, "Maribor", ['Senozece', 'Postojna', 'Ljubljana', 'Maribor'], False),
    PathReq(Protocols.OSPF, "Trbovlje", ['Senozece', 'Postojna', 'Ljubljana', 'Trbovlje'], False),
    PathReq(Protocols.OSPF, "Tolmin", ['Senozece', 'Postojna', 'Ljubljana', 'NovaTTGorica', 'Tolmin'], False),
    PathReq(Protocols.OSPF, "Kranj", ['Senozece', 'Postojna', 'Ljubljana', 'Kranj'], False),
    PathReq(Protocols.OSPF, "GornjaTTRadgona", ['Senozece', 'Postojna', 'Ljubljana', 'Maribor', 'GornjaTTRadgona'], False),
    PathReq(Protocols.OSPF, "Izola", ['Senozece', 'Divaca', 'Koper', 'Izola'], False),
    PathReq(Protocols.OSPF, "MurskaTTSobota", ['Senozece', 'Postojna', 'Ljubljana', 'Maribor', 'GornjaTTRadgona', 'Radenci', 'MurskaTTSobota'], False),
    PathReq(Protocols.OSPF, "Krsko", ['Senozece', 'Postojna', 'Ljubljana', 'Kovevje', 'NovoTTMesto', 'Krsko'], False),
]

edges_cost_simple_16 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 2),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 2),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 2),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 2),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 2),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

####################

reqs_ecmp_16_2 = [
    ECMPPathsReq(Protocols.OSPF, 'Maribor', [PathReq(Protocols.OSPF, "Maribor", ['Celje', 'SlovenskaTTBistrica', 'Maribor'], False), PathReq(Protocols.OSPF, "Maribor", ['Celje', 'Lasko', 'Maribor'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Ormoz', [PathReq(Protocols.OSPF, "Ormoz", ['Celje', 'Lasko', 'Maribor', 'Ptuj', 'Ormoz'], False), PathReq(Protocols.OSPF, "Ormoz", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'Ptuj', 'Ormoz'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Ljutomer', [PathReq(Protocols.OSPF, "Ljutomer", ['Celje', 'Lasko', 'Maribor', 'Ptuj', 'Ormoz', 'Ljutomer'], False), PathReq(Protocols.OSPF, "Ljutomer", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'Ptuj', 'Ormoz', 'Ljutomer'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Senozece', [PathReq(Protocols.OSPF, "Senozece", ['Celje', 'Lasko', 'Ljubljana', 'Postojna', 'Senozece'], False), PathReq(Protocols.OSPF, "Senozece", ['Celje', 'Kamnik', 'Ljubljana', 'Postojna', 'Senozece'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'RogasjaTTSlatina', [PathReq(Protocols.OSPF, "RogasjaTTSlatina", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'Ptuj', 'RogasjaTTSlatina'], False), PathReq(Protocols.OSPF, "RogasjaTTSlatina", ['Celje', 'Lasko', 'Maribor', 'Ptuj', 'RogasjaTTSlatina'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Bled', [PathReq(Protocols.OSPF, "Bled", ['Celje', 'Lasko', 'Ljubljana', 'Kranj', 'Bled'], False), PathReq(Protocols.OSPF, "Bled", ['Celje', 'Kamnik', 'Ljubljana', 'Kranj', 'Bled'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Koper', [PathReq(Protocols.OSPF, "Koper", ['Celje', 'Lasko', 'Ljubljana', 'Koper'], False), PathReq(Protocols.OSPF, "Koper", ['Celje', 'Kamnik', 'Ljubljana', 'Koper'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Divaca', [PathReq(Protocols.OSPF, "Divaca", ['Celje', 'Lasko', 'Ljubljana', 'Koper', 'Divaca'], False), PathReq(Protocols.OSPF, "Divaca", ['Celje', 'Kamnik', 'Ljubljana', 'Koper', 'Divaca'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Ptuj', [PathReq(Protocols.OSPF, "Ptuj", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'Ptuj'], False), PathReq(Protocols.OSPF, "Ptuj", ['Celje', 'Lasko', 'Maribor', 'Ptuj'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Postojna', [PathReq(Protocols.OSPF, "Postojna", ['Celje', 'Lasko', 'Ljubljana', 'Postojna'], False), PathReq(Protocols.OSPF, "Postojna", ['Celje', 'Kamnik', 'Ljubljana', 'Postojna'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Kranj', [PathReq(Protocols.OSPF, "Kranj", ['Celje', 'Kamnik', 'Ljubljana', 'Kranj'], False), PathReq(Protocols.OSPF, "Kranj", ['Celje', 'Lasko', 'Ljubljana', 'Kranj'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Radenci', [PathReq(Protocols.OSPF, "Radenci", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'GornjaTTRadgona', 'Radenci'], False), PathReq(Protocols.OSPF, "Radenci", ['Celje', 'Lasko', 'Maribor', 'GornjaTTRadgona', 'Radenci'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Izola', [PathReq(Protocols.OSPF, "Izola", ['Celje', 'Lasko', 'Ljubljana', 'Koper', 'Izola'], False), PathReq(Protocols.OSPF, "Izola", ['Celje', 'Kamnik', 'Ljubljana', 'Koper', 'Izola'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'MurskaTTSobota', [PathReq(Protocols.OSPF, "MurskaTTSobota", ['Celje', 'Lasko', 'Maribor', 'GornjaTTRadgona', 'Radenci', 'MurskaTTSobota'], False), PathReq(Protocols.OSPF, "MurskaTTSobota", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'GornjaTTRadgona', 'Radenci', 'MurskaTTSobota'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Tolmin', [PathReq(Protocols.OSPF, "Tolmin", ['Celje', 'Lasko', 'Ljubljana', 'NovaTTGorica', 'Tolmin'], False), PathReq(Protocols.OSPF, "Tolmin", ['Celje', 'Kamnik', 'Ljubljana', 'NovaTTGorica', 'Tolmin'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Ljubljana', [PathReq(Protocols.OSPF, "Ljubljana", ['Celje', 'Kamnik', 'Ljubljana'], False), PathReq(Protocols.OSPF, "Ljubljana", ['Celje', 'Lasko', 'Ljubljana'], False)], False),
]

edges_cost_ecmp_16_2 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

reqs_kconnected_16_2 = [
    KConnectedPathsReq(Protocols.OSPF, 'Maribor', [PathReq(Protocols.OSPF, "Maribor", ['Celje', 'SlovenskaTTBistrica', 'Maribor'], False), PathReq(Protocols.OSPF, "Maribor", ['Celje', 'Lasko', 'Maribor'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Ormoz', [PathReq(Protocols.OSPF, "Ormoz", ['Celje', 'Lasko', 'Maribor', 'Ptuj', 'Ormoz'], False), PathReq(Protocols.OSPF, "Ormoz", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'Ptuj', 'Ormoz'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Ljutomer', [PathReq(Protocols.OSPF, "Ljutomer", ['Celje', 'Lasko', 'Maribor', 'Ptuj', 'Ormoz', 'Ljutomer'], False), PathReq(Protocols.OSPF, "Ljutomer", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'Ptuj', 'Ormoz', 'Ljutomer'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Senozece', [PathReq(Protocols.OSPF, "Senozece", ['Celje', 'Lasko', 'Ljubljana', 'Postojna', 'Senozece'], False), PathReq(Protocols.OSPF, "Senozece", ['Celje', 'Kamnik', 'Ljubljana', 'Postojna', 'Senozece'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'RogasjaTTSlatina', [PathReq(Protocols.OSPF, "RogasjaTTSlatina", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'Ptuj', 'RogasjaTTSlatina'], False), PathReq(Protocols.OSPF, "RogasjaTTSlatina", ['Celje', 'Lasko', 'Maribor', 'Ptuj', 'RogasjaTTSlatina'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Bled', [PathReq(Protocols.OSPF, "Bled", ['Celje', 'Lasko', 'Ljubljana', 'Kranj', 'Bled'], False), PathReq(Protocols.OSPF, "Bled", ['Celje', 'Kamnik', 'Ljubljana', 'Kranj', 'Bled'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Koper', [PathReq(Protocols.OSPF, "Koper", ['Celje', 'Lasko', 'Ljubljana', 'Koper'], False), PathReq(Protocols.OSPF, "Koper", ['Celje', 'Kamnik', 'Ljubljana', 'Koper'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Divaca', [PathReq(Protocols.OSPF, "Divaca", ['Celje', 'Lasko', 'Ljubljana', 'Koper', 'Divaca'], False), PathReq(Protocols.OSPF, "Divaca", ['Celje', 'Kamnik', 'Ljubljana', 'Koper', 'Divaca'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Ptuj', [PathReq(Protocols.OSPF, "Ptuj", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'Ptuj'], False), PathReq(Protocols.OSPF, "Ptuj", ['Celje', 'Lasko', 'Maribor', 'Ptuj'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Postojna', [PathReq(Protocols.OSPF, "Postojna", ['Celje', 'Lasko', 'Ljubljana', 'Postojna'], False), PathReq(Protocols.OSPF, "Postojna", ['Celje', 'Kamnik', 'Ljubljana', 'Postojna'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Kranj', [PathReq(Protocols.OSPF, "Kranj", ['Celje', 'Kamnik', 'Ljubljana', 'Kranj'], False), PathReq(Protocols.OSPF, "Kranj", ['Celje', 'Lasko', 'Ljubljana', 'Kranj'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Radenci', [PathReq(Protocols.OSPF, "Radenci", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'GornjaTTRadgona', 'Radenci'], False), PathReq(Protocols.OSPF, "Radenci", ['Celje', 'Lasko', 'Maribor', 'GornjaTTRadgona', 'Radenci'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Izola', [PathReq(Protocols.OSPF, "Izola", ['Celje', 'Lasko', 'Ljubljana', 'Koper', 'Izola'], False), PathReq(Protocols.OSPF, "Izola", ['Celje', 'Kamnik', 'Ljubljana', 'Koper', 'Izola'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'MurskaTTSobota', [PathReq(Protocols.OSPF, "MurskaTTSobota", ['Celje', 'Lasko', 'Maribor', 'GornjaTTRadgona', 'Radenci', 'MurskaTTSobota'], False), PathReq(Protocols.OSPF, "MurskaTTSobota", ['Celje', 'SlovenskaTTBistrica', 'Maribor', 'GornjaTTRadgona', 'Radenci', 'MurskaTTSobota'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Tolmin', [PathReq(Protocols.OSPF, "Tolmin", ['Celje', 'Lasko', 'Ljubljana', 'NovaTTGorica', 'Tolmin'], False), PathReq(Protocols.OSPF, "Tolmin", ['Celje', 'Kamnik', 'Ljubljana', 'NovaTTGorica', 'Tolmin'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Ljubljana', [PathReq(Protocols.OSPF, "Ljubljana", ['Celje', 'Kamnik', 'Ljubljana'], False), PathReq(Protocols.OSPF, "Ljubljana", ['Celje', 'Lasko', 'Ljubljana'], False)], False),
]

edges_cost_kconnected_16_2 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 1),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 1),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 1),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 1),
]

reqs_order_16_2 = [
    PathOrderReq(Protocols.OSPF, 'Ljubljana', [PathReq(Protocols.OSPF, "Ljubljana", ['Kovevje', 'Ljubljana'], False), PathReq(Protocols.OSPF, "Ljubljana", ['Kovevje', 'NovoTTMesto', 'Krsko', 'RogasjaTTSlatina', 'Ptuj', 'Maribor', 'Ljubljana'], False)], False),
    PathOrderReq(Protocols.OSPF, 'MurskaTTSobota', [PathReq(Protocols.OSPF, "MurskaTTSobota", ['Radenci', 'MurskaTTSobota'], False), PathReq(Protocols.OSPF, "MurskaTTSobota", ['Radenci', 'GornjaTTRadgona', 'Maribor', 'Ptuj', 'Ormoz', 'Ljutomer', 'MurskaTTSobota'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Ljubljana', [PathReq(Protocols.OSPF, "Ljubljana", ['Maribor', 'Ljubljana'], False), PathReq(Protocols.OSPF, "Ljubljana", ['Maribor', 'Lasko', 'Ljubljana'], False)], False),
    PathOrderReq(Protocols.OSPF, 'NovaTTGorica', [PathReq(Protocols.OSPF, "NovaTTGorica", ['Ljubljana', 'NovaTTGorica'], False), PathReq(Protocols.OSPF, "NovaTTGorica", ['Ljubljana', 'Koper', 'Divaca', 'Ajdovscina', 'NovaTTGorica'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Postojna', [PathReq(Protocols.OSPF, "Postojna", ['Ljubljana', 'Postojna'], False), PathReq(Protocols.OSPF, "Postojna", ['Ljubljana', 'Koper', 'Divaca', 'Senozece', 'Postojna'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Bled', [PathReq(Protocols.OSPF, "Bled", ['Kranj', 'Bled'], False), PathReq(Protocols.OSPF, "Bled", ['Kranj', 'Ljubljana', 'NovaTTGorica', 'Tolmin', 'Bled'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Krsko', [PathReq(Protocols.OSPF, "Krsko", ['NovoTTMesto', 'Krsko'], False), PathReq(Protocols.OSPF, "Krsko", ['NovoTTMesto', 'Kovevje', 'Ljubljana', 'Maribor', 'Ptuj', 'RogasjaTTSlatina', 'Krsko'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Ptuj', [PathReq(Protocols.OSPF, "Ptuj", ['Maribor', 'Ptuj'], False), PathReq(Protocols.OSPF, "Ptuj", ['Maribor', 'Ljubljana', 'Kovevje', 'NovoTTMesto', 'Krsko', 'RogasjaTTSlatina', 'Ptuj'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Celje', [PathReq(Protocols.OSPF, "Celje", ['SlovenskaTTBistrica', 'Celje'], False), PathReq(Protocols.OSPF, "Celje", ['SlovenskaTTBistrica', 'Maribor', 'Ljubljana', 'Kamnik', 'Celje'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Ptuj', [PathReq(Protocols.OSPF, "Ptuj", ['Ormoz', 'Ptuj'], False), PathReq(Protocols.OSPF, "Ptuj", ['Ormoz', 'Ljutomer', 'MurskaTTSobota', 'Radenci', 'GornjaTTRadgona', 'Maribor', 'Ptuj'], False)], False),
    PathOrderReq(Protocols.OSPF, 'SlovenjTTGradec', [PathReq(Protocols.OSPF, "SlovenjTTGradec", ['Velenje', 'SlovenjTTGradec'], False), PathReq(Protocols.OSPF, "SlovenjTTGradec", ['Velenje', 'Dravograd', 'SlovenjTTGradec'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Bled', [PathReq(Protocols.OSPF, "Bled", ['Tolmin', 'Bled'], False), PathReq(Protocols.OSPF, "Bled", ['Tolmin', 'NovaTTGorica', 'Ljubljana', 'Kranj', 'Bled'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Trbovlje', [PathReq(Protocols.OSPF, "Trbovlje", ['Lasko', 'Trbovlje'], False), PathReq(Protocols.OSPF, "Trbovlje", ['Lasko', 'Ljubljana', 'Trbovlje'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Kamnik', [PathReq(Protocols.OSPF, "Kamnik", ['Celje', 'Kamnik'], False), PathReq(Protocols.OSPF, "Kamnik", ['Celje', 'Lasko', 'Ljubljana', 'Kamnik'], False)], False),
    PathOrderReq(Protocols.OSPF, 'NovoTTMesto', [PathReq(Protocols.OSPF, "NovoTTMesto", ['Krsko', 'NovoTTMesto'], False), PathReq(Protocols.OSPF, "NovoTTMesto", ['Krsko', 'RogasjaTTSlatina', 'Ptuj', 'Maribor', 'Ljubljana', 'Kovevje', 'NovoTTMesto'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Senozece', [PathReq(Protocols.OSPF, "Senozece", ['Divaca', 'Senozece'], False), PathReq(Protocols.OSPF, "Senozece", ['Divaca', 'Koper', 'Ljubljana', 'Postojna', 'Senozece'], False)], False),
]

edges_cost_order_16_2 = [
    ("Trbovlje", "Ljubljana", 1),
    ("Trbovlje", "Lasko", 1),
    ("Dravograd", "Velenje", 2),
    ("Dravograd", "Maribor", 1),
    ("Dravograd", "RavneTTnaTTKoroskem", 1),
    ("Dravograd", "SlovenjTTGradec", 1),
    ("SlovenjTTGradec", "Velenje", 1),
    ("SlovenjTTGradec", "Dravograd", 1),
    ("Ljubljana", "NovaTTGorica", 1),
    ("Ljubljana", "Kovevje", 1),
    ("Ljubljana", "Trbovlje", 1),
    ("Ljubljana", "Koper", 1),
    ("Ljubljana", "Lasko", 1),
    ("Ljubljana", "Maribor", 1),
    ("Ljubljana", "Postojna", 1),
    ("Ljubljana", "Kamnik", 1),
    ("Ljubljana", "Kranj", 1),
    ("Kamnik", "Ljubljana", 1),
    ("Kamnik", "Celje", 1),
    ("Divaca", "Senozece", 1),
    ("Divaca", "Ajdovscina", 1),
    ("Divaca", "Portoroz", 1),
    ("Divaca", "Koper", 1),
    ("RavneTTnaTTKoroskem", "Dravograd", 1),
    ("Jesenice", "Kranj", 1),
    ("Sezana", "Senozece", 1),
    ("Krsko", "RogasjaTTSlatina", 1),
    ("Krsko", "NovoTTMesto", 1),
    ("Koper", "Divaca", 1),
    ("Koper", "Ljubljana", 1),
    ("Koper", "Izola", 1),
    ("Koper", "Kranj", 1),
    ("Lasko", "Ljubljana", 1),
    ("Lasko", "Maribor", 1),
    ("Lasko", "Trbovlje", 1),
    ("Lasko", "Celje", 3),
    ("Ljutomer", "Ormoz", 1),
    ("Ljutomer", "MurskaTTSobota", 1),
    ("NovoTTMesto", "Kovevje", 1),
    ("NovoTTMesto", "Krsko", 1),
    ("Ajdovscina", "Divaca", 1),
    ("Ajdovscina", "NovaTTGorica", 1),
    ("Izola", "Portoroz", 1),
    ("Izola", "Koper", 1),
    ("Tolmin", "Bled", 1),
    ("Tolmin", "NovaTTGorica", 1),
    ("Ormoz", "Ljutomer", 1),
    ("Ormoz", "Ptuj", 1),
    ("NovaTTGorica", "Ljubljana", 1),
    ("NovaTTGorica", "Ajdovscina", 1),
    ("NovaTTGorica", "Tolmin", 1),
    ("Ptuj", "RogasjaTTSlatina", 1),
    ("Ptuj", "Ormoz", 1),
    ("Ptuj", "Maribor", 1),
    ("Portoroz", "Divaca", 1),
    ("Portoroz", "Izola", 1),
    ("SlovenskaTTBistrica", "Maribor", 1),
    ("SlovenskaTTBistrica", "Celje", 1),
    ("Celje", "Velenje", 1),
    ("Celje", "Kamnik", 1),
    ("Celje", "SlovenskaTTBistrica", 1),
    ("Celje", "Lasko", 1),
    ("RogasjaTTSlatina", "Ptuj", 1),
    ("RogasjaTTSlatina", "Krsko", 1),
    ("Postojna", "Ljubljana", 1),
    ("Postojna", "Senozece", 1),
    ("Kranj", "Jesenice", 1),
    ("Kranj", "Bled", 1),
    ("Kranj", "Ljubljana", 1),
    ("Kranj", "Koper", 1),
    ("MurskaTTSobota", "Ljutomer", 1),
    ("MurskaTTSobota", "Radenci", 1),
    ("GornjaTTRadgona", "Maribor", 1),
    ("GornjaTTRadgona", "Radenci", 1),
    ("Radenci", "GornjaTTRadgona", 1),
    ("Radenci", "MurskaTTSobota", 1),
    ("Kovevje", "Ljubljana", 1),
    ("Kovevje", "NovoTTMesto", 1),
    ("Velenje", "Dravograd", 1),
    ("Velenje", "SlovenjTTGradec", 1),
    ("Velenje", "Celje", 1),
    ("Bled", "Tolmin", 2),
    ("Bled", "Kranj", 1),
    ("Senozece", "Divaca", 1),
    ("Senozece", "Postojna", 1),
    ("Senozece", "Sezana", 1),
    ("Maribor", "Dravograd", 1),
    ("Maribor", "Ptuj", 1),
    ("Maribor", "SlovenskaTTBistrica", 1),
    ("Maribor", "Lasko", 1),
    ("Maribor", "Ljubljana", 1),
    ("Maribor", "GornjaTTRadgona", 2),
]

####################

reqs_simple = [reqs_simple_1,reqs_simple_2,reqs_simple_4,reqs_simple_8,reqs_simple_16]

reqs_simple_vals = [edges_cost_simple_1,edges_cost_simple_2,edges_cost_simple_4,edges_cost_simple_8,edges_cost_simple_16]

####################

reqs_ecmp = [reqs_ecmp_1_2,reqs_ecmp_2_2,reqs_ecmp_4_2,reqs_ecmp_8_2,reqs_ecmp_16_2]

reqs_ecmp_vals = [edges_cost_ecmp_1_2,edges_cost_ecmp_2_2,edges_cost_ecmp_4_2,edges_cost_ecmp_8_2,edges_cost_ecmp_16_2]

####################

reqs_kconnected = [reqs_kconnected_1_2,reqs_kconnected_2_2,reqs_kconnected_4_2,reqs_kconnected_8_2,reqs_kconnected_16_2]

reqs_kconnected_vals = [edges_cost_kconnected_1_2,edges_cost_kconnected_2_2,edges_cost_kconnected_4_2,edges_cost_kconnected_8_2,edges_cost_kconnected_16_2]

####################

reqs_order = [reqs_order_1_2, reqs_order_2_2, reqs_order_4_2, reqs_order_8_2, reqs_order_16_2]

reqs_order_vals = [edges_cost_order_1_2, edges_cost_order_2_2, edges_cost_order_4_2, edges_cost_order_8_2, edges_cost_order_16_2]

####################

