__________________________________________________________________________________________ test_has_names[info-dtypes] __________________________________________________________________________________________
category = 'info', name = 'dtypes'
@pytest.mark.parametrize("category, name", has_name_params)
def test_has_names(category, name):
if category in EXTENSIONS:
ext_mod = getattr(xp, category)
assert hasattr(ext_mod, name), f"{xp.__name__} is missing the {category} extension function {name}()"
elif category.startswith('array_'):
# TODO: This would fail if ones() is missing.
arr = xp.ones((1, 1))
if category == 'array_attribute':
assert hasattr(arr, name), f"The {xp.__name__} array object is missing the attribute {name}"
else:
assert hasattr(arr, name), f"The {xp.__name__} array object is missing the method {name}()"
else:
> assert hasattr(xp, name), f"{xp.__name__} is missing the {category} function {name}()"
E AssertionError: dpctl.tensor is missing the info function dtypes()
E assert False
E + where False = hasattr(xp, 'dtypes')
array_api_tests/test_has_names.py:37: AssertionError
============================================================================================ short test summary info ============================================================================================
FAILED array_api_tests/test_has_names.py::test_has_names[info-capabilities] - AssertionError: dpctl.tensor is missing the info function capabilities()
FAILED array_api_tests/test_has_names.py::test_has_names[info-default_device] - AssertionError: dpctl.tensor is missing the info function default_device()
FAILED array_api_tests/test_has_names.py::test_has_names[info-default_dtypes] - AssertionError: dpctl.tensor is missing the info function default_dtypes()
FAILED array_api_tests/test_has_names.py::test_has_names[info-devices] - AssertionError: dpctl.tensor is missing the info function devices()
FAILED array_api_tests/test_has_names.py::test_has_names[info-dtypes] - AssertionError: dpctl.tensor is missing the info function dtypes()
========================================================================================= 5 failed, 192 passed in 0.42s =========================================================================================
The specification states that these must be attributes of Info class, not of the main namespace:
In [1]: import dpctl, dpctl.tensor as dpt
In [2]: info = dpt.__array_namespace_info__()
In [3]: hasattr(info, "capabilities")
Out[3]: True
In [4]: hasattr(info, "default_device")
Out[4]: True
In [5]: hasattr(info, "default_dtypes")
Out[5]: True
In [6]: hasattr(info, "devides")
Out[6]: False
In [7]: hasattr(info, "devices")
Out[7]: True
In [8]: hasattr(info,"dtypes")
Out[8]: True
The specification states that these must be attributes of
Info
class, not of the main namespace: