123456789101112131415161718192021222324252627282930313233343536373839 |
- #!/usr/bin/env python
- #
- # Author: Mike McKerns (mmckerns @caltech and @uqfoundation)
- # Author: Anirudh Vegesana (avegesan@cs.stanford.edu)
- # Copyright (c) 2021-2024 The Uncertainty Quantification Foundation.
- # License: 3-clause BSD. The full license text is available at:
- # - https://github.com/uqfoundation/dill/blob/master/LICENSE
- import dill
- from dill._dill import OLD310, MAPPING_PROXY_TRICK, DictProxyType
- def test_dictproxy():
- assert dill.copy(DictProxyType({'a': 2}))
- def test_dictviews():
- x = {'a': 1}
- assert dill.copy(x.keys())
- assert dill.copy(x.values())
- assert dill.copy(x.items())
- def test_dictproxy_trick():
- if not OLD310 and MAPPING_PROXY_TRICK:
- x = {'a': 1}
- all_views = (x.values(), x.items(), x.keys(), x)
- seperate_views = dill.copy(all_views)
- new_x = seperate_views[-1]
- new_x['b'] = 2
- new_x['c'] = 1
- assert len(new_x) == 3 and len(x) == 1
- assert len(seperate_views[0]) == 3 and len(all_views[0]) == 1
- assert len(seperate_views[1]) == 3 and len(all_views[1]) == 1
- assert len(seperate_views[2]) == 3 and len(all_views[2]) == 1
- assert dict(all_views[1]) == x
- assert dict(seperate_views[1]) == new_x
- if __name__ == '__main__':
- test_dictproxy()
- test_dictviews()
- test_dictproxy_trick()
|