def _full_exact(self, input_dtype, output0_dtype, output1_dtype, input_shape, output0_shape, output1_shape, output0_raw=True, output1_raw=True, swap=False):

    def _infer_exact_helper(tester, pf, tensor_shape, batch_size, input_dtype, output0_dtype, output1_dtype, output0_raw=True, output1_raw=True, model_version=None, swap=False, outputs=('OUTPUT0', 'OUTPUT1'), use_http=True, use_grpc=True, skip_request_id_check=False, use_streaming=True, correlation_id=0):
        for bs in (1, batch_size):
            if (bs == 1):
                iu.infer_exact(tester, (pf + '_nobatch'), tensor_shape, bs, input_dtype, output0_dtype, output1_dtype, output0_raw, output1_raw, model_version, swap, outputs, use_http, use_grpc, skip_request_id_check, use_streaming, correlation_id, use_system_shared_memory=TEST_SYSTEM_SHARED_MEMORY, use_cuda_shared_memory=TEST_CUDA_SHARED_MEMORY)
            iu.infer_exact(tester, pf, ((bs,) + tensor_shape), bs, input_dtype, output0_dtype, output1_dtype, output0_raw, output1_raw, model_version, swap, outputs, use_http, use_grpc, skip_request_id_check, use_streaming, correlation_id, use_system_shared_memory=TEST_SYSTEM_SHARED_MEMORY, use_cuda_shared_memory=TEST_CUDA_SHARED_MEMORY)
    all_ensemble_prefix = ['simple_', 'sequence_', 'fan_']
    ensemble_prefix = ['']
    for prefix in all_ensemble_prefix:
        if tu.validate_for_ensemble_model(prefix, input_dtype, output0_dtype, output1_dtype, input_shape, input_shape, input_shape):
            ensemble_prefix.append(prefix)
    if tu.validate_for_tf_model(input_dtype, output0_dtype, output1_dtype, input_shape, output0_shape, output1_shape):
        for prefix in ensemble_prefix:
            for pf in ['graphdef', 'savedmodel']:
                _infer_exact_helper(self, (prefix + pf), input_shape, 8, input_dtype, output0_dtype, output1_dtype, output0_raw=output0_raw, output1_raw=output1_raw, swap=swap)
    if tu.validate_for_trt_model(input_dtype, output0_dtype, output1_dtype, input_shape, output0_shape, output1_shape):
        for prefix in ensemble_prefix:
            if (input_dtype == np.int8):
                _infer_exact_helper(self, (prefix + 'plan'), (input_shape + (1, 1)), 8, input_dtype, output0_dtype, output1_dtype, output0_raw=output0_raw, output1_raw=output1_raw, swap=swap)
            else:
                _infer_exact_helper(self, (prefix + 'plan'), input_shape, 8, input_dtype, output0_dtype, output1_dtype, output0_raw=output0_raw, output1_raw=output1_raw, swap=swap)
    if tu.validate_for_c2_model(input_dtype, output0_dtype, output1_dtype, input_shape, output0_shape, output1_shape):
        for prefix in ensemble_prefix:
            _infer_exact_helper(self, (prefix + 'netdef'), input_shape, 8, input_dtype, output0_dtype, output1_dtype, output0_raw=output0_raw, output1_raw=output1_raw, swap=swap)
    if tu.validate_for_custom_model(input_dtype, output0_dtype, output1_dtype, input_shape, output0_shape, output1_shape):
        _infer_exact_helper(self, 'custom', input_shape, 8, input_dtype, output0_dtype, output1_dtype, output0_raw=output0_raw, output1_raw=output1_raw, swap=False)
    if tu.validate_for_onnx_model(input_dtype, output0_dtype, output1_dtype, input_shape, output0_shape, output1_shape):
        _infer_exact_helper(self, 'onnx', input_shape, 8, input_dtype, output0_dtype, output1_dtype, output0_raw=output0_raw, output1_raw=output1_raw, swap=swap)
    if tu.validate_for_libtorch_model(input_dtype, output0_dtype, output1_dtype, input_shape, output0_shape, output1_shape):
        _infer_exact_helper(self, 'libtorch', input_shape, 8, input_dtype, output0_dtype, output1_dtype, output0_raw=output0_raw, output1_raw=output1_raw, swap=swap)
