from typing import List
from .type import E

#화이트 리스트로 수정함
white_edges: List[E] = [
    ("dna1", "dna41"),
    ("dna1", "dna44"),
    ("dna1", "dna45"),
    ("dna2", "dna3"),
    ("dna2", "dna8"),
    ("dna2", "dna16"),
    ("dna2", "dna19"),
    ("dna2", "dna28"),
    ("dna2", "dna37"),
    ("dna2", "dna40"),
    ("dna3", "dna2"),
    ("dna3", "dna4"),
    ("dna3", "dna8"),
    ("dna3", "dna9"),
    ("dna3", "dna16"),
    ("dna3", "dna19"),
    ("dna3", "dna20"),
    ("dna3", "dna24"),
    ("dna4", "dna20"),
    ("dna4", "dna26"),
    ("dna4", "dna29"),
    ("dna4", "dna38"),
    ("dna4", "dna55"),
    ("dna5", "dna6"),
    ("dna5", "dna7"),
    ("dna5", "dna8"),
    ("dna5", "dna9"),
    ("dna5", "dna10"),
    ("dna5", "dna14"),
    ("dna5", "dna33"),
    ("dna6", "dna11"),
    ("dna6", "dna21"),
    ("dna7", "dna10"),
    ("dna7", "dna12"),
    ("dna7", "dna33"),
    ("dna7", "dna41"),
    ("dna8", "dna9"),
    ("dna8", "dna28"),
    ("dna8", "dna37"),
    ("dna8", "dna43"),
    ("dna9", "dna10"),
    ("dna9", "dna36"),
    ("dna9", "dna61"),
    ("dna10", "dna5"),
    ("dna10", "dna11"),
    ("dna10", "dna21"),
    ("dna10", "dna55"),
    ("dna11", "dna49"),
    ("dna11", "dna54"),
    ("dna12", "dna31"),
    ("dna12", "dna33"),
    ("dna12", "dna34"),
    ("dna12", "dna42"),
    ("dna13", "dna12"),
    ("dna13", "dna18"),
    ("dna13", "dna24"),
    ("dna13", "dna30"),
    ("dna13", "dna63"),
    ("dna14", "dna7"),
    ("dna14", "dna12"),
    ("dna14", "dna15"),
    ("dna14", "dna16"),
    ("dna14", "dna17"),
    ("dna14", "dna20"),
    ("dna14", "dna26"),
    ("dna14", "dna33"),
    ("dna14", "dna34"),
    ("dna14", "dna43"),
    ("dna15", "dna12"),
    ("dna15", "dna17"),
    ("dna15", "dna39"),
    ("dna15", "dna43"),
    ("dna15", "dna53"),
    ("dna15", "dna55"),
    ("dna15", "dna63"),
    ("dna16", "dna19"),
    ("dna16", "dna20"),
    ("dna16", "dna29"),
    ("dna16", "dna30"),
    ("dna16", "dna31"),
    ("dna17", "dna26"),
    ("dna17", "dna30"),
    ("dna17", "dna31"),
    ("dna17", "dna32"),
    ("dna17", "dna53"),
    ("dna17", "dna63"),
    ("dna18", "dna24"),
    ("dna19", "dna20"),
    ("dna19", "dna23"),
    ("dna19", "dna24"),
    ("dna19", "dna29"),
    ("dna19", "dna31"),
    ("dna19", "dna33"),
    ("dna19", "dna34"),
    ("dna19", "dna57"),
    ("dna20", "dna24"),
    ("dna20", "dna25"),
    ("dna20", "dna28"),
    ("dna20", "dna29"),
    ("dna20", "dna30"),
    ("dna20", "dna31"),
    ("dna20", "dna32"),
    ("dna20", "dna57"),
    ("dna20", "dna60"),
    ("dna21", "dna23"),
    ("dna21", "dna28"),
    ("dna21", "dna29"),
    ("dna21", "dna31"),
    ("dna21", "dna32"),
    ("dna21", "dna57"),
    ("dna21", "dna60"),
    ("dna21", "dna63"),
    ("dna22", "dna23"),
    ("dna22", "dna49"),
    ("dna22", "dna55"),
    ("dna22", "dna57"),
    ("dna22", "dna59"),
    ("dna22", "dna60"),
    ("dna22", "dna64"),
    ("dna25", "dna27"),
    ("dna25", "dna29"),
    ("dna25", "dna30"),
    ("dna25", "dna42"),
    ("dna26", "dna31"),
    ("dna26", "dna32"),
    ("dna26", "dna55"),
    ("dna27", "dna26"),
    ("dna27", "dna28"),
    ("dna27", "dna29"),
    ("dna27", "dna30"),
    ("dna27", "dna31"),
    ("dna27", "dna53"),
    ("dna27", "dna57"),
    ("dna27", "dna60"),
    ("dna27", "dna63"),
    ("dna28", "dna19"),
    ("dna28", "dna20"),
    ("dna28", "dna29"),
    ("dna28", "dna30"),
    ("dna28", "dna31"),
    ("dna29", "dna31"),
    ("dna29", "dna32"),
    ("dna30", "dna29"),
    ("dna30", "dna31"),
    ("dna30", "dna32"),
    ("dna30", "dna60"),
    ("dna31", "dna20"),
    ("dna31", "dna24"),
    ("dna31", "dna42"),
    ("dna33", "dna13"),
    ("dna33", "dna42"),
    ("dna33", "dna62"),
    ("dna34", "dna13"),
    ("dna34", "dna19"),
    ("dna34", "dna20"),
    ("dna34", "dna21"),
    ("dna34", "dna24"),
    ("dna34", "dna25"),
    ("dna34", "dna33"),
    ("dna34", "dna35"),
    ("dna34", "dna42"),
    ("dna35", "dna33"),
    ("dna36", "dna34"),
    ("dna36", "dna41"),
    ("dna36", "dna42"),
    ("dna36", "dna44"),
    ("dna36", "dna45"),
    ("dna37", "dna28"),
    ("dna37", "dna40"),
    ("dna37", "dna52"),
    ("dna37", "dna64"),
    ("dna38", "dna62"),
    ("dna39", "dna64"),
    ("dna40", "dna13"),
    ("dna40", "dna24"),
    ("dna40", "dna37"),
    ("dna41", "dna20"),
    ("dna41", "dna62"),
    ("dna41", "dna63"),
    ("dna41", "dna65"),
    ("dna41", "dna66"),
    ("dna42", "dna33"),
    ("dna42", "dna60"),
    ("dna42", "dna64"),
    ("dna42", "dna65"),
    ("dna43", "dna20"),
    ("dna43", "dna30"),
    ("dna43", "dna31"),
    ("dna43", "dna38"),
    ("dna43", "dna62"),
    ("dna43", "dna64"),
    ("dna43", "dna65"),
    ("dna44", "dna31"),
    ("dna44", "dna54"),
    ("dna44", "dna56"),
    ("dna44", "dna64"),
    ("dna44", "dna65"),
    ("dna45", "dna31"),
    ("dna45", "dna54"),
    ("dna45", "dna64"),
    ("dna45", "dna65"),
    ("dna52", "dna64"),
    ("dna46", "dna47"),
    ("dna46", "dna60"),
    ("dna46", "dna64"),
    ("dna46", "dna65"),
    ("dna47", "dna60"),
    ("dna47", "dna64"),
    ("dna47", "dna65"),
    ("dna48", "dna51"),
    ("dna48", "dna60"),
    ("dna48", "dna64"),
    ("dna48", "dna65"),
    ("dna49", "dna60"),
    ("dna49", "dna64"),
    ("dna50", "dna60"),
    ("dna50", "dna64"),
    ("dna50", "dna65"),
    ("dna51", "dna60"),
    ("dna51", "dna64"),
    ("dna53", "dna29"),
    ("dna53", "dna65"),
    ("dna53", "dna67"),
    ("dna57", "dna60"),
    ("dna61", "dna64"),
    ("dna61", "dna65"),
    ("dna64", "dna61"),
    ("dna64", "dna65"),
    ("dna64", "dna67"),
    ("dna65", "dna60"),
    ("dna67", "dna60"),
]

