Skip to content

Array API compliance #466

@lshaw8317

Description

@lshaw8317

The following is a summary of the failing tests in the array-api-tests suite. When you have managed to make the test pass, mark the box next to the file.

There are three main groups of tests:
1 - lazy expression and chunking related things (unique_counts, cumulative_sum etc.)
2 - indexing related things (chiefly implement fancy indexing for .slice method)
3 - improving numexpr (add op_codes such as ge_bcd etc.)

  • test_utility_functions.py : add blosc2.diff function, squeeze needs to be modified to return a view (at C-level, follow expand_dims)
  • test_statistical_functions.py : add cumulative_sum and cumulative_prod
  • test_special_cases.py: everything
  • test_sorting_functions.py: add argsort
  • test_signatures.py : everything
  • test_set_functions.py: add unique_counts, unique_inverse, unique_all, unique_values
  • test_searching_functions.py: add argmax, argmin, where attribute to NDArray, nonzero, count_nonzero
  • test_operators_and_elementwise_functions.py: everything
  • test_manipulation_functions.py: SERIOUS (Fatal Python error: Floating-point exception)
  • test_linalg.py: haven't implemented most things (see Array-api Linalg functions #476), which is fine, but some tests also fail because numexpr needs a ge_bcd opcode.
  • test_inspection_functions: passes all
  • test_indexing_functions.py: need to improvetake and take_along_axis (latter fails tests)
  • test_has_names : fails 23 tests, need to add functions listed in comment below
  • test_fft.py: skips all tests
  • test_data_type_functions.py: a few different things (11 tests), add broadcast_arrays
  • test_creation_functions.py: add reshape for N-D arrays.
  • test_constants.py: passes all
  • test_array_object.py: one test takes too long for some reason sometimes

In order to run the tests, follow these steps:

  1. Git clone array-api test suite https://github.com/data-apis/array-api-tests
  2. Navigate to array-api-tests and $ pip install -r requirements.txt into environment.
  3. Return to home directory, git clone blosc2, navigate to resulting directory and pip install -e . in your environment.
  4. Run tests from python-blosc2 directory via
    ARRAY_API_TESTS_MODULE=blosc2 pytest ../array-api-tests/array_api_tests/test_has_names.py

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions