# coding: utf-8

"""
    Arthur GenAI Engine

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)

    The version of the OpenAPI document: 2.1.294
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


import unittest

from arthur_observability_sdk._generated.models.completion_request import CompletionRequest

class TestCompletionRequest(unittest.TestCase):
    """CompletionRequest unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional) -> CompletionRequest:
        """Test CompletionRequest
            include_optional is a boolean, when False only required
            params are included, when True both required and
            optional params are included """
        # uncomment below to create an instance of `CompletionRequest`
        """
        model = CompletionRequest()
        if include_optional:
            return CompletionRequest(
                messages = [
                    arthur_observability_sdk._generated.models.open_ai_message.OpenAIMessage(
                        role = 'developer', 
                        name = '', 
                        content = null, 
                        tool_calls = [
                            arthur_observability_sdk._generated.models.tool_call.ToolCall(
                                type = 'function', 
                                id = '', 
                                function = arthur_observability_sdk._generated.models.tool_call_function.ToolCallFunction(
                                    name = '', 
                                    arguments = '', ), )
                            ], 
                        tool_call_id = '', )
                    ],
                model_name = '',
                model_provider = 'anthropic',
                tools = [
                    arthur_observability_sdk._generated.models.llm_tool.LLMTool(
                        type = 'function', 
                        function = arthur_observability_sdk._generated.models.tool_function.ToolFunction(
                            name = '', 
                            description = '', 
                            parameters = arthur_observability_sdk._generated.models.json_schema.JsonSchema(
                                type = 'object', 
                                properties = {
                                    'key' : arthur_observability_sdk._generated.models.json_property_schema.JsonPropertySchema(
                                        type = 'string', 
                                        description = '', 
                                        enum = [
                                            ''
                                            ], 
                                        items = null, )
                                    }, 
                                required = [
                                    ''
                                    ], 
                                additional_properties = True, ), ), 
                        strict = True, )
                    ],
                config = arthur_observability_sdk._generated.models.llm_prompt_request_config_settings.LLMPromptRequestConfigSettings(
                    timeout = 1.337, 
                    temperature = 1.337, 
                    top_p = 1.337, 
                    max_tokens = 56, 
                    stop = '', 
                    presence_penalty = 1.337, 
                    frequency_penalty = 1.337, 
                    seed = 56, 
                    logprobs = True, 
                    top_logprobs = 56, 
                    logit_bias = [
                        arthur_observability_sdk._generated.models.logit_bias_item.LogitBiasItem(
                            token_id = 56, 
                            bias = -100.0, )
                        ], 
                    max_completion_tokens = 56, 
                    reasoning_effort = 'none', 
                    thinking = arthur_observability_sdk._generated.models.anthropic_thinking_param.AnthropicThinkingParam(
                        type = 'enabled', 
                        budget_tokens = 56, ), 
                    response_format = arthur_observability_sdk._generated.models.llm_response_format.LLMResponseFormat(
                        type = json_schema, 
                        json_schema = arthur_observability_sdk._generated.models.llm_response_schema.LLMResponseSchema(
                            name = '', 
                            description = '', 
                            schema = arthur_observability_sdk._generated.models.json_schema.JsonSchema(
                                type = 'object', 
                                properties = {
                                    'key' : arthur_observability_sdk._generated.models.json_property_schema.JsonPropertySchema(
                                        type = 'string', 
                                        description = '', 
                                        enum = [
                                            ''
                                            ], 
                                        items = null, )
                                    }, 
                                required = [
                                    ''
                                    ], 
                                additional_properties = True, ), 
                            strict = True, ), ), 
                    tool_choice = null, 
                    stream_options = arthur_observability_sdk._generated.models.stream_options.StreamOptions(
                        include_usage = True, ), ),
                completion_request = arthur_observability_sdk._generated.models.prompt_completion_request.PromptCompletionRequest(
                    variables = [
                        arthur_observability_sdk._generated.models.variable_template_value.VariableTemplateValue(
                            name = '', 
                            value = '', )
                        ], 
                    strict = True, 
                    stream = True, )
            )
        else:
            return CompletionRequest(
                messages = [
                    arthur_observability_sdk._generated.models.open_ai_message.OpenAIMessage(
                        role = 'developer', 
                        name = '', 
                        content = null, 
                        tool_calls = [
                            arthur_observability_sdk._generated.models.tool_call.ToolCall(
                                type = 'function', 
                                id = '', 
                                function = arthur_observability_sdk._generated.models.tool_call_function.ToolCallFunction(
                                    name = '', 
                                    arguments = '', ), )
                            ], 
                        tool_call_id = '', )
                    ],
                model_name = '',
                model_provider = 'anthropic',
        )
        """

    def testCompletionRequest(self):
        """Test CompletionRequest"""
        # inst_req_only = self.make_instance(include_optional=False)
        # inst_req_and_optional = self.make_instance(include_optional=True)

if __name__ == '__main__':
    unittest.main()
