# Path: ulid/providers/time/base.py
# class Provider(metaclass=abc.ABCMeta):
#     def milliseconds(self) -> hints.Int:
#     def microseconds(self) -> hints.Int:
# 
# Path: ulid/providers/time/default.py
# class Provider(base.Provider):
#     def milliseconds(self) -> hints.Int:
#     def microseconds(self) -> hints.Int:


import time
import pytest
from ulid.providers.time import base, default
"""
    test_providers_time_default
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Tests for the :mod:`~ulid.providers.time.default` module.
"""




@pytest.fixture(scope='function')
def provider():
    """
    Fixture that yields a time provider instance.
    """
    return default.Provider()


def test_provider_derives_from_base():
    """
    Assert that :class:`~ulid.providers.time.default.Provider` derives from :class:`~ulid.providers.time.base.Provider`.
    """

# Path: ulid/providers/time/base.py
# class Provider(metaclass=abc.ABCMeta):
#     def milliseconds(self) -> hints.Int:
#     def microseconds(self) -> hints.Int:
# 
# Path: ulid/providers/time/default.py
# class Provider(base.Provider):
#     def milliseconds(self) -> hints.Int:
#     def microseconds(self) -> hints.Int:


# Path: tests/test_providers_time_default.py
import time
import pytest
from ulid.providers.time import base, default

"""
    test_providers_time_default
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Tests for the :mod:`~ulid.providers.time.default` module.
"""




@pytest.fixture(scope='function')
def provider():
    """
    Fixture that yields a time provider instance.
    """
    return default.Provider()


def test_provider_derives_from_base():
    """
    Assert that :class:`~ulid.providers.time.default.Provider` derives from :class:`~ulid.providers.time.base.Provider`.
    """

    assert issubclass(default.Provider, base.Provider)