from .base import GraphData, SymmetricSpectrum

# TODO: other non-spectral data
data = {
    3: GraphData(
        vertex_count=6,
        edge_count=9,
        distance_classes=[1, 3, 2],
        spectrum=SymmetricSpectrum([(0, 4), (3, 1)]),
    ),
    4: GraphData(
        vertex_count=24,
        edge_count=72,
        distance_classes=[1, 6, 11, 6],
        spectrum=SymmetricSpectrum([(0, 4), (2, 9), (6, 1)]),
    ),
    5: GraphData(
        vertex_count=120,
        edge_count=600,
        distance_classes=[1, 10, 35, 50, 24],
        spectrum=SymmetricSpectrum(
            [
                (0, 36),
                (2, 25),
                (5, 16),
                (10, 1),
            ]
        ),
    ),
    6: GraphData(
        vertex_count=720,
        edge_count=5400,
        distance_classes=[1, 15, 85, 225, 274, 120],
        spectrum=SymmetricSpectrum(
            [
                (0, 256),
                (3, 125),
                (5, 81),
                (9, 25),
                (15, 1),
            ]
        ),
    ),
    7: GraphData(
        vertex_count=5040,
        edge_count=52920,
        distance_classes=[1, 21, 175, 735, 1624, 1764, 720],
        spectrum=SymmetricSpectrum(
            [
                (0, 400),
                (1, 441),
                (3, 1225),
                (6, 196),
                (7, 225),
                (9, 196),
                (14, 36),
                (21, 1),
            ]
        ),
    ),
    8: GraphData(
        vertex_count=40320,
        spectrum=SymmetricSpectrum(
            [
                (0, 9864),
                (2, 3136),
                (4, 6125),
                (7, 4096),
                (8, 196),
                (10, 784),
                (12, 441),
                (14, 400),
                (20, 49),
                (28, 1),
            ]
        ),
    ),
}

# TODO (maybe): verify these quantities with outputs from Haskell
