
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/Canerie.graphml'
seed = 1029614285
reqs_simple_1 = [
    PathReq(Protocols.OSPF, "Fredericton", ['Vancouver', 'Kamloops', 'Calgary', 'Winnipeg', 'Toronto', 'Ottawa', 'Montreal', 'Fredericton'], False),
]

edges_cost_simple_1 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 2),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 2),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

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

reqs_ecmp_1_2 = [
    ECMPPathsReq(Protocols.OSPF, 'NorthTTandTTSouthTTAmerica', [PathReq(Protocols.OSPF, "NorthTTandTTSouthTTAmerica", ["StTTJohn's", 'Halifax', 'NewTTYork', 'Toronto', 'Winnipeg', 'Chicago', 'NorthTTandTTSouthTTAmerica'], False), PathReq(Protocols.OSPF, "NorthTTandTTSouthTTAmerica", ["StTTJohn's", 'Halifax', 'NewTTYork', 'Toronto', 'Windsor_Detroit', 'Chicago', 'NorthTTandTTSouthTTAmerica'], False)], False),
]

edges_cost_ecmp_1_2 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

reqs_kconnected_1_2 = [
    KConnectedPathsReq(Protocols.OSPF, 'NorthTTandTTSouthTTAmerica', [PathReq(Protocols.OSPF, "NorthTTandTTSouthTTAmerica", ["StTTJohn's", 'Halifax', 'NewTTYork', 'Toronto', 'Winnipeg', 'Chicago', 'NorthTTandTTSouthTTAmerica'], False), PathReq(Protocols.OSPF, "NorthTTandTTSouthTTAmerica", ["StTTJohn's", 'Halifax', 'NewTTYork', 'Toronto', 'Windsor_Detroit', 'Chicago', 'NorthTTandTTSouthTTAmerica'], False)], False),
]

edges_cost_kconnected_1_2 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

reqs_order_1_2 = [
    PathOrderReq(Protocols.OSPF, 'Montreal', [PathReq(Protocols.OSPF, "Montreal", ['Halifax', 'Montreal'], False), PathReq(Protocols.OSPF, "Montreal", ['Halifax', 'Charlottetown', 'Fredericton', 'Montreal'], False)], False),
]

edges_cost_order_1_2 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 2),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

reqs_simple_2 = [
    PathReq(Protocols.OSPF, "Fredericton", ['Europe', "StTTJohn's", 'Halifax', 'Charlottetown', 'Fredericton'], False),
    PathReq(Protocols.OSPF, "Halifax", ['Europe', "StTTJohn's", 'Halifax'], False),
]

edges_cost_simple_2 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 2),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

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

