1515from typing import Dict , List
1616
1717from model_compression_toolkit .core import ResourceUtilization
18+ from model_compression_toolkit .core .common .mixed_precision .mixed_precision_search_manager import \
19+ MixedPrecisionSearchManager
1820from model_compression_toolkit .core .common .mixed_precision .solution_refinement_procedure import greedy_solution_refinement_procedure
1921
2022import pytest
@@ -27,11 +29,8 @@ def search_manager():
2729 manager = Mock ()
2830 manager .mp_topo_configurable_nodes = MagicMock ()
2931 manager .fw_info .get_kernel_op_attributes = MagicMock ()
30- manager .replace_config_in_index = MagicMock (
31- side_effect = lambda config , idx , candidate : (
32- lambda new_config : (new_config .__setitem__ (idx , candidate ), new_config )[1 ]
33- )(copy .deepcopy (config ))
34- )
32+ manager .copy_config_with_replacement = MixedPrecisionSearchManager .copy_config_with_replacement
33+ manager .using_virtual_graph = False # asserted in refinement
3534 return manager
3635
3736
@@ -99,18 +98,18 @@ def test_greedy_solution_refinement_procedure(
9998 weight_bits_dict_1 = {'kernel' : 4 }
10099 act_bits_1 = 8
101100
102- initial_solution = [1 ]
103- expected_solution = [1 ]
104-
105101 node_mock = Mock ()
106102 node_mock .candidates_quantization_cfg = candidate_configs (weight_bits_dict_0 , act_bits_0 , weight_bits_dict_1 , act_bits_1 )
107103
104+ initial_solution = {node_mock : 1 }
105+ expected_solution = {node_mock : 1 }
106+
108107 search_manager .mp_topo_configurable_nodes = [node_mock ]
109108
110109 search_manager .compute_resource_utilization_for_config = MagicMock (side_effect = lambda config : {
111110 0 : ResourceUtilization (** alternative_candidate_resources_usage ),
112111 1 : ResourceUtilization (weights_memory = 50 , activation_memory = 50 ),
113- }[config [- 1 ]])
112+ }[config [node_mock ]])
114113
115114 target_resource_utilization = ResourceUtilization (** resource_limit )
116115
0 commit comments