from typing import Tuple
import math


def _radius_to_size(radius: float) -> Tuple[float, float]:
    """Return the width and height of a hexagon based on its radius.

    This should be really simple, but I regret to admit that I have
    messed this simple converison up way more times than I will
    immortalise in this docstring.

    Args:
        radius (float): The radius of the hexagon

    Returns:
        Tuple[float, float]: The width and height of the hexagon

    Raises:
        ValueError: Raised if the radius is negative or zero

    """
    if radius <= 0.0:
        raise ValueError('radius must be greater than zero')
    return math.sqrt(3) * radius, 2 * radius