summaryrefslogtreecommitdiff
path: root/numpy/lib/tests/test_recfunctions.py
Commit message (Collapse)AuthorAgeFilesLines
* TST,MAINT: Replace most `setup` with `setup_method` (also teardown)Sebastian Berg2022-10-271-7/+7
| | | | | | | | In some cases, the replacement is clearly not what is intended, in those (where setup was called explicitly), I mostly renamed `setup` to `_setup`. The `test_ccompile_opt` is a bit confusing, so left it right now (this will probably fail)
* ENH: unstructured_to_structured converts dtype argument (#22442)LeonaTaric2022-10-191-0/+9
| | | | | | | | | | | | Before: >>> field = unstructured_to_structured(np.zeros((20, 2)), dtype=[('x', float), ('y', float)]) # failed >>> field = unstructured_to_structured(np.zeros((20, 2)), dtype=np.dtype([('x', float), ('y', float)])) # success After: >>> field = unstructured_to_structured(np.zeros((20, 2)), dtype=[('x', float), ('y', float)]) # success >>> field = unstructured_to_structured(np.zeros((20, 2)), dtype=np.dtype([('x', float), ('y', float)])) # success Closes gh-22428
* API: Fix structured dtype cast-safety, promotion, and comparisonSebastian Berg2022-05-091-1/+0
| | | | | | | | | | | | | | | | | This PR replaces the old gh-15509 implementing proper type promotion for structured voids. It further fixes the casting safety to consider casts with equivalent field number and matching order as "safe" and if the names, titles, and offsets match as "equiv". The change perculates into the void comparison, and since it fixes the order, it removes the current FutureWarning there as well. This addresses https://github.com/liberfa/pyerfa/issues/77 and replaces gh-15509 (the implementation has changed too much). Fixes gh-15494 (and probably a few more) Co-authored-by: Allan Haldane <allan.haldane@gmail.com>
* MAINT: Remove implicit inheritance from object class (#15236)Jon Dufresne2020-01-051-8/+8
| | | | | | | Inheriting from object was necessary for Python 2 compatibility to use new-style classes. In Python 3, this is unnecessary as there are no old-style classes. Dropping the object is more idiomatic Python.
* MAINT: Remove unnecessary 'from __future__ import ...' statementsJon Dufresne2020-01-031-2/+0
| | | | | As numpy is Python 3 only, these import statements are now unnecessary and don't alter runtime behavior.
* MAINT: lib: Clean up in tests.Warren Weckesser2020-01-011-1/+0
| | | | * Remove a few unused imports in several files.
* Merge pull request #14511 from eric-wieser/fix-flatten_dtypeMatti Picus2019-09-161-4/+4
|\ | | | | BUG: Fix flatten_dtype so that nested 0-field structs are flattened correctly
| * BUG: Fix flatten_dtype so that nested 0-field structs are flattened correctlyEric Wieser2019-09-141-4/+4
| | | | | | | | This affects the behavior of merge_arrays.
* | API: Do not return None from recfunctions.drop_fieldsEric Wieser2019-09-141-1/+3
|/ | | | This return value was not documented and did not make any sense. There's no reason to have a special case here.
* Merge pull request #14310 from ahaldane/fix_struct_to_unstruct_nestingCharles Harris2019-08-231-1/+36
|\ | | | | MAINT: Fix behavior of structured_to_unstructured on non-trivial dtypes
| * MAINT: fix behavior of structured_to_unstructured on non-trivial dtypesAllan Haldane2019-08-231-1/+36
| | | | | | | | Fixes #13333
* | Merge remote-tracking branch 'upstream/master' into fix-if-fieldsEric Wieser2019-08-191-4/+17
|\ \ | |/
| * fixed unstructured_to_structured in recfunctionsColin Snyder2019-07-201-4/+4
| |
| * exported correct functions and made private the restColin Snyder2019-07-141-5/+7
| |
| * Merge pull request #13332 from eric-wieser/fix-subarray-unstructuredCharles Harris2019-05-111-0/+9
| |\ | | | | | | BUG: Always return views from structured_to_unstructured when possible
| | * BUG: Always return views from structured_to_unstructured when possibleEric Wieser2019-05-011-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | Also applies to unstructured_to_structured While producing correct resutls, the test added in this commit would previously make an unecessary copy, causing the assertion to fail. The cause was `astype` was being asked to convert from a subarray of shape `(x, y)` to one of `(x*y,)`, which it cannot do without making a copy. This changes the approach used to skip the step of flattening subarrays to 1d
| * | Merge remote-tracking branch 'upstream/master' into fix-1-field-unstructuredEric Wieser2019-04-231-3/+3
| |\ \ | | |/ | |/|
| | * TST: Fix endianness in unstuctured_to_structured testAllan Haldane2019-01-051-3/+3
| | |
| * | BUG: Fix structured_to_unstructured on single-field typesEric Wieser2019-04-151-0/+2
| |/ | | | | | | | | | | Previously a single-field type would decay, which is undesirable. The included test previously did not pass
* | BUG: recfunctions: Don't return None in place of empty sequencesEric Wieser2019-08-191-0/+21
|/ | | | | | Replacing empty tuples with `None` is a bad idea, and just results in an API that is hard to consume - especially since the behavior was never documented. This affects `get_names`, `get_names_flat`, and `get_fieldstructure`.
* MAINT: Fixups to new functions in np.lib.recfunctionsAllan Haldane2018-11-261-0/+13
|
* ENH: Fixups to multi-field assignment helpersAllan Haldane2018-11-221-0/+8
|
* ENH: add multi-field assignment helpers in np.lib.recfunctionsAllan Haldane2018-10-311-1/+52
| | | | | | Adds helper functions for the copy->view transition for multi-field indexes. Adds `structured_to_unstructured`, `apply_along_fields`, `assign_fields_by_name`, `require_fields`.
* TST: Replace calls to unittest.TestCase.fail (#11933)Roman Yurchak2018-09-121-6/+2
| | | | | | | | After the pytest migration, test classes no longer inherit from unittest.TestCase and and the fail method does not exist anymore. In all these cases, we can use assert_raises and assert_raises_regex instead
* MAINT: push back multifield copy->view changes to 1.16Allan Haldane2018-06-111-2/+14
|
* MAINT: Remove all uses of run_module_suite.Charles Harris2018-04-061-6/+1
| | | | | That function is nose specific and has not worked since `__init__` files were added to the tests directories.
* TST: Switch to using pytest markersCharles Harris2018-04-041-2/+4
| | | | | | | | | | | Use standard pytest markers everywhere in the numpy tests. At this point there should be no nose dependency. However, nose is required to test the legacy decorators if so desired. At this point, numpy test cannot be run in the way with runtests, rather installed numpy can be tested with `pytest --pyargs numpy` as long as that is not run from the repo. Run it from the tools directory or some such.
* TST: Remove unittest dependencies in numpy/lib/tests.Charles Harris2017-07-241-21/+21
|
* TST: join_by now works for dtypes with padding tooEric Wieser2017-07-011-0/+16
| | | | Once again, thanks to not using .descr
* TST: Add failing test for mismatch of key typeEric Wieser2017-07-011-1/+16
|
* BUG: stack_arrays fails for subdtypesEric Wieser2017-07-011-0/+29
| | | | Again, fixed by not using descr
* BUG: recfunctions.join_by fails when key is a subdtypeEric Wieser2017-07-011-0/+14
| | | | | | | | | It seems that working with .descr is a generally terrible idea. Instead we introduce `get_fieldspec`, which returns a list of 2-tuples, encapsulating subdtypes. This also means that np.core.test_rational.rational survives a roundtrip - its .descr is 'V8', which ddoesn't survive
* BUG: recfunctions.join_by fails for colliding values with different dtypesEric Wieser2017-07-011-0/+13
| | | | Fixes #9338
* TST: Verify that join_by doesn't choke on subdtypesEric Wieser2017-06-271-0/+10
|
* BUG: Preserve field order in join_by, avoids FutureWarningAllan Haldane2017-05-091-1/+14
| | | | Fixes #8940
* TST: Remove tests of view safety checks (see next commit)Allan Haldane2015-10-261-10/+0
| | | | | Remove unit tests for the view safety chekcs, which are to be reverted in the next commit.
* BUG: Fix imports in test_io.py and test_recfunctions.py.Charles Harris2015-07-041-3/+2
| | | | | | | | | Those test functions were incorrectly importing test functions from numpy/ma/testutils that were actually not defined there, but rather in numpy/testing. That did not cause an error when testutils was '*' importing all the test functions, but it was deceptive as some of the functions might appear to support masked arrays when they do not.
* ENH: structured datatype safety checksAllan Haldane2015-06-051-0/+30
| | | | | | | | | Previously views of structured arrays containing objects were completely disabled. This commit adds more lenient check for whether an object-array view is allowed, and adds similar checks to getfield/setfield Fixes #2346. Fixes #3256. Fixes #2599. Fixes #3253. Fixes #3286. Fixes #5762.
* MAINT: Fix problems noted by pyflakes in numpy/lib/tests.Charles Harris2014-07-311-16/+37
|
* STY: Make numpy/lib/test/*.py PEP8 compliant.Charles Harris2013-09-031-191/+190
| | | | | | | Run autopep8 over the test files in numpy/lib/test and make fixes to the result. Also remove Python5 workaround.
* STY: Giant comma spacing fixup.Charles Harris2013-08-181-7/+7
| | | | | | | Run the 2to3 ws_comma fixer on *.py files. Some lines are now too long and will need to be broken at some point. OTOH, some lines were already too long and need to be broken at some point. Now seems as good a time as any to do this with open PRs at a minimum.
* 2to3: Apply zip fixer.Charles Harris2013-04-131-12/+12
| | | | | | | | | | In Python 3 zip returns an iterator instead of a list. Consequently, in places where an iterator won't do it must be enclosed in list(...). Lists instead of iterators are also used in array constructors as using iterators there usually results in an object array containing an iterator object. Closes #3094
* 2to3: Apply `print` fixer.Charles Harris2013-04-061-1/+1
| | | | | | | Add `print_function` to all `from __future__ import ...` statements and use the python3 print function syntax everywhere. Closes #3078.
* 2to3: Use absolute imports.Charles Harris2013-03-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new import `absolute_import` is added the `from __future__ import` statement and The 2to3 `import` fixer is run to make the imports compatible. There are several things that need to be dealt with to make this work. 1) Files meant to be run as scripts run in a different environment than files imported as part of a package, and so changes to those files need to be skipped. The affected script files are: * all setup.py files * numpy/core/code_generators/generate_umath.py * numpy/core/code_generators/generate_numpy_api.py * numpy/core/code_generators/generate_ufunc_api.py 2) Some imported modules are not available as they are created during the build process and consequently 2to3 is unable to handle them correctly. Files that import those modules need a bit of extra work. The affected files are: * core/__init__.py, * core/numeric.py, * core/_internal.py, * core/arrayprint.py, * core/fromnumeric.py, * numpy/__init__.py, * lib/npyio.py, * lib/function_base.py, * fft/fftpack.py, * random/__init__.py Closes #3172
* 2to3: Put `from __future__ import division in every python file.Charles Harris2013-03-011-0/+2
| | | | | | | | This should be harmless, as we already are division clean. However, placement of this import takes some care. In the future a script can be used to append new features without worry, at least until such time as it exceeds a single line. Having that ability will make it easier to deal with absolute imports and printing updates.
* ENH: missingdata: Make numpy.all follow the NA && False == False ruleMark Wiebe2011-08-271-2/+2
|
* TST: rec: DType in join_by test was inconsistentMark Wiebe2011-07-191-2/+3
|
* BUG: Fixed bugs in join_by and added testsSkipper Seabold2011-07-081-3/+64
|
* STY: Replace assert by assert_ in tests. There remain 124 uses ofCharles Harris2011-04-051-2/+2
| | | | assert in non-testing files that should be checked for correctness.
* ENH: core: Shuffle type numbers so any new ones go on the end.Mark Wiebe2011-01-251-5/+18
|