# coding: utf-8

"""
    Jaqpot API

    A modern RESTful API for model management and prediction services, built using Spring Boot and Kotlin. Supports seamless integration with machine learning workflows.

    The version of the OpenAPI document: 1.0.0
    Contact: upci.ntua@gmail.com
    Generated by OpenAPI Generator (https://openapi-generator.tech)

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


import unittest

from jaqpotpy.api.openapi.models.model import Model

class TestModel(unittest.TestCase):
    """Model unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional) -> Model:
        """Test Model
            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 `Model`
        """
        model = Model()
        if include_optional:
            return Model(
                id = 0,
                meta = {
                    'key' : None
                    },
                name = 'My Model',
                description = 'A description of your model',
                type = 'SKLEARN',
                jaqpotpy_version = '1.0.0',
                libraries = [
                    jaqpotpy.api.openapi.models.library.Library(
                        id = 56, 
                        name = 'Library Name', 
                        version = '1.24.0', 
                        created_at = '2023-01-01T12:00Z', 
                        updated_at = '2023-01-01T12:00:00Z', )
                    ],
                dependent_features = [
                    jaqpotpy.api.openapi.models.feature.Feature(
                        id = 1, 
                        meta = {
                            'key' : None
                            }, 
                        key = 'feature-key', 
                        name = 'A feature name', 
                        units = 'A feature unit', 
                        description = '', 
                        feature_type = 'FLOAT', 
                        feature_dependency = 'DEPENDENT', 
                        visible = True, 
                        possible_values = [
                            jaqpotpy.api.openapi.models.feature_possible_value.FeaturePossibleValue(
                                key = 'value', 
                                value = 'value', )
                            ], 
                        created_at = '2023-01-01T12:00Z', 
                        updated_at = '2023-01-01T12:00:00Z', )
                    ],
                independent_features = [
                    jaqpotpy.api.openapi.models.feature.Feature(
                        id = 1, 
                        meta = {
                            'key' : None
                            }, 
                        key = 'feature-key', 
                        name = 'A feature name', 
                        units = 'A feature unit', 
                        description = '', 
                        feature_type = 'FLOAT', 
                        feature_dependency = 'DEPENDENT', 
                        visible = True, 
                        possible_values = [
                            jaqpotpy.api.openapi.models.feature_possible_value.FeaturePossibleValue(
                                key = 'value', 
                                value = 'value', )
                            ], 
                        created_at = '2023-01-01T12:00Z', 
                        updated_at = '2023-01-01T12:00:00Z', )
                    ],
                shared_with_organizations = [
                    jaqpotpy.api.openapi.models.organization.Organization(
                        id = 56, 
                        name = 'my-awesome-org', 
                        creator = jaqpotpy.api.openapi.models.user.User(
                            id = '', 
                            username = '', 
                            first_name = '', 
                            last_name = '', 
                            email = '', 
                            email_verified = True, ), 
                        visibility = 'PUBLIC', 
                        description = 'An awesome organization for managing models.', 
                        organization_members = [
                            jaqpotpy.api.openapi.models.organization_user.OrganizationUser(
                                id = 56, 
                                user_id = '', 
                                username = '', 
                                email = '', 
                                association_type = 'ADMIN', )
                            ], 
                        contact_email = 'contact@my-awesome-org.com', 
                        contact_phone = '+1234567890', 
                        website = 'http://www.my-awesome-org.com', 
                        address = '123 Organization St., City, Country', 
                        can_edit = True, 
                        is_member = True, 
                        created_at = '', 
                        updated_at = '', )
                    ],
                visibility = 'PUBLIC',
                task = 'REGRESSION',
                raw_model = 'YQ==',
                creator = jaqpotpy.api.openapi.models.user.User(
                    id = '', 
                    username = '', 
                    first_name = '', 
                    last_name = '', 
                    email = '', 
                    email_verified = True, ),
                can_edit = True,
                is_admin = True,
                tags = '',
                legacy_prediction_service = '',
                extra_config = jaqpotpy.api.openapi.models.model_extra_config.ModelExtraConfig(
                    torch_config = {
                        'key' : None
                        }, 
                    preprocessors = [
                        jaqpotpy.api.openapi.models.transformer.Transformer(
                            name = 'StandardScaler', 
                            config = {
                                'key' : None
                                }, )
                        ], 
                    featurizers = [
                        jaqpotpy.api.openapi.models.transformer.Transformer(
                            name = 'StandardScaler', 
                            config = {
                                'key' : None
                                }, )
                        ], 
                    doa = [
                        
                        ], ),
                created_at = '2023-01-01T12:00Z',
                updated_at = '2023-01-01T12:00:00Z'
            )
        else:
            return Model(
                name = 'My Model',
                type = 'SKLEARN',
                jaqpotpy_version = '1.0.0',
                libraries = [
                    jaqpotpy.api.openapi.models.library.Library(
                        id = 56, 
                        name = 'Library Name', 
                        version = '1.24.0', 
                        created_at = '2023-01-01T12:00Z', 
                        updated_at = '2023-01-01T12:00:00Z', )
                    ],
                dependent_features = [
                    jaqpotpy.api.openapi.models.feature.Feature(
                        id = 1, 
                        meta = {
                            'key' : None
                            }, 
                        key = 'feature-key', 
                        name = 'A feature name', 
                        units = 'A feature unit', 
                        description = '', 
                        feature_type = 'FLOAT', 
                        feature_dependency = 'DEPENDENT', 
                        visible = True, 
                        possible_values = [
                            jaqpotpy.api.openapi.models.feature_possible_value.FeaturePossibleValue(
                                key = 'value', 
                                value = 'value', )
                            ], 
                        created_at = '2023-01-01T12:00Z', 
                        updated_at = '2023-01-01T12:00:00Z', )
                    ],
                independent_features = [
                    jaqpotpy.api.openapi.models.feature.Feature(
                        id = 1, 
                        meta = {
                            'key' : None
                            }, 
                        key = 'feature-key', 
                        name = 'A feature name', 
                        units = 'A feature unit', 
                        description = '', 
                        feature_type = 'FLOAT', 
                        feature_dependency = 'DEPENDENT', 
                        visible = True, 
                        possible_values = [
                            jaqpotpy.api.openapi.models.feature_possible_value.FeaturePossibleValue(
                                key = 'value', 
                                value = 'value', )
                            ], 
                        created_at = '2023-01-01T12:00Z', 
                        updated_at = '2023-01-01T12:00:00Z', )
                    ],
                visibility = 'PUBLIC',
                task = 'REGRESSION',
                raw_model = 'YQ==',
        )
        """

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

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