Coverage report: 93.15%

Files Functions Classes

coverage.py v7.13.4, created at 2026-02-25 10:22 +0100

File function   statements missing excluded   coverage
src / invariant / __init__.py (no function)   8 0 0   100.00%
src / invariant / cacheable.py is_cacheable   28 1 0   96.43%
src / invariant / cacheable.py (no function)   5 0 0   100.00%
src / invariant / executor.py Executor.__init__   3 0 0   100.00%
src / invariant / executor.py Executor.execute   27 2 0   92.59%
src / invariant / executor.py Executor._build_manifest   6 1 0   83.33%
src / invariant / executor.py Executor._invoke_op   20 3 0   85.00%
src / invariant / executor.py (no function)   12 0 3   100.00%
src / invariant / expressions.py resolve_params   4 0 0   100.00%
src / invariant / expressions.py _resolve_value   15 0 0   100.00%
src / invariant / expressions.py _evaluate_expression   13 0 0   100.00%
src / invariant / expressions.py _evaluate_cel   26 0 0   100.00%
src / invariant / expressions.py _value_to_cel   20 1 0   95.00%
src / invariant / expressions.py _icacheable_to_cel_map   9 2 0   77.78%
src / invariant / expressions.py _cel_to_python   24 3 0   87.50%
src / invariant / expressions.py _decimal_function   18 4 0   77.78%
src / invariant / expressions.py _min_function   5 0 0   100.00%
src / invariant / expressions.py _max_function   5 0 0   100.00%
src / invariant / expressions.py _extract_comparison_value   12 1 0   91.67%
src / invariant / expressions.py (no function)   20 0 0   100.00%
src / invariant / graph.py GraphResolver.__init__   1 0 0   100.00%
src / invariant / graph.py GraphResolver.validate   13 0 0   100.00%
src / invariant / graph.py GraphResolver._has_cycle   12 0 0   100.00%
src / invariant / graph.py GraphResolver._has_cycle.dfs   14 1 0   92.86%
src / invariant / graph.py GraphResolver.topological_sort   23 0 0   100.00%
src / invariant / graph.py GraphResolver.resolve   2 0 0   100.00%
src / invariant / graph.py (no function)   11 0 2   100.00%
src / invariant / graph_serialization.py _encode_param_value   26 0 0   100.00%
src / invariant / graph_serialization.py _decode_param_value   25 1 0   96.00%
src / invariant / graph_serialization.py _decode_icacheable   28 8 0   71.43%
src / invariant / graph_serialization.py _encode_params   1 0 0   100.00%
src / invariant / graph_serialization.py _decode_params   1 0 0   100.00%
src / invariant / graph_serialization.py _encode_vertex   6 0 0   100.00%
src / invariant / graph_serialization.py _decode_vertex   20 3 0   85.00%
src / invariant / graph_serialization.py _validate_node   18 5 0   72.22%
src / invariant / graph_serialization.py _validate_subgraph   19 6 0   68.42%
src / invariant / graph_serialization.py _validate_vertex_for_kind   14 7 0   50.00%
src / invariant / graph_serialization.py _encode_graph   1 0 0   100.00%
src / invariant / graph_serialization.py _decode_graph   6 1 0   83.33%
src / invariant / graph_serialization.py _validate_envelope   12 2 0   83.33%
src / invariant / graph_serialization.py dump_graph_to_dict   1 0 0   100.00%
src / invariant / graph_serialization.py dump_graph   1 0 0   100.00%
src / invariant / graph_serialization.py load_graph_from_dict   2 0 0   100.00%
src / invariant / graph_serialization.py load_graph   4 0 0   100.00%
src / invariant / graph_serialization.py (no function)   30 0 0   100.00%
src / invariant / hashing.py hash_value   27 0 0   100.00%
src / invariant / hashing.py hash_manifest   8 0 0   100.00%
src / invariant / hashing.py (no function)   7 0 0   100.00%
src / invariant / node.py _collect_refs   10 0 0   100.00%
src / invariant / node.py Node.__post_init__   7 0 0   100.00%
src / invariant / node.py Node._validate_refs   5 1 0   80.00%
src / invariant / node.py SubGraphNode.__post_init__   9 0 0   100.00%
src / invariant / node.py SubGraphNode._validate_refs   5 0 0   100.00%
src / invariant / node.py (no function)   21 0 0   100.00%
src / invariant / ops / __init__.py (no function)   3 0 0   100.00%
src / invariant / ops / poly.py poly_from_coefficients   6 1 0   83.33%
src / invariant / ops / poly.py poly_add   7 0 0   100.00%
src / invariant / ops / poly.py poly_multiply   6 0 0   100.00%
src / invariant / ops / poly.py poly_scale   2 2 0   0.00%
src / invariant / ops / poly.py poly_derivative   6 1 0   83.33%
src / invariant / ops / poly.py poly_evaluate   4 0 0   100.00%
src / invariant / ops / poly.py (no function)   9 0 0   100.00%
src / invariant / ops / stdlib.py identity   1 0 0   100.00%
src / invariant / ops / stdlib.py add   1 0 0   100.00%
src / invariant / ops / stdlib.py multiply   1 0 0   100.00%
src / invariant / ops / stdlib.py dict_get   5 0 0   100.00%
src / invariant / ops / stdlib.py make_dict   1 0 0   100.00%
src / invariant / ops / stdlib.py make_list   1 0 0   100.00%
src / invariant / ops / stdlib.py (no function)   8 0 0   100.00%
src / invariant / params.py (no function)   7 0 0   100.00%
src / invariant / protocol.py ICacheable.get_stable_hash   1 1 0   0.00%
src / invariant / protocol.py ICacheable.to_stream   1 1 0   0.00%
src / invariant / protocol.py ICacheable.from_stream   1 1 0   0.00%
src / invariant / protocol.py IJsonRepresentable.to_json_value   1 1 0   0.00%
src / invariant / protocol.py IJsonRepresentable.from_json_value   1 1 0   0.00%
src / invariant / protocol.py (no function)   16 2 0   87.50%
src / invariant / registry.py OpRegistry.__new__   3 0 0   100.00%
src / invariant / registry.py OpRegistry.__init__   3 0 0   100.00%
src / invariant / registry.py OpRegistry.register   5 0 0   100.00%
src / invariant / registry.py OpRegistry.get   3 0 0   100.00%
src / invariant / registry.py OpRegistry.has   1 0 0   100.00%
src / invariant / registry.py OpRegistry.clear   1 0 0   100.00%
src / invariant / registry.py OpRegistry.register_package   18 3 0   83.33%
src / invariant / registry.py OpRegistry.auto_discover   15 6 0   60.00%
src / invariant / registry.py (no function)   15 0 0   100.00%
src / invariant / store / __init__.py (no function)   6 0 0   100.00%
src / invariant / store / base.py ArtifactStore.__init__   1 0 0   100.00%
src / invariant / store / base.py ArtifactStore.reset_stats   1 0 0   100.00%
src / invariant / store / base.py ArtifactStore.exists   1 1 0   0.00%
src / invariant / store / base.py ArtifactStore.get   1 1 0   0.00%
src / invariant / store / base.py ArtifactStore.put   1 1 0   0.00%
src / invariant / store / base.py (no function)   17 0 0   100.00%
src / invariant / store / chain.py ChainStore.__init__   3 0 0   100.00%
src / invariant / store / chain.py ChainStore.exists   8 0 0   100.00%
src / invariant / store / chain.py ChainStore.get   7 0 0   100.00%
src / invariant / store / chain.py ChainStore.put   3 0 0   100.00%
src / invariant / store / chain.py (no function)   9 0 0   100.00%
src / invariant / store / codec.py serialize   5 0 0   100.00%
src / invariant / store / codec.py deserialize   2 0 0   100.00%
src / invariant / store / codec.py _serialize_value   53 0 0   100.00%
src / invariant / store / codec.py _deserialize_value   85 0 0   100.00%
src / invariant / store / codec.py (no function)   10 0 0   100.00%
src / invariant / store / disk.py DiskStore.__init__   7 1 0   85.71%
src / invariant / store / disk.py DiskStore._get_path   6 0 0   100.00%
src / invariant / store / disk.py DiskStore.exists   6 0 0   100.00%
src / invariant / store / disk.py DiskStore.get   6 0 0   100.00%
src / invariant / store / disk.py DiskStore.put   10 1 0   90.00%
src / invariant / store / disk.py (no function)   12 0 0   100.00%
src / invariant / store / memory.py _create_cache   3 0 0   100.00%
src / invariant / store / memory.py MemoryStore.__init__   18 1 0   94.44%
src / invariant / store / memory.py MemoryStore._make_key   1 0 0   100.00%
src / invariant / store / memory.py MemoryStore.exists   6 0 0   100.00%
src / invariant / store / memory.py MemoryStore.get   4 0 0   100.00%
src / invariant / store / memory.py MemoryStore.put   5 1 0   80.00%
src / invariant / store / memory.py MemoryStore.clear   2 0 0   100.00%
src / invariant / store / memory.py (no function)   15 0 0   100.00%
src / invariant / store / null.py NullStore.exists   1 0 0   100.00%
src / invariant / store / null.py NullStore.get   1 0 0   100.00%
src / invariant / store / null.py NullStore.put   1 0 0   100.00%
src / invariant / store / null.py (no function)   6 0 0   100.00%
src / invariant / types.py Polynomial.__init__   6 0 0   100.00%
src / invariant / types.py Polynomial.get_stable_hash   2 0 0   100.00%
src / invariant / types.py Polynomial.to_stream   3 0 0   100.00%
src / invariant / types.py Polynomial.from_stream   6 0 0   100.00%
src / invariant / types.py Polynomial.__eq__   3 1 0   66.67%
src / invariant / types.py Polynomial.__repr__   0 0 2   100.00%
src / invariant / types.py Polynomial.to_json_value   1 0 0   100.00%
src / invariant / types.py Polynomial.from_json_value   3 0 0   100.00%
src / invariant / types.py (no function)   13 0 1   100.00%
Total     1183 81 8   93.15%

No items found using the specified filter.