Skip to content

test_repeat is skipped across all -compat wrapped libraries #413

Closed

Description

@ev-br

Discovered in data-apis/array-api-strict#181 (comment) :

$ git grep "array_api_tests/test_manipulation_functions.py::test_repeat"
cupy-xfails.txt:array_api_tests/test_manipulation_functions.py::test_repeat
dask-xfails.txt:array_api_tests/test_manipulation_functions.py::test_repeat
numpy-1-22-xfails.txt:array_api_tests/test_manipulation_functions.py::test_repeat
numpy-1-26-xfails.txt:array_api_tests/test_manipulation_functions.py::test_repeat
numpy-dev-xfails.txt:array_api_tests/test_manipulation_functions.py::test_repeat
numpy-xfails.txt:array_api_tests/test_manipulation_functions.py::test_repeat
torch-xfails.txt:array_api_tests/test_manipulation_functions.py::test_repeat

It is skipped under numpy because # uint64 repeats not supported, under torch because torch.repeat_interleave rejects short integers, under cupy because # cupy.ndaray cannot be specified as repeats argument..

So it is effectively untested.

Activity

  1. ev-br commented on Feb 8, 2026

    @ev-br
    MemberAuthor

    Ran a small check to see if there are other tests of this kind:

    $ cat parse_skip_files.py 
    import sys
    from collections import defaultdict
    import pprint
    
    if __name__ == "__main__":
        fnames = sys.argv[1:]
        print(fnames)
    
        registry = defaultdict(list)
    
        for fname in fnames:
            with open(fname) as f:
                for line in f.readlines():
                    if not line.strip() or line.startswith("#"):
                        continue
    
                    registry[line.strip()].append(fname)
    
        pprint.pprint({k:v for k,v in registry.items() if len(v) > 5})
    
    $ $ python parse_skip_files.py  `ls *txt`
    ['cupy-xfails.txt', 'dask-skips.txt', 'dask-xfails.txt', 'numpy-1-22-xfails.txt', 'numpy-1-26-xfails.txt', 'numpy-dev-xfails.txt', 'numpy-skips.txt', 'numpy-xfails.txt', 'torch-skips.txt', 'torch-xfails.txt']
    {'array_api_tests/test_data_type_functions.py::test_finfo[complex64]': ['cupy-xfails.txt',
                                                                            'dask-xfails.txt',
                                                                            'numpy-1-22-xfails.txt',
                                                                            'numpy-1-26-xfails.txt',
                                                                            'numpy-dev-xfails.txt',
                                                                            'numpy-xfails.txt'],
     'array_api_tests/test_data_type_functions.py::test_finfo[float32]': ['cupy-xfails.txt',
                                                                          'dask-xfails.txt',
                                                                          'numpy-1-22-xfails.txt',
                                                                          'numpy-1-26-xfails.txt',
                                                                          'numpy-dev-xfails.txt',
                                                                          'numpy-xfails.txt'],
     'array_api_tests/test_manipulation_functions.py::test_repeat': ['cupy-xfails.txt',
                                                                     'dask-xfails.txt',
                                                                     'numpy-1-22-xfails.txt',
                                                                     'numpy-1-26-xfails.txt',
                                                                     'numpy-dev-xfails.txt',
                                                                     'numpy-xfails.txt',
                                                                     'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_binary[__floordiv__(isfinite(x1_i) and x1_i < 0 and x2_i is +infinity) -> -0]': ['dask-xfails.txt',
                                                                                                                                   'numpy-1-22-xfails.txt',
                                                                                                                                   'numpy-1-22-xfails.txt',
                                                                                                                                   'numpy-1-26-xfails.txt',
                                                                                                                                   'numpy-1-26-xfails.txt',
                                                                                                                                   'numpy-dev-xfails.txt',
                                                                                                                                   'numpy-xfails.txt',
                                                                                                                                   'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_binary[__floordiv__(isfinite(x1_i) and x1_i > 0 and x2_i is -infinity) -> -0]': ['dask-xfails.txt',
                                                                                                                                   'numpy-1-22-xfails.txt',
                                                                                                                                   'numpy-1-22-xfails.txt',
                                                                                                                                   'numpy-1-26-xfails.txt',
                                                                                                                                   'numpy-1-26-xfails.txt',
                                                                                                                                   'numpy-dev-xfails.txt',
                                                                                                                                   'numpy-xfails.txt',
                                                                                                                                   'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_binary[__floordiv__(x1_i is +infinity and isfinite(x2_i) and x2_i < 0) -> -infinity]': ['dask-xfails.txt',
                                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                                          'numpy-dev-xfails.txt',
                                                                                                                                          'numpy-xfails.txt',
                                                                                                                                          'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_binary[__floordiv__(x1_i is +infinity and isfinite(x2_i) and x2_i > 0) -> +infinity]': ['dask-xfails.txt',
                                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                                          'numpy-dev-xfails.txt',
                                                                                                                                          'numpy-xfails.txt',
                                                                                                                                          'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_binary[__floordiv__(x1_i is -infinity and isfinite(x2_i) and x2_i < 0) -> +infinity]': ['dask-xfails.txt',
                                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                                          'numpy-dev-xfails.txt',
                                                                                                                                          'numpy-xfails.txt',
                                                                                                                                          'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_binary[__floordiv__(x1_i is -infinity and isfinite(x2_i) and x2_i > 0) -> -infinity]': ['dask-xfails.txt',
                                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                                          'numpy-dev-xfails.txt',
                                                                                                                                          'numpy-xfails.txt',
                                                                                                                                          'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_binary[floor_divide(isfinite(x1_i) and x1_i < 0 and x2_i is +infinity) -> -0]': ['dask-xfails.txt',
                                                                                                                                   'numpy-1-22-xfails.txt',
                                                                                                                                   'numpy-1-22-xfails.txt',
                                                                                                                                   'numpy-1-26-xfails.txt',
                                                                                                                                   'numpy-1-26-xfails.txt',
                                                                                                                                   'numpy-dev-xfails.txt',
                                                                                                                                   'numpy-xfails.txt',
                                                                                                                                   'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_binary[floor_divide(isfinite(x1_i) and x1_i > 0 and x2_i is -infinity) -> -0]': ['dask-xfails.txt',
                                                                                                                                   'numpy-1-22-xfails.txt',
                                                                                                                                   'numpy-1-22-xfails.txt',
                                                                                                                                   'numpy-1-26-xfails.txt',
                                                                                                                                   'numpy-1-26-xfails.txt',
                                                                                                                                   'numpy-dev-xfails.txt',
                                                                                                                                   'numpy-xfails.txt',
                                                                                                                                   'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_binary[floor_divide(x1_i is +infinity and isfinite(x2_i) and x2_i < 0) -> -infinity]': ['dask-xfails.txt',
                                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                                          'numpy-dev-xfails.txt',
                                                                                                                                          'numpy-xfails.txt',
                                                                                                                                          'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_binary[floor_divide(x1_i is +infinity and isfinite(x2_i) and x2_i > 0) -> +infinity]': ['dask-xfails.txt',
                                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                                          'numpy-dev-xfails.txt',
                                                                                                                                          'numpy-xfails.txt',
                                                                                                                                          'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_binary[floor_divide(x1_i is -infinity and isfinite(x2_i) and x2_i < 0) -> +infinity]': ['dask-xfails.txt',
                                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                                          'numpy-dev-xfails.txt',
                                                                                                                                          'numpy-xfails.txt',
                                                                                                                                          'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_binary[floor_divide(x1_i is -infinity and isfinite(x2_i) and x2_i > 0) -> -infinity]': ['dask-xfails.txt',
                                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                                          'numpy-dev-xfails.txt',
                                                                                                                                          'numpy-xfails.txt',
                                                                                                                                          'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_iop[__ifloordiv__(isfinite(x1_i) and x1_i < 0 and x2_i is +infinity) -> -0]': ['dask-xfails.txt',
                                                                                                                                 'numpy-1-22-xfails.txt',
                                                                                                                                 'numpy-1-22-xfails.txt',
                                                                                                                                 'numpy-1-26-xfails.txt',
                                                                                                                                 'numpy-1-26-xfails.txt',
                                                                                                                                 'numpy-dev-xfails.txt',
                                                                                                                                 'numpy-xfails.txt',
                                                                                                                                 'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_iop[__ifloordiv__(isfinite(x1_i) and x1_i > 0 and x2_i is -infinity) -> -0]': ['dask-xfails.txt',
                                                                                                                                 'numpy-1-22-xfails.txt',
                                                                                                                                 'numpy-1-22-xfails.txt',
                                                                                                                                 'numpy-1-26-xfails.txt',
                                                                                                                                 'numpy-1-26-xfails.txt',
                                                                                                                                 'numpy-dev-xfails.txt',
                                                                                                                                 'numpy-xfails.txt',
                                                                                                                                 'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_iop[__ifloordiv__(x1_i is +infinity and isfinite(x2_i) and x2_i < 0) -> -infinity]': ['dask-xfails.txt',
                                                                                                                                        'numpy-1-22-xfails.txt',
                                                                                                                                        'numpy-1-22-xfails.txt',
                                                                                                                                        'numpy-1-26-xfails.txt',
                                                                                                                                        'numpy-1-26-xfails.txt',
                                                                                                                                        'numpy-dev-xfails.txt',
                                                                                                                                        'numpy-xfails.txt',
                                                                                                                                        'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_iop[__ifloordiv__(x1_i is +infinity and isfinite(x2_i) and x2_i > 0) -> +infinity]': ['dask-xfails.txt',
                                                                                                                                        'numpy-1-22-xfails.txt',
                                                                                                                                        'numpy-1-22-xfails.txt',
                                                                                                                                        'numpy-1-26-xfails.txt',
                                                                                                                                        'numpy-1-26-xfails.txt',
                                                                                                                                        'numpy-dev-xfails.txt',
                                                                                                                                        'numpy-xfails.txt',
                                                                                                                                        'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_iop[__ifloordiv__(x1_i is -infinity and isfinite(x2_i) and x2_i < 0) -> +infinity]': ['dask-xfails.txt',
                                                                                                                                        'numpy-1-22-xfails.txt',
                                                                                                                                        'numpy-1-22-xfails.txt',
                                                                                                                                        'numpy-1-26-xfails.txt',
                                                                                                                                        'numpy-1-26-xfails.txt',
                                                                                                                                        'numpy-dev-xfails.txt',
                                                                                                                                        'numpy-xfails.txt',
                                                                                                                                        'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_iop[__ifloordiv__(x1_i is -infinity and isfinite(x2_i) and x2_i > 0) -> -infinity]': ['dask-xfails.txt',
                                                                                                                                        'numpy-1-22-xfails.txt',
                                                                                                                                        'numpy-1-22-xfails.txt',
                                                                                                                                        'numpy-1-26-xfails.txt',
                                                                                                                                        'numpy-1-26-xfails.txt',
                                                                                                                                        'numpy-dev-xfails.txt',
                                                                                                                                        'numpy-xfails.txt',
                                                                                                                                        'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_unary[expm1((real(x_i) is +0 or real(x_i) == -0) and imag(x_i) is +0) -> 0 + 0j]': ['dask-xfails.txt',
                                                                                                                                      'numpy-1-22-xfails.txt',
                                                                                                                                      'numpy-1-26-xfails.txt',
                                                                                                                                      'numpy-dev-xfails.txt',
                                                                                                                                      'numpy-xfails.txt',
                                                                                                                                      'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_unary[expm1(real(x_i) is +infinity and imag(x_i) is +0) -> +infinity + 0j]': ['dask-xfails.txt',
                                                                                                                                'numpy-1-22-xfails.txt',
                                                                                                                                'numpy-1-26-xfails.txt',
                                                                                                                                'numpy-dev-xfails.txt',
                                                                                                                                'numpy-xfails.txt',
                                                                                                                                'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_unary[expm1(real(x_i) is +infinity and imag(x_i) is +infinity) -> infinity + NaN j]': ['dask-xfails.txt',
                                                                                                                                         'numpy-1-22-xfails.txt',
                                                                                                                                         'numpy-1-26-xfails.txt',
                                                                                                                                         'numpy-dev-xfails.txt',
                                                                                                                                         'numpy-xfails.txt',
                                                                                                                                         'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_unary[expm1(real(x_i) is +infinity and imag(x_i) is NaN) -> infinity + NaN j]': ['dask-xfails.txt',
                                                                                                                                   'numpy-1-22-xfails.txt',
                                                                                                                                   'numpy-1-26-xfails.txt',
                                                                                                                                   'numpy-dev-xfails.txt',
                                                                                                                                   'numpy-xfails.txt',
                                                                                                                                   'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_unary[expm1(real(x_i) is -infinity and imag(x_i) is +infinity) -> -1 + 0j]': ['dask-xfails.txt',
                                                                                                                                'numpy-1-22-xfails.txt',
                                                                                                                                'numpy-1-26-xfails.txt',
                                                                                                                                'numpy-dev-xfails.txt',
                                                                                                                                'numpy-xfails.txt',
                                                                                                                                'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_unary[expm1(real(x_i) is -infinity and imag(x_i) is NaN) -> -1 + 0j]': ['dask-xfails.txt',
                                                                                                                          'numpy-1-22-xfails.txt',
                                                                                                                          'numpy-1-26-xfails.txt',
                                                                                                                          'numpy-dev-xfails.txt',
                                                                                                                          'numpy-xfails.txt',
                                                                                                                          'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_unary[expm1(real(x_i) is NaN and imag(x_i) is +0) -> NaN + 0j]': ['dask-xfails.txt',
                                                                                                                    'numpy-1-22-xfails.txt',
                                                                                                                    'numpy-1-26-xfails.txt',
                                                                                                                    'numpy-dev-xfails.txt',
                                                                                                                    'numpy-xfails.txt',
                                                                                                                    'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_unary[sqrt(real(x_i) is +infinity and isfinite(imag(x_i)) and imag(x_i) > 0) -> +0 + infinity j]': ['cupy-xfails.txt',
                                                                                                                                                      'dask-xfails.txt',
                                                                                                                                                      'numpy-1-22-xfails.txt',
                                                                                                                                                      'numpy-1-26-xfails.txt',
                                                                                                                                                      'numpy-dev-xfails.txt',
                                                                                                                                                      'numpy-xfails.txt',
                                                                                                                                                      'torch-xfails.txt'],
     'array_api_tests/test_special_cases.py::test_unary[tanh(real(x_i) is +infinity and isfinite(imag(x_i)) and imag(x_i) > 0) -> 1 + 0j]': ['dask-xfails.txt',
                                                                                                                                             'numpy-1-22-xfails.txt',
                                                                                                                                             'numpy-1-26-xfails.txt',
                                                                                                                                             'numpy-dev-xfails.txt',
                                                                                                                                             'numpy-xfails.txt',
                                                                                                                                             'torch-xfails.txt']}
    

    So after #418, and outside of test_special_cases, the only two offenders are

    Not sure if it's worth inventing a whole new framework for xfailing parts of a test. OTOH, this is relatively common need to be able to express "this fails for uint64 and is fine otherwise".

  2. ev-br commented on Feb 17, 2026

    @ev-br
    MemberAuthor

    To close the loop: gh-424 restricted drawing repeats to signed integers only, with a #TODO comment and a matching note in #301. I thought about adding a second test to draw all dtypes, so that we have both a "correct" test (xfailed all around) and some actual testing or repeats, but in the end it feels like too much hassle for too little gain.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions