Coverage report: 89%

Files Functions Classes

coverage.py v7.6.1, created at 2025-01-24 04:51 +0000

File function statements missing excluded coverage
src/amisc/__init__.py FileLoader.load 1 1 0 0%
src/amisc/__init__.py FileLoader.dump 1 1 0 0%
src/amisc/__init__.py YamlLoader._yaml_loader 6 0 0 100%
src/amisc/__init__.py YamlLoader._yaml_dumper 6 0 0 100%
src/amisc/__init__.py YamlLoader.load 7 0 0 100%
src/amisc/__init__.py YamlLoader.dump 9 0 0 100%
src/amisc/__init__.py (no function) 27 0 0 100%
src/amisc/component.py ModelKwargs.serialize 1 0 0 100%
src/amisc/component.py ModelKwargs.deserialize 1 0 0 100%
src/amisc/component.py ModelKwargs.from_dict 9 3 0 67%
src/amisc/component.py StringKwargs.__repr__ 1 1 0 0%
src/amisc/component.py StringKwargs.__str__ 3 0 0 100%
src/amisc/component.py StringKwargs.__str__.format_value 3 0 0 100%
src/amisc/component.py IndexSet.__init__ 2 0 0 100%
src/amisc/component.py IndexSet.__str__ 1 1 0 0%
src/amisc/component.py IndexSet.__repr__ 1 1 0 0%
src/amisc/component.py IndexSet.add 1 0 0 100%
src/amisc/component.py IndexSet.update 1 0 0 100%
src/amisc/component.py IndexSet._validate_element 2 0 0 100%
src/amisc/component.py IndexSet._wrap_methods 3 0 0 100%
src/amisc/component.py IndexSet._wrap_methods.wrap_method_closure 3 0 0 100%
src/amisc/component.py IndexSet._wrap_methods.wrap_method_closure.inner 4 0 0 100%
src/amisc/component.py IndexSet.serialize 1 0 0 100%
src/amisc/component.py IndexSet.deserialize 1 0 0 100%
src/amisc/component.py MiscTree.__init__ 5 1 0 80%
src/amisc/component.py MiscTree.serialize 8 0 0 100%
src/amisc/component.py MiscTree.deserialize 1 0 0 100%
src/amisc/component.py MiscTree.state_serializer 12 1 0 92%
src/amisc/component.py MiscTree._validate_state_serializer 7 1 0 86%
src/amisc/component.py MiscTree._validate_data 17 0 0 100%
src/amisc/component.py MiscTree._is_alpha_beta_access 1 0 0 100%
src/amisc/component.py MiscTree.get 4 0 0 100%
src/amisc/component.py MiscTree.update 3 0 0 100%
src/amisc/component.py MiscTree.__setitem__ 5 0 0 100%
src/amisc/component.py MiscTree.__getitem__ 4 1 0 75%
src/amisc/component.py MiscTree.clear 2 2 0 0%
src/amisc/component.py MiscTree.__eq__ 9 4 0 56%
src/amisc/component.py MiscTree.__iter__ 5 1 0 80%
src/amisc/component.py Component.__init__ 24 0 0 100%
src/amisc/component.py Component._validate_model_signature 52 6 0 88%
src/amisc/component.py Component.__repr__ 5 5 0 0%
src/amisc/component.py Component.__str__ 1 1 0 0%
src/amisc/component.py Component._validate_serializers 9 2 0 78%
src/amisc/component.py Component._validate_model 3 0 0 100%
src/amisc/component.py Component._validate_variables 3 0 0 100%
src/amisc/component.py Component._validate_indices 1 0 0 100%
src/amisc/component.py Component._validate_index_set 1 0 0 100%
src/amisc/component.py Component._validate_misc_tree 1 0 0 100%
src/amisc/component.py Component._validate_model_costs 1 0 0 100%
src/amisc/component.py Component._validate_model_evals 1 0 0 100%
src/amisc/component.py Component._validate_arbitrary_serializable 4 0 0 100%
src/amisc/component.py Component.xdim 1 0 0 100%
src/amisc/component.py Component.ydim 1 0 0 100%
src/amisc/component.py Component.max_alpha 1 0 0 100%
src/amisc/component.py Component.max_beta 1 0 0 100%
src/amisc/component.py Component.has_surrogate 1 0 0 100%
src/amisc/component.py Component.logger 1 0 0 100%
src/amisc/component.py Component.logger 1 0 0 100%
src/amisc/component.py Component.__eq__ 3 1 0 67%
src/amisc/component.py Component._neighbors 21 0 0 100%
src/amisc/component.py Component._surrogate_outputs 7 0 0 100%
src/amisc/component.py Component._match_index_set 17 4 0 76%
src/amisc/component.py Component.cache 9 9 0 0%
src/amisc/component.py Component.clear_cache 1 1 0 0%
src/amisc/component.py Component.get_training_data 23 6 0 74%
src/amisc/component.py Component.call_model 146 25 0 83%
src/amisc/component.py Component.predict 39 5 0 87%
src/amisc/component.py Component.update_misc_coeff 10 0 0 100%
src/amisc/component.py Component.activate_index 72 11 0 85%
src/amisc/component.py Component.gradient 29 7 0 76%
src/amisc/component.py Component.hessian 1 0 0 100%
src/amisc/component.py Component.model_kwarg_requested 5 0 0 100%
src/amisc/component.py Component.set_logger 8 4 0 50%
src/amisc/component.py Component.update_model 6 6 0 0%
src/amisc/component.py Component.get_cost 4 2 0 50%
src/amisc/component.py Component.get_model_timestamps 3 0 0 100%
src/amisc/component.py Component.is_downward_closed 7 1 0 86%
src/amisc/component.py Component.clear 12 12 0 0%
src/amisc/component.py Component.serialize 33 2 0 94%
src/amisc/component.py Component.deserialize 17 1 0 94%
src/amisc/component.py Component._yaml_representer 7 0 0 100%
src/amisc/component.py Component._yaml_constructor 6 1 0 83%
src/amisc/component.py (no function) 179 0 0 100%
src/amisc/compression.py Compression.map_exists 1 0 0 100%
src/amisc/compression.py Compression.dim 1 0 0 100%
src/amisc/compression.py Compression.num_pts 1 0 0 100%
src/amisc/compression.py Compression.num_qoi 1 0 0 100%
src/amisc/compression.py Compression.dof 1 0 0 100%
src/amisc/compression.py Compression._correct_coords 8 0 0 100%
src/amisc/compression.py Compression.interpolator 6 2 0 67%
src/amisc/compression.py Compression.interpolate_from_grid 28 0 0 100%
src/amisc/compression.py Compression.interpolate_from_grid._iterate_coords_and_states 4 0 0 100%
src/amisc/compression.py Compression.interpolate_to_grid 34 0 0 100%
src/amisc/compression.py Compression.interpolate_to_grid._iterate_coords_and_fields 7 0 0 100%
src/amisc/compression.py Compression.compute_map 1 1 0 0%
src/amisc/compression.py Compression.compress 1 1 0 0%
src/amisc/compression.py Compression.reconstruct 1 1 0 0%
src/amisc/compression.py Compression.latent_size 1 1 0 0%
src/amisc/compression.py Compression.estimate_latent_ranges 1 1 0 0%
src/amisc/compression.py Compression.from_dict 6 2 0 67%
src/amisc/compression.py SVD.__post_init__ 2 0 0 100%
src/amisc/compression.py SVD.compute_map 27 4 0 85%
src/amisc/compression.py SVD.compress 1 0 0 100%
src/amisc/compression.py SVD.reconstruct 1 0 0 100%
src/amisc/compression.py SVD.latent_size 1 0 0 100%
src/amisc/compression.py SVD.estimate_latent_ranges 6 0 0 100%
src/amisc/compression.py (no function) 55 0 0 100%
src/amisc/distribution.py Distribution.__init__ 1 0 0 100%
src/amisc/distribution.py Distribution.__str__ 1 1 0 0%
src/amisc/distribution.py Distribution.__repr__ 1 1 0 0%
src/amisc/distribution.py Distribution.domain 1 0 0 100%
src/amisc/distribution.py Distribution.nominal 2 0 0 100%
src/amisc/distribution.py Distribution.from_string 46 14 0 70%
src/amisc/distribution.py Distribution.sample 1 1 0 0%
src/amisc/distribution.py Distribution.pdf 1 1 0 0%
src/amisc/distribution.py Uniform.__str__ 1 0 0 100%
src/amisc/distribution.py Uniform.sample 2 0 0 100%
src/amisc/distribution.py Uniform.pdf 6 0 0 100%
src/amisc/distribution.py LogUniform.__init__ 2 0 0 100%
src/amisc/distribution.py LogUniform.__str__ 1 1 0 0%
src/amisc/distribution.py LogUniform.sample 3 0 0 100%
src/amisc/distribution.py LogUniform.pdf 8 0 0 100%
src/amisc/distribution.py Normal.__str__ 1 0 0 100%
src/amisc/distribution.py Normal.domain 2 0 0 100%
src/amisc/distribution.py Normal.sample 2 0 0 100%
src/amisc/distribution.py Normal.pdf 2 0 0 100%
src/amisc/distribution.py LogNormal.__init__ 2 0 0 100%
src/amisc/distribution.py LogNormal.__str__ 1 1 0 0%
src/amisc/distribution.py LogNormal.domain 2 0 0 100%
src/amisc/distribution.py LogNormal.sample 2 0 0 100%
src/amisc/distribution.py LogNormal.pdf 3 0 0 100%
src/amisc/distribution.py Relative.__str__ 1 1 0 0%
src/amisc/distribution.py Relative.domain 1 1 0 0%
src/amisc/distribution.py Relative.nominal 1 1 0 0%
src/amisc/distribution.py Relative.sample 5 1 0 80%
src/amisc/distribution.py Relative.pdf 1 1 0 0%
src/amisc/distribution.py Tolerance.__str__ 1 1 0 0%
src/amisc/distribution.py Tolerance.domain 1 1 0 0%
src/amisc/distribution.py Tolerance.nominal 1 1 0 0%
src/amisc/distribution.py Tolerance.sample 5 1 0 80%
src/amisc/distribution.py Tolerance.pdf 1 1 0 0%
src/amisc/distribution.py (no function) 49 0 0 100%
src/amisc/examples/__init__.py (no function) 0 0 0 100%
src/amisc/examples/models.py f1 2 0 0 100%
src/amisc/examples/models.py f2 2 0 0 100%
src/amisc/examples/models.py f3 2 2 0 0%
src/amisc/examples/models.py tanh_func 1 0 0 100%
src/amisc/examples/models.py borehole_func 10 0 0 100%
src/amisc/examples/models.py wing_weight_func 13 0 0 100%
src/amisc/examples/models.py nonlinear_wave 8 0 0 100%
src/amisc/examples/models.py fire_sat_globals 27 0 0 100%
src/amisc/examples/models.py orbit_fun 24 4 0 83%
src/amisc/examples/models.py power_fun 45 4 0 91%
src/amisc/examples/models.py attitude_fun 23 0 0 100%
src/amisc/examples/models.py fire_sat_system 1 0 0 100%
src/amisc/examples/models.py (no function) 17 0 0 100%
src/amisc/interpolator.py LagrangeState.__eq__ 6 3 0 50%
src/amisc/interpolator.py Interpolator.refine 1 1 0 0%
src/amisc/interpolator.py Interpolator.predict 1 1 0 0%
src/amisc/interpolator.py Interpolator.__call__ 1 1 0 0%
src/amisc/interpolator.py Interpolator.gradient 1 1 0 0%
src/amisc/interpolator.py Interpolator.hessian 1 1 0 0%
src/amisc/interpolator.py Interpolator.from_dict 6 6 0 0%
src/amisc/interpolator.py Lagrange._extend_grids 7 0 0 100%
src/amisc/interpolator.py Lagrange.refine 26 0 0 100%
src/amisc/interpolator.py Lagrange.predict 39 0 0 100%
src/amisc/interpolator.py Lagrange.gradient 50 0 0 100%
src/amisc/interpolator.py Lagrange.hessian 82 0 0 100%
src/amisc/interpolator.py (no function) 37 0 0 100%
src/amisc/serialize.py Serializable.serialize 1 1 0 0%
src/amisc/serialize.py Serializable.deserialize 1 1 0 0%
src/amisc/serialize.py Base64Serializable.serialize 1 0 0 100%
src/amisc/serialize.py Base64Serializable.deserialize 1 0 0 100%
src/amisc/serialize.py StringSerializable.serialize 1 0 0 100%
src/amisc/serialize.py StringSerializable.deserialize 7 3 0 57%
src/amisc/serialize.py PickleSerializable.serialize 5 1 0 80%
src/amisc/serialize.py PickleSerializable.deserialize 2 0 0 100%
src/amisc/serialize.py YamlSerializable.serialize 5 0 0 100%
src/amisc/serialize.py YamlSerializable.deserialize 2 0 0 100%
src/amisc/serialize.py (no function) 36 0 0 100%
src/amisc/system.py TrainHistory.__init__ 2 0 0 100%
src/amisc/system.py TrainHistory.serialize 7 0 0 100%
src/amisc/system.py TrainHistory.deserialize 1 0 0 100%
src/amisc/system.py TrainHistory._validate_data 1 0 0 100%
src/amisc/system.py TrainHistory._validate_item 11 0 0 100%
src/amisc/system.py TrainHistory.append 1 0 0 100%
src/amisc/system.py TrainHistory.__add__ 2 2 0 0%
src/amisc/system.py TrainHistory.extend 1 0 0 100%
src/amisc/system.py TrainHistory.insert 1 1 0 0%
src/amisc/system.py TrainHistory.__setitem__ 1 1 0 0%
src/amisc/system.py TrainHistory.__eq__ 23 7 0 70%
src/amisc/system.py _Converged.__init__ 3 0 0 100%
src/amisc/system.py _Converged.reset_convergence 1 0 0 100%
src/amisc/system.py _Converged.curr_idx 1 0 0 100%
src/amisc/system.py _merge_shapes 14 14 0 0%
src/amisc/system.py System.__init__ 13 2 0 85%
src/amisc/system.py System.__repr__ 7 0 0 100%
src/amisc/system.py System.__str__ 1 0 0 100%
src/amisc/system.py System._validate_components 8 1 0 88%
src/amisc/system.py System._validate_train_history 3 0 0 100%
src/amisc/system.py System.graph 11 0 0 100%
src/amisc/system.py System._save_on_error 3 0 0 100%
src/amisc/system.py System._save_on_error.wrap 8 6 0 25%
src/amisc/system.py System.insert_components 2 0 0 100%
src/amisc/system.py System.swap_component 3 0 0 100%
src/amisc/system.py System.remove_component 2 0 0 100%
src/amisc/system.py System.inputs 2 0 0 100%
src/amisc/system.py System.outputs 1 0 0 100%
src/amisc/system.py System.coupling_variables 2 0 0 100%
src/amisc/system.py System.variables 1 0 0 100%
src/amisc/system.py System.refine_level 1 0 0 100%
src/amisc/system.py System.logger 1 0 0 100%
src/amisc/system.py System.logger 3 0 0 100%
src/amisc/system.py System.timestamp 1 0 0 100%
src/amisc/system.py System.root_dir 1 0 0 100%
src/amisc/system.py System.root_dir 27 0 0 100%
src/amisc/system.py System.set_logger 20 8 0 60%
src/amisc/system.py System.sample_inputs 37 1 0 97%
src/amisc/system.py System.simulate_fit 20 0 0 100%
src/amisc/system.py System.add_output 1 1 0 0%
src/amisc/system.py System.fit 105 15 0 86%
src/amisc/system.py System.test_set_performance 19 0 0 100%
src/amisc/system.py System.refine 71 3 0 96%
src/amisc/system.py System.predict 159 21 0 87%
src/amisc/system.py System.predict._set_default 5 0 0 100%
src/amisc/system.py System.predict._gather_comp_inputs 35 3 0 91%
src/amisc/system.py System.__call__ 1 1 0 0%
src/amisc/system.py System.__eq__ 3 1 0 67%
src/amisc/system.py System.__getitem__ 1 0 0 100%
src/amisc/system.py System.get_component 6 2 0 67%
src/amisc/system.py System._print_title_str 1 0 0 100%
src/amisc/system.py System._remove_unpickleable 14 6 0 57%
src/amisc/system.py System._restore_unpickleable 1 0 0 100%
src/amisc/system.py System._get_test_set 13 4 0 69%
src/amisc/system.py System._save_test_set 5 0 0 100%
src/amisc/system.py System.save_to_file 6 0 0 100%
src/amisc/system.py System.load_from_file 14 2 0 86%
src/amisc/system.py System.clear 3 3 0 0%
src/amisc/system.py System.plot_slice 89 15 0 83%
src/amisc/system.py System.get_allocation 26 0 0 100%
src/amisc/system.py System.plot_allocation 35 4 0 89%
src/amisc/system.py System.serialize 17 3 0 82%
src/amisc/system.py System.deserialize 1 0 0 100%
src/amisc/system.py System._yaml_representer 1 0 0 100%
src/amisc/system.py System._yaml_constructor 5 2 0 60%
src/amisc/system.py (no function) 121 0 0 100%
src/amisc/training.py TrainingData.get 1 1 0 0%
src/amisc/training.py TrainingData.set 1 1 0 0%
src/amisc/training.py TrainingData.set_errors 1 1 0 0%
src/amisc/training.py TrainingData.impute_missing_data 1 1 0 0%
src/amisc/training.py TrainingData.refine 1 1 0 0%
src/amisc/training.py TrainingData.clear 1 1 0 0%
src/amisc/training.py TrainingData.from_dict 6 6 0 0%
src/amisc/training.py SparseGrid.clear 6 6 0 0%
src/amisc/training.py SparseGrid.get_by_coord 29 2 0 93%
src/amisc/training.py SparseGrid.get 1 0 0 100%
src/amisc/training.py SparseGrid.set_errors 2 2 0 0%
src/amisc/training.py SparseGrid.set 6 0 0 100%
src/amisc/training.py SparseGrid.impute_missing_data 28 1 0 96%
src/amisc/training.py SparseGrid.refine 49 0 0 100%
src/amisc/training.py SparseGrid._extract_grid_points 13 0 0 100%
src/amisc/training.py SparseGrid._expand_grid_coords 7 0 0 100%
src/amisc/training.py SparseGrid._is_singleton 1 0 0 100%
src/amisc/training.py SparseGrid._is_numeric 1 0 0 100%
src/amisc/training.py SparseGrid._numeric_outputs 8 2 0 75%
src/amisc/training.py SparseGrid.is_one_level_refinement 3 0 0 100%
src/amisc/training.py SparseGrid.beta_to_knots 21 4 0 81%
src/amisc/training.py SparseGrid.collocation_1d 17 2 0 88%
src/amisc/training.py (no function) 61 0 0 100%
src/amisc/transform.py Transform.__init__ 1 0 0 100%
src/amisc/transform.py Transform.__str__ 1 0 0 100%
src/amisc/transform.py Transform.from_string 42 12 0 71%
src/amisc/transform.py Transform.transform 9 2 0 78%
src/amisc/transform.py Transform._transform 1 1 0 0%
src/amisc/transform.py Linear._transform 2 0 0 100%
src/amisc/transform.py Log._transform 2 0 0 100%
src/amisc/transform.py Minmax._transform 7 1 0 86%
src/amisc/transform.py Minmax.update 2 0 0 100%
src/amisc/transform.py Zscore._transform 5 1 0 80%
src/amisc/transform.py Zscore.update 2 0 0 100%
src/amisc/transform.py (no function) 24 0 0 100%
src/amisc/typing.py MultiIndex.__new__ 3 0 0 100%
src/amisc/typing.py (no function) 29 0 0 100%
src/amisc/utils.py _combine_latent_arrays 5 0 0 100%
src/amisc/utils.py to_surrogate_dataset 18 1 0 94%
src/amisc/utils.py to_model_dataset 15 0 0 100%
src/amisc/utils.py constrained_lls 13 0 0 100%
src/amisc/utils.py _RidgeRegression.__init__ 2 0 0 100%
src/amisc/utils.py _RidgeRegression.fit 7 0 0 100%
src/amisc/utils.py _RidgeRegression.predict 5 1 0 80%
src/amisc/utils.py _inspect_function 17 5 0 71%
src/amisc/utils.py _inspect_function.ReturnVisitor.__init__ 1 0 0 100%
src/amisc/utils.py _inspect_function.ReturnVisitor.visit_Return 5 0 0 100%
src/amisc/utils.py _inspect_assignment 16 0 0 100%
src/amisc/utils.py _get_yaml_path 7 0 0 100%
src/amisc/utils.py search_for_file 21 5 0 76%
src/amisc/utils.py format_inputs 21 0 0 100%
src/amisc/utils.py format_inputs._common_shape 11 0 0 100%
src/amisc/utils.py format_inputs._shorten_shape 6 1 0 83%
src/amisc/utils.py format_outputs 11 0 0 100%
src/amisc/utils.py _tokenize 29 0 0 100%
src/amisc/utils.py parse_function_string 23 3 0 87%
src/amisc/utils.py relative_error 4 0 0 100%
src/amisc/utils.py get_logger 13 0 0 100%
src/amisc/utils.py (no function) 34 1 0 97%
src/amisc/variable.py Variable.__init__ 4 0 0 100%
src/amisc/variable.py Variable._validate_tex 7 2 0 71%
src/amisc/variable.py Variable._validate_compression 9 0 0 100%
src/amisc/variable.py Variable._validate_dist 7 2 0 71%
src/amisc/variable.py Variable._validate_domain 21 1 0 95%
src/amisc/variable.py Variable._validate_norm 16 0 0 100%
src/amisc/variable.py Variable.__getitem__ 1 1 0 0%
src/amisc/variable.py Variable.__setitem__ 1 1 0 0%
src/amisc/variable.py Variable.__str__ 1 0 0 100%
src/amisc/variable.py Variable.__repr__ 1 1 0 0%
src/amisc/variable.py Variable.__hash__ 1 0 0 100%
src/amisc/variable.py Variable.__eq__ 5 1 0 80%
src/amisc/variable.py Variable.get_tex 2 0 0 100%
src/amisc/variable.py Variable.get_nominal 7 0 0 100%
src/amisc/variable.py Variable.get_domain 10 2 0 80%
src/amisc/variable.py Variable.sample_domain 11 1 0 91%
src/amisc/variable.py Variable.update_domain 13 3 0 77%
src/amisc/variable.py Variable.update_domain._update_domain 3 0 0 100%
src/amisc/variable.py Variable.pdf 3 0 0 100%
src/amisc/variable.py Variable.sample 11 1 0 91%
src/amisc/variable.py Variable.normalize 26 1 0 96%
src/amisc/variable.py Variable.normalize._normalize_single 6 0 0 100%
src/amisc/variable.py Variable.denormalize 1 0 0 100%
src/amisc/variable.py Variable.compress 22 4 0 82%
src/amisc/variable.py Variable.reconstruct 1 0 0 100%
src/amisc/variable.py Variable.serialize 14 0 0 100%
src/amisc/variable.py Variable.deserialize 8 0 0 100%
src/amisc/variable.py Variable._yaml_representer 2 0 0 100%
src/amisc/variable.py Variable._yaml_constructor 6 2 0 67%
src/amisc/variable.py VariableList.__init__ 2 0 0 100%
src/amisc/variable.py VariableList.__iter__ 1 0 0 100%
src/amisc/variable.py VariableList.__eq__ 6 2 0 67%
src/amisc/variable.py VariableList.append 1 0 0 100%
src/amisc/variable.py VariableList.extend 1 1 0 0%
src/amisc/variable.py VariableList.index 4 1 0 75%
src/amisc/variable.py VariableList.get_domains 10 1 0 90%
src/amisc/variable.py VariableList.get_pdfs 8 0 0 100%
src/amisc/variable.py VariableList.get_pdfs._get_pdf 1 0 0 100%
src/amisc/variable.py VariableList.update 10 2 0 80%
src/amisc/variable.py VariableList.get 4 2 0 50%
src/amisc/variable.py VariableList.__setitem__ 11 0 0 100%
src/amisc/variable.py VariableList.__getitem__ 7 0 0 100%
src/amisc/variable.py VariableList.__delitem__ 12 3 0 75%
src/amisc/variable.py VariableList.__str__ 1 1 0 0%
src/amisc/variable.py VariableList.__repr__ 1 1 0 0%
src/amisc/variable.py VariableList.serialize 1 0 0 100%
src/amisc/variable.py VariableList.merge 8 0 0 100%
src/amisc/variable.py VariableList.merge._get_best_variable 3 0 0 100%
src/amisc/variable.py VariableList.deserialize 3 1 0 67%
src/amisc/variable.py VariableList._yaml_representer 2 0 0 100%
src/amisc/variable.py VariableList._yaml_constructor 6 3 0 50%
src/amisc/variable.py (no function) 98 0 0 100%
Total   3914 439 0 89%

No items found using the specified filter.