aboutsummaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2022-05-21Fix iteration when the tree is 7 levels deep + collisionsYury Selivanov
Fixes issue #84. Co-authored-by: eli <eli@hyro.ai>
2021-08-07Use cibuildwheel to build wheels (#70)Elvis Pranskevichus
The cibuildwheel infra seems to be mature enough, so use it for the wheel-building step instead of the homegrown setup. This gives us 32-bit and ARM wheels for free. Fixes: #44 Fixes: #63
2021-08-04Fix test_none_collisions on 32-bit systems (#69)Elvis Pranskevichus
There are two issues at play here: 1. Python version of `map_hash` unnecessarily performs hash truncation even if the hash is already 32-bit wide, which potentially converts it from signed int to unsigned long. 2. The `test_none_collisions` test generates a collision node with hash greater than 2^32. Both of these are problematic on 32-bit systems, where `sizeof(Py_hash_t)` is 4, and so anything that doesn't fit into `Py_hash_t` gets bit-mangled, breaking the `hash(x) != x` invariance that the test relies upon. Fixes: #53 Fixes: #50
2021-08-03Add in mypy testsMichael J. Sullivan
2021-02-09Fix flake8 errors and add it to CI (#45)Taneli Hukkinen
* Fix flake8 errors and add it to CI * Use extras for test dependencies Co-authored-by: Fantix King <fantix.king@gmail.com>
2021-02-09Make __repr__ more similar to other mapping types (#58)Ofek Lev
2020-05-17Unbreak CIYury Selivanov
2020-05-17Accept None as a key in pure python module (#42)TIGirardi
2020-05-13Fix errors when a kwarg is named "col" (#35)Taneli Hukkinen
2020-04-22A bunch of fixesYury Selivanov
* Fix #26: `ifdef NDEBUG` should be `ifndef NDEBUG` * More tests for #24 * Add a `DEBUG_IMMUTABLES` env var to build debug builds
2020-04-22Fix the mutation API to maintain elements count correctly (#25, #24)TIGirardi
2019-11-02Add Python 3.8 support (#16)Bruno Oliveira
Fix #15
2019-10-03Add typing information (#13)Anton Agestam
2018-12-13Don't allow MapMutation.update() calls after the mutation is finishedYury Selivanov
2018-12-13Add MapMutation.update(); make creating Map from a Map faster; fix bugsYury Selivanov
* Add new MapMutation.update() method that behaves like MutableMapping.update() * Make it faster to create a Map() from another Map() -- it's now an O(1) operation. * update() method had a bug that could cause the update Map object to have a wrong number of elements.
2018-11-20Make MapMutation unpickleableYury Selivanov
2018-11-20Fix error message: "has been finalized" -> "has been finished"Yury Selivanov
2018-11-20Rename .finalize() to .finish()Yury Selivanov
2018-11-20Make MapMutation a context managerYury Selivanov
2018-11-20Implement mutable mapping API for MapMutation; add after-finalize checksYury Selivanov
2018-11-20Implement pickle supportYury Selivanov
2018-11-20Fix .keys() and other views to support being iterated more than onceYury Selivanov
2018-11-20Implement Map.update(); support initializing Map from dict/iter/mapYury Selivanov
2018-11-20Implement Map.mutate() methodYury Selivanov
2018-05-01Reject keyword and positional arguments in __new__. Fixes #2.Yury Selivanov
2018-04-07pymap: Streamline .assoc() methodYury Selivanov
2018-04-03Coverage: 100%Yury Selivanov
2018-04-03Make Map a subclass of collecitons.abc.MappingYury Selivanov
2018-04-03Change Map.delete(key): raise a KeyError if key is not in the mapYury Selivanov
2018-04-02Add pure Python implementation (compatible with PyPy)Yury Selivanov
2018-04-01Implement Map.__hash__Yury Selivanov
2018-04-01Implement __repr__Yury Selivanov
2018-03-31immutables v0.2v0.2Elvis Pranskevichus
2018-03-30Do not use f-strings for Python 3.5 compatibilityElvis Pranskevichus
2018-03-30Initial commitYury Selivanov