reqs_ecmp_2_2 = [
    ECMPPathsReq(Protocols.OSPF, 'Edmonton', [PathReq(Protocols.OSPF, "Edmonton", ['Boston', 'NewTTYork', 'Toronto', 'Winnipeg', 'Saskatoon', 'Edmonton'], False), PathReq(Protocols.OSPF, "Edmonton", ['Boston', 'NewTTYork', 'Toronto', 'Winnipeg', 'Calgary', 'Edmonton'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Vancouver', [PathReq(Protocols.OSPF, "Vancouver", ['Boston', 'NewTTYork', 'Toronto', 'Winnipeg', 'Chicago', 'Seattle', 'Vancouver'], False), PathReq(Protocols.OSPF, "Vancouver", ['Boston', 'NewTTYork', 'Toronto', 'Winnipeg', 'Calgary', 'Kamloops', 'Vancouver'], False)], False),
]

edges_cost_ecmp_2_2 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 2),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

reqs_kconnected_2_2 = [
    KConnectedPathsReq(Protocols.OSPF, 'Edmonton', [PathReq(Protocols.OSPF, "Edmonton", ['Boston', 'NewTTYork', 'Toronto', 'Winnipeg', 'Saskatoon', 'Edmonton'], False), PathReq(Protocols.OSPF, "Edmonton", ['Boston', 'NewTTYork', 'Toronto', 'Winnipeg', 'Calgary', 'Edmonton'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Vancouver', [PathReq(Protocols.OSPF, "Vancouver", ['Boston', 'NewTTYork', 'Toronto', 'Winnipeg', 'Chicago', 'Seattle', 'Vancouver'], False), PathReq(Protocols.OSPF, "Vancouver", ['Boston', 'NewTTYork', 'Toronto', 'Winnipeg', 'Calgary', 'Kamloops', 'Vancouver'], False)], False),
]

edges_cost_kconnected_2_2 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 2),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

reqs_order_2_2 = [
    PathOrderReq(Protocols.OSPF, 'Calgary', [PathReq(Protocols.OSPF, "Calgary", ['Edmonton', 'Calgary'], False), PathReq(Protocols.OSPF, "Calgary", ['Edmonton', 'Saskatoon', 'Winnipeg', 'Calgary'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Seattle', [PathReq(Protocols.OSPF, "Seattle", ['Victoria', 'Seattle'], False), PathReq(Protocols.OSPF, "Seattle", ['Victoria', 'Vancouver', 'Seattle'], False)], False),
]

edges_cost_order_2_2 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

reqs_simple_4 = [
    PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountriesID19", ['Kelowna', 'Kamloops', 'Calgary', 'Chicago', 'EuropeTTandTTotherTTcountriesID19'], False),
    PathReq(Protocols.OSPF, "Windsor_Detroit", ['Kelowna', 'Kamloops', 'Calgary', 'Chicago', 'Windsor_Detroit'], False),
    PathReq(Protocols.OSPF, "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", ['Kelowna', 'Kamloops', 'Calgary', 'Chicago', 'AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud'], False),
    PathReq(Protocols.OSPF, "Fredericton", ['Kelowna', 'Kamloops', 'Calgary', 'Winnipeg', 'Toronto', 'Ottawa', 'Montreal', 'Fredericton'], False),
]

edges_cost_simple_4 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

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

reqs_ecmp_4_2 = [
    ECMPPathsReq(Protocols.OSPF, 'Whitehorse', [PathReq(Protocols.OSPF, "Whitehorse", ['Charlottetown', 'Halifax', 'NewTTYork', 'Toronto', 'Winnipeg', 'Calgary', 'Edmonton', 'Whitehorse'], False), PathReq(Protocols.OSPF, "Whitehorse", ['Charlottetown', 'Halifax', 'NewTTYork', 'Toronto', 'Winnipeg', 'Saskatoon', 'Edmonton', 'Whitehorse'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'NorthTTandTTSouthTTAmerica', [PathReq(Protocols.OSPF, "NorthTTandTTSouthTTAmerica", ['Charlottetown', 'Halifax', 'NewTTYork', 'Toronto', 'Winnipeg', 'Chicago', 'NorthTTandTTSouthTTAmerica'], False), PathReq(Protocols.OSPF, "NorthTTandTTSouthTTAmerica", ['Charlottetown', 'Halifax', 'NewTTYork', 'Toronto', 'Windsor_Detroit', 'Chicago', 'NorthTTandTTSouthTTAmerica'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Montreal', [PathReq(Protocols.OSPF, "Montreal", ['Charlottetown', 'Halifax', 'Montreal'], False), PathReq(Protocols.OSPF, "Montreal", ['Charlottetown', 'Fredericton', 'Montreal'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'EuropeTTandTTotherTTcountriesID19', [PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountriesID19", ['Charlottetown', 'Halifax', 'NewTTYork', 'Toronto', 'Windsor_Detroit', 'Chicago', 'EuropeTTandTTotherTTcountriesID19'], False), PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountriesID19", ['Charlottetown', 'Halifax', 'NewTTYork', 'Toronto', 'Winnipeg', 'Chicago', 'EuropeTTandTTotherTTcountriesID19'], False)], False),
]

edges_cost_ecmp_4_2 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

reqs_kconnected_4_2 = [
    KConnectedPathsReq(Protocols.OSPF, 'Whitehorse', [PathReq(Protocols.OSPF, "Whitehorse", ['Charlottetown', 'Halifax', 'NewTTYork', 'Toronto', 'Winnipeg', 'Calgary', 'Edmonton', 'Whitehorse'], False), PathReq(Protocols.OSPF, "Whitehorse", ['Charlottetown', 'Halifax', 'NewTTYork', 'Toronto', 'Winnipeg', 'Saskatoon', 'Edmonton', 'Whitehorse'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'NorthTTandTTSouthTTAmerica', [PathReq(Protocols.OSPF, "NorthTTandTTSouthTTAmerica", ['Charlottetown', 'Halifax', 'NewTTYork', 'Toronto', 'Winnipeg', 'Chicago', 'NorthTTandTTSouthTTAmerica'], False), PathReq(Protocols.OSPF, "NorthTTandTTSouthTTAmerica", ['Charlottetown', 'Halifax', 'NewTTYork', 'Toronto', 'Windsor_Detroit', 'Chicago', 'NorthTTandTTSouthTTAmerica'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Montreal', [PathReq(Protocols.OSPF, "Montreal", ['Charlottetown', 'Halifax', 'Montreal'], False), PathReq(Protocols.OSPF, "Montreal", ['Charlottetown', 'Fredericton', 'Montreal'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'EuropeTTandTTotherTTcountriesID19', [PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountriesID19", ['Charlottetown', 'Halifax', 'NewTTYork', 'Toronto', 'Windsor_Detroit', 'Chicago', 'EuropeTTandTTotherTTcountriesID19'], False), PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountriesID19", ['Charlottetown', 'Halifax', 'NewTTYork', 'Toronto', 'Winnipeg', 'Chicago', 'EuropeTTandTTotherTTcountriesID19'], False)], False),
]

edges_cost_kconnected_4_2 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

reqs_order_4_2 = [
    PathOrderReq(Protocols.OSPF, 'Montreal', [PathReq(Protocols.OSPF, "Montreal", ['Halifax', 'Montreal'], False), PathReq(Protocols.OSPF, "Montreal", ['Halifax', 'NewTTYork', 'Boston', 'Montreal'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Seattle', [PathReq(Protocols.OSPF, "Seattle", ['Chicago', 'Seattle'], False), PathReq(Protocols.OSPF, "Seattle", ['Chicago', 'Calgary', 'Kamloops', 'Vancouver', 'Seattle'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Kamloops', [PathReq(Protocols.OSPF, "Kamloops", ['Calgary', 'Kamloops'], False), PathReq(Protocols.OSPF, "Kamloops", ['Calgary', 'Chicago', 'Seattle', 'Vancouver', 'Kamloops'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Seattle', [PathReq(Protocols.OSPF, "Seattle", ['Vancouver', 'Seattle'], False), PathReq(Protocols.OSPF, "Seattle", ['Vancouver', 'Kamloops', 'Calgary', 'Chicago', 'Seattle'], False)], False),
]

edges_cost_order_4_2 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 4),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 2),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

reqs_simple_8 = [
    PathReq(Protocols.OSPF, "Kamloops", ['AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud', 'Chicago', 'Calgary', 'Kamloops'], False),
    PathReq(Protocols.OSPF, "Fredericton", ['AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud', 'Chicago', 'Winnipeg', 'Toronto', 'Ottawa', 'Montreal', 'Fredericton'], False),
    PathReq(Protocols.OSPF, "Chicago", ['AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud', 'Chicago'], False),
    PathReq(Protocols.OSPF, "ThunderTTBay", ['AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud', 'Chicago', 'Winnipeg', 'ThunderTTBay'], False),
    PathReq(Protocols.OSPF, "Ottawa", ['AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud', 'Chicago', 'Winnipeg', 'Toronto', 'Ottawa'], False),
    PathReq(Protocols.OSPF, "Windsor_Detroit", ['AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud', 'Chicago', 'Windsor_Detroit'], False),
    PathReq(Protocols.OSPF, "Victoria", ['AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud', 'Chicago', 'Seattle', 'Victoria'], False),
    PathReq(Protocols.OSPF, "Asie-Pacifique", ['AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud', 'Chicago', 'Seattle', 'Asie-Pacifique'], False),
]

edges_cost_simple_8 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 2),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

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

reqs_ecmp_8_2 = [
    ECMPPathsReq(Protocols.OSPF, 'NewTTYork', [PathReq(Protocols.OSPF, "NewTTYork", ['Whitehorse', 'Edmonton', 'Calgary', 'Winnipeg', 'Toronto', 'NewTTYork'], False), PathReq(Protocols.OSPF, "NewTTYork", ['Whitehorse', 'Edmonton', 'Saskatoon', 'Winnipeg', 'Toronto', 'NewTTYork'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'EuropeTTetTTautresTTpays', [PathReq(Protocols.OSPF, "EuropeTTetTTautresTTpays", ['Whitehorse', 'Edmonton', 'Saskatoon', 'Winnipeg', 'Toronto', 'NewTTYork', 'EuropeTTetTTautresTTpays'], False), PathReq(Protocols.OSPF, "EuropeTTetTTautresTTpays", ['Whitehorse', 'Edmonton', 'Calgary', 'Winnipeg', 'Toronto', 'NewTTYork', 'EuropeTTetTTautresTTpays'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Boston', [PathReq(Protocols.OSPF, "Boston", ['Whitehorse', 'Edmonton', 'Calgary', 'Winnipeg', 'Toronto', 'NewTTYork', 'Boston'], False), PathReq(Protocols.OSPF, "Boston", ['Whitehorse', 'Edmonton', 'Saskatoon', 'Winnipeg', 'Toronto', 'NewTTYork', 'Boston'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Toronto', [PathReq(Protocols.OSPF, "Toronto", ['Whitehorse', 'Edmonton', 'Calgary', 'Winnipeg', 'Toronto'], False), PathReq(Protocols.OSPF, "Toronto", ['Whitehorse', 'Edmonton', 'Saskatoon', 'Winnipeg', 'Toronto'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'EuropeTTandTTotherTTcountries', [PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountries", ['Whitehorse', 'Edmonton', 'Calgary', 'Winnipeg', 'Toronto', 'NewTTYork', 'EuropeTTandTTotherTTcountries'], False), PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountries", ['Whitehorse', 'Edmonton', 'Saskatoon', 'Winnipeg', 'Toronto', 'NewTTYork', 'EuropeTTandTTotherTTcountries'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Fredericton', [PathReq(Protocols.OSPF, "Fredericton", ['Whitehorse', 'Edmonton', 'Calgary', 'Winnipeg', 'Toronto', 'Ottawa', 'Montreal', 'Fredericton'], False), PathReq(Protocols.OSPF, "Fredericton", ['Whitehorse', 'Edmonton', 'Saskatoon', 'Winnipeg', 'Toronto', 'Ottawa', 'Montreal', 'Fredericton'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Ottawa', [PathReq(Protocols.OSPF, "Ottawa", ['Whitehorse', 'Edmonton', 'Calgary', 'Winnipeg', 'Toronto', 'Ottawa'], False), PathReq(Protocols.OSPF, "Ottawa", ['Whitehorse', 'Edmonton', 'Saskatoon', 'Winnipeg', 'Toronto', 'Ottawa'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Winnipeg', [PathReq(Protocols.OSPF, "Winnipeg", ['Whitehorse', 'Edmonton', 'Saskatoon', 'Winnipeg'], False), PathReq(Protocols.OSPF, "Winnipeg", ['Whitehorse', 'Edmonton', 'Calgary', 'Winnipeg'], False)], False),
]

edges_cost_ecmp_8_2 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

reqs_kconnected_8_2 = [
    KConnectedPathsReq(Protocols.OSPF, 'NewTTYork', [PathReq(Protocols.OSPF, "NewTTYork", ['Whitehorse', 'Edmonton', 'Calgary', 'Winnipeg', 'Toronto', 'NewTTYork'], False), PathReq(Protocols.OSPF, "NewTTYork", ['Whitehorse', 'Edmonton', 'Saskatoon', 'Winnipeg', 'Toronto', 'NewTTYork'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'EuropeTTetTTautresTTpays', [PathReq(Protocols.OSPF, "EuropeTTetTTautresTTpays", ['Whitehorse', 'Edmonton', 'Saskatoon', 'Winnipeg', 'Toronto', 'NewTTYork', 'EuropeTTetTTautresTTpays'], False), PathReq(Protocols.OSPF, "EuropeTTetTTautresTTpays", ['Whitehorse', 'Edmonton', 'Calgary', 'Winnipeg', 'Toronto', 'NewTTYork', 'EuropeTTetTTautresTTpays'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Boston', [PathReq(Protocols.OSPF, "Boston", ['Whitehorse', 'Edmonton', 'Calgary', 'Winnipeg', 'Toronto', 'NewTTYork', 'Boston'], False), PathReq(Protocols.OSPF, "Boston", ['Whitehorse', 'Edmonton', 'Saskatoon', 'Winnipeg', 'Toronto', 'NewTTYork', 'Boston'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Toronto', [PathReq(Protocols.OSPF, "Toronto", ['Whitehorse', 'Edmonton', 'Calgary', 'Winnipeg', 'Toronto'], False), PathReq(Protocols.OSPF, "Toronto", ['Whitehorse', 'Edmonton', 'Saskatoon', 'Winnipeg', 'Toronto'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'EuropeTTandTTotherTTcountries', [PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountries", ['Whitehorse', 'Edmonton', 'Calgary', 'Winnipeg', 'Toronto', 'NewTTYork', 'EuropeTTandTTotherTTcountries'], False), PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountries", ['Whitehorse', 'Edmonton', 'Saskatoon', 'Winnipeg', 'Toronto', 'NewTTYork', 'EuropeTTandTTotherTTcountries'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Fredericton', [PathReq(Protocols.OSPF, "Fredericton", ['Whitehorse', 'Edmonton', 'Calgary', 'Winnipeg', 'Toronto', 'Ottawa', 'Montreal', 'Fredericton'], False), PathReq(Protocols.OSPF, "Fredericton", ['Whitehorse', 'Edmonton', 'Saskatoon', 'Winnipeg', 'Toronto', 'Ottawa', 'Montreal', 'Fredericton'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Ottawa', [PathReq(Protocols.OSPF, "Ottawa", ['Whitehorse', 'Edmonton', 'Calgary', 'Winnipeg', 'Toronto', 'Ottawa'], False), PathReq(Protocols.OSPF, "Ottawa", ['Whitehorse', 'Edmonton', 'Saskatoon', 'Winnipeg', 'Toronto', 'Ottawa'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Winnipeg', [PathReq(Protocols.OSPF, "Winnipeg", ['Whitehorse', 'Edmonton', 'Saskatoon', 'Winnipeg'], False), PathReq(Protocols.OSPF, "Winnipeg", ['Whitehorse', 'Edmonton', 'Calgary', 'Winnipeg'], False)], False),
]

edges_cost_kconnected_8_2 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

reqs_order_8_2 = [
    PathOrderReq(Protocols.OSPF, 'NewTTYork', [PathReq(Protocols.OSPF, "NewTTYork", ['Boston', 'NewTTYork'], False), PathReq(Protocols.OSPF, "NewTTYork", ['Boston', 'Montreal', 'Halifax', 'NewTTYork'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Ottawa', [PathReq(Protocols.OSPF, "Ottawa", ['Montreal', 'Ottawa'], False), PathReq(Protocols.OSPF, "Ottawa", ['Montreal', 'Boston', 'NewTTYork', 'Toronto', 'Ottawa'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Chicago', [PathReq(Protocols.OSPF, "Chicago", ['Calgary', 'Chicago'], False), PathReq(Protocols.OSPF, "Chicago", ['Calgary', 'Winnipeg', 'Chicago'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Winnipeg', [PathReq(Protocols.OSPF, "Winnipeg", ['Saskatoon', 'Winnipeg'], False), PathReq(Protocols.OSPF, "Winnipeg", ['Saskatoon', 'Edmonton', 'Calgary', 'Winnipeg'], False)], False),
    PathOrderReq(Protocols.OSPF, 'ThunderTTBay', [PathReq(Protocols.OSPF, "ThunderTTBay", ['Toronto', 'ThunderTTBay'], False), PathReq(Protocols.OSPF, "ThunderTTBay", ['Toronto', 'Winnipeg', 'ThunderTTBay'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Montreal', [PathReq(Protocols.OSPF, "Montreal", ['Ottawa', 'Montreal'], False), PathReq(Protocols.OSPF, "Montreal", ['Ottawa', 'Toronto', 'NewTTYork', 'Halifax', 'Montreal'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Boston', [PathReq(Protocols.OSPF, "Boston", ['NewTTYork', 'Boston'], False), PathReq(Protocols.OSPF, "Boston", ['NewTTYork', 'Toronto', 'Ottawa', 'Montreal', 'Boston'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Kamloops', [PathReq(Protocols.OSPF, "Kamloops", ['Vancouver', 'Kamloops'], False), PathReq(Protocols.OSPF, "Kamloops", ['Vancouver', 'Seattle', 'Chicago', 'Windsor_Detroit', 'Toronto', 'Winnipeg', 'Calgary', 'Kamloops'], False)], False),
]

edges_cost_order_8_2 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 4),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 5),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 2),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 3),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 2),
    ("Montreal", "Ottawa", 2),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 4),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

reqs_simple_16 = [
    PathReq(Protocols.OSPF, "Edmonton", ['EuropeTTandTTotherTTcountriesID19', 'Chicago', 'Calgary', 'Edmonton'], False),
    PathReq(Protocols.OSPF, "Whitehorse", ['EuropeTTandTTotherTTcountriesID19', 'Chicago', 'Calgary', 'Edmonton', 'Whitehorse'], False),
    PathReq(Protocols.OSPF, "NorthTTandTTSouthTTAmerica", ['EuropeTTandTTotherTTcountriesID19', 'Chicago', 'NorthTTandTTSouthTTAmerica'], False),
    PathReq(Protocols.OSPF, "ThunderTTBay", ['EuropeTTandTTotherTTcountriesID19', 'Chicago', 'Winnipeg', 'ThunderTTBay'], False),
    PathReq(Protocols.OSPF, "Kelowna", ['EuropeTTandTTotherTTcountriesID19', 'Chicago', 'Calgary', 'Kamloops', 'Kelowna'], False),
    PathReq(Protocols.OSPF, "Kamloops", ['EuropeTTandTTotherTTcountriesID19', 'Chicago', 'Calgary', 'Kamloops'], False),
    PathReq(Protocols.OSPF, "Toronto", ['EuropeTTandTTotherTTcountriesID19', 'Chicago', 'Windsor_Detroit', 'Toronto'], False),
    PathReq(Protocols.OSPF, "Chicago", ['EuropeTTandTTotherTTcountriesID19', 'Chicago'], False),
    PathReq(Protocols.OSPF, "Europe", ['EuropeTTandTTotherTTcountriesID19', 'Chicago', 'Windsor_Detroit', 'Toronto', 'NewTTYork', 'Halifax', "StTTJohn's", 'Europe'], False),
    PathReq(Protocols.OSPF, "Seattle", ['EuropeTTandTTotherTTcountriesID19', 'Chicago', 'Seattle'], False),
    PathReq(Protocols.OSPF, "Saskatoon", ['EuropeTTandTTotherTTcountriesID19', 'Chicago', 'Winnipeg', 'Saskatoon'], False),
    PathReq(Protocols.OSPF, "Vancouver", ['EuropeTTandTTotherTTcountriesID19', 'Chicago', 'Seattle', 'Vancouver'], False),
    PathReq(Protocols.OSPF, "Victoria", ['EuropeTTandTTotherTTcountriesID19', 'Chicago', 'Seattle', 'Victoria'], False),
    PathReq(Protocols.OSPF, "Regina", ['EuropeTTandTTotherTTcountriesID19', 'Chicago', 'Winnipeg', 'Regina'], False),
    PathReq(Protocols.OSPF, "Asia-Pacific", ['EuropeTTandTTotherTTcountriesID19', 'Chicago', 'Seattle', 'Asia-Pacific'], False),
    PathReq(Protocols.OSPF, "Boston", ['EuropeTTandTTotherTTcountriesID19', 'Chicago', 'Windsor_Detroit', 'Toronto', 'NewTTYork', 'Boston'], False),
]

edges_cost_simple_16 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 2),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 2),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

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

reqs_ecmp_16_2 = [
    ECMPPathsReq(Protocols.OSPF, 'Seattle', [PathReq(Protocols.OSPF, "Seattle", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago', 'Seattle'], False), PathReq(Protocols.OSPF, "Seattle", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago', 'Seattle'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Charlottetown', [PathReq(Protocols.OSPF, "Charlottetown", ['Montreal', 'Halifax', 'Charlottetown'], False), PathReq(Protocols.OSPF, "Charlottetown", ['Montreal', 'Fredericton', 'Charlottetown'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Asie-Pacifique', [PathReq(Protocols.OSPF, "Asie-Pacifique", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago', 'Seattle', 'Asie-Pacifique'], False), PathReq(Protocols.OSPF, "Asie-Pacifique", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago', 'Seattle', 'Asie-Pacifique'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Victoria', [PathReq(Protocols.OSPF, "Victoria", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago', 'Seattle', 'Victoria'], False), PathReq(Protocols.OSPF, "Victoria", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago', 'Seattle', 'Victoria'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'EuropeTTandTTotherTTcountries', [PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountries", ['Montreal', 'Boston', 'NewTTYork', 'EuropeTTandTTotherTTcountries'], False), PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountries", ['Montreal', 'Halifax', 'NewTTYork', 'EuropeTTandTTotherTTcountries'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Vancouver', [PathReq(Protocols.OSPF, "Vancouver", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago', 'Seattle', 'Vancouver'], False), PathReq(Protocols.OSPF, "Vancouver", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago', 'Seattle', 'Vancouver'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Asia-Pacific', [PathReq(Protocols.OSPF, "Asia-Pacific", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago', 'Seattle', 'Asia-Pacific'], False), PathReq(Protocols.OSPF, "Asia-Pacific", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago', 'Seattle', 'Asia-Pacific'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud', [PathReq(Protocols.OSPF, "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago', 'AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud'], False), PathReq(Protocols.OSPF, "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago', 'AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Yellowknife', [PathReq(Protocols.OSPF, "Yellowknife", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Calgary', 'Edmonton', 'Yellowknife'], False), PathReq(Protocols.OSPF, "Yellowknife", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Saskatoon', 'Edmonton', 'Yellowknife'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'NorthTTandTTSouthTTAmerica', [PathReq(Protocols.OSPF, "NorthTTandTTSouthTTAmerica", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago', 'NorthTTandTTSouthTTAmerica'], False), PathReq(Protocols.OSPF, "NorthTTandTTSouthTTAmerica", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago', 'NorthTTandTTSouthTTAmerica'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Edmonton', [PathReq(Protocols.OSPF, "Edmonton", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Saskatoon', 'Edmonton'], False), PathReq(Protocols.OSPF, "Edmonton", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Calgary', 'Edmonton'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Whitehorse', [PathReq(Protocols.OSPF, "Whitehorse", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Calgary', 'Edmonton', 'Whitehorse'], False), PathReq(Protocols.OSPF, "Whitehorse", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Saskatoon', 'Edmonton', 'Whitehorse'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'EuropeTTetTTautresTTpays', [PathReq(Protocols.OSPF, "EuropeTTetTTautresTTpays", ['Montreal', 'Halifax', 'NewTTYork', 'EuropeTTetTTautresTTpays'], False), PathReq(Protocols.OSPF, "EuropeTTetTTautresTTpays", ['Montreal', 'Boston', 'NewTTYork', 'EuropeTTetTTautresTTpays'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'EuropeTTandTTotherTTcountriesID19', [PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountriesID19", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago', 'EuropeTTandTTotherTTcountriesID19'], False), PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountriesID19", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago', 'EuropeTTandTTotherTTcountriesID19'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'Chicago', [PathReq(Protocols.OSPF, "Chicago", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago'], False), PathReq(Protocols.OSPF, "Chicago", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago'], False)], False),
    ECMPPathsReq(Protocols.OSPF, 'NewTTYork', [PathReq(Protocols.OSPF, "NewTTYork", ['Montreal', 'Halifax', 'NewTTYork'], False), PathReq(Protocols.OSPF, "NewTTYork", ['Montreal', 'Boston', 'NewTTYork'], False)], False),
]

edges_cost_ecmp_16_2 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 1),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 1),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 2),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

reqs_kconnected_16_2 = [
    KConnectedPathsReq(Protocols.OSPF, 'Seattle', [PathReq(Protocols.OSPF, "Seattle", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago', 'Seattle'], False), PathReq(Protocols.OSPF, "Seattle", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago', 'Seattle'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Charlottetown', [PathReq(Protocols.OSPF, "Charlottetown", ['Montreal', 'Halifax', 'Charlottetown'], False), PathReq(Protocols.OSPF, "Charlottetown", ['Montreal', 'Fredericton', 'Charlottetown'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Asie-Pacifique', [PathReq(Protocols.OSPF, "Asie-Pacifique", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago', 'Seattle', 'Asie-Pacifique'], False), PathReq(Protocols.OSPF, "Asie-Pacifique", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago', 'Seattle', 'Asie-Pacifique'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Victoria', [PathReq(Protocols.OSPF, "Victoria", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago', 'Seattle', 'Victoria'], False), PathReq(Protocols.OSPF, "Victoria", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago', 'Seattle', 'Victoria'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'EuropeTTandTTotherTTcountries', [PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountries", ['Montreal', 'Boston', 'NewTTYork', 'EuropeTTandTTotherTTcountries'], False), PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountries", ['Montreal', 'Halifax', 'NewTTYork', 'EuropeTTandTTotherTTcountries'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Vancouver', [PathReq(Protocols.OSPF, "Vancouver", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago', 'Seattle', 'Vancouver'], False), PathReq(Protocols.OSPF, "Vancouver", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago', 'Seattle', 'Vancouver'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Asia-Pacific', [PathReq(Protocols.OSPF, "Asia-Pacific", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago', 'Seattle', 'Asia-Pacific'], False), PathReq(Protocols.OSPF, "Asia-Pacific", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago', 'Seattle', 'Asia-Pacific'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud', [PathReq(Protocols.OSPF, "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago', 'AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud'], False), PathReq(Protocols.OSPF, "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago', 'AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Yellowknife', [PathReq(Protocols.OSPF, "Yellowknife", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Calgary', 'Edmonton', 'Yellowknife'], False), PathReq(Protocols.OSPF, "Yellowknife", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Saskatoon', 'Edmonton', 'Yellowknife'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'NorthTTandTTSouthTTAmerica', [PathReq(Protocols.OSPF, "NorthTTandTTSouthTTAmerica", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago', 'NorthTTandTTSouthTTAmerica'], False), PathReq(Protocols.OSPF, "NorthTTandTTSouthTTAmerica", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago', 'NorthTTandTTSouthTTAmerica'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Edmonton', [PathReq(Protocols.OSPF, "Edmonton", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Saskatoon', 'Edmonton'], False), PathReq(Protocols.OSPF, "Edmonton", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Calgary', 'Edmonton'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Whitehorse', [PathReq(Protocols.OSPF, "Whitehorse", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Calgary', 'Edmonton', 'Whitehorse'], False), PathReq(Protocols.OSPF, "Whitehorse", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Saskatoon', 'Edmonton', 'Whitehorse'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'EuropeTTetTTautresTTpays', [PathReq(Protocols.OSPF, "EuropeTTetTTautresTTpays", ['Montreal', 'Halifax', 'NewTTYork', 'EuropeTTetTTautresTTpays'], False), PathReq(Protocols.OSPF, "EuropeTTetTTautresTTpays", ['Montreal', 'Boston', 'NewTTYork', 'EuropeTTetTTautresTTpays'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'EuropeTTandTTotherTTcountriesID19', [PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountriesID19", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago', 'EuropeTTandTTotherTTcountriesID19'], False), PathReq(Protocols.OSPF, "EuropeTTandTTotherTTcountriesID19", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago', 'EuropeTTandTTotherTTcountriesID19'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'Chicago', [PathReq(Protocols.OSPF, "Chicago", ['Montreal', 'Ottawa', 'Toronto', 'Winnipeg', 'Chicago'], False), PathReq(Protocols.OSPF, "Chicago", ['Montreal', 'Ottawa', 'Toronto', 'Windsor_Detroit', 'Chicago'], False)], False),
    KConnectedPathsReq(Protocols.OSPF, 'NewTTYork', [PathReq(Protocols.OSPF, "NewTTYork", ['Montreal', 'Halifax', 'NewTTYork'], False), PathReq(Protocols.OSPF, "NewTTYork", ['Montreal', 'Boston', 'NewTTYork'], False)], False),
]

edges_cost_kconnected_16_2 = [
    ("Toronto", "Windsor_Detroit", 1),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 2),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 2),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 2),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 1),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 2),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 1),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 1),
    ("Boston", "Montreal", 1),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 1),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 1),
    ("Seattle", "Chicago", 1),
]

reqs_order_16_2 = [
    PathOrderReq(Protocols.OSPF, 'Winnipeg', [PathReq(Protocols.OSPF, "Winnipeg", ['Calgary', 'Winnipeg'], False), PathReq(Protocols.OSPF, "Winnipeg", ['Calgary', 'Regina', 'Winnipeg'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Charlottetown', [PathReq(Protocols.OSPF, "Charlottetown", ['Halifax', 'Charlottetown'], False), PathReq(Protocols.OSPF, "Charlottetown", ['Halifax', 'Montreal', 'Fredericton', 'Charlottetown'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Toronto', [PathReq(Protocols.OSPF, "Toronto", ['NewTTYork', 'Toronto'], False), PathReq(Protocols.OSPF, "Toronto", ['NewTTYork', 'Boston', 'Montreal', 'Ottawa', 'Toronto'], False)], False),
    PathOrderReq(Protocols.OSPF, 'NewTTYork', [PathReq(Protocols.OSPF, "NewTTYork", ['Boston', 'NewTTYork'], False), PathReq(Protocols.OSPF, "NewTTYork", ['Boston', 'Montreal', 'Halifax', 'NewTTYork'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Saskatoon', [PathReq(Protocols.OSPF, "Saskatoon", ['Edmonton', 'Saskatoon'], False), PathReq(Protocols.OSPF, "Saskatoon", ['Edmonton', 'Calgary', 'Winnipeg', 'Saskatoon'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Boston', [PathReq(Protocols.OSPF, "Boston", ['NewTTYork', 'Boston'], False), PathReq(Protocols.OSPF, "Boston", ['NewTTYork', 'Toronto', 'Ottawa', 'Montreal', 'Boston'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Vancouver', [PathReq(Protocols.OSPF, "Vancouver", ['Victoria', 'Vancouver'], False), PathReq(Protocols.OSPF, "Vancouver", ['Victoria', 'Seattle', 'Vancouver'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Toronto', [PathReq(Protocols.OSPF, "Toronto", ['Windsor_Detroit', 'Toronto'], False), PathReq(Protocols.OSPF, "Toronto", ['Windsor_Detroit', 'Chicago', 'Winnipeg', 'Toronto'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Halifax', [PathReq(Protocols.OSPF, "Halifax", ['Charlottetown', 'Halifax'], False), PathReq(Protocols.OSPF, "Halifax", ['Charlottetown', 'Fredericton', 'Montreal', 'Halifax'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Edmonton', [PathReq(Protocols.OSPF, "Edmonton", ['Calgary', 'Edmonton'], False), PathReq(Protocols.OSPF, "Edmonton", ['Calgary', 'Winnipeg', 'Saskatoon', 'Edmonton'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Montreal', [PathReq(Protocols.OSPF, "Montreal", ['Fredericton', 'Montreal'], False), PathReq(Protocols.OSPF, "Montreal", ['Fredericton', 'Charlottetown', 'Halifax', 'Montreal'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Charlottetown', [PathReq(Protocols.OSPF, "Charlottetown", ['Fredericton', 'Charlottetown'], False), PathReq(Protocols.OSPF, "Charlottetown", ['Fredericton', 'Montreal', 'Halifax', 'Charlottetown'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Toronto', [PathReq(Protocols.OSPF, "Toronto", ['Ottawa', 'Toronto'], False), PathReq(Protocols.OSPF, "Toronto", ['Ottawa', 'Montreal', 'Halifax', 'NewTTYork', 'Toronto'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Kamloops', [PathReq(Protocols.OSPF, "Kamloops", ['Calgary', 'Kamloops'], False), PathReq(Protocols.OSPF, "Kamloops", ['Calgary', 'Winnipeg', 'Chicago', 'Seattle', 'Victoria', 'Vancouver', 'Kamloops'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Edmonton', [PathReq(Protocols.OSPF, "Edmonton", ['Saskatoon', 'Edmonton'], False), PathReq(Protocols.OSPF, "Edmonton", ['Saskatoon', 'Winnipeg', 'Chicago', 'Calgary', 'Edmonton'], False)], False),
    PathOrderReq(Protocols.OSPF, 'Chicago', [PathReq(Protocols.OSPF, "Chicago", ['Winnipeg', 'Chicago'], False), PathReq(Protocols.OSPF, "Chicago", ['Winnipeg', 'Calgary', 'Chicago'], False)], False),
]

edges_cost_order_16_2 = [
    ("Toronto", "Windsor_Detroit", 5),
    ("Toronto", "NewTTYork", 1),
    ("Toronto", "Winnipeg", 1),
    ("Toronto", "Ottawa", 1),
    ("Toronto", "ThunderTTBay", 1),
    ("Regina", "Calgary", 3),
    ("Regina", "Winnipeg", 1),
    ("EuropeTTetTTautresTTpays", "NewTTYork", 1),
    ("Kelowna", "Kamloops", 1),
    ("Chicago", "NorthTTandTTSouthTTAmerica", 1),
    ("Chicago", "Winnipeg", 1),
    ("Chicago", "Windsor_Detroit", 1),
    ("Chicago", "Calgary", 1),
    ("Chicago", "EuropeTTandTTotherTTcountriesID19", 1),
    ("Chicago", "Seattle", 1),
    ("Chicago", "AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", 1),
    ("Whitehorse", "Edmonton", 1),
    ("Winnipeg", "Toronto", 1),
    ("Winnipeg", "Regina", 1),
    ("Winnipeg", "Chicago", 1),
    ("Winnipeg", "Saskatoon", 1),
    ("Winnipeg", "Calgary", 3),
    ("Winnipeg", "ThunderTTBay", 1),
    ("Vancouver", "Seattle", 1),
    ("Vancouver", "Kamloops", 1),
    ("Vancouver", "Victoria", 1),
    ("Calgary", "Edmonton", 1),
    ("Calgary", "Winnipeg", 1),
    ("Calgary", "Regina", 1),
    ("Calgary", "Kamloops", 1),
    ("Calgary", "Chicago", 3),
    ("EuropeTTandTTotherTTcountriesID19", "Chicago", 1),
    ("StTTJohn's", "Europe", 1),
    ("StTTJohn's", "Halifax", 1),
    ("ThunderTTBay", "Toronto", 1),
    ("ThunderTTBay", "Winnipeg", 1),
    ("Europe", "StTTJohn's", 1),
    ("Charlottetown", "Halifax", 1),
    ("Charlottetown", "Fredericton", 1),
    ("Fredericton", "Charlottetown", 1),
    ("Fredericton", "Montreal", 1),
    ("NewTTYork", "EuropeTTandTTotherTTcountries", 1),
    ("NewTTYork", "Toronto", 1),
    ("NewTTYork", "Halifax", 1),
    ("NewTTYork", "EuropeTTetTTautresTTpays", 1),
    ("NewTTYork", "Boston", 1),
    ("Victoria", "Seattle", 1),
    ("Victoria", "Vancouver", 1),
    ("Asia-Pacific", "Seattle", 1),
    ("AmeriqueTTduTTNordTTetTTAmeriqueTTduTTSud", "Chicago", 1),
    ("EuropeTTandTTotherTTcountries", "NewTTYork", 1),
    ("Yellowknife", "Edmonton", 1),
    ("Saskatoon", "Edmonton", 1),
    ("Saskatoon", "Winnipeg", 1),
    ("Ottawa", "Toronto", 1),
    ("Ottawa", "Montreal", 1),
    ("Windsor_Detroit", "Toronto", 1),
    ("Windsor_Detroit", "Chicago", 1),
    ("Halifax", "Charlottetown", 1),
    ("Halifax", "StTTJohn's", 1),
    ("Halifax", "NewTTYork", 1),
    ("Halifax", "Montreal", 3),
    ("Montreal", "Boston", 1),
    ("Montreal", "Halifax", 1),
    ("Montreal", "Ottawa", 1),
    ("Montreal", "Fredericton", 1),
    ("Kamloops", "Calgary", 1),
    ("Kamloops", "Vancouver", 1),
    ("Kamloops", "Kelowna", 1),
    ("Boston", "NewTTYork", 2),
    ("Boston", "Montreal", 2),
    ("Edmonton", "Whitehorse", 1),
    ("Edmonton", "Yellowknife", 1),
    ("Edmonton", "Saskatoon", 1),
    ("Edmonton", "Calgary", 2),
    ("NorthTTandTTSouthTTAmerica", "Chicago", 1),
    ("Asie-Pacifique", "Seattle", 1),
    ("Seattle", "Asia-Pacific", 1),
    ("Seattle", "Asie-Pacifique", 1),
    ("Seattle", "Victoria", 1),
    ("Seattle", "Vancouver", 3),
    ("Seattle", "Chicago", 1),
]

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

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]

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

