Blosc/python-blosc2

Array API compliance

Open

#466 创建于 2025年9月10日

在 GitHub 查看
 (1 评论) (0 反应) (0 负责人)Python (47 fork)auto 404
enhancementhelp wanted

仓库指标

Star
 (207 star)
PR 合并指标
 (PR 指标待抓取)

描述

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 #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 addition, it would be nice to revamp the documentation to mirror the array API layout and classification of functions/classes/methods etc.

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

贡献者指南