# Path: pyjob/misc.py
# def typecast(value):
#     """Recursively typecast an input
# 
#     Parameters
#     ----------
#     value : int, float, str, tuple, list
# 
#     """
#     if isinstance(value, (dict, list)):
#         iterator = range(len(value)) if isinstance(value, list) else value
#         for i in iterator:
#             value[i] = typecast(value[i])
#     elif value == "None":
#         return None
#     elif value in ("False", "True"):
#         return True if value == "True" else False
#     else:
#         for type_fn in (int, float, str):
#             try:
#                 return type_fn(value)
#             except ValueError:
#                 pass
#     return value


from pyjob.misc import typecast
    def test_float(self):
        output = typecast("1.0")
        assert isinstance(output, float)
        assert output == 1

    def test_char(self):
        output = typecast("a")
        assert isinstance(output, str)
        assert output == "a"

    def test_str(self):
        output = typecast("abc")
        assert isinstance(output, str)
        assert output == "abc"

    def test_none(self):
        output = typecast("None")
        assert output is None

    def test_bool(self):
        output = typecast("True")
        assert isinstance(output, bool)
        assert output is True

    def test_list(self):
        output = typecast(["1", "True", "3.0", "t", "test"])
        assert isinstance(output, list)
        assert output == [1, True, 3.0, "t", "test"]

    def test_dict(self):

# Path: pyjob/misc.py
# def typecast(value):
#     """Recursively typecast an input
# 
#     Parameters
#     ----------
#     value : int, float, str, tuple, list
# 
#     """
#     if isinstance(value, (dict, list)):
#         iterator = range(len(value)) if isinstance(value, list) else value
#         for i in iterator:
#             value[i] = typecast(value[i])
#     elif value == "None":
#         return None
#     elif value in ("False", "True"):
#         return True if value == "True" else False
#     else:
#         for type_fn in (int, float, str):
#             try:
#                 return type_fn(value)
#             except ValueError:
#                 pass
#     return value


# Path: pyjob/tests/test_misc.py
from pyjob.misc import typecast

    def test_float(self):
        output = typecast("1.0")
        assert isinstance(output, float)
        assert output == 1

    def test_char(self):
        output = typecast("a")
        assert isinstance(output, str)
        assert output == "a"

    def test_str(self):
        output = typecast("abc")
        assert isinstance(output, str)
        assert output == "abc"

    def test_none(self):
        output = typecast("None")
        assert output is None

    def test_bool(self):
        output = typecast("True")
        assert isinstance(output, bool)
        assert output is True

    def test_list(self):
        output = typecast(["1", "True", "3.0", "t", "test"])
        assert isinstance(output, list)
        assert output == [1, True, 3.0, "t", "test"]

    def test_dict(self):

        output = typecast(