from goldberg.operators import goldberg_parameters_to_operators, verify_recipes

dodecahedral_goldberg_recipes: dict[tuple[int, int], str] = {
    # Class I
    (1, 0): "D",
    (2, 0): "K300cD",
    (3, 0): "tkD",
    (4, 0): "du4I",
    (5, 0): "du5I",
    # Class II
    (1, 1): "tI",
    (2, 2): "K300tdcD",
    (3, 3): "tktI",
    # Class III
    (2, 1): "K300wD",
    (3, 1): "*",
    (3, 2): "*",
    (4, 1): "K300tdwD",
}

# Assert all the above recipes are correct
verify_recipes(
    {
        param: " = ".join(
            [op + "D" for op in goldberg_parameters_to_operators[param].split(" = ")]
        )
        for param in dodecahedral_goldberg_recipes.keys()
    },
    dodecahedral_goldberg_recipes,
    "Dodecahedral recipe does not match!",
)
