# Path: auxi/tools/transportphenomena/heattransfer/naturalconvection.py
# class EmpiricalCorrelation(Object):
# class IsothermalFlatSurface(EmpiricalCorrelation):
#     class Region(NamedObject):
#     def __init__(self, fluid, references):
#         def __init__(self, name,
#                      theta_min, theta_min_incl,
#                      theta_max, theta_max_incl,
#                      Ra_min=None, Ra_min_incl=True,
#                      Ra_max=None, Ra_max_incl=True,
#                      description=None):
#         def _theta_min_incl(self, theta):
#         def _theta_min_excl(self, theta):
#         def _theta_max_incl(self, theta):
#         def _theta_max_excl(self, theta):
#         def _Ra_min_none(self, Ra):
#         def _Ra_min_incl(self, Ra):
#         def _Ra_min_excl(self, Ra):
#         def _Ra_max_none(self, Ra):
#         def _Ra_max_incl(self, Ra):
#         def _Ra_max_excl(self, Ra):
#         def contains_point(self, theta, Ra):
#         def plot_region(self):
#     def __init__(self, fluid, isgas=True, references=None):
#     def _Nu_x__8_26(self, Ra, Pr):
#     def _Nu_x__8_27(self, Ra, Pr):
#     def _Nu_x__8_27_g(self, Ra, Pr):
#     def _Nu_x__8_38(self, Ra, Pr):
#     def _Nu_x__9_22(self, Ra, Pr):
#     def _Nu_x__9_23(self, Ra, Pr):
#     def Nu_x(self, L, theta, Ts, **statef):
#     def Nu_L(self, L, theta, Ts, **statef):
#     def h_x(self, L, theta, Ts, **statef):
#     def h_L(self, L, theta, Ts, **statef):
#     def plot_regions(self):
# 
# Path: auxi/tools/materialphysicalproperties/gases.py
# def _path(relative_path):
# def _create_ds_dict(namelist):
# def _create_polynomial_model(
#     name: str,
#     symbol: str,
#     degree: int,
#     ds: DataSet,
#     dss: dict):
# def _create_air():
# def _create_argon():
# def _create_ammonia():
# def _create_carbon_dioxide():
# def _create_carbon_monoxide():
# def _create_nitrogen():
# def _create_oxygen():
# def _create_water_vapour():
#     def __init__(self):
#     def calculate(self, **state):
#         def phi(i, j, mu_i, mu_j):
#     def plot(self, xs, datasets, path, show=False):
#     def __init__(self):
#     def calculate(self, **state):
#     def plot(self, xs, datasets, path, show=False):
#     def __init__(self):
#     def calculate(self, **state):
#     def plot(self, xs, datasets, path, show=False):
# class WilkeMuTx(Model):
# class HerningZippererMuTx(Model):
# class IdealCpTx(Model):
#         T = state['T']
#         T = state['T']
#         T = state["T"]


import unittest
from os.path import realpath, dirname
from auxi.tools.transportphenomena.heattransfer import naturalconvection as testee
from auxi.tools.materialphysicalproperties.gases import air
            "r1", -90, True, -60, True, None, False, 4, False)

    def test_constructor(self):
        self.assertEqual(self.region.theta_min, -90)
        self.assertTrue(self.region.theta_min_incl, True)
        self.assertEqual(self.region.theta_max, -60)
        self.assertTrue(self.region.theta_max_incl)
        self.assertIsNone(self.region.Ra_min)
        self.assertFalse(self.region.Ra_min_incl)
        self.assertEqual(self.region.Ra_max, 4)
        self.assertFalse(self.region.Ra_max_incl)

    def test_contains_point(self):
        # testing theta < min boundary
        self.assertFalse(self.region.contains_point(-91, 3))
        # testing theta > max boundary
        self.assertFalse(self.region.contains_point(-59, 3))
        # testing Ra > max boundary
        self.assertFalse(self.region.contains_point(-75, 5))
        # testing all within boundary
        self.assertTrue(self.region.contains_point(-75, 3))

    @unittest.skip("Todo: Implement Test. I do not know how to.")
    def test_plot_region(self):
        self.assertFalse(True)


class IsothermalFlatSurfaceTester(unittest.TestCase):

    def setUp(self):

