# coding: utf-8

from __future__ import absolute_import
from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from openapi_server.models.base_model_ import Model
from openapi_server import util


class TrainTestSplitOutput(Model):
    """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

    Do not edit the class manually.
    """

    def __init__(self, x_train=None, x_test=None, y_train=None, y_test=None):  # noqa: E501
        """TrainTestSplitOutput - a model defined in OpenAPI

        :param x_train: The x_train of this TrainTestSplitOutput.  # noqa: E501
        :type x_train: List[List[float]]
        :param x_test: The x_test of this TrainTestSplitOutput.  # noqa: E501
        :type x_test: List[List[float]]
        :param y_train: The y_train of this TrainTestSplitOutput.  # noqa: E501
        :type y_train: List[float]
        :param y_test: The y_test of this TrainTestSplitOutput.  # noqa: E501
        :type y_test: List[float]
        """
        self.openapi_types = {
            'x_train': List[List[float]],
            'x_test': List[List[float]],
            'y_train': List[float],
            'y_test': List[float]
        }

        self.attribute_map = {
            'x_train': 'x_train',
            'x_test': 'x_test',
            'y_train': 'y_train',
            'y_test': 'y_test'
        }

        self._x_train = x_train
        self._x_test = x_test
        self._y_train = y_train
        self._y_test = y_test

    @classmethod
    def from_dict(cls, dikt) -> 'TrainTestSplitOutput':
        """Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The train_test_split-output of this TrainTestSplitOutput.  # noqa: E501
        :rtype: TrainTestSplitOutput
        """
        return util.deserialize_model(dikt, cls)

    @property
    def x_train(self):
        """Gets the x_train of this TrainTestSplitOutput.


        :return: The x_train of this TrainTestSplitOutput.
        :rtype: List[List[float]]
        """
        return self._x_train

    @x_train.setter
    def x_train(self, x_train):
        """Sets the x_train of this TrainTestSplitOutput.


        :param x_train: The x_train of this TrainTestSplitOutput.
        :type x_train: List[List[float]]
        """

        self._x_train = x_train

    @property
    def x_test(self):
        """Gets the x_test of this TrainTestSplitOutput.


        :return: The x_test of this TrainTestSplitOutput.
        :rtype: List[List[float]]
        """
        return self._x_test

    @x_test.setter
    def x_test(self, x_test):
        """Sets the x_test of this TrainTestSplitOutput.


        :param x_test: The x_test of this TrainTestSplitOutput.
        :type x_test: List[List[float]]
        """

        self._x_test = x_test

    @property
    def y_train(self):
        """Gets the y_train of this TrainTestSplitOutput.


        :return: The y_train of this TrainTestSplitOutput.
        :rtype: List[float]
        """
        return self._y_train

    @y_train.setter
    def y_train(self, y_train):
        """Sets the y_train of this TrainTestSplitOutput.


        :param y_train: The y_train of this TrainTestSplitOutput.
        :type y_train: List[float]
        """

        self._y_train = y_train

    @property
    def y_test(self):
        """Gets the y_test of this TrainTestSplitOutput.


        :return: The y_test of this TrainTestSplitOutput.
        :rtype: List[float]
        """
        return self._y_test

    @y_test.setter
    def y_test(self, y_test):
        """Sets the y_test of this TrainTestSplitOutput.


        :param y_test: The y_test of this TrainTestSplitOutput.
        :type y_test: List[float]
        """

        self._y_test = y_test