# 화이트와 그레이 나누기
# 그레이 엣지 추가
gray_edges: List[E] = [
    ("dna34", "dna39"),
    ("dna34", "dna55"),
    ("dna36", "dna37"),
    ("dna36", "dna38"),
    ("dna36", "dna46"),
    ("dna36", "dna47"),
    ("dna36", "dna48"),
    ("dna36", "dna51"),
    ("dna36", "dna54"),
    ("dna36", "dna55"),
    ("dna38", "dna68"),
    ("dna39", "dna68"),
    ("dna40", "dna41"),
    ("dna40", "dna44"),
    ("dna40", "dna45"),
    ("dna40", "dna46"),
    ("dna40", "dna47"),
    ("dna40", "dna48"),
    ("dna40", "dna49"),
    ("dna40", "dna51"),
    ("dna40", "dna54"),
    ("dna40", "dna58"),
    ("dna40", "dna61"),
    ("dna41", "dna38"),
    ("dna41", "dna43"),
    ("dna41", "dna46"),
    ("dna41", "dna47"),
    ("dna41", "dna50"),
    ("dna41", "dna55"),
    ("dna41", "dna58"),
    ("dna41", "dna61"),
    ("dna41", "dna64"),
    ("dna41", "dna67"),
    ("dna41", "dna68"),
    ("dna41", "dna69"),
    ("dna42", "dna39"),
    ("dna42", "dna48"),
    ("dna42", "dna49"),
    ("dna42", "dna54"),
    ("dna42", "dna55"),
    ("dna42", "dna59"),
    ("dna42", "dna61"),
    ("dna42", "dna67"),
    ("dna42", "dna68"),
    ("dna43", "dna29"),
    ("dna43", "dna39"),
    ("dna43", "dna50"),
    ("dna43", "dna55"),
    ("dna43", "dna58"),
    ("dna43", "dna61"),
    ("dna43", "dna67"),
    ("dna43", "dna68"),
    ("dna44", "dna29"),
    ("dna44", "dna52"),
    ("dna44", "dna48"),
    ("dna44", "dna49"),
    ("dna44", "dna50"),
    ("dna44", "dna51"),
    ("dna44", "dna55"),
    ("dna44", "dna58"),
    ("dna44", "dna59"),
    ("dna44", "dna61"),
    ("dna44", "dna67"),
    ("dna44", "dna68"),
    ("dna44", "dna69"),
    ("dna45", "dna29"),
    ("dna45", "dna52"),
    ("dna45", "dna48"),
    ("dna45", "dna49"),
    ("dna45", "dna50"),
    ("dna45", "dna51"),
    ("dna45", "dna55"),
    ("dna45", "dna58"),
    ("dna45", "dna59"),
    ("dna45", "dna61"),
    ("dna45", "dna67"),
    ("dna45", "dna68"),
    ("dna45", "dna69"),
    ("dna52", "dna61"),
    ("dna46", "dna29"),
    ("dna46", "dna48"),
    ("dna46", "dna49"),
    ("dna46", "dna50"),
    ("dna46", "dna54"),
    ("dna46", "dna55"),
    ("dna46", "dna58"),
    ("dna46", "dna59"),
    ("dna46", "dna61"),
    ("dna46", "dna67"),
    ("dna46", "dna68"),
    ("dna46", "dna69"),
    ("dna47", "dna29"),
    ("dna47", "dna54"),
    ("dna47", "dna55"),
    ("dna47", "dna58"),
    ("dna47", "dna59"),
    ("dna47", "dna67"),
    ("dna47", "dna68"),
    ("dna47", "dna69"),
    ("dna48", "dna58"),
    ("dna48", "dna59"),
    ("dna48", "dna61"),
    ("dna48", "dna67"),
    ("dna48", "dna68"),
    ("dna48", "dna69"),
    ("dna49", "dna58"),
    ("dna49", "dna59"),
    ("dna49", "dna69"),
    ("dna50", "dna58"),
    ("dna50", "dna59"),
    ("dna50", "dna67"),
    ("dna51", "dna48"),
    ("dna51", "dna58"),
    ("dna51", "dna59"),
    ("dna51", "dna61"),
    ("dna51", "dna69"),
    ("dna61", "dna67"),
    ("dna61", "dna68"),
]

# temporarily, connect opposite dnas same as their originals.
# TODO: they should not be connected same.
temp_edges: List[E] = [
    ("dna38-1", "dna62"),
    ("dna38-1", "dna68"),
    ("dna1", "dna41-1"),
    ("dna4", "dna38-1"),
    ("dna7", "dna41-1"),
    ("dna36", "dna38-1"),
    ("dna36", "dna41-1"),
    ("dna40", "dna41-1"),
    ("dna41", "dna38-1"),
    ("dna43", "dna38-1"),
]
white_edges = list(set(white_edges) | set(temp_edges))
