import unittest
from helix.constants.module_type import ModuleType
from helix.constants.module_type_constants.dual_tilt_128_cell_constants import DualTilt128CellConstants
from helix.constants.module_type_constants.dual_tilt_96_cell_constants import DualTilt96CellConstants
from helix.constants.module_type_constants.single_tilt_128_cell_constants import SingleTilt128CellConstants
from helix.constants.module_type_constants.single_tilt_96_cell_constants import SingleTilt96CellConstants
from helix.constants.system_type import SystemType


class SystemTypeTest(unittest.TestCase):

    def test_module_constants_when_single_tilt_and_96Cell_model(self):
        system_type = SystemType.singleTilt
        module_type = ModuleType.Cell96

        assert type(system_type.module_constants(module_type)) is SingleTilt96CellConstants

    def test_module_constants_when_dual_tilt_and_96Cell_model(self):
        system_type = SystemType.dualTilt
        module_type = ModuleType.Cell96

        assert type(system_type.module_constants(module_type)) is DualTilt96CellConstants

    def test_module_constants_when_single_tilt_and_128Cell_model(self):
        system_type = SystemType.singleTilt
        module_type = ModuleType.Cell128

        assert type(system_type.module_constants(module_type)) is SingleTilt128CellConstants

    def test_module_constants_when_dual_tilt_and_128Cell_model(self):
        system_type = SystemType.dualTilt
        module_type = ModuleType.Cell128

        assert type(system_type.module_constants(module_type)) is DualTilt128CellConstants
