# loki.tests.test_pickle

A set of tests that ensures that serialisation/deserialisation via pickle works and creates equivalent objects of various types.

Functions

`fixture_here`() |
`test_pickle_expression`() | Ensure pickle-replication of Pymbolic-backed expressions.
`test_pickle_module`(frontend, tmp_path) | Ensure that serialisation/deserialisation via pickling works as expected.
`test_pickle_module_with_routines`(frontend, ...) | Ensure that `Module` object with cross-calling subroutines pickle cleanly, including the procedure type symbols.
`test_pickle_module_with_typedef`(frontend, ...) | Ensure that a type definition in a module is pickle-safe.
`test_pickle_scheduler_item`(here, frontend, ...) | Test that `Item` objects are picklable, so that we may use them with parallel processes.
`test_pickle_subroutine`(frontend) | Ensure that `Subroutine` and its components are picklable.
`test_pickle_subroutine_with_member`(frontend) | Ensure that `Subroutine` and its components are picklable.

fixture_here()

test_pickle_expression()

  Ensure pickle-replication of Pymbolic-backed expressions.

test_pickle_subroutine(frontend)

  Ensure that `Subroutine` and its components are picklable.

test_pickle_module(frontend, tmp_path)

  Ensure that serialisation/deserialisation via pickling works as expected.

test_pickle_module_with_typedef(frontend, tmp_path)

  Ensure that a type definition in a module is pickle-safe.

test_pickle_subroutine_with_member(frontend)

  Ensure that `Subroutine` and its components are picklable.

test_pickle_module_with_routines(frontend, tmp_path)

  Ensure that `Module` object with cross-calling subroutines pickle cleanly, including the procedure type symbols.

test_pickle_scheduler_item(here, frontend, tmp_path)

  Test that `Item` objects are picklable, so that we may use them with parallel processes.