"""
Utility file.
"""
from dataclasses import dataclass
from typing import Any

__author__ = "Sergey Vartanov"
__email__ = "me@enzet.ru"


@dataclass
class MinMax:
    """Minimum and maximum."""

    min_: Any = None
    max_: Any = None

    def update(self, value: Any) -> None:
        """Update minimum and maximum with new value."""
        self.min_ = value if not self.min_ or value < self.min_ else self.min_
        self.max_ = value if not self.max_ or value > self.max_ else self.max_

    def delta(self) -> Any:
        """Difference between maximum and minimum."""
        return self.max_ - self.min_

    def center(self) -> Any:
        """Get middle point between minimum and maximum."""
        return (self.min_ + self.max_) / 2.0

    def is_empty(self) -> bool:
        """Check if interval is empty."""
        return self.min_ == self.max_

    def __repr__(self) -> str:
        return f"{self.min_}:{self.max_}"