def dict_of_squares(
        n: int
    ) -> dict[int, int]:
    """
    Create a dictionary where the keys are numbers from 1 to n and the values
    are their squares.

    Parameters
    ----------
    n : int
        The upper limit of numbers.

    Returns
    -------
    dict[int, int]
        A dictionary containing numbers and their squares.

    Examples
    --------
    >>> dict_of_squares(5)
    {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
    """
    raise NotImplementedError("Complete this function.")
