# coding: utf-8

"""
    Mozart platform API

    API for interacting with the Mozart platform.  # noqa: E501

    The version of the OpenAPI document: 0.2.0
    Contact: support@bang-olufsen.dk
    Generated by: https://openapi-generator.tech
"""


from __future__ import absolute_import

import unittest
import datetime

import mozart_api
from mozart_api.models.web_socket_event_sound_settings import (
    WebSocketEventSoundSettings,
)  # noqa: E501
from mozart_api.rest import ApiException


class TestWebSocketEventSoundSettings(unittest.TestCase):
    """WebSocketEventSoundSettings unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional):
        """Test WebSocketEventSoundSettings
        include_option is a boolean, when False only required
        params are included, when True both required and
        optional params are included"""
        # model = mozart_api.models.web_socket_event_sound_settings.WebSocketEventSoundSettings()  # noqa: E501
        if include_optional:
            return WebSocketEventSoundSettings(
                event_data=mozart_api.models.sound_settings.SoundSettings(
                    adjustments=mozart_api.models.sound_adjustments.SoundAdjustments(
                        ambience=1.337,
                        bass=56,
                        directivity="0",
                        eco_mode=True,
                        fadein=True,
                        loudness=True,
                        treble=56,
                    ),
                    room_compensation=mozart_api.models.room_compensation_info.RoomCompensationInfo(
                        debug=mozart_api.models.room_compensation_debug.RoomCompensationDebug(
                            value=True,
                        ),
                        enabled=mozart_api.models.room_compensation_enabled.RoomCompensationEnabled(
                            value=True,
                        ),
                        last_result=mozart_api.models.room_compensation_result.RoomCompensationResult(
                            compensation=[
                                mozart_api.models.room_compensation_response.RoomCompensationResponse(
                                    frequency=56,
                                    gain=1.337,
                                )
                            ],
                            measured_response=[
                                mozart_api.models.room_compensation_response.RoomCompensationResponse(
                                    frequency=56,
                                    gain=1.337,
                                )
                            ],
                            placement="free",
                            reference_response=[
                                mozart_api.models.room_compensation_response.RoomCompensationResponse(
                                    frequency=56,
                                    gain=1.337,
                                )
                            ],
                            speaker_group_suggestion=mozart_api.models.speaker_group.SpeakerGroup(
                                crossover_frequency=20,
                                enable_phase_compensation=True,
                                friendly_name="0",
                                id="0",
                                is_deleteable=True,
                                items=[
                                    mozart_api.models.speaker_group_member.SpeakerGroupMember(
                                        distance=0,
                                        friendly_name="0",
                                        gain=-24,
                                        id="0",
                                        location=mozart_api.models.speaker_group_member_location.SpeakerGroupMember_location(
                                            x=56,
                                            y=56,
                                            z=56,
                                        ),
                                        redirection_level=-100,
                                        role="0",
                                        type="0",
                                    )
                                ],
                                room_compensation_id="0",
                                speaker_preset=0,
                            ),
                            time_stamp=datetime.datetime.strptime(
                                "2013-10-20 19:20:30.00", "%Y-%m-%d %H:%M:%S.%f"
                            ),
                        ),
                        last_run=null,
                        type=mozart_api.models.room_compensation_type.RoomCompensationType(
                            value="simple",
                        ),
                        version=mozart_api.models.room_compensation_version.RoomCompensationVersion(
                            algorithm=0,
                            coefficients=0,
                        ),
                    ),
                    tone_touch=mozart_api.models.sound_tone_touch.SoundToneTouch(
                        x=1.337,
                        y=1.337,
                        z=1.337,
                    ),
                ),
                event_type="0",
            )
        else:
            return WebSocketEventSoundSettings()

    def testWebSocketEventSoundSettings(self):
        """Test WebSocketEventSoundSettings"""
        inst_req_only = self.make_instance(include_optional=False)
        inst_req_and_optional = self.make_instance(include_optional=True)


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