def default_charge_set(i: int) -> set:
    """Set of defect charge states.

    -1 (1) is included for positive (negative) odd number.
    E.g., default_charge_set(3) = [-1, 0, 1, 2, 3]
          default_charge_set(-3) = [-3, -2, -1, 0, 1]
          default_charge_set(2) = [0, 1, 2]
          default_charge_set(-4) = [-4, -3, -2, -1, 0]

    Args:
        i (int): an integer

    Returns:
        Set of candidate charges
    """
    if i >= 0:
        charge_set = {i for i in range(i + 1)}
        if i % 2 == 1:
            charge_set.add(-1)
    else:
        charge_set = {i for i in range(i, 1)}
        if i % 2 == 1:
            charge_set.add(1)

    return set(charge_set)