def METHOD_NAME(diff: float,
                                 required_currents: List[float],
                                 expected_set_current: float,
                                 expected_diffs: List[float],
                                 monkeypatch):
    # setup
    cp = Chargepoint(4, None)
    ev = Ev(0)
    ev.data.control_parameter.required_currents = required_currents
    cp.data.set.charging_ev_data = ev
    cp.data.set.current = 6
    get_counters_to_check_mock = Mock(return_value=["cp0", "cp6"])
    monkeypatch.setattr(CounterAll, "get_counters_to_check", get_counters_to_check_mock)
    data.data.counter_data = {"cp0": Mock(spec=Counter), "cp6": Mock(spec=Counter)}
    # evaluation
    common.set_current_counterdiff(diff, 8, cp)
    # assertion
    assert cp.data.set.current == expected_set_current
    if diff != 0:
        assert data.data._counter_data['cp0'].update_values_left.call_args_list[0][0][0] == expected_diffs
        assert data.data._counter_data['cp6'].update_values_left.call_args_list[0][0][0] == expected_diffs