def _full_exact(self, input_dtype, output0_dtype, output1_dtype, input_shape, output0_shape, output1_shape, output0_raw=True, output1_raw=True, swap=False):

    def _infer_exact_helper(tester, pf, tensor_shape, batch_size, input_dtype, output0_dtype, output1_dtype, output0_raw=True, output1_raw=True, model_version=None, swap=False, outputs=('OUTPUT0', 'OUTPUT1'), use_http=True, use_grpc=True, skip_request_id_check=False, use_streaming=True, correlation_id=0):
        for bs in (1, batch_size):
            if (bs == 1):
                iu.infer_exact(tester, (pf + '_nobatch'), tensor_shape, bs, input_dtype, output0_dtype, output1_dtype, output0_raw, output1_raw, model_version, swap, outputs, use_http, use_grpc, skip_request_id_check, use_streaming, correlation_id, use_system_shared_memory=TEST_SYSTEM_SHARED_MEMORY, use_cuda_shared_memory=TEST_CUDA_SHARED_MEMORY)
            iu.infer_exact(tester, pf, ((bs,) + tensor_shape), bs, input_dtype, output0_dtype, output1_dtype, output0_raw, output1_raw, model_version, swap, outputs, use_http, use_grpc, skip_request_id_check, use_streaming, correlation_id, use_system_shared_memory=TEST_SYSTEM_SHARED_MEMORY, use_cuda_shared_memory=TEST_CUDA_SHARED_MEMORY)
    all_ensemble_prefix = ['simple_', 'sequence_', 'fan_']
    ensemble_prefix = []
    for prefix in all_ensemble_prefix:
        if tu.validate_for_ensemble_model(prefix, input_dtype, output0_dtype, output1_dtype, input_shape, input_shape, input_shape):
            ensemble_prefix.append(prefix)
    if tu.validate_for_tf_model(input_dtype, output0_dtype, output1_dtype, input_shape, output0_shape, output1_shape):
        for prefix in ensemble_prefix:
            for pf in ['graphdef', 'savedmodel']:
                _infer_exact_helper(self, (prefix + pf), input_shape, 8, input_dtype, output0_dtype, output1_dtype, output0_raw=output0_raw, output1_raw=output1_raw, swap=swap)
    if tu.validate_for_trt_model(input_dtype, output0_dtype, output1_dtype, input_shape, output0_shape, output1_shape):
        for prefix in ensemble_prefix:
            if (input_dtype == np.int8):
                _infer_exact_helper(self, (prefix + 'plan'), (input_shape + (1, 1)), 8, input_dtype, output0_dtype, output1_dtype, output0_raw=output0_raw, output1_raw=output1_raw, swap=swap)
            else:
                _infer_exact_helper(self, (prefix + 'plan'), input_shape, 8, input_dtype, output0_dtype, output1_dtype, output0_raw=output0_raw, output1_raw=output1_raw, swap=swap)
    if tu.validate_for_c2_model(input_dtype, output0_dtype, output1_dtype, input_shape, output0_shape, output1_shape):
        for prefix in ensemble_prefix:
            _infer_exact_helper(self, (prefix + 'netdef'), input_shape, 8, input_dtype, output0_dtype, output1_dtype, output0_raw=output0_raw, output1_raw=output1_raw, swap=swap)
    if tu.validate_for_custom_model(input_dtype, output0_dtype, output1_dtype, input_shape, output0_shape, output1_shape):
        _infer_exact_helper(self, 'custom', input_shape, 8, input_dtype, output0_dtype, output1_dtype, output0_raw=output0_raw, output1_raw=output1_raw, swap=False)
    if tu.validate_for_onnx_model(input_dtype, output0_dtype, output1_dtype, input_shape, output0_shape, output1_shape):
        _infer_exact_helper(self, 'onnx', input_shape, 8, input_dtype, output0_dtype, output1_dtype, output0_raw=output0_raw, output1_raw=output1_raw, swap=swap)
    if tu.validate_for_libtorch_model(input_dtype, output0_dtype, output1_dtype, input_shape, output0_shape, output1_shape):
        _infer_exact_helper(self, 'libtorch', input_shape, 8, input_dtype, output0_dtype, output1_dtype, output0_raw=output0_raw, output1_raw=output1_raw, swap=swap)