# Path: auxi/tools/transportphenomena/heattransfer/naturalconvection.py
# class EmpiricalCorrelation(Object):
# class IsothermalFlatSurface(EmpiricalCorrelation):
#     class Region(NamedObject):
#     def __init__(self, fluid, references):
#         def __init__(self, name,
#                      theta_min, theta_min_incl,
#                      theta_max, theta_max_incl,
#                      Ra_min=None, Ra_min_incl=True,
#                      Ra_max=None, Ra_max_incl=True,
#                      description=None):
#         def _theta_min_incl(self, theta):
#         def _theta_min_excl(self, theta):
#         def _theta_max_incl(self, theta):
#         def _theta_max_excl(self, theta):
#         def _Ra_min_none(self, Ra):
#         def _Ra_min_incl(self, Ra):
#         def _Ra_min_excl(self, Ra):
#         def _Ra_max_none(self, Ra):
#         def _Ra_max_incl(self, Ra):
#         def _Ra_max_excl(self, Ra):
#         def contains_point(self, theta, Ra):
#         def plot_region(self):
#     def __init__(self, fluid, isgas=True, references=None):
#     def _Nu_x__8_26(self, Ra, Pr):
#     def _Nu_x__8_27(self, Ra, Pr):
#     def _Nu_x__8_27_g(self, Ra, Pr):
#     def _Nu_x__8_38(self, Ra, Pr):
#     def _Nu_x__9_22(self, Ra, Pr):
#     def _Nu_x__9_23(self, Ra, Pr):
#     def Nu_x(self, L, theta, Ts, **statef):
#     def Nu_L(self, L, theta, Ts, **statef):
#     def h_x(self, L, theta, Ts, **statef):
#     def h_L(self, L, theta, Ts, **statef):
#     def plot_regions(self):
# 
# Path: auxi/tools/materialphysicalproperties/gases.py
# def _path(relative_path):
# def _create_ds_dict(namelist):
# def _create_polynomial_model(
#     name: str,
#     symbol: str,
#     degree: int,
#     ds: DataSet,
#     dss: dict):
# def _create_air():
# def _create_argon():
# def _create_ammonia():
# def _create_carbon_dioxide():
# def _create_carbon_monoxide():
# def _create_nitrogen():
# def _create_oxygen():
# def _create_water_vapour():
#     def __init__(self):
#     def calculate(self, **state):
#         def phi(i, j, mu_i, mu_j):
#     def plot(self, xs, datasets, path, show=False):
#     def __init__(self):
#     def calculate(self, **state):
#     def plot(self, xs, datasets, path, show=False):
#     def __init__(self):
#     def calculate(self, **state):
#     def plot(self, xs, datasets, path, show=False):
# class WilkeMuTx(Model):
# class HerningZippererMuTx(Model):
# class IdealCpTx(Model):
#         T = state['T']
#         T = state['T']
#         T = state["T"]


# Path: auxi/tools/transportphenomena/heattransfer/naturalconvection_test.py
import unittest
from os.path import realpath, dirname
from auxi.tools.transportphenomena.heattransfer import naturalconvection as testee
from auxi.tools.materialphysicalproperties.gases import air

            "r1", -90, True, -60, True, None, False, 4, False)

    def test_constructor(self):
        self.assertEqual(self.region.theta_min, -90)
        self.assertTrue(self.region.theta_min_incl, True)
        self.assertEqual(self.region.theta_max, -60)
        self.assertTrue(self.region.theta_max_incl)
        self.assertIsNone(self.region.Ra_min)
        self.assertFalse(self.region.Ra_min_incl)
        self.assertEqual(self.region.Ra_max, 4)
        self.assertFalse(self.region.Ra_max_incl)

    def test_contains_point(self):
        # testing theta < min boundary
        self.assertFalse(self.region.contains_point(-91, 3))
        # testing theta > max boundary
        self.assertFalse(self.region.contains_point(-59, 3))
        # testing Ra > max boundary
        self.assertFalse(self.region.contains_point(-75, 5))
        # testing all within boundary
        self.assertTrue(self.region.contains_point(-75, 3))

    @unittest.skip("Todo: Implement Test. I do not know how to.")
    def test_plot_region(self):
        self.assertFalse(True)


class IsothermalFlatSurfaceTester(unittest.TestCase):

    def setUp(self):

        self.model = testee.IsothermalFlatSurface(air)